The goal of this repository is to implement the path tracking algorithm of mobile robot using the Nonlinear Model Predictive Control(NMPC), one of the optimal controllers.
The NMPC can provide the poweful and effective performance among existing optimal controllers since it can have the preview ability and easy to regulate constraints. This repository is based on ROS(Robot Operating System). Therefore it supports the local planner plugin and standalone node as well.
Only for using tracking global planner.
- Nonlinear Model Pridictive Control (through ipopt solver)
- Wheeled Mobile Robot
- Differential Drive Type Mobile Robot
-
Ubuntu 18.04
-
Install ROS Melodic.
-
Install ROS dependencies.
sudo apt install ros-melodic-costmap-2d \ ros-melodic-move-base \ ros-melodic-global-planner \ ros-melodic-amcl
-
Install Ipopt: Please refer the tutorial in "document/ipopt_install".
-
Create your own catkin_ws and clone the repositories.
git clone https://github.com/OkDoky/mpc_ros.git
-
Build (catkin_make) and Try it.
- Tracking the trajectory such as infinity-shaped, epitrochoid, square using non-linear model predictive control.
roslaunch mpc_ros ref_trajectory_tracking_gazebo.launch
- After building successfully, you should just change the base_local_planner param with
mpc_ros/MPCPlannerROS
.
<param name="base_local_planner" value="mpc_ros/MPCPlannerROS"/>
Contact: [email protected]
Date: 2020/05/02
License: Apache 2.0
Contact : [email protected] Date : 2023/07/12
- HyphaROS MPC MiniCar(https://hypharosworkshop.wordpress.com/)
- Udacity Self-Driving Car Nanodegree - Model Predictive Control (MPC) Project(https://github.com/darienmt/CarND-MPC-Project-P5)
- (Korean) Path Tracking with Nonlinear Model Predictive Control for Differential Drive Wheeled Robot(https://www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE10475067)