issue with move_base for a robot with rotational center at the back

asked 2015-10-19 17:29:45 -0500

Naman gravatar image

updated 2015-11-06 10:16:50 -0500

Hi all,

I have a robot with dimensions (LxWxH) in cm: 82x64x104 and the rotational center is 8 cm from the back of the robot. I am using rotary encoders to get the odometry message. I am using amcl for localization and move_base for planning with TrajectoryPlannerROS as the local planner and sbpl_lattice_planner as global planner.

Case I) If I specify the robot_footprint such that base_link is at the rotational center of the robot, then robot does not behave good. It has lot of jerks and move_base publishes erratic velocities on cmd_vel topic. For example: if max_vel_x: 0.5, then velocities published by move_base keeps on switching between 0.5 and 0.35 for a straight line motion of the robot which results in a jerky motion of the robot. Similarly, if max_vel_x: 0.6, same thing happens and velocities switches between 0.6 and 0.4. Also, there are lot of jerks in angular velocities also. The base_local_planner is not able to send correct and smooth velocities. I have tried changing the base_local_planner_params.yaml and it didn't help. :

#The footprint of the robot and associated padding
footprint: [[-0.08, -0.32], [-0.08, 0.32], [0.74, 0.32], [0.74, -0.32]]
footprint_padding: 0.01

Case II) But if I specify robot_footprint such that base_link is at the center of the robot (Geometric center), it behaves way better and there are no jerks in the robot and move_base publishes smooth linear and angular velocities although it has minor problems while turning in place (It thinks its rotating around geometric center but actually it rotates around the actual center of rotation) :

#The footprint of the robot and associated padding
footprint: [[-0.41, -0.32], [-0.41, 0.32], [0.41, 0.32], [0.41, -0.32]]
footprint_padding: 0.01

I know base_link and base_footprint should be at the rotational center of the robot but when I do it (case I), it behaves bad as compared to case where base_link and base_footprint are at the geometric center of the robot (case II) (I know this is not the correct way).

I have attached two videos which shows move_base (base_local_planner) publishing erratic velocities on cmd_vel topic in case I where base_link is at the rotational center of the robot:
Video 1
Video 2

Now, I need some help in making sure move_base publishes smooth velocities in Case I where base_link is at the rotational center of the robot (8 cm from back of the robot) which is different from geometric center of the robot. What parameters should I change and are there any other changes which I should make for it?

I have attached base_local_planner_params.yaml. I have tried changing the parameters in this file but it didn't help.

base_local_planner_params.yaml

#For full documentation of the parameters in this file, and a list of all the
#parameters available for TrajectoryPlannerROS, please see
#http://www.ros.org/wiki/base_local_planner
TrajectoryPlannerROS:
  #Set the acceleration limits of the robot
  acc_lim_th: 1.5 ...
(more)
edit retag flag offensive close merge delete

Comments

Hi, I'm facing the same problem ! did you found a solution ? if yes could you share it with us please ..

assil gravatar image assil  ( 2015-12-15 11:27:39 -0500 )edit