出品:机器人技术笔记
零空间在机器人控制里应用很广。冗余机器人控制、HQP 分层二次规划优化等问题,都会碰到它。
零空间,可以先理解成这样:系统内部在变化,我们关心的输出却没有变化。放到机械臂上,就是一些关节仍在转动,但末端的位置和朝向可以保持不变。机器人可以利用这部分额外的运动,调整自身姿态,同时继续完成原来的任务。
可这个词听着就很专业。查资料,迎面而来的往往是线性代数、子空间和一串高维矩阵。这些定义没有错,只是很难在脑中形成画面。
其实事情没这么复杂。想象一个三维空间里的物体,怎样投影到二维平面就够了。
桌面投影,丢掉了哪个方向
把一支笔放在桌面上方,只看笔尖向桌面的垂直投影。笔尖在空间里有三个坐标 x、y、z,投影点在桌面上只有 x、y 两个坐标。
矩阵 P 把三维速度变成二维投影速度。它保留前两个分量,对第三个分量完全没有反应。
当 ẋ、ẏ 为零,但 ż 不为零时,左边仍然是零。因此,这个投影矩阵的零空间是:
图 5:末端位置和朝向保持不变时,7 关节机械臂仍可沿零空间调整内部姿态。
这多出来的一维不是摆设。末端继续跟踪目标时,机械臂可以利用它远离关节限位、躲避障碍,或者把肘部调到更合适的姿态。在任务优先级控制里,这就是让低优先级动作不干扰高优先级任务的基本思路。
用伪逆把它写成通用的关节速度解,可以看得更清楚:

前一项让末端完成期望速度 V_d;后一项把任意关节速度 z 投到零空间里。因为 JN=0,后一项不会改变末端的瞬时速度。
还有一个容易忽略的边界。零空间运动说的是当前姿态下的瞬时速度;关节一动,雅可比矩阵也会变,控制器需要不断重新计算。关节限位、自碰撞和奇异姿态还会继续压缩实际可用的动作。在奇异姿态下,雅可比的秩降低,零空间的维数可能增加,但这不代表机器人变得更灵活;它同时也失去了某些末端运动方向。[2]
回到开头那支笔,零空间就是竖直于桌面的那个方向:笔尖在动,投影不动。放到机器人上,只是把三维换成了七维,把桌面投影换成了六维末端速度而已。这样理解,零空间就可以脱离抽象的数学推导,成为直观的概念。