SCvxPyGen: Autocoding SCvx Algorithm - Berrah, Danil; Chapoutot, Alexandre; Garoche, Pierre-Loic (Proceedings of the IEEE Conference on Decision & Control, 2024)
In this paper, we address the embedded code generation for an optimal control algorithm, SCvx, which is particularly suitable for solving trajectory planning problems with collision avoidance constraints. Producing code compatible with embedded systems constraints will support the use of the SCvx algorithm in a real-time configuration. Existing uses of SCvx on drones or embedded platforms are currently handcrafted code. On the other hand, recent toolboxes such as SCPToolbox provide a simpler access to these trajectory planning algorithms, based on the resolution of a sequence of convex sub-problems. We define here a framework, in Python, enabling the automatic code generation for SCvx, in C, based on cVxpygen and the ecos solver. The framework is able to address problems involving non-convex constraints such as obstacle avoidance. This is a first step towards a more streamlined process to auto-code trajectory planning algorithms and convex optimization solvers.