Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
144 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Nonlinear Model Pridictive Control (through ipopt solver)
  • Wheeled Mobile Robot

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 (catkin_make) and Try it.

Launch

Run Navigation algorithm with MPC in simulation:

  • It can be selected with DWA, MPC, Pure persuit according to 'controller' argument.
roslaunch mpc_ros nav_gazebo.launch

Run tracking the reference line with MPC

  • Tracking the trajectory such as infinity-shaped, epitrochoid, square using non-linear model predictive control.
roslaunch mpc_ros ref_trajectory_tracking_gazebo.launch

How to use as local planner

  • 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"/>

Youtube video


Video Label

About us

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

Reference

About

Nonlinear Model Predictive Control on Differential Wheeled Mobile Robot using ROS

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.