ProxSuite
面向机器人控制与优化的高性能 QP/LP 求解器
许可证
BSD-2-Clause
概述
ProxSuite 是一个先进的优化工具箱,来自 Inria、ENS Paris 和 CNRS 的 Willow 与 Sierra 团队(Willow 也参与开发 Pinocchio),为机器人中的二次规划(QP)和线性规划(LP)问题提供高效求解器。其核心 ProxQP 求解器采用一种新颖的原始-对偶近端增广拉格朗日方法,在模型预测控制(MPC)、全身控制和轨迹优化方面达到业界领先性能。支持稠密、稀疏和混合问题形式,提供 C++ 和 Python 接口。
ProxSuite 是由巴黎 Inria 与巴黎高等师范学院(Ecole Normale Superieure)的 Willow 和 Sierra 研究组开发的开源数值优化求解器集合。其旗舰组件 ProxQP 采用原对偶近端增广拉格朗日方法求解二次规划,兼具高速与数值稳健性——即使面对病态或不可行问题也是如此。
该工具箱提供稠密、稀疏和无矩阵(matrix-free)求解器后端,用户可根据问题结构选择合适的求解器。高级功能包括 SIMD 向量化支持、基于先前解的热启动、并行批量 QP 求解、非凸 QP 处理,以及可对 QP 解进行微分,以用于基于学习的应用。
ProxSuite 已集成到主要优化生态系统中,包括 CVXPY、CasADi,以及基于 Pinocchio 构建的 TSID 机器人逆动力学框架。它通过 pip、conda 和 Homebrew 分发,除核心 C++ 库外还提供 Python 和 Julia 绑定。
为何重要
二次规划是机器人控制的核心——从全身控制器、模型预测控制到带接触的逆动力学。ProxSuite 的 ProxQP 求解器在最困难的 QP 基准上实现了业界领先的性能,同时可处理凸与非凸问题,是实时机器人优化的关键构件。
解决的问题
实时机器人控制器需要以高频率求解二次规划,并保证数值稳定性,即使面对病态或不可行问题也是如此。ProxSuite 提供的求解器同时具备高速、数值稳健和足够的灵活性,可处理稠密、稀疏和无矩阵的问题形式——即使 QP 原始不可行,也能返回有用的结果。
要点
- ProxQP 求解器采用原对偶近端增广拉格朗日方法,实现稳健的 QP 求解
- 支持稠密、稀疏和无矩阵后端,并通过 SIMD 向量化实现最佳性能
- 可处理非凸 QP,并对不可行问题返回最接近的可行解
- 已集成到 CVXPY、CasADi 以及 TSID 任务空间逆动力学框架中
- 可通过 pip、conda 和 Homebrew 获取,提供 Python 和 Julia 绑定
适用人群
- 实现 MPC 或全身控制器的机器人控制工程师
- 对 QP 求解器性能进行基准测试的优化研究人员
- 需要实时接触感知控制的足式机器人开发者
- 求解大规模 QP 和 LP 的运筹学从业者
局限
- 专注于 QP 和 LP 问题——并非通用的非线性规划求解器
- 要获得最佳性能,需要使用向量化编译选项(-march=native)进行编译
- 与 OSQP 或 qpOASES 等成熟求解器相比,项目相对年轻
- 批量求解和 QP 微分等高级功能的学习曲线较陡