issue with move_base for a robot with rotational center at the back
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 ...
Hi, I'm facing the same problem ! did you found a solution ? if yes could you share it with us please ..