Giter Site home page Giter Site logo

martain-liu / centroidalcontrolcollection Goto Github PK

View Code? Open in Web Editor NEW

This project forked from isri-aist/centroidalcontrolcollection

0.0 0.0 0.0 5.1 MB

Collection of centroidal control for legged robots

Home Page: https://isri-aist.github.io/CentroidalControlCollection/

License: BSD 2-Clause "Simplified" License

Shell 0.42% C++ 96.24% Python 1.94% CMake 1.39%

centroidalcontrolcollection's Introduction

Collection of centroidal control for legged robots

CI-standalone CI-catkin Documentation

Install

Requirements

  • Compiler supporting C++17
  • Tested on Ubuntu 20.04 / ROS Noetic and Ubuntu 18.04 / ROS Melodic

Dependencies

This package depends on

This package also depends on the following packages. However, manual installation is unnecessary when this package is installed using wstool as described in Installation procedure.

Preparation

  1. (Skip if ROS is already installed.) Install ROS. See here for details.
$ export ROS_DISTRO=melodic
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install ros-${ROS_DISTRO}-ros-base python-catkin-tools python-rosdep
  1. (Skip if mc_rtc is already installed.) Install mc_rtc. See here for details.
$ curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/stable/setup.deb.sh' | sudo -E bash
$ sudo apt-get install libmc-rtc-dev mc-rtc-utils ros-${ROS_DISTRO}-mc-rtc-plugin ros-${ROS_DISTRO}-mc-rtc-rviz-panel libeigen-qld-dev

Installation procedure

  1. Setup catkin workspace.
$ mkdir -p ~/ros/ws_ccc/src
$ cd ~/ros/ws_ccc
$ wstool init src
$ wstool set -t src isri-aist/QpSolverCollection [email protected]:isri-aist/QpSolverCollection.git --git -y
$ wstool set -t src isri-aist/ForceControlCollection [email protected]:isri-aist/ForceControlCollection.git --git -y
$ wstool set -t src isri-aist/NMPC [email protected]:isri-aist/NMPC.git --git -y
$ wstool set -t src isri-aist/CentroidalControlCollection [email protected]:isri-aist/CentroidalControlCollection.git --git -y
$ wstool update -t src
  1. Install dependent packages.
$ source /opt/ros/${ROS_DISTRO}/setup.bash
$ rosdep install -y -r --from-paths src --ignore-src
  1. Build a package.
$ catkin build centroidal_control_collection -DCMAKE_BUILD_TYPE=RelWithDebInfo --catkin-make-args all tests

Examples

Make sure that it is built with --catkin-make-args tests option.

Methods based on bipedal dynamics

The CoM and ZMP trajectories are planned according to the ZMP reference trajectory and the ZMP region boundaries as inputs, which are determined from a given footstep sequence (i.e., the position and timing of the foot landings). The CoM velocity is jumped by emulating a disturbance during motion.

  • Shuuji Kajita, et al. Biped walking pattern generation by using preview control of zero-moment point. ICRA, 2003.
$ rosrun centroidal_control_collection TestPreviewControlZmp
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method PreviewControlZmp

PreviewControlZmp

  • S Feng, et al. Optimization‐based full body control for the darpa robotics challenge. Journal of field robotics, 2015.
$ rosrun centroidal_control_collection TestDdpZmp
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method DdpZmp

DdpZmp

  • J Englsberger, et al. Three-dimensional bipedal walking control using divergent component of motion. IROS, 2013.
$ rosrun centroidal_control_collection TestDcmTracking
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method DcmTracking

DcmTracking

  • T Sugihara, et al. Foot-guided agile control of a biped robot through ZMP manipulation. IROS, 2017.
  • Y Kojio, et al. Unified balance control for biped robots including modification of footsteps with angular momentum and falling detection based on capturability. IROS, 2019.
$ rosrun centroidal_control_collection TestFootGuidedControl
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method FootGuidedControl

FootGuidedControl

  • PB Wieber. Trajectory Free Linear Model Predictive Control for Stable Walking in the Presence of Strong Perturbations. Humanoids, 2006.
$ rosrun centroidal_control_collection TestLinearMpcZmp
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method LinearMpcZmp

LinearMpcZmp

  • N Scianca, et al. Intrinsically Stable MPC for Humanoid Gait Generation. Humanoids, 2016.
$ rosrun centroidal_control_collection TestIntrinsicallyStableMpc
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method IntrinsicallyStableMpc

IntrinsicallyStableMpc

  • J Urata, et al. Online Decision of Foot Placement using Singular LQ Preview Regulation. Humanoids, 2011.
$ rosrun centroidal_control_collection TestSingularPreviewControlZmp
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method SingularPreviewControlZmp

SingularPreviewControlZmp

Plotting all methods

$ roscd centroidal_control_collection
$ catkin bt --no-deps --catkin-make-args run_tests
$ rosrun centroidal_control_collection plotTestZmpBasedMethodResults.py --method All --plot-comp-time

You will get a plot like this one that shows all the methods in one sheet.

Methods based on centroidal dynamics

Centroidal trajectories (i.e., CoM and linear/angular momentum trajectories) are planned from the contact sequence.

$ rosrun centroidal_control_collection TestLinearMpcZ
  • H Audren, et al. Model preview control in multi-contact motion-application to a humanoid robot. IROS, 2014.
  • 長阪憲一郎, et al. 接触拘束を考慮可能なマルチコンタクト対応スタビライザと一般化逆動力学による人型ロボットの全身制御. ロボティクスシンポジア予稿集, 2012.
$ rosrun centroidal_control_collection TestLinearMpcXY
  • M Murooka, et al. Centroidal trajectory generation and stabilization based on preview control for humanoid multi-contact motion. RA-Letters, 2022.
$ rosrun centroidal_control_collection TestPreviewControlCentroidal
$ rosrun centroidal_control_collection TestDdpCentroidal --gtest_filter=*.PlanOnce

Integration into controller

Some of the methods implemented in this library are available in the humanoid controller BaselineWalkingController and MultiContactController.

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.