TEB's path does not fit global plan, and there is always an oscillation.
Hi, I use TEB as a local path planner for a car-like robot.
Below are the parameters:
TebLocalPlannerROS:
odom_topic: odom
# Trajectory
teb_autosize: True
dt_ref: 0.35
dt_hysteresis: 0.1
global_plan_overwrite_orientation: True
allow_init_with_backwards_motion: True
max_global_plan_lookahead_dist: 5.0
feasibility_check_no_poses: 2
global_plan_viapoint_sep: 0.5
# Robot
max_vel_x: 0.55
max_vel_x_backwards: 0.3
max_vel_y: 0.0
max_vel_theta: 0.5 # the angular velocity is also bounded by min_turning_radius in case of a carlike robot (r = v / omega)
acc_lim_x: 0.5
acc_lim_theta: 0.2
# ********************** Carlike robot parameters ********************
min_turning_radius: 1.0 # Min turning radius of the carlike robot (compute value using a model or adjust with rqt_reconfigure manually)
wheelbase: 1.35 # Wheelbase of our robot
cmd_angle_instead_rotvel: False # stage simulator takes the angle instead of the rotvel as input (twist message)
# ********************************************************************
footprint_model: # types: "point", "circular", "two_circles", "line", "polygon"
type: "line"
radius: 0.2 # for type "circular"
line_start: [0.3, 0.0] # for type "line"
line_end: [1.1, 0.0] # for type "line"
front_offset: 1.0 # for type "two_circles"
front_radius: 0.56 # for type "two_circles"
rear_offset: -0.16 # for type "two_circles"
rear_radius: 0.56 # for type "two_circles"
vertices: [ [0.0, 0], [0.0, 1.55], [1.55, 0.4], [0.0, 0.4 ]] # for type "polygon"
# GoalTolerance
xy_goal_tolerance: 0.2
yaw_goal_tolerance: 0.1
free_goal_vel: False
# Obstacles
min_obstacle_dist: 0.85 # This value must also include our robot's expansion 0.6m for line type"
include_costmap_obstacles: True
costmap_obstacles_behind_robot_dist: 1.0
obstacle_poses_affected: 25
costmap_converter_plugin: ""
costmap_converter_spin_thread: True
costmap_converter_rate: 5
# Optimization
no_inner_iterations: 5
no_outer_iterations: 4
optimization_activate: True
optimization_verbose: False
penalty_epsilon: 0.1
weight_max_vel_x: 1
weight_max_vel_theta: 1
weight_acc_lim_x: 1
weight_acc_lim_theta: 5
weight_kinematics_nh: 1000
weight_kinematics_forward_drive: 1
weight_kinematics_turning_radius: 1
weight_optimaltime: 1
weight_obstacle: 50
weight_dynamic_obstacle: 10 # not in use yet
# Homotopy Class Planner
enable_homotopy_class_planning: True
enable_multithreading: True
simple_exploration: False
max_number_classes: 2
selection_cost_hysteresis: 1.0
selection_obst_cost_scale: 1.0
selection_alternative_time_cost: False
roadmap_graph_no_samples: 10
roadmap_graph_area_width: 3
h_signature_prescaler: 0.5
h_signature_threshold: 0.1
obstacle_keypoint_offset: 0.1
obstacle_heading_threshold: 0.45
visualize_hc_graph: False
The local planned path has always an oscillation around global path, I have played with the parameter:
dt_ref
max_global_plan_lookahead_dist
global_plan_viapoint_sep
max_vel_theta
acc_lim_theta
weight_acc_lim_theta
But not help.
The robot can move can avoid obstacles, but always in this oscillating way, and there is no warning or error output in console.
Can anyone give me some suggestion?
Asked by ZengLei on 2018-12-03 03:16:05 UTC
Answers
I faced the same issue, however when we turned off the velocity smoother the snaking / oscillations went away. So my 2 cents is that if you're using teb local planner on a real robot with large mass / inertia, definitely do not use the yocs velocity smoother as it induces oscillations because it is not theoretically correct.
Asked by obardoza on 2019-02-16 18:07:33 UTC
Comments
do not use the yocs velocity smoother as it induces oscillations because it is not theoretically correct.
can you explain a bit more what you mean by that?
Asked by gvdhoorn on 2019-02-17 05:36:39 UTC
Thanks a lot, I will try with it and give feedback later.
Asked by ZengLei on 2019-02-18 22:17:56 UTC
Hi, I have tried to turn off velocity smoother , but it still doesn't work with my case. Thanks a lot in anyway. :-)
Asked by ZengLei on 2019-03-25 00:39:41 UTC
hi I want to know what is yocs velocity smoother and how tu turn off it.besides how to get points to upload picture,because I was rejected to upload pictures due to lack of poins. thank you
Asked by Andong Chen on 2019-05-09 22:34:09 UTC
Comments
I faced the same issue, did you figure out how to solve it? Mine is on ROS noetic so there should be no yocs_velocity_smoother to cause this issue in the first place.
Asked by g7tan on 2021-11-02 16:48:03 UTC