teb_local_planner generates infeasible local plan, global plan is OK, for car-like robot
I have an Ackermann steering drive based robot or in other words car-like robot. I am using move_base
with teb_local_planner
for path planning and control.
This is how my local and global plan look like:
You can see that the global plan (in green) is quite straightforward for the chosen goal and starting point. The local plan (in blue) is all over the place. And the robot ends up and gets stuck far away from the global plan. I suspect something is wrong with my parameter configuration, but I cannot figure out what.
Here are my params for the TEBLocalPlanner
:
TebLocalPlannerROS:
odom_topic: /vesc/odom
map_frame: map
transform_tolerance: 0.3
# ******* Trajectory **********
teb_autosize: True
dt_ref: 0.4
dt_hysteresis: 0.1
global_plan_overwrite_orientation: True
allow_init_with_backwards_motion: True
max_global_plan_lookahead_dist: 3.0
feasibility_check_no_poses: 2
# ********** Robot **********
max_vel_x: 1.5
max_vel_x_backwards: 1.0
max_vel_y: 0.0
max_vel_theta: 2.5
acc_lim_x: 2.0
acc_lim_theta: 4.0
# ********************** Carlike robot parameters ********************
min_turning_radius: 0.82
wheelbase: 0.34
cmd_angle_instead_rotvel: False
footprint_model:
type: "line"
line_start: [0.0, 0.0]
line_end: [0.3, 0.0]
# ********** GoalTolerance **********
xy_goal_tolerance: 0.2
yaw_goal_tolerance: 3.0
free_goal_vel: False
# ********** Obstacles **********
min_obstacle_dist: 0.20
include_costmap_obstacles: True
costmap_obstacles_behind_robot_dist: 0.3
obstacle_poses_affected: 30
inflation_dist: 0.25
costmap_converter_plugin: ""
costmap_converter_spin_thread: True
costmap_converter_rate: 5
# ********** Optimization Parameters **********
weight_kinematics_forward_drive: 100.0
weight_kinematics_turning_radius: 500.0
weight_acc_lim_x: 0.0
# ********** Parallel Planning Parameters **********
enable_homotopy_class_planning: True
Most of the parameters are set to the default values. Some notable exceptions:
min_turning_radius: 0.82
. I have a car like robot with max steering angle of 22 degrees and wheel base of 0.34 m.weight_kinematics_turning_radius: 500.0
. I increased it from 1 to 500 so that turning radius constraints are enforced.weight_kinematics_forward_drive: 100.0
. I want the robot to favour forward motion.
Asked by Subodh Malgonde on 2018-11-01 02:36:00 UTC
Comments
Have you checked if your position published on odom is valid and the robot is doing what he is supposed to do (e.g. driving forwards when local planner is commanding positive speeds)?
I can try your parameters in a simulation but they should be alright.
Asked by ce_guy on 2018-11-19 08:30:18 UTC