move_base参数调试记录

主要目的:实现autolabor小车实时避障

硬件:autolabor底盘车,rplidar1,autolabor轮子里程计,华硕A550笔记本电脑;

软件:Linux系统,ubuntu16.04,ros机器人操作系统,小车/rplidar1启动软件,move_base功能包;

DWA:

DWA算法基本思路如下:

1.在机器人控制空间进行速度离散采样(dx,dy,dtheta)

2.对每一个采样速度执行前向模拟,看看使用该采样速度移动一小段段时间后会发生什么

3.评价前向模拟中每个轨迹,评价准则如: 靠近障碍物,靠近目标,贴近全局路径和速度;丢弃非法轨迹(如哪些靠近障碍物的轨迹)

4.挑出得分最高的轨迹并发送相应速度给移动底座

5.重复上面步骤.

参数调试:

有很多ROS参数可以用来配置dwa_local_planner::DWAPlannerROS的行为。 这些参数被分成了几组:: robot configuration, goal tolerance, forward simulation, trajectory scoring, oscillation prevention, and global plan.

acc_lim_x:x方向的加速度绝对值

acc_lim_y:y方向的加速度绝对值,该值只有全向移动的机器人才需配置.

acc_lim_th:旋转加速度的绝对值.

max_trans_vel:平移速度最大值绝对值

min_trans_vel:平移速度最小值的绝对值

max_vel_x:x方向最大速度的绝对值

min_vel_x:x方向最小值绝对值,如果为负值表示可以后退.

max_vel_y:y方向最大速度的绝对值.

min_vel_y:y方向最小速度的绝对值.

max_rot_vel:最大旋转速度的绝对值.

min_rot_vel:最小旋转速度的绝对值.

yaw_goal_tolerance:到达目标点时偏行角允许的误差,单位弧度.

xy_goal_tolerance:到达目标点时,在xy平面内与目标点的距离误差.

latch_xy_goal_tolerance:设置为true,如果到达容错距离内,机器人就会原地旋转,即使转动是会跑出容错距离外.

sim_time:向前仿真轨迹的时间.

sim_granularity:步长,轨迹上采样点之间的距离,轨迹上点的密集程度.

vx_samples:x方向速度空间的采样点数.

vy_samples:y方向速度空间采样点数.

vth_samples:旋转方向的速度空间采样点数.

controller_frequency:发送给底盘控制移动指令的频率.

path_distance_bias:定义控制器与给定路径接近程度的权重.

goal_distance_bias:定义控制器与局部目标点的接近程度的权重.

occdist_scale:定义控制器躲避障碍物的程度.

stop_time_buffer:为防止碰撞,机器人必须提前停止的时间长度.

scaling_speed:启动机器人底盘的速度.

max_scaling_factor:最大缩放参数.

publish_cost_grid:是否发布规划器在规划路径时的代价网格.如果设置为true,那么就会在~/cost_cloud话题上发布sensor_msgs/PointCloud2类型消息.

oscillation_reset_dist:机器人运动多远距离才会重置振荡标记.

prune_plan:机器人前进是是否清除身后1m外的轨迹.


DWA参数:

Forward Simulation Parameters中:

1.vth_samples    20   (默认值)     ----小车停在障碍物附近一直处在寻找路径的状态

2.vth_samples    0-10   ---小车遇到障碍物过不去,会有明显的后退重新规划路径的现象

你可能感兴趣的:(move_base参数调试记录)