Conic constraints appear in many important control applications like legged locomotion, robotic manipulation, and autonomous rocket landing. However, current solvers for conic optimization problems have relatively heavy computational demands in terms of both floating-point operations and memory footprint, making them impractical for use on small embedded devices. We extend TinyMPC, an open-source, high-speed solver targeting low-power embedded control applications, to handle second-order cone constraints. We also present code-generation software to enable deployment of TinyMPC on a variety of microcontrollers. We benchmark our generated code against state-of-the-art embedded QP and SOCP solvers, demonstrating a two-order-of-magnitude speed increase over ECOS while consuming less memory. Finally, we demonstrate TinyMPC's efficacy on the Crazyflie, a lightweight, resource-constrained quadrotor with fast dynamics. TinyMPC and its code-generation tools are publicly available at https://tinympc.org.
翻译:锥约束广泛应用于诸多重要控制场景,例如足式运动、机器人操作以及自主火箭着陆。然而,当前用于锥优化问题的求解器在浮点运算量和内存占用方面计算需求较高,难以适用于小型嵌入式设备。我们扩展了TinyMPC(一款面向低功耗嵌入式控制应用的开源高速求解器),使其能够处理二阶锥约束。同时,我们提出了代码生成软件,支持TinyMPC在多种微控制器上部署。我们将生成的代码与当前最先进的嵌入式QP和SOCP求解器进行基准测试,结果表明其计算速度相比ECOS提升两个数量级,且内存消耗更低。最后,我们通过Crazyflie(一款动态响应快速、资源受限的轻量级四旋翼飞行器)验证了TinyMPC的有效性。TinyMPC及其代码生成工具已在https://tinympc.org 公开提供。