Optimal control problems (OCP) are discretized and formulated as nonlinear programming (NLP) problems.
To get started, ensure the following dependencies are already installed:
- CasADi: Symbolic automatic differentiation and optimization.
- Pinocchio3: Library for both numerical and symbolic rigid body kinematics and dynamics.
- CuRobo: Collision geometry generation.
- Direct discretization of optimal control problems using Gauss-Legendre collocation method.
- Constrained dynamics on configuration manifolds using local parametrization on targent charts.
The repository includes demo implementations for the following robotic systems:
- Simple unconstrained systems (with collision avoidance) -> UR demo
- Systems with holonomic constraints -> five-bar parallel robot demo
- RRT path planning for generating initial guesses in NLP with collision avoidance.
- General collision geometries, i.e., cuboids, cylinders, meshes, etc.
- Systems with non-holonomic constriants.
- Haug, Edward J. "Multibody dynamics on differentiable manifolds." Journal of Computational and Nonlinear Dynamics. 2021. https://doi.org/10.1115/1.4049995