GithubHelp home page GithubHelp logo

ioloizou / quadruped-group-project-ecn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robomechanics/quad-sdk

3.0 0.0 1.0 412.76 MB

An implementation of the paper "Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control" into Quad-SDK

Home Page: https://robomechanics.github.io/quad-sdk/

License: MIT License

Shell 0.11% C++ 91.85% Python 4.60% C 0.50% MATLAB 2.12% CMake 0.82%
convex-optimization legged-robots model-predictive-control quadruped cheetah-3 dynamic-locomotion

quadruped-group-project-ecn's Introduction

Description

This fork implements the concepts presented in the research paper "Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control" within the Quad-SDK framework. This project was developed as part of the Group Project in the Master's program in Advanced Robotics at Centrale Nantes.

Quadruped

Key Features

  • Implementation of the paper's convex MPC approach for dynamic locomotion control of the MIT Cheetah 3 robot.
  • Integration of the control algorithm into the Quad-SDK environment.

Paper

The paper is on the following link Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control.

Default Quad-SDK installation

Refer to the Quad-SDK Wiki for installation, dependency, and unit testing information. You need to build from the noetic branch of Quad-SDK and it requires ROS Noetic on Ubuntu 20.04. All other dependencies are installed with the included setup script.

Current fork dependecies

Installation Instructions for OSQP and OSQP-Eigen

To run the convex MPC, you need to install the OSQP and OSQP-Eigen solvers. We recommend building from source for the most reliable installation.

1. Installing OSQP

  • Instructions: Follow the official guide: https://osqp.org/docs/get_started/sources.htm
  • CMake Issue: If you encounter problems with the CMake version, do the following:
    1. Download the latest bash script from the CMake website: https://cmake.org/download/
    2. Copy it to /opt/
    3. Make the script executable: chmod +x /opt/cmake-3.*your_version*.sh
    4. Run: sudo bash /opt/cmake-3.*your_version*.sh (You can change the installation directory to /opt/ if you prefer)
    5. Create a symbolic link: sudo ln -s /opt/cmake-3.*your_version*/bin/* /usr/local/bin
    6. Verify the installation: cmake --version
  • Additional Note: If you want to install OSQP in /usr/local, run the following before make: cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

2. Installing OSQP-Eigen

  • Instructions: Follow the guide on GitHub: https://github.com/robotology/osqp-eigen
  • Additional Commands: If you want to install in /usr/local, run:
    • cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/ ../
    • export OsqpEigen_DIR=/usr/local/ (Add this to your .bashrc file)
    • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (Add this to your .bashrc file)

Important: Make sure to adjust file paths and version numbers in commands as needed for your specific setup.

Usage

Launch the simulation with:

roslaunch quad_utils quad_gazebo.launch

Stand the robot with:

rostopic pub /robot_1/control/mode std_msgs/UInt8 "data: 1"

Run the stack with twist input:

roslaunch quad_utils quad_plan.launch reference:=twist logging:=true
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/robot_1/cmd_vel

Run the stack with global planner:

roslaunch quad_utils quad_plan.launch reference:=gbpl logging:=true

Refer to the Wiki for more information on alternate usage.

Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.

quadruped-group-project-ecn's People

Contributors

ardalantj avatar astutt avatar dyumanaditya avatar fan-ziqi avatar goldbattle avatar ioloizou avatar jcnorby avatar jlancha avatar jrenaf avatar justinyim avatar kongx231 avatar mturski avatar nikolaif399 avatar ologandavid avatar qishuny avatar robomechanicslab avatar selvingarciag96 avatar yanhaoy avatar

Stargazers

 avatar  avatar  avatar

Forkers

jlancha

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.