Humanoid walking controller with various baseline methods
https://user-images.githubusercontent.com/6636600/201510077-5be6ab58-9671-413a-93c4-9b84caf9735e.mp4
https://user-images.githubusercontent.com/6636600/184788681-10219f2e-cbe9-4e52-a7f7-ec3b0e1d7515.mp4
https://user-images.githubusercontent.com/6636600/184788709-fcb55fa8-fd93-4be3-ba93-d76be6fafe6a.mp4
$ sudo apt-get install ca-certificates curl gnupg lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
To enable GPUs in Docker (i.e., enable the --gpus
option in the docker
command), install nvidia-docker2
.
See here for details.
$ docker pull ghcr.io/isri-aist/baseline_walking_controller:latest
$ xhost +local:
Simulate walking on a plain like in this video.
$ docker run --gpus all --rm -it \
--env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
ghcr.io/isri-aist/baseline_walking_controller:latest ./walk_on_plane.bash
Simulate walking on stairs like in this video.
$ docker run --gpus all --rm -it \
--env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
ghcr.io/isri-aist/baseline_walking_controller:latest ./walk_on_stairs.bash
Simulate walking with planning footstep sequence avoiding obstacles like in this video.
$ docker run --gpus all --rm -it \
--env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
ghcr.io/isri-aist/baseline_walking_controller:latest ./walk_with_footstep_planner.bash
The Docker image is automatically updated on CI from this Dockerfile.
This controller is a simple combination of the following existing typical elemental methods in the field of biped robotics:
For more information on the technical details, please see the following papers:
Ubuntu 20.04 / ROS Noetic
and Ubuntu 18.04 / ROS Melodic
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.
(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
(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
Setup catkin workspace.
$ mkdir -p ~/ros/ws_bwc/src
$ cd ~/ros/ws_bwc
$ wstool init src
$ wstool set -t src isri-aist/BaselineWalkingController https://github.com/isri-aist/BaselineWalkingController --git -y
$ wstool update -t src isri-aist/BaselineWalkingController
$ wstool merge -t src src/isri-aist/BaselineWalkingController/depends.rosinstall
$ wstool update -t src
Install dependent packages.
$ source /opt/ros/${ROS_DISTRO}/setup.bash
$ rosdep install -y -r --from-paths src --ignore-src
Build a package.
$ catkin build baseline_walking_controller -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_QLD=ON --catkin-make-args all tests
Setup controller
$ mkdir -p ~/.config/mc_rtc/controllers
$ cp ~/ros/ws_bwc/src/isri-aist/BaselineWalkingController/etc/mc_rtc.yaml ~/.config/mc_rtc/mc_rtc.yaml
Setup motion configuration file (optional)
$ roscd baseline_walking_controller
$ cd .github/workflows
$ python ./scripts/mergeConfigs.py ./config/PreviewControlZmp.yaml ./config/OpenLoopMpc.yaml ./config/WalkingOnPlane.yaml > ~/.config/mc_rtc/controllers/BaselineWalkingController.yaml
$ sudo apt-get install mc-state-observation jvrc-choreonoid
# Terminal 1
$ source ~/ros/ws_bwc/devel/setup.bash
$ roscore
# Terminal 2
$ source ~/ros/ws_bwc/devel/setup.bash
$ cd /usr/share/hrpsys/samples/JVRC1
$ ./clear-omninames.sh
$ choreonoid sim_mc.cnoid --start-simulation
# Terminal 3
$ source ~/ros/ws_bwc/devel/setup.bash
$ roslaunch baseline_walking_controller display.launch
BaselineWalkingController Tips: a collection of tips for BaselineWalkingController users
The following controllers are based on or developed with the same philosophy as BaselineWalkingController.