Repository Summary
Description | Code for the paper "Non-Linear Trajectory Optimization for Large Step-Ups: Application to the Humanoid Robot Atlas" |
Checkout URI | https://github.com/s-dafarra/variable-height-double-pendulum.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2021-03-03 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
step_up_planner | 0.0.1 |
README
Large Step-Ups Planner
This repo contains the code used to generate the trajectories for large step-ups. It consists of a library which exploits CasADi
to solve an optimal control problem, plus a ROS2
node to communicate with the robot.
Citing
This code is related to the paper “Non-Linear Trajectory Optimization for Large Step-Ups: Application to the Humanoid Robot Atlas”. Paper: https://ieeexplore.ieee.org/document/9341587 Arxiv: https://arxiv.org/abs/2004.12083
To cite this work, please add the following to your publication
S. Dafarra, S. Bertrand, R. J. Griffin, G. Metta, D. Pucci and J. Pratt, "Non-Linear Trajectory Optimization for Large Step-Ups: Application to the Humanoid Robot Atlas," 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Las Vegas, NV, USA, 2020, pp. 3884-3891, doi: 10.1109/IROS45743.2020.9341587.
Bibtex:
@INPROCEEDINGS{9341587, author={S. {Dafarra} and S. {Bertrand} and R. J. {Griffin} and G. {Metta} and D. {Pucci} and J. {Pratt}}, booktitle={2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, title={Non-Linear Trajectory Optimization for Large Step-Ups: Application to the Humanoid Robot Atlas}, year={2020}, volume={}, number={}, pages={3884-3891}, doi={10.1109/IROS45743.2020.9341587}}
Dependencies
If the CMake option BUILD_INTERFACE
is ON (it is ON by default), you also need
ihmc-open-robotics-software
-
ROS2
(Tested with Crystal Clemmys)
Linux Installation Instructions
The following instructions have been tested on Ubuntu 16.04. It is also assumed that no other ROS2
installation is already present on the system.
Install system dependencies
Run the following command to install gcc
, cmake
and Ipopt
from apt
.
sudo apt install gcc g++ gfortran git cmake liblapack-dev pkg-config coinor-libipopt-dev --install-recommends
Install CasADi
(These instructions have been adapted from https://github.com/casadi/casadi/wiki/InstallationLinux#building-casadi-from-sources)
- Move to the directory where you want to download
CasADi
, e.g.~/dev/large_step_ups
.
cd ~/dev/large_step_ups
- Clone the repository
git clone https://github.com/casadi/casadi.git
- Install
CasADi
. In order to avoid polluting system directories, it is suggested to specify an installation directory different from/usr/local
. In this case we create aninstall
folder inside thebuild
folder.
mkdir build
cd build
mkdir install
export NEW_INSTALL_DIR=$(pwd)/install
cmake -DWITH_IPOPT=ON -DCMAKE_INSTALL_PREFIX=$NEW_INSTALL_DIR ..
make install -j4
- Modify the
.bashrc
exporting thecasadi_DIR
variable. In this wayCasADi
can be easily found bycmake
projects. Add the following line.
casadi_DIR=/path/to/casadi/install
In our case
casadi_DIR=~/dev/large_step_ups/casadi/build/install
It is then necessary to source the modified .bashrc
in order to apply the changes.
Install ROS2
(These instructions have been adapted from https://index.ros.org/doc/ros2/Installation/Crystal/Linux-Development-Setup/)
- Install
ROS2
system dependencies
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
python3-colcon-common-extensions \
python3-lark-parser \
python3-pip \
python-rosdep \
python3-vcstool \
wget
```
python3 -m pip install -U
argcomplete
flake8
flake8-blind-except
flake8-builtins
flake8-class-newline
flake8-comprehensions \
File truncated at 100 lines see the full file