Base local vs DWA planner for omnidirectional platform

asked 2014-01-14 23:26:27 -0500

Jose Luis gravatar image

updated 2014-03-12 04:35:35 -0500

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 ;)

edit retag flag offensive close merge delete



Did you try setting min_vel_x to a negative value for base_local_planner?

jbinney gravatar image jbinney  ( 2014-03-12 08:59:22 -0500 )edit

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

Jose Luis gravatar image Jose Luis  ( 2014-03-13 04:32:04 -0500 )edit

DWA planner is not very good at handling omnidirectional robot, try teb_local_planner or eband_local_planner

achmad_fathoni gravatar image achmad_fathoni  ( 2018-06-19 07:00:43 -0500 )edit