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 issue tracker after checking that they are not already answered in the frequently asked questions ;) And if you want to take part in development, reach out for the active fork at jrl-umi3218.
The easiest way to try the controller in action is to run its Docker image from an Ubuntu Linux distribution:
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.
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:
- ROS: robotics middleware
- Eigen: linear algebra
- Eigen3ToPython: Python bindings for Eigen
- SpaceVecAlg: spatial vector algebra
- RBDyn: rigid body dynamics
- eigen-qld: quadratic programming
- eigen-quadprog: quadratic programming
- sch-core: collision detection
- sch-core-python: Python bindings for sch-core
- Tasks: inverse kinematics
- mc_rbdyn_urdf: robot model loader
- copra: linear model predictive control
- mc_rtc: robot controller library
Instructions to build an active development version of the controller from source are available for the jrl-umi3218 fork.
Make sure the controller is enabled in your mc_rtc configuration:
{"MainRobot": "JVRC1", "Enabled": ["LIPMWalking"]}
Launch RViz for the JVRC-1 model by:
roslaunch lipm_walking_controller display.launch robot:=jvrc1
Finally, start the controller from your mc_rtc interface. Here is the example of the Choreonoid project installed in the Docker image:
cd /usr/local/share/hrpsys/samples/JVRC1
choreonoid --start-simulation sim_mc.cnoid
You should end up with the following windows:
See the Graphical user interface page of the wiki for further instructions on how to use this GUI.
To @gergondet and @arntanguy for developing and helping with the mc_rtc framework.