Skip to content

In this repository we share software for dynamics simulations of the jet-powered humanoid iRonCub-Mk1.

License

Notifications You must be signed in to change notification settings

ami-iit/ironcub-mk1-software

Repository files navigation

iRonCub-Mk1 Software

WARNING! this repo is under active development, and the software that contains comes with no warranties!

This repo contains libraries, plugins and controllers to perform dynamics simulations of the flying humanoid robot iRonCub. iRonCub is the world first jet-powered humanoid robot and it is being developed by the Artificial and Mechanical Intelligence group at the Italian Institute of Technology (IIT). For further information on the project, please visit the arerial humanoid robotics page.

ironcub_flight_sc1.mp4

Dependencies

Note

The oldest suppported Matlab version is R2021b, and the oldest supported Gazebo version is v.8. For controllers that use Simulink library blocks from matlab-whole-body-simulator, the lowest supported Matlab version is R2022b.

A possible way for installing all this dependencies, except Matlab and Gazebo, is to use the robotology-superbuild. An alternative is the usage of a conda package manager which provides binary packages for Linux, macOS and Windows. Please refers to the next sections for more details.

Installation

Installation via robotology-superbuild (Linux Only)

First, you must install matlab and Gazebo. Then, you have to configure the other dependencies via robotology-superbuild making sure to enable the ROBOTOLOGY_ENABLE_DYNAMICS, ROBOTOLOGY_USES_GAZEBO CMake options, and checkout to tag v2023.08.0. After setting up the robotology-superbuild, proceed to set up this repository.

Compilation

Execute the following commands in your terminal:

git clone https://github.com/ami-iit/ironcub-mk1-software.git
cd ironcub-mk1-software
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=</path/to/desired/install/dir>
make install

Using the Repository

In the first use, add the following line to your .bashrc file:

source $IRONCUB_INSTALL_PREFIX/share/ironcub-mk1-software/setup.sh

Installation with Conda (Linux and Windows)

Start by installing Matlab. Next, you have to install and configure a conda distribution following the documentation in robotology-superbuild. Then, once your environment is set, you can run the following command to install the required dependencies.

git clone https://github.com/ami-iit/ironcub-mk1-software.git
cd ironcub-mk1-software
mamba env create -n <conda-environment-name> --file environment.yml

Compilation

For Linux or macOS, execute the following commands:

mamba activate <conda-environment-name>
cd ironcub-mk1-software
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=</path/to/desired/install/dir>
make install
echo "source </path/to/desired/install/dir>/share/ironcub-mk1-software/setup.sh" > "${CONDA_PREFIX}/etc/conda/activate.d/ironcub_setup.sh"
chmod +x "${CONDA_PREFIX}/etc/conda/activate.d/ironcub_setup.sh"

For Windows, run these commands:

mamba activate <conda-environment-name>
cd ironcub-mk1-software
mkdir build
cd build
cmake .. -G"Visual Studio 17 2022" -DCMAKE_INSTALL_PREFIX=<\path\to\desired\install\dir>
cmake --build . --config Release --target INSTALL
echo call "<path\to\desired\install\dir>\share\ironcub-mk1-software\setup.bat" > "%CONDA_PREFIX%\etc\conda\activate.d\ironcub_setup.bat"

Warning

If you haven't configured git lfs, run git lfs install and git lfs pull inside the ironcub-mk1-software folder.

Using the Repository

Open the terminal and activate the conda environment

mamba activate <conda-environment-name>

Note

Activating the environment will automatically source setup.sh (setup.bat for windows). If you want to deactivate the sourced variables, you should open a new terminal. To better understand which variables are set by the setup.sh script, see also these READMEs: worlds, gazebo, and models.

Content

Documentation entry points for the different folders are in the wiki of the repo.

  • flight-controllers-stable: Simulink controllers to run simulations of iRonCub-Mk1 and iRonCub-Mk1_1 flying in Gazebo simulator.

  • matlab-scripts: Matlab scripts used to determine the optimal jets configuration, robot posture for take off, and similar offline optimizations.

  • models: home positions and URDF models of iRonCub-Mk1 and iRonCub-Mk1_1.

  • lib: Gazebo plugins and Simulink library blocks to be used in the flight controllers.

Maintainer

Gabriele Nava, @gabrielenava