Base local vs DWA planner for omnidirectional platform
I have a omnidirectional mobile platform , which it has the follow measures:
length:2550 mm width:1700 mm
The cinematic measures are:
Max Linear Velocity: 1m/sec Max Linear Acceleration 0.15m/sec Max Angular Velocity (rotation): 0.8 rad/sec Max Angular Acceleration: 0.12 rad/sec
As you can see, the acceleration limits are too small. I need to use a path planner to send trajectories to the robot driver. To take advantage of the benefits of omnidirectional movement, is important that the planner be capable of plan paths in all direction, backward, and lateral inclusive. I have used both planners, Base Local and DWA and with DWA the results are a disaster. I have a doubt with the planner parameters: For example: in Base Local, are this the correct value of parameters?
transform_tolerance: 0.3 max_vel_x: 1.0 min_vel_x: 0.1 Can i put here a negative value of the max_vel_x, so that the robot moves backward? max_rotational_vel: 0.8 min_in_place_rotational_vel: 0.1 acc_lim_th: 0.12 acc_lim_x: 0.15 acc_lim_y: 0.15 holonomic_robot: true y_vels: '-1.0, -0.1, 0.1, 1.0' xy_goal_tolerance: 0.1 yaw_goal_tolerance: 0.1 vx_samples: 3 vtheta_samples: 20 controller_frequency: 10.0 sim_time: 1.7 sim_granularity: 0.025 meter_scoring: true pdist_scale: 0.2 gdist_scale: 0.8 occdist_scale: 0.01 heading_lookahead: 0.325 heading_scoring: false heading_scoring_timestep: 0.8 dwa: false oscillation_reset_dist: 0.05
The problem is that the plan generates paths like a car, no like a holonomic robot, that is to say, if i send a goal pose in the same direction but a little before that the robot is, it should moves backward simply, instead, it makes a 180 degrees rotation, then moves straight, and finally makes a 180 degrees rotation again. This is no good for me.
The DWA parameter values are:
acc_lim_x: 0.15 acc_lim_y: 0.15 acc_lim_th: 0.12 max_vel_x: 1.0 min_vel_x: -1.0 max_vel_y: 1.0 min_vel_y: -1.0 max_trans_vel: 1.0 min_trans_vel: 0.1 max_rot_vel: 0.8 min_rot_vel: 0.1 yaw_goal_tolerance: 0.1 xy_goal_tolerance: 0.1 sim_time: 1.7 sim_granularity: 0.025 vx_samples: 8 vy_samples: 10 vtheta_samples: 20 penalize_negative_x: false # controller_frequency: 20.0 path_distance_bias: 24.0 goal_distance_bias: 32.0 occdist_scale: 0.01 forward_point_distance: 0.0 stop_time_buffer: 0.5 scaling_speed: 0.25 max_scaling_factor: 0.2 oscillation_reset_dist: 0.05 rot_stopped_vel: 0.01 trans_stopped_vel: 0.01 sim_period: 0.1 use_dwa: false
For global plan i use the navfn planner.
Is something wrong? Apologies because the text is so large. Thank you very much for your help ;)
Did you try setting min_vel_x to a negative value for base_local_planner?
Yes, I tried. But with the same results. I need the DWA planner to take advantage of the benefits of omnidirectional movement. Thank you very much for your contribution
DWA planner is not very good at handling omnidirectional robot, try teb_local_planner or eband_local_planner