try ai
科普
编辑
分享
反馈
  • 机器人学中的运动学

机器人学中的运动学

SciencePedia玻尔百科
关键要点
  • 机器人的位姿和运动通过旋转矩阵和齐次变换进行数学描述,这构成了正向运动学的基础。
  • 雅可比矩阵提供了关节速度和末端执行器速度之间的关键联系,定义了运动控制和失去移动能力的奇异构型。
  • 逆向运动学,即为期望的末端执行器位姿寻找关节角度的问题,通常使用数值优化和雅可比伪逆来解决。
  • 运动学原理的应用超越了机器人控制,延伸至标定、通过可操作性进行设计分析,以及仿生机器人学和数据科学等领域。

引言

在机器人学这个错综复杂的世界里,命令机器有目的、有精度地移动是最终目标。从装配线上的机械臂到行星探测车,每个机器人都是由连杆和关节组成的集合体,其构型必须用数学的精确性来描述和控制。但是,我们如何将一个高层目标,比如“拿起那个物体”,转化为执行它所需的具体关节角度和速度呢?这个基本挑战属于运动学的范畴——研究运动的几何学,而不考虑引起运动的力。本文将作为这一核心领域的指南。第一章“原理与机制”将从零开始构建运动学的数学语言,介绍旋转矩阵、正向运动学以及雅可比矩阵的关键作用。随后的“应用与跨学科联系”一章将展示这些理论工具如何应用于解决现实世界的问题,从校准实体机器人、解决逆向运动学问题,到设计更好的机器,甚至解码自然系统的运动。

原理与机制

想象一下,你正试图描述一个简单的物体,比如你书桌上的一本书。你可能会陈述它的位置——也许是“距离桌子边缘十英寸”——以及它的方向——“与长边平行”。在机器人学的世界里,我们必须做同样的事情,但要用不折不扣的数学精度。一个机器人,无论是在工厂里的固定机械臂还是在火星上的探测车,都是一个刚体,或者更常见的是,一组由连杆连接起来的刚体集合。要命令它,我们必须首先能够描述它。这就是运动学的核心:运动的几何学,不考虑引起运动的力。

位姿的语言:机器人在哪里?

让我们思考一个单一的刚体,比如无人机的机身。它存在于我们的三维世界中,我们可以称之为​​世界坐标系​​。无人机本身有其内在的“前”、“上”和“右”的感觉,这定义了它自己的坐标系,即​​本体坐标系​​。描述无人机方向的核心任务是具体说明其本体坐标系相对于世界坐标系是如何倾斜的。

最优雅的方法是使用一个 3×33 \times 33×3 的矩阵,称为​​旋转矩阵​​,用 RRR 表示。如果你有一个向量代表无人机坐标系中的一个位置,比如 vb\mathbf{v}_bvb​,用 RRR 乘以它,就会得到同一个向量在世界坐标系中的坐标:vw=Rvb\mathbf{v}_w = R \mathbf{v}_bvw​=Rvb​。但这个矩阵 RRR 是什么呢?

这里有一个美妙的直觉。让我们考虑无人机本体坐标系的基本轴:它的x轴 (100)T\begin{pmatrix} 1 & 0 & 0 \end{pmatrix}^T(1​0​0​)T,y轴 (010)T\begin{pmatrix} 0 & 1 & 0 \end{pmatrix}^T(0​1​0​)T 和z轴 (001)T\begin{pmatrix} 0 & 0 & 1 \end{pmatrix}^T(0​0​1​)T。如果我们用 RRR 变换它们中的每一个,我们会发现结果就是 RRR 的相应列。这意味着旋转矩阵的列不过是从外部世界视角看到的无人机自身的轴!

这个简单的观察带来了一个深远的结果。由于无人机的轴根据定义是相互垂直且单位长度的,所以旋转矩阵的列也必须是相互垂直的单位向量。用数学术语来说,它们构成了一个​​标准正交集​​。这个性质,RTR=IR^T R = IRTR=I(其中 III 是单位矩阵),是刚性旋转的数学标志。它保证了变换保留了所有的长度和角度。当你使用旋转矩阵时,你确保了物体作为一个单一的、不可变形的整体进行旋转——它不会拉伸、剪切或扭曲。这种标准正交性是刚性的数学体现。

正向运动学:连接链杆

大多数机器人不是单一的刚体,而是​​串联链​​——一系列由关节连接的连杆。想想你自己的手臂:你的上臂、前臂和手是连杆,由你的肩、肘和腕关节连接。如果你知道所有关节的角度,你就能算出你的手在哪里。这个从关节参数到末端执行器(手、夹持器或工具)的位置和方向的过程被称为​​正向运动学​​。

对于一个简单的双连杆平面臂,我们可以使用基本的三角函数。如果长度为 L1L_1L1​ 的第一根连杆处于角度 θ1\theta_1θ1​,长度为 L2L_2L2​ 的第二根连杆处于相对角度 θ2\theta_2θ2​,那么末端执行器的位置 (x,y)(x, y)(x,y) 只需将每个连杆的向量分量相加即可找到:

x=L1cos⁡(θ1)+L2cos⁡(θ1+θ2)x = L_1 \cos(\theta_1) + L_2 \cos(\theta_1 + \theta_2)x=L1​cos(θ1​)+L2​cos(θ1​+θ2​)
y=L1sin⁡(θ1)+L2sin⁡(θ1+θ2)y = L_1 \sin(\theta_1) + L_2 \sin(\theta_1 + \theta_2)y=L1​sin(θ1​)+L2​sin(θ1​+θ2​)

这非常直接,但对于有六个、七个或更多关节的机器人来说,嵌套的三角表达式会变成一场噩梦。我们需要一个更系统的方法。这正是矩阵真正力量的体现。我们可以将从一个连杆到下一个连杆的变换——关节处的旋转加上沿连杆长度的平移——表示为一个单一的 4×44 \times 44×4 ​​齐次变换矩阵​​。这个矩阵巧妙地打包了旋转和平移信息。

对于一个有 nnn 个连杆的机械臂,从基座到末端执行器的变换就是每个连杆的独立矩阵的乘积:

Tend=T1T2T3…TnT_{end} = T_1 T_2 T_3 \dots T_nTend​=T1​T2​T3​…Tn​

这是一个惊人优雅的结果。一个复杂的、铰接的链条通过模块化构建块的简单乘法来描述。最终的矩阵 TendT_{end}Tend​ 包含了我们需要知道的一切:其左上角的 3×33 \times 33×3 子矩阵是末端执行器方向的旋转矩阵 RRR,其第四列的前三个元素给出了末端执行器的位置向量 (x,y,z)(x, y, z)(x,y,z)。

微分运动学:运动的艺术

知道机器人的位姿是静态的。我们真正关心的是运动。如果关节以一定的速度(角速度)转动,末端执行器在空间中移动的速度有多快?这种关系属于​​微分运动学​​的范畴。

连接关节速度世界和末端执行器速度世界的桥梁是一个至关重要的矩阵:​​雅可比矩阵​​,用 JJJ 表示。雅可比矩阵本质上是正向运动学方程的导数。它提供了一个线性映射,将关节速度 q˙=(θ˙1,θ˙2,… )T\dot{\mathbf{q}} = (\dot{\theta}_1, \dot{\theta}_2, \dots)^Tq˙​=(θ˙1​,θ˙2​,…)T 转换为末端执行器的线速度和角速度 v=(x˙,y˙,… )T\mathbf{v} = (\dot{x}, \dot{y}, \dots)^Tv=(x˙,y˙​,…)T。关系非常简单:

v=J(q)q˙\mathbf{v} = J(\mathbf{q}) \dot{\mathbf{q}}v=J(q)q˙​

你可以把雅可比矩阵想象成将速度从关节角度的抽象空间“前推”到机器人执行任务的具体物理空间。

这种关系是控制机器人的关键。通常,我们知道末端执行器期望的速度——例如,我们希望焊接工具以10厘米/秒的速度沿着焊缝移动。逆问题是找到实现这一目标所需的关节速度。如果雅可比矩阵是方的且可逆,解就很直接:

q˙=J−1(q)v\dot{\mathbf{q}} = J^{-1}(\mathbf{q}) \mathbf{v}q˙​=J−1(q)v

这个方程式,一种称为“分解速率运动控制”的控制方法的核心,使得机器人能够平滑地追踪路径或跟随移动物体。通过连续计算机器人当前构型的雅可比矩阵及其逆矩阵,控制器可以确定产生手部期望运动所需的确切关节速度。

奇异点:当机器人卡住时

如果雅可比矩阵 JJJ 不能被求逆会发生什么?这不仅仅是一个数学上的好奇心;它是一种被称为​​运动学奇异点​​的关键物理状态。当一个矩阵的行列式为零时,它是不可逆的。

对于我们简单的双连杆平面臂,雅可比矩阵的行列式简化为一个极具启发性的表达式:det⁡(J)=L1L2sin⁡(θ2)\det(J) = L_1 L_2 \sin(\theta_2)det(J)=L1​L2​sin(θ2​)。当 det⁡(J)=0\det(J) = 0det(J)=0 时出现奇异点,这发生在 sin⁡(θ2)=0\sin(\theta_2) = 0sin(θ2​)=0 时。这意味着 θ2=0\theta_2 = 0θ2​=0 或 θ2=π\theta_2 = \piθ2​=π 弧度。物理意义立刻清晰:臂要么完全伸展,要么完全折回。

在奇异点,机器人的能力发生了根本性改变:

  1. ​​失去移动性​​:机器人失去了在某些方向上移动其末端执行器的能力。当我们的双连杆臂完全伸展时,你可以随心所欲地移动关节,但你无法在径向方向上产生任何瞬时速度(将手进一步伸出或收回)。可达到的速度空间,即雅可比矩阵的​​值域空间​​,会坍缩,不再填满整个工作空间。
  2. ​​内部运动​​:同时,机器人可能会获得一些不影响末端执行器的运动。在奇异点,存在非零的关节速度 q˙\dot{\mathbf{q}}q˙​ 使得 Jq˙=0J \dot{\mathbf{q}} = \mathbf{0}Jq˙​=0。关节可以移动,但手部完全静止。这是雅可比矩阵​​零空间​​中的一种运动。

奇异点就像死区。试图命令机器人在奇异点附近向“禁止”方向移动,会导致控制器要求极高、通常是物理上不可能的关节速度,因为它拼命地试图用一个接近零的行列式来求解 q˙=J−1v\dot{\mathbf{q}} = J^{-1} \mathbf{v}q˙​=J−1v。这就是为什么机器人的路径规划要仔细避开奇异构型的原因。

可操作性:敏捷性的度量

并非所有非奇异构型都是生而平等的。在某些位姿下,机器人可能在所有方向上都灵巧快捷。在另一些位姿下,它可能在一个方向上强壮,但在另一个方向上却很弱。我们需要一种方法来量化这种“敏捷性”或​​可操作性​​。

想象一下,我们命令机器人的关节以固定的“努力”量移动——比如,它们速度的平方和为一。可以产生的所有可能的末端执行器速度的形状是什么?答案是一个椭球,即​​可操作性椭球​​。

这个椭球为我们提供了一幅关于机器人能力的美妙、直观的图景。

  • 如果椭球是一个大的、完美的球体,那么机器人是各向同性的——它可以在所有方向上同样良好地移动。
  • 如果椭球像雪茄一样又长又细,那么机器人在沿雪茄轴线方向移动时比垂直于该方向移动时要有效得多。
  • 当机器人接近奇异点时,椭球会沿着一个或多个轴变扁,最终在奇异点本身坍缩成一个平面或一条线。最短轴的长度是衡量机器人距离失去一个自由度有多近的度量。

这背后的数学同样优雅。这个椭球的形状和方向由矩阵 M=JJTM = J J^TM=JJT 定义。为了让机器人能够在任何方向上移动,椭球在每个维度上都必须有非零的厚度。它不能是完全平的。这个物理要求精确地对应于矩阵 MMM 必须是​​正定​​的数学条件——它的所有特征值,代表椭球主轴长度的平方,都必须严格大于零。这提供了一个深刻的联系,将物理性质(在任何方向移动的能力)与从机器人几何结构派生的矩阵的抽象属性联系起来。运动学不仅仅是一组方程;它是一个丰富的几何结构,支配着机器人能做的和不能做的一切。

应用与跨学科联系

我们已经花时间学习了运动学的语言——由变换、关节角度和雅可比矩阵描述的精确的运动语法。人们可能倾向于认为这纯粹是一种数学练习,是对理想化机器的枯燥描述。但事实远非如此。这一章是关于这个抽象语言与现实世界相遇的激动人心的时刻。在这里,几何蓝图引导着物理机器的舞蹈,直面其不完美之处,甚至帮助我们解码自然本身的秘密。我们将看到,运动学的原理并不仅限于工厂车间;它们是一个通用的工具包,用于理解、设计和控制所有形式的运动。

追求精度:驯服真实的机器人

工程师绘制的机器人图纸是一件完美的几何作品。但是,根据它制造出来的机器人,一个由钢铁和电线构成的生物,不可避免地是一系列微小缺陷的集合。连杆的长度不完全正确,关节没有完美对齐。如果我们的控制算法基于完美的蓝图,那么真实机器人的手永远不会精确地停在我们告诉它的位置。我们如何弥合理想模型与物理现实之间的差距?

这就是​​机器人标定​​的艺术。我们可以让机器人执行一系列预定动作,并使用外部相机或传感器精确测量其末端执行器的实际位置。然后,我们得到了一组指令关节角度和一组相应的测量位置。这里的任务是找到误差参数——一个微小的关节偏移,一个连杆长度的轻微误差——这些参数能最好地解释模型预测与机器人实际动作之间的差异。这变成了一个经典的优化问题:调整模型参数以最小化预测与现实之间的平方误差总和。通过解决这个问题,通常使用像Gauss-Newton算法这样的数值方法,我们可以让机器人对自己的身体有一个更真实的理解,有效地像校准一件精密的乐器一样调整它。

但即使是完美标定的机器人,也受到现实世界持续干扰的影响。读取关节角度的传感器精度有限,微小的波动——电子噪声、齿轮的轻微抖动——给我们的机器人构型知识带来了小误差。这些微小的关节级误差对可能在数米之外的末端执行器有什么影响?雅可比矩阵给了我们答案。正如它将关节速度映射到末端执行器速度一样,它也提供了关节空间误差到任务空间误差的一阶映射。关节中的一个小误差向量 Δθ\Delta \boldsymbol{\theta}Δθ 被转换为手部的位置误差 Δp≈J(θ)Δθ\Delta \mathbf{p} \approx J(\boldsymbol{\theta}) \Delta \boldsymbol{\theta}Δp≈J(θ)Δθ。通过分析雅可比矩阵,我们可以发现机器人的敏感性。我们可以看到,根据臂的姿态,肩关节的一个小误差可能比腕关节的类似误差在夹持器处引起大得多的误差。这种分析不仅仅是学术性的;它对于设计鲁棒的机器人和理解其精度极限至关重要。

巨大的挑战:解决逆向问题

也许我们要求机器人完成的最基本任务就是“把你的手放在这里”。这就是逆向运动学(IK)问题。虽然正向运动学是一个直接的计算,但IK是一个深刻而迷人的挑战。对于许多机器人,特别是那些关节数量超过任务所需(所谓的冗余机械臂)的机器人,没有简单、唯一的公式。这正是我们运动学工具包真正力量的体现,将问题变成了一个展示优美数学思想的舞台。

一种强有力的方法是将问题重新定义为搜索。我们希望找到一组关节角度 q\mathbf{q}q,使得末端执行器位置 g(q)g(\mathbf{q})g(q) 尽可能接近目标 ptarget\mathbf{p}_{\text{target}}ptarget​。我们可以定义一个“误差”函数,比如平方距离 f(q)=∥g(q)−ptarget∥2f(\mathbf{q}) = \|g(\mathbf{q}) - \mathbf{p}_{\text{target}}\|^2f(q)=∥g(q)−ptarget​∥2,然后使用数值优化技术来找到最小化这个误差的 q\mathbf{q}q。像Gauss-Newton算法这样的方法从一个猜测开始,在关节空间中迭代地迈出小步,每一步都经过计算以最好地减少误差,直到手部收敛到目标。这种方法非常通用;它几乎可以为任何机器人找到解决方案,即使目标在物理上无法达到,它也会找到最接近的可能构型。

一种不同的、更动态的哲学是从事物的速度角度来思考。我们不再问“哪个最终姿态能到达目标?”,而是问“什么样的关节速度能让手立即朝目标移动?”。这让我们回到了雅可比矩阵。关系 p˙=Jq˙\dot{\mathbf{p}} = J \dot{\mathbf{q}}p˙​=Jq˙​ 可以被“逆转”以找到产生期望手部速度 p˙\dot{\mathbf{p}}p˙​ 所需的关节速度 q˙\dot{\mathbf{q}}q˙​。对于冗余机器人,雅可比矩阵是一个“宽”矩阵,系统有无限多个解。在这里,线性代数提供了一颗璀璨的明珠:Moore-Penrose伪逆。解 q˙=J+p˙\dot{\mathbf{q}} = J^{+} \dot{\mathbf{p}}q˙​=J+p˙​ 给了我们唯一的关节速度集,既能实现期望的手部运动,又具有最小可能的范数。它是最“高效”的解。稳健地计算这个伪逆,特别是在机器人失去移动性的奇异点附近,可以通过奇异值分解(SVD)优雅地处理,这是现代数值分析的基石。

当然,真实的机器人不能无限远或无限快地移动它们的关节。它们有严格的物理限制。一个实用的IK求解器必须尊重这些约束。我们可以通过将任何提议的关节运动投影回可行范围内来实现这一点,确保机器人永远不会试图违反其自身的物理边界。此外,冗余机器人的“低效”实际上是一种福音。因为有多种方式可以实现一个主要任务(比如到达一个点),我们可以利用额外的自由度来满足次要目标。通过在我们的优化问题中添加一个正则化项,我们可以命令机器人不仅要到达目标,还要,例如,使其关节远离极限,或以避免障碍物的方式移动。这就是优雅和智能运动的艺术。

机器人的度量:设计与性能

到目前为止,我们已经使用运动学来控制一个给定的机器人。但是运动学能帮助我们设计出更好的机器人吗?绝对可以。这里的关键概念是​​可操作性​​。在任何给定的姿态下,机器人移动其手部在某些方向上比在其他方向上更容易。这被可操作性椭球所捕捉,这是一个优美的几何对象,其形状和大小完全由雅可比矩阵决定。

当机器人以所有可能的单位速度组合移动其关节时,末端执行器的速度向量所描绘出的形状就是这个椭球。这个椭球的主轴告诉我们最大和最小移动性的方向。这些轴的长度与矩阵 JJTJJ^TJJT 的特征值有关。长轴指向手部可以快速有力移动的方向;短轴表示困难的方向。如果一个轴收缩到零,机器人就处于奇异状态——一个它无法朝该方向移动的位置。通过在机器人的工作空间内分析这些椭球,设计者可以量化机器人的灵巧性,识别有问题的构型,并比较不同的设计以选择最适合特定应用的设计。

工厂之外:自然界与数据中的运动学

我们所讨论的原理不仅仅是人类为我们自己的机器所做的发明;它们是任何关节系统的普适运动定律。这一认识为迷人的跨学科联系打开了大门。

最令人兴奋的前沿之一是​​仿生机器人学​​。要制造一个像鱼一样游泳或像昆虫一样飞行的机器人,我们必须做的不仅仅是复制形状。我们必须复制物理原理。如果我们建造一个小型机器人鱼来研究大型鳟鱼的游泳,我们不能简单地线性缩放尾部摆动频率。身体周围的水流由无量纲数控制,例如雷诺数(关联惯性力与粘性力)和斯特劳哈尔数(关联振荡速度与前进速度)。要实现运动学相似性,即流场模式相同,我们的模型必须匹配这些数字。这需要对扑动频率进行特定的缩放,这取决于长度和流体特性,这是运动学和流体动力学的美妙结合。同样的原理也适用于制造大型昆虫机器人模型,以研究复杂的空气动力学现象,如“拍合-飞掠”机制,这种机制在其自然尺度上很难观察到。通过这种方式,机器人学成为一种强大的科学工具,让我们能够探索自然世界的秘密。

最后,我们来到了一个真正深刻的应用。如果我们有一个复杂的系统——一台未知的机器,或者一只行走的动物——我们只能通过视频追踪来观察它的运动,而对其内部“蓝图”一无所知,我们能仅从数据中推断出它的运动学结构吗?答案是,出人意料地,可以。通过收集身体上被追踪点的时间序列数据,并将其组织成一个大矩阵,我们可以应用像奇异值分解(SVD)这样的技术。SVD可以将复杂的高维运动分解为其基本的、独立的组成部分。“显著”奇异值的数量揭示了系统潜在自由度的真实数量。它可以自动发现一个看似复杂的运动实际上只由一个或两个独立的关节运动驱动。这项强大的技术,将运动学与数据科学联系起来,让我们能够仅凭其舞蹈的数据,找到一个系统隐藏的运动学灵魂。