Model-predictive control (MPC) is a state-of-the-art control method for constrained robotic systems, yet deployment on resource-limited hardware remains difficult. This challenge is magnified by expressive conic constraints, which offer greater modeling power but require significantly more computation than linear alternatives. To address this challenge, we extend recent work developing fast, structure-exploiting, cached solvers for embedded applications based on the Alternating Direction Method of Multipliers (ADMM) to provide support for second-order cones, as well as C++ code generation from Python, MATLAB, and Julia. 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 trajectory tracking with conic constraints on a 27g Crazyflie quadrotor. Our open-source code is available at https://tinympc.org.
翻译:模型预测控制(MPC)是约束机器人系统的一种先进控制方法,但在资源受限硬件中的部署仍面临挑战。更具建模能力的锥约束虽能表达更丰富的约束形式,却比线性约束需要显著更高的计算量,进一步加剧了这一难题。为此,我们拓展了近期基于交替方向乘子法(ADMM)的快速结构可缓存求解器在嵌入式应用中的研究工作,使其支持二阶锥约束,并实现从Python、MATLAB和Julia生成C++代码。微控制器基准测试表明,在二次规划(QP)和二阶锥规划(SOCP)问题上,我们的求解器比现有先进嵌入式求解器实现高达两个数量级的加速(10.6倍至142.7倍),并能在内存中容纳更大规模的问题。通过仿真与硬件实验(包括对27克Crazyflie四旋翼飞行器施加锥约束的轨迹跟踪任务),我们验证了求解器的部署性能。开源代码见https://tinympc.org。