bearswang / mpc-ros

ROS package for autonomous navigation using model predictive control (MPC)
39 stars 5 forks source link

MPC-ROS

A python ROS package for model predictive control (MPC) of an autonomous vehicle

Install MPC-ROS:

mkdir -p ~/ws/src
cd ~/ws/src
git clone https://github.com/bearswang/mpc-ros.git
cd .. && catkin_make

Example: MPC-ROS in Carla Simulation

Use the MPC algorithm to navigate an autonomous vehicle in the Carla Town04 map

https://user-images.githubusercontent.com/107024891/231101881-44654b2d-cf1e-4530-8aec-bc2e5b88f802.mp4

1. Test Environment

2. Install Carla

See the website Carla

3. Install Carla-ROS-bridge with our configurations in Town04

mkdir -p ~/ros-bridge/src
cd ~/ros-bridge/src
git clone https://github.com/bearswang/ros-bridge.git
cd .. && catkin_make

4. Start Carla server

cd $CARLA_ROOT
./CarlaUE4.sh

CARLA_ROOT is the root folder for Carla

5. Spawn agents and launch Carla-ROS-Bridge

cd $CARLA_ROS_BRIDGE
source devel/setup.bash
roslaunch carla_ros_bridge run_car_sim_Town04.launch 

CARLA_ROS_BRIDGE is the root folder for Carla-ROS-Bridge (our forked version)

6a. Run MPC algorithm

source devel/setup.bash
rosrun mpc_ros mpc_Town04_launch.py

6b. Run MPC algorithm with configuration

roslaunch mpc_ros mpc_Town04.launch

Citation

MPC-ROS can reproduce the experimental results in the following paper:

@article{RDA,
  author={Han, Ruihua and Wang, Shuai and Wang, Shuaijun and Zhang, Zeqing and Zhang, Qianru and Eldar, Yonina C. and Hao, Qi and Pan, Jia},
  journal={IEEE Robotics and Automation Letters}, 
  title={RDA: An Accelerated Collision Free Motion Planner for Autonomous Navigation in Cluttered Environments}, 
  year={2023},
  volume={8},
  number={3},
  pages={1715-1722},
  publisher={IEEE}
@article{CarlaMPC,
  title={Collision Avoidance Predictive Motion Planning Based on Integrated Perception and V2V Communication},
  author={Shiyao Zhang and Shuai Wang and Shuai Yu and James J. Q. Yu and Miaowen Wen},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  year={2022},
  volume={23},
  number={7},
  pages={9640-9653},
  publisher={IEEE}
}

Acknowledgement

Authors

Ruihua Han

Shuai Wang

Guoliang Li