重力与摩擦力补偿:新一代 Aloha 机器人如何重塑力反馈遥操作,全解析与展望
重力补偿简介
重力补偿消除了重力对系统的影响。在我们的案例中,我们通过关节电机补偿Interbotix机械臂上的重力和关节摩擦力。通过这种方式,机械臂能够保持在当前位置,并且只需较小的力就可以自由移动。
重力补偿必要性
为什么我们需要这个特性?当我们在遥操作设置中将该机械臂用作主动臂,从动臂模仿其运动时,或者当我们教授它特定的轨迹等情况时,这个特性很有用。在这些场景中,我们希望机械臂能够保持在原位,并允许我们用较小的力自由地移动它。如果不这样做,用户就需要手动对抗重力,这会导致劳动强度大大增加,尤其是当机械臂较重时。
一、重力补偿原理
映射关系
计算补偿重力所需的扭矩是逆动力学问题的一个特殊情况,其中重力是唯一的外力。更具体地说,人们感兴趣的是找到以下映射关系:
其中左边是扭矩,右边是机器人模型、关节位置、程、速度和加速度。
算法(递归牛顿 - 欧拉算法)
解决逆动力学问题的一种方法是递归牛顿 - 欧拉算法。它包括三个步骤:
- 计算连杆的速度和加速度
- 计算产生这种运动所需的力,即虚拟力
- 计算作用在连杆上的力
算法各步骤详细说明
步骤 1:第I个连杆的速度和加速度由以下与第I个关节和第I个关节轴的角速度和加速度相关的递归关系给出。请注意,第I个关节轴是由当前关节位置通过正向运动学确定的。
步骤2:虚拟力与第I个连杆的惯性、速度和加速度相关联。
步骤3:第I个链接上的下一个关节、上一个关节和外部源所施加的力应平衡。
第I个关节的合成扭矩由下式给出:
软件包中使用的逆动力学求解器是从Orocos运动学和动力学库(KDL)移植的。有关其派生和实现细节,请参阅KDL文档页面。
摩擦补偿
关节摩擦导致两个问题:
- 动摩擦阻止关节移动。
- 动摩擦和静摩擦之间的差异导致静摩擦。
我们通过主动使用电机来抵消摩擦来解决这个问题。
动摩擦
当关节运动时,我们向运动方向增加一个辅助力矩。我们使用库仑摩擦模型,其中摩擦力与作用在接触表面上的总法向力成比例。并且我们将通过接头传递的名义扳手简化为两部分:
- 关于关节轴的扭矩。
- 计入其他力和扭矩的恒定扳手。
因此,关于关节轴的动摩擦扭矩由下式给出:
静摩擦
当每个关节的移动速度低于指定速度(即,抖动_速度)时,我们向每个关节添加抖动以避免静摩擦。它周期性地在交替方向上推动关节,以便关节在大部分时间内移动。抖动频率是联合_状态主题的发布率的一半。抖动幅度与静摩擦扭矩的抖动幅度相匹配,由下式给出
未来方向
遥操作的力反馈。既然我们可以计算出使机械臂保持在原位所需的扭矩,在遥操作设置中有主机械臂和跟随机械臂的情况下,我们可以将跟随机械臂的剩余扭矩(考虑重力以外的力)反馈给主机械臂的控制器,从而产生与反馈成比例的额外扭矩。通过这种方式,我们可以通过主机械臂的响应感知跟随机械臂施加了多少力。例如,我们可以握住一个鸡蛋或塑料杯而不压碎它。
重力和摩擦力之外的补偿。如果机械臂固定在移动平台上,平台的加速度会在机械臂上产生虚拟力,导致平台突然移动时机械臂向相反方向急动,就像我们坐在汽车里突然加速或减速时的感觉一样。如果我们能够快速准确地估计平台的加速度,我们可以简单地将平台加速度添加到重力加速度中来考虑它。