Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 2.27 KB

index.md

File metadata and controls

47 lines (35 loc) · 2.27 KB

TORA.jl

TORA stands for Trajectory Optimization for Robot Arms.

To get started, see the Tutorial.

Summary

This package allows users to define tasks for robot manipulators with simple high-level descriptions. Then, TORA.jl does the heavy-lifting! It converts those descriptions into numerical optimization problems, which are in turn tackled by state-of-the-art solvers. The final result of the optimization is a full trajectory (joint positions, joint velocities, and joint torques) taking into account the whole-body dynamics of the system. These trajectories can be commanded to your favourite robot, either in simulation or in real life.

<figure>
    <img src="./assets/diagram.svg" alt="diagram" width="100%">
    <figcaption><strong>Diagram 1.</strong> Intended use of this package.</figcaption>
</figure>

Functionality

Currently, the highlights of TORA.jl are as follows:

  • Simple interface to define constrained motion-planning problems
  • Formulation of the optimal control problem using Direct Transcription
  • Optimization of NLP problems using state-of-the-art solvers (Ipopt.jl and KNITRO.jl)
  • Full system dynamics enforced with either forward or inverse dynamics (RigidBodyDynamics.jl)
  • Automatic differentiation of sparse Jacobians (ForwardDiff.jl and SparseDiffTools.jl)
  • Automatic sparsity detection of Jacobians (SparsityDetection.jl)
  • Visualization of robot models and motion plans (MeshCat.jl)

About

Overall, the direct transcription technique implemented in TORA.jl stems from:

Citing this library

@misc{torajl,
  author = {Henrique Ferrolho and contributors},
  title  = {\href{https://github.com/JuliaRobotics/TORA.jl}{TORA.jl}},
  url    = {https://github.com/JuliaRobotics/TORA.jl},
  year   = 2020
}