官方文档: http://wiki.ros.org/dwa_local_planner
如何使用dwa_planner: http://answers.ros.org/question/209404/how-to-use-dwa_local_planner-in-move_base/
ROS局部规划模块分析:http://dkkkry.blog.51cto.com/8090800/1627993

出现如下报错

[ WARN] [1465964041.914251209]: Control loop missed its desired rate of 3.0000Hz... the loop actually took 0.4875 seconds
[ERROR] [1465964059.033444014]: Aborting because a valid plan could not be found. Even after executing all recovery behaviors

TODO

http://wiki.ros.org/teb_local_planner/Tutorials

teb_local_planer

teb_local_planner_params.yaml

TebLocalPlannerROS:odom_topic: odommap_frame: /odom# Trajectoryteb_autosize: Truedt_ref: 0.3dt_hysteresis: 0.1global_plan_overwrite_orientation: Truemax_global_plan_lookahead_dist: 3.0feasibility_check_no_poses: 5# Robotmax_vel_x: 0.2max_vel_x_backwards: 0.1max_vel_theta: 0.3acc_lim_x: 0.2acc_lim_theta: 0.2min_turning_radius: 0.0footprint_model: # types: "point", "circular", "two_circles", "line", "polygon"radius: 0.222 # for type "circular"# GoalTolerancexy_goal_tolerance: 0.2yaw_goal_tolerance: 0.1free_goal_vel: False# Obstaclesmin_obstacle_dist: 0.3include_costmap_obstacles: Truecostmap_obstacles_behind_robot_dist: 1.0obstacle_poses_affected: 15costmap_converter_plugin: ""costmap_converter_spin_thread: Truecostmap_converter_rate: 5# Optimizationno_inner_iterations: 5no_outer_iterations: 4optimization_activate: Trueoptimization_verbose: Falsepenalty_epsilon: 0.1weight_max_vel_x: 2weight_max_vel_theta: 1weight_acc_lim_x: 1weight_acc_lim_theta: 1weight_kinematics_nh: 1000weight_kinematics_forward_drive: 1weight_kinematics_turning_radius: 1weight_optimaltime: 1weight_obstacle: 300weight_dynamic_obstacle: 10 # not in use yetalternative_time_cost: False # not in use yet# Homotopy Class Plannerenable_homotopy_class_planning: Falseenable_multithreading: Truesimple_exploration: Falsemax_number_classes: 4roadmap_graph_no_samples: 15roadmap_graph_area_width: 5h_signature_prescaler: 0.5h_signature_threshold: 0.1obstacle_keypoint_offset: 0.1obstacle_heading_threshold: 0.45visualize_hc_graph: False

teb_move_base.launch

<launch><node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true"><rosparam file="$(find dashgo_nav)/config/dashgo/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find dashgo_nav)/config/dashgo/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find dashgo_nav)/config/dashgo/local_costmap_params.yaml" command="load" /><rosparam file="$(find dashgo_nav)/config/dashgo/global_costmap_params.yaml" command="load" /><rosparam file="$(find dashgo_nav)/config/dashgo/teb_local_planner_params.yaml" command="load" /><rosparam file="$(find dashgo_nav)/config/nav_obstacles_params.yaml" command="load" /><param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" /></node></launch>

teb_move_base_blank_map.launch

<launch><node name="arduino" pkg="dashgo_bringup" type="dashgo_driver.py" output="screen"><rosparam file="$(find dashgo_bringup)/config/my_dashgo_params.yaml" command="load" /></node><node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen"><param name="serial_port"         type="string" value="/dev/ttyUSB0"/>  <param name="serial_baudrate"     type="int"    value="115200"/><param name="frame_id"            type="string" value="laser_frame"/><param name="inverted"            type="bool"   value="false"/><param name="angle_compensate"    type="bool"   value="true"/></node><include file="$(find dashgo_description)/launch/dashgo_description.launch"/><node pkg="tf" type="static_transform_publisher" name="base_link_to_laser4" args="0.0 0.0 0.0 0.0 3.1415926 0.0 /base_link /laser_frame 40" /><!-- Launch move_base and load all navigation parameters --><include file="$(find dashgo_nav)/launch/teb_move_base.launch" /><!-- Run the map server with a blank map --><node name="map_server" pkg="map_server" type="map_server" args="$(find dashgo_nav)/maps/blank_map.yaml" /><!-- Run a static transform between /odom and /map --><node pkg="tf" type="static_transform_publisher" name="odom_map_broadcaster" args="0 0 0 0 0 0 /map /odom 100" /></launch>

teb_amcl_demo.launch

<launch><node name="arduino" pkg="dashgo_bringup" type="dashgo_driver.py" output="screen"><rosparam file="$(find dashgo_bringup)/config/my_dashgo_params.yaml" command="load" /></node><node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen"><param name="serial_port"         type="string" value="/dev/ttyUSB0"/>  <param name="serial_baudrate"     type="int"    value="115200"/><param name="frame_id"            type="string" value="laser_frame"/><param name="inverted"            type="bool"   value="false"/><param name="angle_compensate"    type="bool"   value="true"/></node><include file="$(find dashgo_description)/launch/dashgo_description.launch"/><node pkg="tf" type="static_transform_publisher" name="base_link_to_laser4" args="0.0 0.0 0.0 0.0 3.1415926 0.0 /base_link /laser_frame 40" /><!-- Map server --><arg name="map_file" default="$(find dashgo_nav)/maps/amcl_test.yaml"/><node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" /><arg name="initial_pose_x" default="0.0"/> <!-- Use 17.0 for willow's map in simulation --><arg name="initial_pose_y" default="0.0"/> <!-- Use 17.0 for willow's map in simulation --><arg name="initial_pose_a" default="0.0"/><include file="$(find dashgo_nav)/launch/amcl.launch.xml"><arg name="initial_pose_x" value="$(arg initial_pose_x)"/><arg name="initial_pose_y" value="$(arg initial_pose_y)"/><arg name="initial_pose_a" value="$(arg initial_pose_a)"/></include>
<include file="$(find dashgo_nav)/launch/teb_move_base.launch"/></launch>

运行

roslaunch dashgo_nav  teb_move_base_blank_map.launch
rviz

teb_local_planer支持自定义虚拟的障碍物

   /*** @brief Callback for custom obstacles that are not obtained from the costmap * @param obst_msg pointer to the message containing a list of polygon shaped obstacles*/void customObstacleCB(const teb_local_planner::ObstacleMsg::ConstPtr& obst_msg);

dwa_planner解读相关推荐

  1. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  2. Bert系列(二)——源码解读之模型主体

    本篇文章主要是解读模型主体代码modeling.py.在阅读这篇文章之前希望读者们对bert的相关理论有一定的了解,尤其是transformer的结构原理,网上的资料很多,本文内容对原理部分就不做过多 ...

  3. Bert系列(三)——源码解读之Pre-train

    https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...

  4. NLP突破性成果 BERT 模型详细解读 bert参数微调

    https://zhuanlan.zhihu.com/p/46997268 NLP突破性成果 BERT 模型详细解读 章鱼小丸子 不懂算法的产品经理不是好的程序员 ​关注她 82 人赞了该文章 Goo ...

  5. 解读模拟摇杆原理及实验

    解读模拟摇杆原理及实验 Interpreting Analog Sticks 当游戏支持控制器时,玩家可能会一直使用模拟摇杆.在整个体验过程中,钉住输入处理可能会对质量产生重大影响.让来看一些核心概念 ...

  6. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  7. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  8. 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读

    可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...

  9. 从单一图像中提取文档图像:ICCV2019论文解读

    从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...

最新文章

  1. 关于win7_iis报500.19和500.21错误的解决方法
  2. Python报错TypeError: Tuple or struct_time argument required
  3. HealthKit开发教程之HealthKit的辅助数据
  4. 微信小程序-封装http请求(ajax)
  5. spring boot apollo demo
  6. 【今晚七点半】:主编对话李宇翔——我所经历的“前端”开发
  7. qq头像计算机系,QQ头像
  8. mysql数据库相关
  9. eclipse中java环境配置
  10. 使用bind()和connect()函数
  11. “舌战群儒”的技术分析
  12. 工具类--生成随机姓名及指定长度随机字符串
  13. 白话大数据与机器学习——阅读笔记
  14. Windows XP SP3版本美化成Vista界面详解
  15. 计算机专业有必要数学竞赛吗,高中数学竞赛必要吗
  16. 我个人关于2019年双十一平台的使用
  17. python判断以什么开头_Python中用startswith()函数判断字符串开头的教程
  18. Android基础控件—SearchView
  19. 【编程题】【Scratch三级】2019.09 打气球游戏
  20. 十大经典Java手机游戏 Top Ten Best Java Mobile Games

热门文章

  1. restapi是什么意思_简单理解什么是REST和RESTful
  2. 北航计算机沙江波,北航材料学院导师
  3. 创新点定义,如何写创新点
  4. 阿里和唯品会java开发手册通读链接
  5. 第四次计算革命孕育“数字经济体”
  6. lol的不只有英雄联盟,还有程序开发天团!
  7. 五年级上册ppt计算机教案,五年级上册信息技术《PowerPoint》教案三篇
  8. log4j2 概述、配置详情、日志八种输出级别讲解
  9. Numpy 获取数组的行和列
  10. 如何看计算机内存使用百分比,如何查看内存条的实际使用频率