Geonhee-LEE / mpc_ros

Differential Wheeled Mobile Robot - Nonlinear Model Predictive Control based on ROS
https://www.youtube.com/watch?v=5IqFGBmDGjU
Apache License 2.0
727 stars 169 forks source link
collision-avoidance gazebo-simulation ipopt mpc navigation optimal-control path-tracking planner ros simulation trajectory trajectory-tracking unicycle

GitHub issues open GitHub forks GitHub stars GitHub license

Nonlinear Model Predictive Control

Abstract

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.

Features

Installation

  1. Ubuntu 18.04

  2. Install ROS Melodic.

  3. Install ROS dependencies.

    sudo apt install ros-melodic-costmap-2d \
    ros-melodic-move-base \
    ros-melodic-global-planner \
    ros-melodic-amcl
  4. Install Ipopt: Please refer the tutorial in "document/ipopt_install".

  5. Create your own catkin_ws and clone the repositories.

    git clone https://github.com/Geonhee-LEE/mpc_ros.git 
    • (optional) If you already have the urdf model, you don't need to clone below
      git clone https://github.com/CzJaewan/servingbot.git

    NOTE: you can also refer other models such as ackermann model, holonomic model. you can see it mpc_ros_description

  6. Build (_catkinmake) and Try it.

Launch

Run Navigation algorithm with MPC in simulation:

Run tracking the reference line with MPC

How to use as local planner

Youtube video


Video Label

About us

Contact: gunhee6392@gmail.com
Date: 2020/05/02
License: Apache 2.0

Reference