源码:https://github.com/rst-tu-dortmund/teb_local_planner.git

以husky为例子:

1.在gazebo里面配置好机器人底盘的环境

  1. roslaunch husky_gazebo husky_playpen.launch

https://github.com/husky/husky/tree/kinetic-devel/husky_gazebo

2.配置teb

launch文件的内容

  1. <launch>
  2. <master auto = "start"/>
  3. <!--Run footprint laser filter-->
  4. <!--node name="laser_filter" pkg="tfrbt_navigation" type="laser_footprint_filter"-->
  5.  
  6. <!--Run the map server-->
  7. <!--arg name = "map_file" default = "$(find tfrbt_navigation)/maps/tfrbt_map.yaml"/-->
  8. <!--arg name = "map_file" default = "$(env TFRBT_MAP_FILE)"/-->
  9. <node name = "map_server" pkg = "map_server" type = "map_server" args = "$(find tfrbt_navigation)/maps/tfrbt_map.yaml">
  10. <param name="frame_id" value="/map"/>
  11. </node>
  12.  
  13. <!--Run AMCL-->
  14. <arg name = "custom_amcl_launch_file" default = "$(find tfrbt_navigation)/launch/includes/amcl/front_back_lasers.launch.xml"/>
  15. <arg name = "initial_pose_x" default = "0.0"/>
  16. <arg name = "initial_pose_y" default = "0.0"/>
  17. <arg name = "initial_pose_a" default = "0.0"/>
  18. <include file = "$(arg custom_amcl_launch_file)">
  19. <arg name = "initial_pose_x" value = "arg initial_pose_x"/>
  20. <arg name = "initial_pose_y" value = "arg initial_pose_y"/>
  21. <arg name = "initial_pose_a" value = "arg initial_pose_a"/>
  22. </include>
  23.  
  24. <!--Run Move Base-->
  25. <arg name = "custom_param_file" default = "$(find tfrbt_navigation)/param/laser_costmap_params.yaml"/>
  26. <include file = "$(find tfrbt_navigation)/launch/includes/move_base_teb.launch.xml"> <!--move_base_dwa.launch.xml-->
  27. <arg name = "custom_param_file" value = "$(arg custom_param_file)"/>
  28. </include>
  29.  
  30. <!--node name="rviz" pkg="rviz" type="rviz" args="-d $(find teb_local_planner_tutorials)/cfg/rviz_navigation.rviz"/-->
  31. </launch>

主要是文件move_base_teb.launch.xml的配置,查看其内容

  1. <launch>
  2. <!--include file = "$(find tfrbt_navigation)/launch/includes/velocity_smoother.launch.xml"/-->
  3. <!--include file = "$(find tfrbt_navigation)/launch/includes/safety_controller.launch.xml"/-->
  4. <arg name = "odom_frame_id" default = "odom"/>
  5. <arg name = "base_frame_id" default = "base_link"/>
  6. <arg name = "global_frame_id" default = "map"/>
  7. <arg name = "odom_topic" default = "odom"/>
  8. <arg name = "laser_topic" default = "scan"/>
  9. <arg name = "custom_param_file" default = "$(find tfrbt_navigation)/param/dummy.yaml"/>
  10.  
  11. <node pkg = "move_base" type = "move_base" respawn = "false" name = "move_base" output = "screen">
  12. <rosparam file = "$(find tfrbt_navigation)/param/teb/costmap_common_params.yaml" command = "load" ns = "global_costmap"/>
  13. <rosparam file = "$(find tfrbt_navigation)/param/teb/costmap_common_params.yaml" command = "load" ns = "local_costmap"/>
  14. <rosparam file = "$(find tfrbt_navigation)/param/teb/local_costmap_params.yaml" command = "load"/>
  15. <rosparam file = "$(find tfrbt_navigation)/param/teb/global_costmap_params.yaml" command = "load"/>
  16. <rosparam file = "$(find tfrbt_navigation)/param/teb/teb_local_planner_params.yaml" command = "load"/>
  17. <!--rosparam file = "$(find tfrbt_navigation)/param/teb/move_base_params.yaml" command = "load"/-->
  18. <!--rosparam file = "$(find tfrbt_navigation)/param/teb/global_planner_params.yaml" command = "load"/-->
  19. <!--rosparam file = "$(find tfrbt_navigation)/param/teb/navfn_global_planner_params.yaml" command = "load"/-->
  20. <rosparam file = "$(arg custom_param_file)" command = "load"/>
  21.  
  22. <param name="base_global_planner" value="global_planner/GlobalPlanner" />
  23. <param name="planner_frequency" value="1.0" />
  24. <param name="planner_patience" value="5.0" />
  25.  
  26. <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
  27. <param name="controller_frequency" value="5.0" />
  28. <param name="controller_patience" value="15.0" />
  29.  
  30. <param name = "global_costmap/global_frame" value = "$(arg global_frame_id)"/>
  31. <param name = "global_costmap/robot_base_frame" value = "$(arg base_frame_id)"/>
  32. <param name = "local_costmap/global_frame" value = "$(arg odom_frame_id)"/>
  33. <param name = "local_costmap/robot_base_frame" value = "$(arg base_frame_id)"/>
  34. <!--param name = "DWAPlannerROS/global_frame_id" value = "$(arg odom_frame_id)"/-->
  35.  
  36. <!--remap from = "cmd_vel" to = "navigation_velocity_smoother/raw_cmd_vel"/-->
  37. <remap from = "odom" to = "$(arg odom_topic)"/>
  38. <remap from = "scan" to = "$(arg laser_topic)"/>
  39. </node>
  40.  
  41. </launch>

costmap_common_params.yaml内容

  1. #max_obstacle_height: 2.5 #assume something like an arm is mounted on top of the robot
  2.  
  3. robot_radius: 0.63
  4. footprint: [[-0.50, -0.38], [-0.50, 0.38], [0.50, 0.38], [0.50, -0.38]]
  5. footprint_padding: 0.02
  6. transform_tolerance: 0.2
  7. #map_type: voxel
  8. map_type: costmap
  9. always_send_full_costmap: true
  10.  
  11. obstacle_layer:
  12. enabled: true
  13. obstacle_range: 3.0
  14. raytrace_range: 4.0
  15. inflation_radius: 0.4
  16. track_unknown_space: true
  17. combination_method:
  18.  
  19. observation_sources: laser_scan_sensor
  20. laser_scan_sensor: {data_type: LaserScan, topic: scan, marking: true, clearing: true}
  21.  
  22. inflation_layer:
  23. enabled: true
  24. cost_scaling_factor: 10.0 # exponential rate at which the obstacle cost drops off (default: )
  25. inflation_radius: 0.65 # max. distance from an obstacle at which costs are incurred for planning paths.
  26.  
  27. static_layer:
  28. enabled: true
  29. map_topic: "map"

local_costmap_params.yaml内容

  1. local_costmap:
  2. global_frame: map
  3. robot_base_frame: base_link
  4. update_frequency: 5.0
  5. publish_frequency: 2.0
  6. static_map: false
  7. rolling_window: true
  8. width:
  9. height:
  10. resolution: 0.05
  11. transform_tolerance: 0.5
  12.  
  13. inflation_layer:
  14. enabled: true
  15. cost_scaling_factor: 10.0 # exponential rate at which the obstacle cost drops off (default: )
  16. inflation_radius: 0.65 # max. distance from an obstacle at which costs are incurred for planning paths.
  17.  
  18. plugins:
  19. - {name: static_layer, type: "costmap_2d::StaticLayer"}
  20. - {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
  21. - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

global_costmap_params.yaml内容

  1. global_costmap:
  2. global_frame: map
  3. robot_base_frame: base_link
  4. update_frequency: 1.0
  5. publish_frequency: 0.5
  6. static_map: true
  7.  
  8. transform_tolerance: 0.5
  9. plugins:
  10. - {name: static_layer, type: "costmap_2d::StaticLayer"}
  11. - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
  12. - {name: inflation_layer, type: "costmap_2d::InflationLayer"}
  13. ~

teb_local_planner_params.yaml内容

  1. TebLocalPlannerROS:
  2.  
  3. odom_topic: odom
  4.  
  5. # Trajectory
  6.  
  7. teb_autosize: True
  8. dt_ref: 0.3
  9. dt_hysteresis: 0.1
  10. global_plan_overwrite_orientation: True
  11. allow_init_with_backwards_motion: False
  12. max_global_plan_lookahead_dist: 3.0
  13. feasibility_check_no_poses:
  14.  
  15. # Robot
  16.  
  17. max_vel_x: 0.5
  18. max_vel_x_backwards: 0.5
  19. max_vel_y: 0.0
  20. max_vel_theta: 1.5
  21. acc_lim_x: 0.5
  22. acc_lim_theta: 0.5
  23. min_turning_radius: 0.0 # diff-drive robot (can turn on place!)
  24.  
  25. footprint_model:
  26. type: "point"
  27.  
  28. # GoalTolerance
  29.  
  30. xy_goal_tolerance: 0.2
  31. yaw_goal_tolerance: 0.1
  32. free_goal_vel: False
  33.  
  34. # Obstacles
  35.  
  36. min_obstacle_dist: 0.65 # This value must also include our robot radius, since footprint_model is set to "point".
  37. inflation_dist: 0.65
  38. include_costmap_obstacles: True
  39. costmap_obstacles_behind_robot_dist: 1.5
  40. obstacle_poses_affected:
  41. costmap_converter_plugin: ""
  42. costmap_converter_spin_thread: True
  43. costmap_converter_rate:
  44.  
  45. # Optimization
  46.  
  47. no_inner_iterations:
  48. no_outer_iterations:
  49. optimization_activate: True
  50. optimization_verbose: False
  51. penalty_epsilon: 0.01
  52. weight_max_vel_x:
  53. weight_max_vel_theta:
  54. weight_acc_lim_x:
  55. weight_acc_lim_theta:
  56. weight_kinematics_nh:
  57. weight_kinematics_forward_drive:
  58. weight_kinematics_turning_radius:
  59. weight_optimaltime:
  60. weight_obstacle:
  61. weight_dynamic_obstacle: # not in use yet
  62. weight_adapt_factor:
  63.  
  64. # Homotopy Class Planner
  65.  
  66. enable_homotopy_class_planning: True
  67. enable_multithreading: True
  68. simple_exploration: False
  69. max_number_classes:
  70. selection_cost_hysteresis: 1.0
  71. selection_obst_cost_scale: 1.0
  72. selection_alternative_time_cost: False
  73.  
  74. roadmap_graph_no_samples:
  75. roadmap_graph_area_width:
  76. h_signature_prescaler: 0.5
  77. h_signature_threshold: 0.1
  78. obstacle_keypoint_offset: 0.1
  79. obstacle_heading_threshold: 0.45
  80. visualize_hc_graph: False

teb-安装的更多相关文章

  1. teb教程3

    配置和运行机器人导航 简介:配置teb_local_planner作为navigation中local planner的插件 参考teb安装 由于局部代价地图的大小和分辨率对优化性能影响很大,因为占据 ...

  2. Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明

    [本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...

  3. Linux 上安装 weblogic12C (远程图形界面安装) (二)

    上一篇Linux 上安装 weblogic12C (静默安装)介绍了静默方式安装weblogic12C的方式,这一篇主要介绍在windows主机上通过远程图形界面的方式安装weblogic的方式 一. ...

  4. teb教程1

    http://wiki.ros.org/teb_local_planner/Tutorials/Setup%20and%20test%20Optimization 简介:本部分关于teb怎样优化轨迹以 ...

  5. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  6. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  7. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  8. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  9. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  10. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

随机推荐

  1. oracle创建表空间自增空间管理

    表空间(tablespace).段(segment).区(extent).块(block),这些都是oracle数据库在数据文件中组织数据的基本单元 1.创建表空间create tablespace ...

  2. 深入学习Redis持久化

    一.Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义. 我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常 ...

  3. oracle10G rac 10.2.0.1升级10.2.0.4

    前言 ocr版本查询指令:  ocrcheck vote盘路径查询指令: crsctl query css votedisk 相关指令参考来源:http://hzhg12345.blog.163.co ...

  4. Git--将已有的项目添加到github(转)

    转自:https://blog.csdn.net/north1989/article/details/53471439 1. 目标: 把本地已经存在的项目,推送到github服务端,实现共享. 2. ...

  5. jQuery遍历之向下遍历

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  6. 从Linux传输apk包到Windows系统,一周的心路历程,累

    1.在Windows服务器上打开一个cmd窗口,执行脚本,只适用于Windows系统 --NO String cmd = "cmd.exe /c adb -s f223413 install ...

  7. ERROR 2003 (HY000): Can't connect to MySQL server on '129.28.149.240' (111) mysql 无法远程连接

    环境: ubuntu  mysql 一. 查看端口 可以看到mysql监控的是本机Ip root@jiang:/etc/mysql/mysql.conf.d# netstat -apn|grep 33 ...

  8. oracle 的使用

    一. docker 模式下进入数据库 ubuntu@jiang:~$ sudo docker ps -a sudo: unable to resolve host jiang CONTAINER ID ...

  9. 关于LCN分布式事务框架

    基于LCN框架解决分布式事务 LCN官网 https://www.txlcn.org/ "LCN并不生产事务,LCN只是本地事务的搬运工" 兼容 dubbo.springcloud ...

  10. Vim默认开启语法标识功能

    把syntax on加到$HOME/.vimrc文件中.