Robotics StackExchange | Archived questions

Using teb_planner and move_base the robot only reaches max velocity when 2D Nav goal is set in a certain direction

I am running an Ackermann vehicle in simulation using Gazebo 11.11.0 with an obstacle-free map on an I7 16GB RAM computer showing ~38% cpu utilization with Noetic/Ubuntu 20.04.  Movebase with tebplanner is sending cmdvel.linear.X commands in response to RVIZ 2D Nav goals to move the vehicle at 1.8 m/s (i.e. Which is the max velocity set in teb planner yaml), but only when moving on the X axis in a positive direction.  My problem statement is cmdvel.linear.X is lower which means the vehicle speed moves much slower when I issue 2D Nav goals on the Y axis (e.g. ~0.4 ms) and when moving in the negative direction on the X axis (e.g. ~0.7 m/s). I want to be able to move at 1.8 m/s in all directions that are free of obstacles. – video link

I have used rqt dynamic configuration to test multiple parameters including maxveltheta, acclimx, acclimtheta and controllerfrequency.  I also set penaltyepsilon = 0.05 which seemed to allow the vehicle to reach max speed for X axis when moving right.  My footprint model is "line".  

@davidteixeira had an issue when negative x direction of the odom frame. Issue link, but I’m not setting goals in the negative range.   My odom publisher relies on /gazebo/getmodelstate. Code here:  

Link to my teblocalplanner_params.yaml link

Link to my movebase launch file link  

Q: Can someone with more understanding of movebase and tebplanner explain why max velocity is only reached going in one direction and offer suggestions on how to reach max velocity when moving in other directions in an obstacle free area?

Asked by Al53 on 2023-01-30 13:44:54 UTC

Comments

Answers