hippopt is an open-source framework for generating whole-body trajectories for legged robots, with a focus on direct transcription of optimal control problems solved with multiple-shooting methods. The framework takes as input the robot model and generates optimized trajectories that include both kinematic and dynamic quantities.
*supposedly
- Direct transcription of optimal control problems with multiple-shooting methods
- Support for floating-base robots, including humanoids ...
- ... and quadrupeds
- Integration with CasADi library for efficient numerical optimization
- Generation of optimized trajectories that include both kinematic and dynamic quantities
- Extensive documentation
- examples to help you get started
It is possible to install all the dependencies using conda
. If you do not have a conda distribution on your system, we suggest to use the minimal miniforge
distribution, that uses conda-forge
packages by default.
conda install -c conda-forge -c robotology python=3.11 casadi pytest liecasadi adam-robotics idyntree meshcat-python ffmpeg-python matplotlib resolve-robotics-uri-py hdf5storage
pip install --no-deps -e .[all]
The folder turnkey_planners
contains examples of whole-body trajectory optimization for legged robots.
In this folder it is possible to find the following examples:
humanoid_pose_finder/main.py
: generates a static pose for the humanoid robotergoCub
given desired foot and center of mass positions.humanoid_kinodynamic/main_single_step_flat_ground.py
: generates a kinodynamic trajectory for the humanoid robotergoCub
to perform a single step motion with no a-priori guess or terminal constraint.humanoid_kinodynamic/main_periodic_step.py
: generates a kinodynamic trajectory for the humanoid robotergoCub
to perform a periodic walking motion.humanoid_kinodynamic/main_walking_on_stairs.py
: generates a kinodynamic trajectory for the humanoid robotergoCub
to perform a walking motion on stairs.
Important
For the tests to run, it is necessary to clone ergocub-software
and extend the GAZEBO_MODEL_PATH
environment variable to include the ergocub-software/urdf/ergoCub/robots
and ergocub-software/urdf
folders.
Note
It is necessary to launch the examples from a folder with write permissions, as the examples will generate several files (ground meshes, output videos, ...).
If you find the work useful, please consider citing:
@ARTICLE{dafarra2022dcc,
author={Dafarra, Stefano and Romualdi, Giulio and Pucci, Daniele},
journal={IEEE Transactions on Robotics},
title={Dynamic Complementarity Conditions and Whole-Body Trajectory Optimization for Humanoid Robot Locomotion},
year={2022},
volume={38},
number={6},
pages={3414-3433},
doi={10.1109/TRO.2022.3183785}}
This repository is maintained by:
@S-Dafarra |