rst-tu-dortmund / mpc_local_planner

The mpc_local_planner package implements a plugin to the base_local_planner of the 2D navigation stack. It provides a generic and versatile model predictive control implementation with minimum-time and quadratic-form receding-horizon configurations.
http://wiki.ros.org/mpc_local_planner
GNU General Public License v3.0
557 stars 143 forks source link

Mpc Planner with Navigation Stack and car urdf model - real dimensions #28

Closed marcusvinicius178 closed 3 years ago

marcusvinicius178 commented 3 years ago

Hi George Kouros, I am doing a research with local planners in ROS1. I have used the TEB local planner for that in a urdf car model (The prius model) in Gazebo. This planner is working quite good, however the DWA and Eband and others just work for holonomic robots...Whatever my doubt is how to use properly the mpc_local_planner in my simulation. I have already configured the cfg parameters with similar values from TEB (obstacle layer, inflation layer, obstacle avoidance, the robot footprint and dimensions). However MPC has different parameters to be set in "mpc_local_planner_params.yaml", (such as Planning Grid, Planning Options, Controller Options, Solver Settings and Model), that I do not know to set it and their exact meaning.. I have tried to change them in order to improve the car behaviour in my simulation. However the car almost never achieves the goal, always start driving backward (Even when I have disabled to start with backward move), and hardly find and follow a feasible path to avoid an obstacle (it recalculates every time a new path and therefore never finishes a maneuver to escape the obstacle). Besides that my research involves make a benchmark of local planners. I have read your article to understand better the algorithm. I wish to know how can I extract from navigation stack these comparison metrics (such as total path length, planning Time, CPU consumption, Smoothness of the paths, Number of Attempts and Success of planning, etc...). I am kind of worried, beacause I do not find suitable local planners to try and compare in my simulation master research. I know that MoveIt for planning robot's arms moves allow easily switch SBPL and OMPL planners and has already a lot of benchmark features to compare the algorithms. As this is not standard given by navigation stack, I imagine I need to write the scripts to do that. Could you please help me with some Examples of your algorithm working with a model in Gazebo? Then I could set similarly. Also if possible to tell me which topics could I subscribe to get those benchmark features you present in the article, or how to code it? I also appreciate any suggestion of framework linked to ROS that I could use to assess path planning algorithms and compare them ( in a not so complex way, as I am a mechanical engineer doing master in robotics, not a computer scientist expert...) In addition I also installed the rsband planner in my workspace, installed dependencies and used it in naviagation stack...it is displayed in Rviz. However I am sure I have not correctley set the parameters, once this planner also does not avoid collision and behave not so good for this goal ( I mean I do not know to properly set it and just copied some parameters with same value of Eband). Do you have a gazebo example of it to launch? Thanks very much in advance! And congratulations for the paper and the TEB and MPC planners!

marcusvinicius178 commented 3 years ago

Unfortunately I did not have feedback. Also ROS1 - NAV stack is not so proper to Self-dring cars simulations. Therefore I switched to Autoware/Apollo AD stacks to finish my simulations.