来个简单的机器人来解释奇点(singularity)。
Scara机器人:这个机器人实际上有4个自由度:3个平动(x,y,z)+1个转动(z)。我们在此基础上再简化一下,留下2个平动(x,y),相当于我们只考虑在一个平面上的(x,y)坐标。简化模型为: 这个机器人很直观啦,你可以控制两个旋转关节来改变机器人的端点坐标。 这个机器人的奇异点是什么呢? 其实奇异点可以通过观察机器人端点的速度合成得到。 比如在当前的姿态下,机器人的端点可以产生的速度是由两个速度合成的:v1和v2. v1是由于第一个旋转关节产生的; v2是由于第二个旋转关节产生的; 可以看到两个速度矢量v1和v2在平面上没有共线,它们是独立的(记得线性代数里面的independent和dependent么)。 机器人的端点可以产生的速度就是这两个矢量的合矢量,这个合矢量可以是任意的吗? 来看两个分矢量: 这两个矢量的方向是定了的(在这一瞬间),但是大小呢? 大小是可变的,而且正比于相应的转动关节的角速度。(线速度=角速度*距离) 可以知道在v1和v2不共线的情况下,我们是可以通过调整v1和v2的大小来得到任意的合速度的(大小和方向)。 但是,当机器人处于这个姿态的时候: 可以看到两个速度矢量v1和v2在平面上共线了,它们是不独立的(independent)。 这个情况很直接,无论你怎样改变v1和v2的大小,你都只能合成出和v1(v2)方向相同的速度。 这就意味着你的机器人端点的速度不是任意的了,你只能产生某个方向上的速度。 这样机器人就奇异了。 在机器人控制上来说,就意味着,你一旦奇异了,你就不能随意控制你的机器人朝着你想要的方向前进了。 这也就是前面同学所谓的自由度退化、逆运动学无解。