/manipulator_mpc

Model Predictive Control for Franka Panda Arm

Primary LanguageJupyter Notebook

MPC approaches for collision free manipulator arm control

Our Project

Operation of robotic arms in most industrial settings require predefined trajectories for control and optimization. Most applications require obstacle avoidance and interaction at a higher level of abstraction. In this work, we present an approach to implement an online planning and control mechanism for safe control of a 7 degree of freedom (DoF) robotic arm. We discuss two approaches to implement static and dynamic obstacle avoidance. We validate our algorithm on multiple maps with objects of increasing complexity in the simulation environment Gazebo. The robots are controlled using the Robot Operating System (ROS). We demonstrate, that our approach is real-time capable and, quite possible to execute despite having 21 variables in the state vector and numerous constraints which significantly increase the system complexity.

Usage:

  1. Install dependencies (required only for running this in ROS)- Packages- First make sure you have panda_simulator; then clone this repository. Rename the file rename_to_meam520_labs to meam520_labs
  2. Run this file

Performance:

MPC on 7 DoF FrankaPanda Arm
Simulation in Gazebo

Figure 1: Trajectory optimization using RRT and MPC

Figure 2: Defining obstacles as convex constraint

Figure 3: Convergence curve Heirarchial MPC (obstacle avoiding waypoints generated using RRT).

Figure 4: Convergence curve for obstacle avoidance using MPC and convex sets.

Figure 5: Performance of MPC algorithm.

Figure 6: Time taken by different control algorithms to manipulate robot (in seconds)