Skip to content

isri-aist/BaselineWalkingController

Repository files navigation

Humanoid walking controller with various baseline methods

CI Documentation LICENSE Docker

HRP5P-BWC-WalkingStraightUnevenFloor-Cut-20221111.mp4
BaselineWalkingController-WalkingOnPlain-20220816.mp4
BaselineWalkingController-WalkingOnStairs-20220816.mp4

Features

  • Completely open source! (controller framework: mc_rtc, simulator: Choreonoid, sample robot model: JVRC1)
  • Full capabilities, including 3D walking, mass property error compensation of robot model, and integration with a footstep planner.
  • Easy to switch between various methods of centroidal trajectory generation for walking implemented in CentroidalControlCollection.
  • Easy to switch between the two frameworks for centroidal trajectory generation for walking: (1) closed-loop MPC and (2) open-loop MPC + stabilizer.
  • Support for a virtual robot whose model is publicly available so you can try out the controller right away.
  • Automated management with CI: Dynamics simulation is run on CI to verify robot walking, and a Docker image is released here with the latest version of the controller ready to run.

The Docker image is automatically updated on CI from this Dockerfile.

Technical details

This controller is a simple combination of the following existing typical elemental methods in the field of biped robotics:

  • CoM trajectory generation based on LIPM
  • ZMP feedback based on DCM
  • Wrench distribution
  • Foot damping control

For more information on the technical details, please see the following papers:

  • Papers listed in CentroidalControlCollection
  • Papers listed in ForceControlCollection
  • S Kajita, et al. Biped walking stabilization based on linear inverted pendulum tracking. IROS, 2010.
  • S Caron, et al. Stair climbing stabilization of the HRP-4 humanoid robot using whole-body admittance control. ICRA, 2019.

Install

Requirements

  • Compiler supporting C++17

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 Controller installation.

Installation

With mc-rtc-superbuild

Building with mc-rtc-superbuild (recommanded)

The recommended way to build this project is to use mc-rtc-superbuild along with the extension for BaselineWalkingController controller provided in superbuild-extensions.

git clone --recursive https://github.com/mc-rtc/mc-rtc-superbuild.git
cd extensions
git clone --recursive https://github.com/mc-rtc/superbuild-extensions.git
echo "set(EXTENSIONS_DIR ${CMAKE_CURRENT_LIST_DIR}/superbuild-extensions)" > local.cmake
# Install baseline walking controller and its dependencies
echo "include(${EXTENSIONS_DIR}/controllers/BaseLineWalkingController.cmake)" >> local.cmake
# For dynamics simulation with MuJoCo
echo "include(${EXTENSIONS_DIR}/simulation/MuJoCo.cmake)" >> local.cmake
echo "include(${EXTENSIONS_DIR}/gui/mc_rtc-magnum.cmake)" >> local.cmake
cd ..
# Configure the superbuild and install all required system dependencies
cmake --preset relwithdebinfo
# Clone all projects and their dependencies, and build them
# Note by default this will create a workspace folder in the parent directory
# If you wish to change the path or default options, edit CMakePresets.json or create your own preset in CMakeUserPresets.json
cmake --build --preset relwithdebinfo

Setup simulation

  1. Setup controller
$ mkdir -p ~/.config/mc_rtc/controllers
$ cp ~/workspace/install/etc/mc_rtc.yaml ~/.config/mc_rtc/mc_rtc.yaml

Edit Enabled in ~/.config/mc_rtc/mc_rtc.yaml to be Enabled: BaselineWalkingController.

  1. Setup motion configuration file (optional)
$ cd ~/workspace/devel/BaseLineWalkingController/.github/workflows
$ python ./scripts/mergeConfigs.py ./config/PreviewControlZmp.yaml ./config/OpenLoopMpc.yaml ./config/WalkingOnPlane.yaml > ~/.config/mc_rtc/controllers/BaselineWalkingController.yaml

Simulation execution

$ mc_mujoco --sync

Documents

BaselineWalkingController Tips: a collection of tips for BaselineWalkingController users

Controllers for motions beyond walking

The following controllers are based on or developed with the same philosophy as BaselineWalkingController.

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •