Git Product home page Git Product logo

robotis-op3-mpc-walking's Introduction

Robotis-OP3-MPC-walking

MPC based gait generation and kinematic control for the Robotis OP3 humanoid (video).

SET UP GUIDE

  1. Install ROS Kinetic or Melodic. It probably works also on Noetic but it has not been tested there yet.
  2. Install the ROBOTIS OP3 ROS packages and all the required dependencies (starting from 1.1.2.4. Installing additional applications for ROBOTIS ROS Package). If using ROS Melodic you may also need to: manually clone the repository humanoid_msgs into the /src directory, install sbpl (type from terminal sudo apt-get install ros-melodic-sbpl), install ros control (type from terminal sudo apt-get install ros-melodic-ros-control, sudo apt-get install ros-melodic-ros-controllers, sudo apt-get install ros-melodic-gazebo-ros-control).
  3. Navigate into the catkin workspace of the robotis packages and clone this repository inside the directory /src/ROBOTIS-OP3.
  4. Navigate into the directory /src/ROBOTIS-OP3/Robotis-OP3-MPC-walking/mpc_walking_demo and clone there the blasfeo and hpipm repositories. Alternatively, you can unzip the file blasfeo&hpipm.zip (which is inside /src/ROBOTIS-OP3/Robotis-OP3-MPC-walking/mpc_walking_demo) and place the blasfeo and hpipm directory inside the /mpc_walking_demo directory.
  5. Copy and paste the file /src/ROBOTIS-OP3/Robotis-OP3-MPC-walking/mpc_walking_demo/robotis_op3.urdf inside /src/ROBOTIS-OP3-Common/op3_description/urdf.
  6. Navigate to the file /src/ROBOTIS-OP3/op3_kinematics_dynamics/include/op3_kinematics_dynamics/op3_kinematics_dynamics_define.h and modify (around line 29)
#define MAX_ITER

to

#define MAX_ITER_
  1. Compile the packages (type from terminal inside the catkin workspace)
catkin_make -DCMAKE_BUILD_TYPE=Release
  1. In order to run the gazebo simulation, open a new terminal and type (inside the catkin workspace)
source devel/setup.bash
roslaunch op3_gazebo robotis_world.launch

then from another terminal

source devel/setup.bash
roslaunch diag_op3_manager diag_op3_gazebo.launch

CODE GUIDE

  1. This repository contains a robot manager node called diag_op3_manager and a motion module called mpc_walking_demo.
  2. The manager is in charge of applying the ROBOTIS Framework to the simulated or real hardware robot. Further details can be found here. In practice, the manager configures the robot and adds sensor and motion modules to the robotis controller. The system architecture is:
  3. The mpc_walking_demo motion module is where the kinematic controller and the real time MPC gait generation are implemented. At each sampling time the method op3LocomotionModule_walking_demo::process(..) is executed, accessing the motor encoders for measurements and providing reference commands to the low level motor controllers. Motor readings and command are provided in real time. From the motion module it is also possible to subscribe to topics/services/actions which are not part of the robotis framework, e.g., the IMU sensor, camera stream. A description of the control architecture is avaialble in the Robotis-OP3-MPC-walking.pdf file.
  4. The MPC gait generation is realized via a simple implementation of the method proposed in: Scianca, N., De Simone, D., Lanari, L., & Oriolo, G. (2020). MPC for humanoid gait generation: Stability and feasibility. IEEE Transactions on Robotics, 36(4), 1171-1188.

robotis-op3-mpc-walking's People

Contributors

filipposmald1 avatar

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.