DirectTrajectoryOptimization  v0.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Direct Trajectory Optimization Package

A C++ package for solving Trajectory Optimization problems using direct transcription and multiple shooting methods

Overview

This package provides a class to formulate a multi-phase continuous trajectory optimization problem including initial and terminal conditions, path constraints and bounds in the state and control trajectories.

This class automatically translate the continuous formulation into a discrete optimization problem and uses a (third-party) NLP solver to obtain a feasible and optimal solution.

Main features :

  • Direct transcription using Hermite-Simpson and Trapezoidal interpolation
  • Direct Multiple Shooting
  • Interface with Ipopt and Snopt.
  • Multiple phase TO problem can be defined (i.e., including switching dynamics)

Formulating your TO problem

The package includes a set of base classes so you can easily interface this library with any C++ implementation of the dynamics (and derivatives) of your robot. It also includes base classes that automatically provide the derivatives of the robot dynamics and problem constraints using numerical differentiation (Eigen::NumDiff).

The main class of the package is called DirectTrajectoryOptimizationProblem and it is a good point to start exploring this documentation.

You also might want to check the objects interfacing the NLP Solvers,

Example applications using this package are available in the examples section.

Credits

This project is led by Diego Pardo (core developer) and contains knowledge and expertise from the Agile and Dexterous Robotics Lab at ETH Zürich, under the supervision of Prof. Jonas Buchli.

Collaborators:

  • Michael Neunert
  • Harsoveet Singh
  • Lukas Möller
  • Alexander Winkler
  • Bob Hoffmann

License

This software is subject to the terms and conditions defined in file LICENSE.txt, which is part of this source code package.