系列文章目录
前言
阻碍 MPC 在机器人任务中广泛应用的主要挑战之一是设置最优控制问题的负担。OCS2 提供了多个辅助类,用于定义一些常用模型、成本和约束条件,以减轻这一问题。为此,OCS2 提供了多个第三方软件包接口,如 RobCoGen、CppADCodeGen、Pinocchio 和 HPP-FCL。我们在此重点介绍 Pinocchio 接口。本页讨论的所有软件包都可以在元软件包 ocs2_pinocchio 中找到。
一、从 URDF 到 OCP
1.1 中心模型
多关节浮动基座系统(如足式机器人)可建模为一个未驱动的刚体,该刚体上连接着一组完全驱动的肢体。在对机器人关节有足够控制权的温和假设下,在 MPC 公式中独立考虑中心点动力学作为简化模板模型是合理的。该模型的状态空间包括归一化中心动量、基本坐标和关节位置。输入空间是所有接触扭矩和关节速度的组合。为了捕捉广义坐标变化率对向心动量的影响,该模型使用了向心动量矩阵,并在基础扭转和关节速度之间引入了正确的映射。有关实现的更多详情,请参阅软件包 ocs2_centroidal_model。
1.2 运动学
OCS2 为 URDF 模型中基于 Pinocchio 库的任何已命名坐标系提供了一个运动学接口。该接口为已命名的坐标系列表提供位置、方向误差和速度的一阶模型。OCS2 提供两个接口: 基于分析偏差的 PinocchioEndEffectorKinematics 接口和基于自动微分的 PinocchioEndEffectorKinematicsCppAd 接口。当需要使用 OCS2 的缓存功能时,通