采用阻抗控制的高级机器人操作
作者 : Tadele Shiferaw,MathWorks
机器人操作臂在多种领域持续发挥作用,提升了制造、医疗、农业和物流等行业的效率和精度。 对于需要与动态环境进行有效且安全的互动的应用来说,为操作器添加柔顺性是必不可少的,因为这可以在操作过程中提高适应性、精确性和安全性。 阻抗控制是一种先进的方法,它允许机器人模拟人类操控特有的柔顺行为。 本文使用建模和仿真解释了阻抗控制策略的设计与实现。
了解阻抗控制
从本质上讲,阻抗控制是一种在机器人学中使用的策略,通过动态调整机器人的阻抗(即其对力和位移的响应能力的度量),来调节机器人与环境之间的交互力[1]。
考虑一个只有一个自由度 (DOF) 的简化机器人。 机器人被定义为位置 \( X_m \) 处的质量体,它将被移动到期望位置 \( X_d \),这可以通过使用经典的比例微分 (PD) 控制器轻松实现,其数学方程如下:
\( F_{controller} = k(X_d - X_m) - d {\dot{X_m}} \)
仔细观察该方程,PD 控制器的控制作用可以在物理上解释为弹簧-阻尼器组合,其中比例项代表弹簧,微分项代表阻尼器。 这是一个简单的阻抗控制器,它不仅将质量体移动到所需位置,还向系统注入所需的阻抗,该阻抗在任何与系统的外部交互中都可以感受到(图 1)。

图 1. 简单的单自由度阻抗控制系统。
简单阻抗控制系统建模
这个简化的单自由度系统可以轻松地使用 Simscape™ 进行建模。Simscape™ 是一种物理建模语言,使用户能够通过能量的双向流动将库模块连接起来(见图2)。
我们可以通过调整控制器参数,即刚度常数和阻尼系数来定义整个系统在跟踪需要位置时所需的柔顺性行为。 中等柔顺性和高柔顺性阻抗控制系统之间的运动行为差异如图 3 所示。
多自由度操作臂的阻抗控制
上文讨论的阻抗控制器概念也可以扩展到具有 N 自由度的机器人操作臂,其中使用多维几何弹簧将机器人末端执行器的位姿 \( {H^0}_t \) 对齐到期望位姿 \( {H^0}_d \),并且通过在每个自由度上设置关节空间阻尼器向系统中注入阻尼(见图4)。
给定对称的平移、旋转和耦合刚度矩阵 \( K_t \)、\( K_c \) 和 \( K_o \),用矩阵 \( K∈R^{6×6} \) 定义的空间几何弹簧对操作臂施加的力是相对位姿 \( {H^d}_t \) 的函数:
\( K = \begin{pmatrix} K_o & K_c \\ {K^T}_c & K_t \end{pmatrix} \)
该力在末端执行器坐标系中被计算为一个六维力旋量 \( W^t=[m^t f^t] \),计算如下[2]:
\( \widetilde{m^t} = -2as({G_o}{{R^d}_t}) - as ({G_o}{{R^t}_d}{\widetilde{{p^d}_t}}{\widetilde{{p^d}_t}}{{R^d}_t}) - 2as({G_c}{\widetilde{{p^d}_t}}{{R^d}_t}) \)
\( \widetilde{f^t} = -{{R^t}_d}as({G_o}{\widetilde{{p^d}_t}}){{R^d}_t} - as ({G_o}{{R^t}_d}{\widetilde{{p^d}_t}}{{R^d}_t}) - 2as({G_c}{{R^d}_t}) \)
其中:
- \( as(⋅) \) 是一个给出方阵斜对称部分的运算符
- \( G_t \)、\( G_c \) 和 \( G_o \) 是空间弹簧的协刚度矩阵,计算为 \( G_x = \frac{1}{2}tr(K_x)I−K_x \)
- \( tr (.) \)是张量迹运算符
- ~ 是一个表示向量叉乘矩阵形式的波浪号运算符
将力旋量 \( W^t \) 坐标变换到惯性参考系 \( Ψ_0 \) 后,可以通过以下方程计算能够模拟操作臂末端执行器期望力旋量的关节转矩 \( τ \):
\( (W^o)^T = A{d^T}_{{H^t}_o} (W^t)^T \)
\( τ = {J^T}(q){W^o} \)
其中:
- \( Ad (⋅) \) 是齐次矩阵的伴随矩阵
- \( J(q) \) 是机器人操作臂的雅可比矩阵
对具有阻抗控制的机器人操作臂进行建模
为了评估机器人操作臂的控制算法,研究团队使用 Simscape Multibody™ 开发了 Kinova® Gen3 Manipulator 的七自由度动态模型。 利用 URDF 格式的操作臂 CAD 模型,可以使用以下命令自动生成可用于动态仿真的详细多体模型:
smimport(kinovaGen3.urdf')
下图所示的完整系统模型包括期望姿态生成器、环境障碍物和外部交互,用于通过仿真对控制器进行广泛评估(图5)。
Robotics System Toolbox™ 通过重力补偿算法进一步增强了操作臂的阻抗控制器,从而提升了操作性能。 因此,如图 6 所示,控制器的最终输出是一个关节空间扭矩,即空间弹簧、重力补偿和阻尼注入三部分扭矩的总和。
仿真结果
在 X 方向施加外力的仿真于 \( t = 16 \) \(sec \) 进行测试,并且有一个沿 x 轴移动的障碍物在大约 \( t = 30\) \(sec \) 与操作臂发生交互(见图 7)。 正如预期的那样,当对一个笛卡尔平移刚度为 \(K_t =400 \) \(N/m \) 的阻抗控制机械臂施加 \(F_{ext} = 40N \) 的外力时,产生了 \(x_{def} = 0.1m \) 的位移。 此外,在与移动障碍物交互的过程中,该系统也展现出了稳定且逼真的动态行为,这一点在由力学浏览器生成的视频动画(图8)中得到了清晰的体现。
图 8. 展示机器人的 3D 运动及其与障碍物互动的动画。
通过仿真结果验证,笛卡尔阻抗控制器不仅赋予了期望的柔顺性,从而实现灵活的交互能力,还避免了在操作臂控制中进行计算量大的逆运动学计算。 这也是一种具有物理可解释性和直观性的控制设计方法,并且需要一个关节级扭矩控制器来实现。
参考资料
[1] Hogan, Neville. “Impedance Control: An Approach to Manipulation: Part I—Theory; Part II—Implementation; Part III—Applications.” Journal of Dynamic Systems, Measurement, and Control, vol. 107, no. 1, March 1985, pp. 1–24.
[2] Stramigioli, Stefano. Modeling and IPC control of Interactive Mechanical Systems — A Coordinate-Free Approach, Lecture Notes in Control and Information Sciences (Springer London, 2001).
2025 年发布