Code Monkey home page Code Monkey logo

arm_mpc's Introduction

Model Predictive Control of a 2 DOF planar robot arm

This ROS package implements a Model Predictive Controller on a two DOF planar robot arm. The setup can be used for implementing other controllers as well. Calculation of the dynamic model is based on kinetic and potential energies. Euler-Lagrange equations are used to compute the equations of motion. The final dynamic model depends on the arm's moment of inertia, coriolis force and gravitation force. [2] The nonlinear dynamic model is multivariable (with two control inputs and two controlled outputs) so a two step design is proposed where we first develop a feedback linearisation control and then design the controller. [3]

Installation

Build package from source: navigate to the source folder of your catkin workspace and build this package using:

$ git clone https://github.com/28shambhavi/arm_mpc.git
$ cd ..
$ catkin_make

Running the Simulation

  1. Arm model used can be changed by modifying the urdf in urdf/2linkrobot.urdf. It is defined as base>arm1>arm2>endEff.

  2. Navigate into the launch folder. Launch the desired controller in the rviz environment.

$ roscd arm_mpc/launch
$ roslaunch control_display.launch
  1. Using the controllers: The launch file named display.launch launches the forward kinematics controller from scripts/controller.py for any point in the arm's workspace. The second launch file, control_display.launch will launch the MPC controller from scripts/controller_mpc.py and show the path from an initial point (both angles making zero degrees to the x axis) to the desired location of the end effector.

Built with

  1. Python3
  2. ROS Noetic

References:

  1. Murray, Richard; A Mathematical Introduction to Robotic Manipulation
  2. David I, Robles G. PID Control Dynamics of A Robotics Arm Manipulator with Two Degrees of Freedom.Control De Procesos y Robótica. 2012, pp. 1–7.
  3. Guechi E-H, Bouzoualegh S, Zennir Y, Blažič S. MPC Control and LQ Optimal Control of A Two-Link Robot Arm: A Comparative Study. Machines. 2018; 6(3):37. https://doi.org/10.3390/machines6030037

Authors

Shambhavi Singh ( GitHub, Website )

arm_mpc's People

Contributors

28shambhavi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

projectgp1e3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.