ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

这篇具有很好参考价值的文章主要介绍了ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.安裝teb_local_planner算法

源码下载地址:GitHub - rst-tu-dortmund/teb_local_planner: An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package)

 注意选择对应ROS版本的代码。

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

 放在navigation目录下(或者自己创建一个):

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

安装缺失依赖(在teb_local_planner目录下打开终端):

rosdep install teb_local_planner

 在src当前目录下运行(如果此句运行失败,接着执行下面的):

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

	  rosdep install --from-paths src --ignore-src --rosdistro=<ros_version> -y

编译:

      catkin_make -DCATKIN_WHITELIST_PACKAGES="teb_local_planner"

在编译过程中会出现缺包,对应安装就好了。

查看是否安装成功:

rospack plugins --attrib=plugin nav_core

会出现以下相关信息:

teb_local_planner /home/catkin_navigation/src/navigation/teb_local_planner-melodic-devel/teb_local_planner_plugin.xml

测试:

roslaunch teb_local_planner test_optim_node.launch

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

 二.teb替代DWA算法

move_base.launch文件中添加teb配置内容:

<launch>
  <!-- Arguments -->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
  <arg name="cmd_vel_topic" default="/cmd_vel" />
  <arg name="odom_topic" default="odom" />
  <arg name="move_forward_only" default="false"/><!--true机器人只能向前运动-->

  <!-- move_base -->
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <!--加载Dijkstra、A star算法-->
    <param name="base_global_planner" value="global_planner/GlobalPlanner"/>
    <param name="planner_frequency" value="1.0" />
    <param name="planner_patience" value="5.0" />
    <!--加载DWA算法
    <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />-->
    <!--加载TEB算法-->
    <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
    <!--配置文件-->
    <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find turtlebot3_navigation)/param/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find turtlebot3_navigation)/param/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find turtlebot3_navigation)/param/move_base_params.yaml" command="load" />
    <!--DWA配置文件-->
    <rosparam file="$(find turtlebot3_navigation)/param/dwa_local_planner_params_$(arg model).yaml" command="load" />
    <!--TEB配置文件-->
    <rosparam file="$(find turtlebot3_navigation)/param/teb_local_planner_params.yaml" command="load" />
    <remap from="cmd_vel" to="$(arg cmd_vel_topic)"/>
    <remap from="odom" to="$(arg odom_topic)"/>
    <param name="DWAPlannerROS/min_vel_x" value="0.0" if="$(arg move_forward_only)" />
  </node>
</launch>

turtlebot3_navigation/param文件夹下创建teb_local_planner_params.yaml文件:

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

TebLocalPlannerROS:
  odom_topic: odom
  map_frame: map

  # Trajectory
  teb_autosize: True
  dt_ref: 0.5
  dt_hysteresis: 0.05
  min_samples: 3
  global_plan_overwrite_orientation: True
  global_plan_viapoint_sep: 0.1 # negative, do not use viapoints. positive, use them. the actual value does not matter
  max_global_plan_lookahead_dist: 1.5
  global_plan_prune_distance: 0.6
  force_reinit_new_goal_dist: 1.0
  feasibility_check_no_poses: 3
  publish_feedback: false
  allow_init_with_backwards_motion: true
  exact_arc_length: false
  shrink_horizon_backup: true
  shrink_horizon_min_duration: 10

  # Robot
  max_vel_x: 0.22
  max_vel_x_backwards: 0.5
  max_vel_theta: 2.75
  max_vel_y: 0.0
  acc_lim_y: 0.0
  acc_lim_x: 2.5
  acc_lim_theta: 3.2
  min_turning_radius: 0.0
  wheelbase: 0.0 # not used, is differential
  cmd_angle_instead_rotvel: false # not used, is differential
  footprint_model: # types: "point", "circular", "two_circles", "line", "polygon"
#    type: "circular"
#    radius: 0.5 # for type "circular"
#    type: "line"
#    line_start: [-0.0545, 0.0] # for type "line"
#    line_end: [0.0545, 0.0] # for type "line"
# front_offset: 0.2 # for type "two_circles"
# front_radius: 0.2 # for type "two_circles"
# rear_offset: 0.2 # for type "two_circles"
# rear_radius: 0.2 # for type "two_circles"
    type: "polygon"
    vertices: [[-0.105, -0.105], [-0.105, 0.105], [0.041, 0.105], [0.041, -0.105]] # for type "polygon"

  # GoalTolerance
  xy_goal_tolerance: 0.05
  yaw_goal_tolerance: 0.17
  free_goal_vel: False

  # Obstacles
  min_obstacle_dist: 0.1 # minimum distance to obstacle: it depends on the footprint_model
  inflation_dist: 0.0 # greater than min_obstacle_dist to take effect
  include_costmap_obstacles: True # use the local costmap
  costmap_obstacles_behind_robot_dist: 1.0 # distance at which obstacles behind the robot are taken into account
  legacy_obstacle_association: false
  obstacle_poses_affected: 30 # unused if legacy_obstacle_association is false
  obstacle_association_force_inclusion_factor: 10.0 # the obstacles that will be taken into account are those closer than min_obstacle_dist*factor, if legacy is false
  obstacle_association_cutoff_factor: 40.0 # the obstacles that are further than min_obstacle_dist * factor will not be taken into account, if legacy is false
#  costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSMCCH"
  #costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSRANSAC"
  #costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSMCCH"
#  costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSConcaveHull"
  costmap_converter_plugin: "" # deactivate plugin
  costmap_converter_spin_thread: True
  costmap_converter_rate: 10

  # Optimization
  no_inner_iterations: 5
  no_outer_iterations: 4
  optimization_activate: True # optimize
  optimization_verbose: False
  penalty_epsilon: 0.1
  weight_max_vel_x: 2
  weight_max_vel_y: 1
  weight_max_vel_theta: 1
  weight_acc_lim_x: 1
  weight_acc_lim_y: 1
  weight_acc_lim_theta: 1
  weight_kinematics_nh: 1 # is a holonomic robot
  weight_kinematics_forward_drive: 10 # prefer forward driving, for differential
  weight_kinematics_turning_radius: 0 # prefer turns that respect the min_turning_radius, not used if differential (min_turning_radius = 0)
  weight_optimaltime: 1.0 # prefer trajectories with less transition time
  weight_obstacle: 50.0 # prefer trajectories that respect the min_obstacle_dist
  weight_inflation: 0.1 # prefer trajectories that respect the inflation of the obstacles
  #weight_dynamic_obstacle: 10 # not in use yet
  weight_viapoint: 1.0 # prefer trajectories that respect the viapoints in the global path
  weight_adapt_factor: 2 # factor to multiply some weights (currently only weight_obstacle) at each iteration (gives better results than a huge value for the weight)

  # Homotopy Class Planner
  enable_homotopy_class_planning: True # currently not used

效果展示:

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

参考:【ROS】Turtlebot3局部避障TEB算法配置_move_base三维导航_RockWang.的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-481977.html

到了这里,关于ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Docker上运行ROS(melodic版本)机器人项目

    对于ROS机器人项目来说,运行的环境可能各不相同,有的需要在Ubuntu18.04下运行,有的需要在Ubuntu20.04下运行。 运行环境的改变,产生使用Docker配置环境的需求 。本人 以港科大FUEL的项目为例,尝试在Docker上安装ROS-Melodic,并运行该无人机项目 。在本文中,会引用到很多的链

    2024年02月07日
    浏览(34)
  • Ubuntu20.04内安装Docker并在Docker内安装 ROS Melodic

    目录 一. 在 Ubuntu 20.04 中安装 Docker   1. 阿里云一键安装   2. 手动安装步骤 2.1 卸载老旧版本 2.2 安装环境依赖 2.3 安装 GPG 证书 2.4 设置存储库 2.5 安装 Docker 2.6 验证安装是否成功 2.7 安装 Dockers 网页管理 二. 在 Docker 内安装 ROS(Melodic) 1. 安装 Melodic 2. 构建通用环境依赖 3. 在镜

    2024年01月21日
    浏览(45)
  • 在Ubuntu18.04(虚拟机) 与 ROS Melodic 环境下,gazebo启动异常以及解决

    在Ubuntu18.04(虚拟机) 与 ROS Melodic 环境下,gazebo启动异常以及解决 参考链接:【Autolabor初级教程】ROS机器人入门 p232 230仿真概述 在终端输入 gazebo ,出现问题1 问题1:VMware: vmw_ioctl_command error 无效的参数 解决: echo \\\"export SVGA_VGPU10=0\\\" ~/.bashrc source .bashrc 但是还没完,出现了问

    2024年02月16日
    浏览(48)
  • DockerFile文件部署Ubuntu18.04、Ros melodic、SLambook2的编译详细攻略

            最近,在Ubuntu系统上跑各种项目,经常出现环境配置干扰问题,导致项目常年无法运行。因此,查询各种方法,最终采用使用Docker来解决此问题,并成功运行 Rviz和Gazebo!!!         以下,为本人在配置、编写DockerFile文档时候遇到的一些问题。        

    2024年01月20日
    浏览(39)
  • SLAM学习笔记(一)Lio-sam安装与运行 ubuntu18.04+ros melodic

    三维激光SLAM入门 Lio-sam安装与运行 ubuntu18.04+ros melodic 最近在学习激光SLAM,本文将介绍了ubuntu18.04+ros melodic下部署复现LIO-SAM的过程。2020年TIxiaoshan在IROS发表了Lio-sam算法,LiO-sam是Lego-Loam的拓展版本,添加了IMU预积分因子和GPS因子,Loam与Lego-Loam纯靠激光雷达点云信息SLAM,Lio-sa

    2023年04月09日
    浏览(128)
  • Ubuntu18.04LTS离线安装ROS Melodic(解决rosdep init与rosdep update问题)

    因为公司调试电脑无法连接互联网,所以安装 ROS 很让人头疼。但安装 ROS 无非就是安装一些 deb 包与其对应的依赖,既然这样只要下载好需要的 deb 包,再离线安装就可以。在联网电脑上使用 apt install 安装 ROS 时候,会在 /var/cache/apt/archives/ 下保存下载的安装包和依赖包,但如

    2024年02月09日
    浏览(39)
  • Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)

    备注:2023.7.4修改,如果是ros空间,可以在工作空间中使用单独cv_bridge的方式!!!比较简单,是我目前常用的方式。放在文章最后。 由于ROS Melodic自带的是Opencv3.2.0,而我自己下载的是opencv3.4.5,所以需要将cv_bridge的指向改为我自己安装的opencv。 全篇很长,建议看完后操作,

    2024年02月16日
    浏览(52)
  • Ubuntu18.04 ROS melodic环境下,通过Gazebo软件仿真SLAM算法的学习(gmapping/karto/cartographer/hector)

    目录 一 环境场景搭建world 1.下载insert插件(该插件下会提供一些建好的场景,也可不下载) 2.环境搭建(自建) 3.保存环境 4.配置修改 5.启动环境 二 机器人模型URDF 1.模型创建的文件书写规范 2.检查文件格式是否正确 3.启动模型 三 机器人在场景中运动 1.机器人放在场景中

    2024年02月04日
    浏览(45)
  • 【EHub_tx1_tx2_A200】Ubuntu18.04 + ROS_ Melodic + 锐驰LakiBeam 1L单线激光 雷达评测

            大家好,我是虎哥,最近这段时间,又手欠入手了锐驰LakiBeam 1L激光雷达,实在是性价比太优秀,话说,最近激光雷达圈确实有点卷。锐驰官网的资料已经很丰富,我这里总结一下自己的简单测试经验,分享给大家。          LakiBeam1L是锐驰智光面向中低速场

    2024年02月03日
    浏览(39)
  • ROS运动规划学习六---dwa_local_planner

    在ROS navigation导航框架中局部轨迹规划包含dwa_localplanner和trajectory_planner,后者位于base_local_planner中。 经过之前ROS运动规划三—move_base的学习,move_base功能包中global_planner订阅move_base_simple/goal话题,拿到目标点位置,进行全局规划,新建线程,调用makePlan()函数进行全局规划,获

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包