Dynamic Window Approach(DWA)是重要的局部轨迹规划算法,ROS中使用了DWA算法获得了很好的局部路径规划的效果。具体的教程可参考官方的导航调试资料Navigation Tuning Guide。ROS的DWA(dwa_local_planner)应用到新机器人调试时,有一些技巧需要注意的,这里做一些总结。 1.设置坐标系和话题 需要订阅的话题: 里程计话题:/odom 需要设置的坐标系:包含/map,/odom,/base_footprint 2.参数调试 a.加速度的限制 加速度限制(acc_lim_x,acc_lim_y,acc_lim_th)非常的重要,如果不知道机器人的加速度,可以尽量的往大的设置,因为如果设置太小了,往往会出现机器人往前跑断断续续的,转弯转过头(看似加速度太大了,实际是加速度太小,以至于机器人想把机器人掰回来而掰不及),从而导致反复的震荡(oscillating over and over),例如下面的错误提示: Aborting because the robot appears to be oscillating over and over. Even after executing all recovery behaviors ~<name>/acc_lim_x (double, default: 2.5)
~<name>/acc_lim_y (double, default: 2.5)
~<name>/acc_lim_th (double, default: 3.2)
b.仿真的时间 局部路径模拟的时间不用太长也不用太短,一般一秒左右就差不多了,如果太多会容易导致偏离全局的路径,特别启动的时候会转较大的半径,如果想启动的时候基本原地旋转摆正机器人的方向和全局路径的方向一致,那么就把模拟的时间设置短点。如果太小的仿真时间也不好,容易导致频繁的路径规划消耗资源,甚至也会出现震荡的可能。 ~<name>/sim_time (double, default: 1.7)
c.轨迹的规划 主要是一些设置生成轨迹的参数。其中以下的两个参数比较重要。 ~<name>/path_distance_bias (double, default: 32.0)
~<name>/goal_distance_bias (double, default: 24.0)
3.参考资料 [1]. 机器人局部避障的动态窗口法(dynamic window approach)(*****) [2]. Autonomous Robot Navigation [3]. Circular Motion in 2D for graphics and robotics [4]. A Tutorial and Elementary Trajectory Model for the Differential Steering System of robot wheel actuators [5]. Navigation Tuning Guide |