JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

多余的关节与灵巧度:冗余、零空间与可操作度

当手臂的关节数超过任务所需时,它可以用许多方式完成目标,从而带来更聪明、更灵巧的运动。

肩—肘—腕的小把戏

把一杯水端在身前,让手保持纹丝不动,然后上下摆动你的肘部。水杯没有移动,但你的整条手臂却一直在重新调整姿态。这之所以可能,是因为你的手臂关节数超过了任务严格所需:把手放到空间中某个位姿(位置加朝向)只需要六个数,而你的肩、肘、腕加在一起却提供了七个转动自由度。多出来的那一个,是你可以随意支配的自由。

机械臂也可以拥有同样的天赋。本阶梯前几级已经搭好了核心机器:正运动学(输入关节角,输出手部位姿)、逆运动学(输入目标位姿,输出关节角),以及把关节速度与手部速度联系起来的雅可比矩阵。本篇要讲的是,当关节数有富余时会发生什么——以及如何把这多出来的余地变成工具,而非麻烦。

冗余:一个手部位姿,多种手臂形态

当一条手臂拥有的关节自由度多于眼前任务所需时,就说它具有运动学冗余。一条七关节手臂被要求把手放到六自由度的位姿上时,有一个冗余自由度;同一条手臂若只被要求触到一个点(不管朝向),冗余就更多。冗余是相对于任务而言的,并非硬件的固定属性。

其后果意义深远。对非冗余手臂而言,一个可达的手部位姿通常对应一小组有限的关节解(经典的“肘上 vs 肘下”之选)。而对冗余手臂而言,单个手部位姿对应的是一整族连续的关节构型——以无穷多种方式停在同一个地方。逆运动学问题不再只有一个答案,而是在关节空间中拥有一条曲线、一张曲面,乃至一团体积的答案。

在这族解中明智地选择本身就是一门学问,叫做冗余消解。其思路是:让手精确停在任务要求的位置,同时把剩余的自由用在次要目标上——远离关节极限、让肘部避开障碍物,或保持灵活。手部位姿是硬约束,其余一切都是在它之下优化的偏好。

零空间运动:动起来却哪儿也没去

机器人怎样在不移动手的情况下摆动肘部?答案藏在雅可比矩阵里。回想一下,雅可比把关节速度变成手部速度。对冗余手臂来说,存在一整批关节速度组合,被雅可比映射为零手部速度——关节在动,效果却在手部相互抵消。这组自相抵消的关节运动叫做雅可比的零空间,沿它运动就是零空间运动

这正是那杯水的把戏,只是说得更精确了。零空间运动是一种内部重构:手臂自我重新排布,而末端执行器始终冻结在目标上。由于它对任务毫无代价,正是追求那些次要目标的理想场所——躲开漂向肘部的障碍物、把关节引离机械极限,或从运动学奇异点处退开(在奇异点上,手臂会失去朝某个方向运动的能力)。

Joint command = primary task + null-space term

  q_dot = J_pseudoinverse * x_dot_desired   <- moves the hand
        + N * z                              <- moves the elbow only

where N projects any desired joint motion z
into the null space, so it changes the arm's
shape WITHOUT changing the hand's velocity.
一个常见配方:第一项驱动手到达目标;第二项在不干扰手的前提下,把关节推向某个次要偏好。

你甚至可以把优先级叠起来。手部位姿可以是最高优先级,避障次之,舒适姿态垫底——每个较低目标只能在较高目标留下的自由内活动。这种在零空间中对任务分层的做法,正是现代人形机器人所用的全身控制器的种子。

可操作度:一张“手有多容易动”的地图

即便手臂能够到某个点,它在那里朝各个方向也并非同样灵活。在接近完全伸直的姿态附近,手向侧面滑动很轻松,却抗拒沿手臂方向移动——就像你自己手臂完全伸直时那样。可操作度椭球一眼就能刻画这一点:设想让关节以单位力度朝各个方向运动,并描出手响应的快慢。结果是一个椭球,沿容易的方向鼓出,沿困难的方向收窄。

一个浑圆饱满的椭球意味着手在每个方向都灵活——这是一个灵巧的位姿。一个扁如薄饼的椭球则是警告:手臂逼近奇异点,沿被压扁的那条轴几乎动弹不得。工程师把椭球归结为单一的可操作度数值(大致是它的体积),当作质量评分来用。冗余消解便可专门用零空间运动把这个评分维持得很高,引导手臂走向它依然敏捷、响应迅速的位姿。

这让前几篇里的一个概念更加锐利。手所能触到的全部点构成可达工作空间;其中那块更小、还能以任意所欲朝向到达的区域,是灵巧工作空间。可操作度又添了第三层细腻:不只看一个位姿是否可达,还看手臂到了那里之后能动得多优雅。

前沿:全身控制与基于学习的运动学

把冗余推到极限,你就来到了人形机器人。人形机器人在两条手臂、一个躯干和两条腿上分布着几十个关节,因此几乎每个任务都极度冗余。现代的答案是全身控制:把整个身体当作一个庞大的冗余系统,在每一瞬间求解出尊重一摞分级目标的关节运动——先保持平衡、再摆放双手、最后求舒适——这正是前面那套零空间分层,放大到整台机器。

经典运动学也正获得一位基于学习的搭档。数值逆运动学可能很慢、也可能卡住;如今越来越多地,会训练一个神经网络一步给出不错的关节构型,再由经典求解器加以打磨。而在最前沿,视觉—语言—动作模型模仿学习让机器人把相机图像直接映射为动作,从人类示范中隐式地吸收冗余消解,而非依赖手写规则。