This repo contains the setup for the whole-body controller presented in the following papers raiola2020simple, raiola2022wolf:
@article{raiola2020simple,
title={A simple yet effective whole-body locomotion framework for quadruped robots},
author={Raiola, Gennaro and Mingo Hoffman, Enrico and Focchi, Michele and Tsagarakis, Nikos and Semini, Claudio},
journal={Frontiers in Robotics and AI},
volume={7},
pages={159},
year={2020},
publisher={Frontiers}
}
@article{raiola2022wolf,
title={WoLF: the Whole-body Locomotion Framework for Quadruped Robots},
author={Raiola, Gennaro and Focchi, Michele and Hoffman, Enrico Mingo},
journal={arXiv preprint arXiv:2205.06526},
year={2022}
}
WoLF provides several features for your quadruped robotic friend:
ros_control
to be used with WoLF.ros_control
.wolf_hardware_interface
and ros_control
.You can run WoLF by installing the debian packages on your computer or with a docker container. To clone this repository run the following command:
git clone https://github.com/graiola/wolf-setup.git
To download the image from docker-hub and launch WoLF within a docker container, run the following script:
./run_docker.sh
You can see what are the available options in the script with the following command:
./run_docker.sh --help
In case you don't have docker installed on your computer, you can run the following script:
./support/install_docker.sh
This script will install docker and its dependencies.
We prepared some demos to run directly within the docker container:
./demos/2d_navigation.sh
: Run an indoor 2D navigation demo ./demos/3d_navigation.sh
: Run an outdoor 3D navigation demo./demos/manipulation.sh
: Run spot with a kinova arm mounted on top./demos/locomotion.sh
: Run a demo with stairsinstall_docker.sh
.install_nvidia.sh
script in the support
folder if you are experiencing the following problem: could not select device driver "" with capabilities: [[gpu]]
. nvidia-container-cli initialization error nvml error driver not loaded
, it probably means that your computer does not have the latest nvidia-drivers installed, so be sure that they are installed and updated to the last version.To install the required dependencies (including ROS) and the WoLF debian packages run the following:
./install.sh
After the installation, update your bash enviroment with the following command:
source ~/.bashrc
WoLF provides four interfaces to move the robot:
roslaunch wolf_controller wolf_controller_bringup.launch input_device:=ps3
roslaunch wolf_controller wolf_controller_bringup.launch input_device:=xbox
roslaunch wolf_controller wolf_controller_bringup.launch input_device:=keyboard
roslaunch wolf_controller wolf_controller_bringup.launch input_device:=spacemouse
A twist topic is always active and listening for velocity commands on /robot_name/wolf_controller/twist
. This topic can be used to send twist commands at a lower priority than the above mentioned interfaces.
It can also be used to send move_base
commands if you want to integrate WoLF with the ROS navigation stack (see wolf_navigation for an example).
To make the robot stand up, press the start
button on the joypad or press the enter
key if you are using the keyboard.
If you want to test a different quadruped robot check out wolf_descriptions.
Check the changelog here
wolf-setup
is distributed and licensed under a license GNU General Public License v3.0.wolf-controller
is licensed under a license Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
LICENSE
document.