Non-linear model predictive control (nMPC) is a powerful approach to control complex robots (such as humanoids, quadrupeds, or unmanned aerial manipulators (UAMs)) as it brings important advantages over other existing techniques. The full-body dynamics, along with the prediction capability of the optimal control problem (OCP) solved at the core of the controller, allows to actuate the robot in line with its dynamics. This fact enhances the robot capabilities and allows, e.g., to perform intricate maneuvers at high dynamics while optimizing the amount of energy used. Despite the many similarities between humanoids or quadrupeds and UAMs, full-body torque-level nMPC has rarely been applied to UAMs. This paper provides a thorough description of how to use such techniques in the field of aerial manipulation. We give a detailed explanation of the different parts involved in the OCP, from the UAM dynamical model to the residuals in the cost function. We develop and compare three different nMPC controllers: Weighted MPC, Rail MPC, and Carrot MPC, which differ on the structure of their OCPs and on how these are updated at every time step. To validate the proposed framework, we present a wide variety of simulated case studies. First, we evaluate the trajectory generation problem, i.e., optimal control problems solved offline, involving different kinds of motions (e.g., aggressive maneuvers or contact locomotion) for different types of UAMs. Then, we assess the performance of the three nMPC controllers, i.e., closed-loop controllers solved online, through a variety of realistic simulations. For the benefit of the community, we have made available the source code related to this work.
翻译:非线性模型预测控制(nMPC)是控制复杂机器人(如人造机器人、四倍或无人驾驶航空操纵机(UAMs))的有力方法,因为它比其他现有技术具有重要优势。 完整体动态,加上在控制器核心解决的最佳控制问题(OCP)的预测能力,使得机器人能够根据其动态启动。 这一事实增强了机器人的能力,并允许在高动态时进行复杂的操控,同时优化使用能量的数量。 尽管人类或四倍和UAM(UAMs)之间有许多相似之处,但全体至极级的NMPC(UAMs)却很少适用于UAMs。 本文透彻地描述了如何在航空操控领域使用这种技术。 我们详细解释了OCP的不同部分, 从UAM动态模型到成本函数的剩余部分。 我们开发并比较了三种不同的 NMPC 控制器( Weighted MPC, 铁路至四倍, MPC) 和 Carroot 的运行过程, 包括我们目前各阶段的操作结构。