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.
The easiest way to get started with the controller 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
See the documentation for more usage instructions.
The controller has been tested on Ubuntu 14.04 with ROS Indigo and Ubuntu 16.04 with ROS Kinetic. See the instructions to build from source in the documentation.
Compilation requires:
- ROS with a working catkin workspace
- 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
The following dependencies are not publicly released but available upon request to Pierre Gergondet:
- mc_rtc: robot controller library (includes mc_control, mc_rbdyn, mc_solver and mc_tasks)
- mc_rtc_ros: ROS tools for mc_rtc
- mc_rtc_ros_data: ROS environment and object descriptions for mc_rtc
If it is not there already, enable the controller 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 from jvrc_choreonoid 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 for developing and helping with the mc_rtc framework.