/lipm_walking_controller

Walking controller based on linear inverted pendulum tracking

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

LIPM Walking Controller

License Documentation Status

Stair climbing by the HRP-4 humanoid robot

Source code of the walking and stair climbing controller used in the experiments of Stair Climbing Stabilization of the HRP-4 Humanoid Robot using Whole-body Admittance Control, as well as in an industrial demonstrator at the Airbus Saint-Nazaire factory.

This repository is meant for learning and sharing of experimental knowledge. It keeps walking components in the same place, and in the simple form they had in 2019. If you have questions, go ahead and ask them in the discussions forum, after checking that they are not already answered in the frequently asked questions ;) If you want to take part in future development, reach out for the active fork at jrl-umi3218.

Trying the controller

You can try the controller directly by running its Docker image:

xhost +local:docker
docker run -it --rm --user ayumi -e DISPLAY=${DISPLAY} -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
    stephanecaron/lipm_walking_controller \
    lipm_walking --floor

This image runs the exact controller we used in 2019 during experiments and industrial demonstrations. Replace --floor with --staircase for stair climbing.

Dependencies

The controller has been tested on Ubuntu 14.04 with ROS Indigo and Ubuntu 16.04 with ROS Kinetic. It builds on the shoulders of the following software:

Instructions to build a more recent version of the controller from source are available from the jrl-umi3218 fork.

Usage

The lipm_walking script in the Docker images starts two processes. First, it launches RViz for visualization and interaction with the controller:

roslaunch lipm_walking_controller display.launch robot:=jvrc1

Second, it starts the controller itself in a Choreonoid simulation:

cd /usr/local/share/hrpsys/samples/JVRC1
choreonoid --start-simulation sim_mc.cnoid

We end up with three windows: one for RViz (left), one for Choreonoid (top right) and one for the terminal (bottom right) where the controller logs information and debug messages.

Choreonoid and RViz GUI of the controller

See the Graphical user interface page of the wiki for further instructions on how to interact with the controller in RViz.

Thanks

To @gergondet and @arntanguy for developing and helping with the mc_rtc framework.