Model-predictive control (MPC) is a powerful framework for controlling dynamic systems under constraints, but it remains challenging to deploy on resource-constrained platforms, especially for problems involving conic constraints. To address this, we extend recent work developing fast, structure-exploiting, cached ADMM solvers for embedded applications, to provide support for second-order cones, as well as C++ code generation from Python, MATLAB, and Julia for easy deployment. Microcontroller benchmarks show that our solver provides up to a two-order-of-magnitude speedup, ranging from 10.6x to 142.7x, over state-of-the-art embedded solvers on QP and SOCP problems, and enables us to fit order-of-magnitude larger problems in memory. We validate our solver's deployed performance through simulation and hardware experiments, including conically-constrained trajectory tracking on a 27g Crazyflie quadrotor. To get started with Conic-TinyMPC, visit our documentation, examples, and the open-source codebase at https://tinympc.org.
翻译:模型预测控制(MPC)是一种在约束条件下控制动态系统的强大框架,但其在资源受限平台上的部署仍然具有挑战性,特别是对于涉及锥形约束的问题。为解决此问题,我们扩展了近期为嵌入式应用开发快速、利用结构、缓存ADMM求解器的工作,以提供对二阶锥的支持,以及从Python、MATLAB和Julia生成C++代码以简化部署。微控制器基准测试表明,在QP和SOCP问题上,我们的求解器相比最先进的嵌入式求解器提供了高达两个数量级的加速,范围从10.6倍到142.7倍,并使我们能够在内存中容纳数量级更大的问题。我们通过仿真和硬件实验验证了求解器的部署性能,包括在27克Crazyflie四旋翼飞行器上进行锥形约束轨迹跟踪。要开始使用Conic-TinyMPC,请访问我们的文档、示例和开源代码库:https://tinympc.org。