Skip to content

Sequential Convex Programming Toolbox for nonconvex trajectory optimization.

License

Notifications You must be signed in to change notification settings

UW-ACL/SCPToolbox.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCP Toolbox

License GPL 3

(!) The repository name has changed to SCPToolbox.jl in order to reflect the project's direction: to develop a general-purpose trajectory optimization toolkit using sequential convex programming algorithms.

About the logo


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}
}