NmBoyd / scp_traj_opt

Sequential convex programming algorithms for fast optimization-based nonconvex trajectory generation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SCP Toolbox

License GPL 3


The SCP Toolbox provides a parser-solver framework for sequential convex programming (SCP) algorithms for real-time generation of dynamically feasible trajectories of aerospace, robotic, and other systems. Under the hood, the algorithms rely on optimal control and convex numerical optimization theory.

Clone this repository, scp_new_problem, and read the tutorial below to get started.


Tutorial


About

Four algorithms are implemented, and can be found in the solvers/ directory:

  • Lossless convexification (LCvx)
  • Successive convexification (SCvx)
  • Guaranteed Sequential Trajectory Optimization (GuSTO)
  • Penalized trust region (PTR)

Several example applications show how the algorithms can be used. These can all be found in the examples/ director, and include:

  1. Double integrator with friction
  2. Mars rocket landing
  3. SpaceX Starship landing "flip" maneuver
  4. Mass-spring-damper with an actuator deadband or "sticking"
  5. Quadrotor flight around obstacles
  6. Space station freeflyer robot
  7. Planar spacecraft rendezvous with discrete logic
  8. Apollo transposition and docking maneuver with discrete logic

Citing

If you use this code, kindly cite the following associated publication.

@article{SCPTrajOptCSM2021,
  year	       = {2021},
  publisher    = {{IEEE}},
  author       = {Danylo Malyuta and Taylor P. Reynolds and Michael Szmuk
                  and Thomas Lew and Riccardo Bonalli and Marco Pavone
                  and Behcet Acikmese},
  title	       = {Convex Optimization for Trajectory Generation},
  journal      = {{IEEE} Control Systems Magazine (in review)},
  pages        = {arXiv:2106.09125}
}

About

Sequential convex programming algorithms for fast optimization-based nonconvex trajectory generation

License:GNU General Public License v3.0


Languages

Language:Julia 100.0%