Robot not willing to move with Teb local Planner
HI, I am fairly new to ROS and I am trying to implement the teb local planner on my omni robot, but as soon as I switch to teb from DWA, I noticed that the robot is not willing to move - I suspect that has to do with the cmd_vel [0 0 0] published by the move_base but I am not sure what cause that.
The environment is a small room and DWA planner was doing quite well except it doesn't offer as good holonomic performance as the teb planner.
any advice would be appreciated!
Terminal
[ INFO] [1589958714.306148080]: cmd_vel:[0.069819 -0.0145652 -0.140371]
[ INFO] [1589958714.306488802]: cmd_vel:[0 0 0]
[ INFO] [1589958714.322301792]: update_speed
[ WARN] [1589958717.730190972]: Control loop missed its desired rate of 11.0000Hz... the loop actually took 3.4551 seconds
[ WARN] [1589958717.732456860]: Map update loop missed its desired rate of 2.0000Hz... the loop actually took 3.4553 seconds
[ INFO] [1589958717.746179943]: cmd_vel:[0.0370264 -0.0181301 -0.13085]
[ INFO] [1589958717.746295573]: cmd_vel:[0 0 0]
[ INFO] [1589958717.761588229]: update_speed
[ WARN] [1589958721.807852505]: Control loop missed its desired rate of 11.0000Hz... the loop actually took 4.0776 seconds
[ WARN] [1589958721.810067114]: Map update loop missed its desired rate of 2.0000Hz... the loop actually took 4.0776
seconds
[ INFO] [1589958721.825600857]: cmd_vel:[0.0851851 -0.0180778 -0.147133]
[ INFO] [1589958721.825717166]: cmd_vel:[0 0 0]
[ INFO] [1589958721.841170914]: update_speed
[ WARN] [1589958725.044380811]: Control loop missed its desired rate of 11.0000Hz... the loop actually took 3.2365 seconds
[ WARN] [1589958725.046522202]: Map update loop missed its desired rate of 2.0000Hz... the loop actually took 3.2364
seconds
[ INFO] [1589958725.072570473]: cmd_vel:[0.0574621 -0.0177605 -0.0864194]
[ INFO] [1589958725.072710744]: cmd_vel:[0 0 0]
move_base_params.yaml
shutdown_costmaps: false
controller_frequency: 11.0
controller_patience: 3.0
planner_frequency: 5.0
planner_patience: 5.0
oscillation_timeout: 10.0
oscillation_distance: 0.2
base_local_planner: "teb_local_planner/TebLocalPlannerROS"
base_global_planner: "global_planner/GlobalPlanner"
base_local_planner_params.yaml
TebLocalPlannerROS:
odom_topic: odom
map_frame: /map
# Trajectory
teb_autosize: True
dt_ref: 0.3
dt_hysteresis: 0.1
global_plan_overwrite_orientation: True
max_global_plan_lookahead_dist: 3.0
feasibility_check_no_poses: 5
# Robot
max_vel_x: 0.4
max_vel_x_backwards: 0.2
max_vel_theta: 0.3
acc_lim_x: 0.5
acc_lim_theta: 0.1
max_vel_y: 0.4
max_vel_y_backwards: 0.2
acc_lim_y: 0.5
min_turning_radius: 0.0
footprint_model: # types: "point", "circular", "two_circles", "line", "polygon"
type: "point"
# GoalTolerance
xy_goal_tolerance: 0.2
yaw_goal_tolerance: 0.1
free_goal_vel: False
# Obstacles
min_obstacle_dist: 0.4
include_costmap_obstacles: True
costmap_obstacles_behind_robot_dist: 1.0
obstacle_poses_affected: 30
costmap_converter_plugin: ""
costmap_converter_spin_thread: True
costmap_converter_rate: 6
# Optimization
no_inner_iterations: 5
no_outer_iterations: 4
optimization_activate: True
optimization_verbose: False
penalty_epsilon: 0.05 #0.1
weight_max_vel_x: 2
weight_max_vel_y: 2
weight_max_vel_theta: 1
weight_acc_lim_x: 1
weight_acc_lim_y: 1
weight_acc_lim_theta: 1
weight_kinematics_nh: 1 # Specifies the weight for satisfying the non-holonomic constraint by the optimizer and is usually set to a high value for non-holonomic robots.
weight_kinematics_forward_drive: 1
weight_kinematics_turning_radius: 1
weight_optimaltime: 1
weight_obstacle: 50
weight_dynamic_obstacle: 10 # not in use yet
alternative_time_cost: False # not in use yet
# Homotopy Class Planner
enable_homotopy_class_planning: True
enable_multithreading: True
simple_exploration: False
max_number_classes: 4
roadmap_graph_no_samples: 15
roadmap_graph_area_width: 5
h_signature_prescaler: 0.5
h_signature_threshold: 0.1
obstacle_keypoint_offset: 0 ...
Cleaned up the formatting for you.
Is it possible there are two nodes publishing to the CMD_VEL topic?
Yes an additionally open teleop for example can give this problem. However that wouldnt be printed in the terminal usually. "rostopic info cmd_vel" should give a quick answer to this.