• Stars
    star
    742
  • Rank 61,120 (Top 2 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Differential Wheeled Mobile Robot - Nonlinear Model Predictive Control based on ROS

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

  • 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: [email protected]
Date: 2020/05/02
License: Apache 2.0

Reference

More Repositories

1

ur-reaching-reinforcement-learning

Reinforcement learning using rlkit, UR5, Robotiq gripper on ROS(Robot Operating System)
Python
118
star
2

mpc_ros_description

Supports the various URDF and GAZEBO mobile robot model
CMake
46
star
3

jinyoung-manipulator-detection-and-grasping

The repository is for developing manipulator which can recognize the objects via image processing. The Jinyoung wants to grasp some objects with Opencv, ROS, MoveIt, and so on.
C++
11
star
4

autonomous-vehicle-MDS

Implementation of autonomous vehicle using ROS
Python
8
star
5

mobile_robot_control

Robot control with Traditional control and Optimal control and Learning-based control
Python
8
star
6

ur5-pick-and-place

Python
5
star
7

control-robotics-machine-learning

Arrange the files and contents about robotics and control theory such as optimal, nonlinear, underactuated control, etc.
5
star
8

ur5_ros_gym

Python
4
star
9

local_planner

4
star
10

mobilerobot_rl

This repository is about Reinforcement learning of Machine leaning for mobile robot
Python
4
star
11

rl_sawyer

Reaching to the goal task based on model-free RL using sawyer based on ROS
Python
3
star
12

fake_localization

A ROS node that simply forwards odometry information.
C++
2
star
13

nscl-mobilerobot-mcu

C++
1
star
14

replab-rlkit-viskit

Bring the rlkit, viskit packages from Docker image of REPLAB to implement RL algorithms
Python
1
star
15

geon.github.io

The individual homepage
1
star
16

tf2_practice

CMake
1
star
17

reinforcemnet-learning

Arrangement of data about RL
1
star
18

yolact_ros_msgs

CMake
1
star
19

kros_summer2018

Jupyter Notebook
1
star
20

yolo_torch

We want to use the yolo_v3 using Pytorch on the ROS(Robot Operating System)
Python
1
star
21

nscl-mobilerobot-ros

C++
1
star
22

docker_images

This repository consist of various image that contain Dockerfile
1
star
23

balancing_robot

C++
1
star
24

deep-q-learning-maze

Python
1
star
25

hiwin_pkg

C++
1
star
26

Docker_Jenkins

Docker_Jenkins
1
star
27

machine-learning

1
star
28

cs294-hw

Python
1
star
29

object-detection-opencv3-ros

Image processing using opencv for Labeling and HSV, tracking algorithm
C++
1
star