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

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 an install folder inside the build 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 the casadi_DIR variable. In this way CasADi can be easily found by cmake 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