Users Guide¶
Welcome to the OpenSCvx Users Guide. This section aims to provides a progressive and useful introduction to trajectory optimization with OpenSCvx, starting from first principles and building toward complex, representative problems.
Learning Path¶
The tutorials are designed to be read in order. Each builds on concepts from the previous, introducing new features in the context of increasingly realistic problems.
| Tutorial | Problem | You Will Learn |
|---|---|---|
| 01 Hello Brachistochrone | Minimum-time descent curve | Core API: states, controls, dynamics, time, CTCS constraints, solving |
| 02 Drone Racing | Racing through gates | Nodal constraints, .at(), .over(), .convex(), keyframe initialization |
| 03 Obstacle Avoidance | 6-DOF navigation | Quaternion dynamics, spatial utilities, ox.Parameter, ox.Vmap |
| 04 Viewpoint Constraints | Perception-constrained racing | Custom symbolic functions, Vmap with custom functions, attitude initialization |
| 05 Visualization | — | 2D plots with Plotly, 3D interactive visualization with viser, Plotly-in-viser |
| 06 Dubin's Car | Conditional path planning | Conditional statements, signal temporal logic (STL) |
| 07 Multi-Link Arms | Articulated robot control | Lie algebra, propagated states |
Quick Start¶
If you're new to OpenSCvx, start with Hello Brachistochrone. By the end of that tutorial you will have solved your first trajectory optimization problem and understand the core workflow:
- Define states and controls with
ox.Stateandox.Control - Specify dynamics as a dictionary of symbolic expressions
- Add constraints using
ox.ctcs()for continuous enforcement - Create a
Problem, initialize, solve, and post-process
From there, each subsequent tutorial introduces new capabilities while reinforcing the fundamentals.
Interactive Notebooks¶
Some tutorials include Google Colab notebooks for interactive learning:
These notebooks let you run the examples without local setup and experiment with parameters in real-time.
Beyond the Tutorials¶
After completing the tutorials, explore:
- Examples — Complete problem implementations across domains
- API Reference — Detailed documentation for all classes and functions