To move the robot on the predefined path accurately based on the plan shall be published by Global planner. Non linear model predictive controller shall help to calculate the cmd_vel based on the desired trajectory. This local planner shall be used along with WaypointsGlobalPlanner.
- CppAD (included in this build)
- Ipopt (included in this build)
- Eigen (sudo apt install libeigen3-dev)
- cd catkin_ws/src
- git clone https://github.com/balamuruganky/mpc_waypoint_tracking_controller
- cd ..
- catkin_make
Please refer MoveBase Parameters
- Robot Position and orientation must be towards initial waypoint position and orientation.
- Waypoints must be dense enough to calculate the cmd_vel.
Please clone bbblue_bot to run demo of mpc_waypoint_tracking_controller along with waypoints_global_planner
roslaunch bbblue_navigation navigate_waypoints_slam.launch
roslaunch waypoints_global_planner desired_path_provider.launch
Modify the points based on your need in this file and relaunch the above global path plan launch file.
Please note that, the robot current pose must be the starting pose of the global path plan.
- https://github.com/Geonhee-LEE/mpc_ros
- https://github.com/Hypha-ROS/hypharos_minicar
- Test the controller with different desired trajectories
- Remove the dependency of robot current pose must be the start pose of the global plan.