This software provides methods for kino-dynamic optimization for multiped robots. It contains a list of solvers and optimization problem for robotics optimal control.
Please make sure to install the following packages:
the qp solver quadprog, the code manager treep and the python resource manager:
pip install lightargs==1.22 quadprog treep importlib_resources
yaml-cpp for reading the parameters of the optimal control problem:
sudo apt install libyaml-cpp-dev
brew install yaml-cpp
And colcon to build packages (more info about the build system https://design.ros2.org/articles/build_tool.html)
sudo apt install python3-colcon-common-extensions
python3 -m pip install colcon-common-extensions
Clone the repository in the desired work folder
mkdir devel
cd devel
git clone https://github.com/machines-in-motion/treep_machines_in_motion.git
treep --clone KINO_DYN_PLANNER
This operation should have cloned pacakges in workspace/src/
which will be
refered as the
cd workspace
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
Once the code has been compiled, you can source the setup.bash file in
install/setup.bash
. install/setup.bash
cd <work_folder>/kino_dynamic_opt/momentumopt/demos
python3 ../nodes/kino_dyn_planner_solo -i <path_to_config_file>
For example plan and execute a jumping motion with
python3 ../nodes/kino_dyn_planner -i ../config/cfg_solo8_jump.yaml
python3 ../nodes/kino_dyn_planner -i ../config/cfg_solo12_jump.yaml --solo12
python3 ../nodes/kino_dyn_planner -i ../config/cfg_bolt_jump.yaml --bolt
Different configuration files are available in
<work_folder>/kino_dynamic_opt/momentumopt/config
The available motions are:
For an explanation of the different settings in the configuration files, refer to [cfg_solo_jump.yaml].
We have two different inverse kinematics formulations implemented, you can choose
which one you would like to use. The default version is a first order inverse kinematics
that optimizes for generalized velocities. If you wanna use second order inverse
kinematics, you would need to change the boolean use_second_order_inv_kin
to True
in your config (.yaml) file.
#### Configuration overview
The available motions are:
* Lifting rear legs: cfg_demo01_twofeet.yaml
## Saving .dat file for dynamic graph
Executing
python3 ../nodes/kino_dyn_planner -i
automatically saves the `quadruped_positions.dat` and the `quadruped_velocities.dat` files in the `<work_folder>/kino-dynamic-opt/src/catkin/motion_planning/momentumopt/demos` directory. These files can then be supplied to dynamic graph and for example executed on the real robot.
## License
Copyright (c) 2019, New York University and Max Planck Gesellschaft.
## Authors
- Brahayam Ponton (<bponton@tue.mpg.de>) (1)
- Majid Khadiv (<mkhadiv@tuebingen.mpg.de>) (1)
- Julian Viereck (<jviereck@tuebingen.mpg.de>) (1)
- Avadesh Meduri (<am9789@nyu.edu>) (1-2)
(1): Max Planck Institute for Intelligent System, Tubingen, Germany \
(2): New York University, New York, USA