來個簡單的機器人來解釋奇點(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)方向相同的速度。
這就意味着你的機器人端點的速度不是任意的了,你只能產生某個方向上的速度。
這樣機器人就奇異了。
在機器人控制上來說,就意味着,你一旦奇異了,你就不能隨意控制你的機器人朝着你想要的方向前進了。
這也就是前面同學所謂的自由度退化、逆運動學無解。
這個機器人的奇異點是什么呢?
其實奇異點可以通過觀察機器人端點的速度合成得到。
比如在當前的姿態下,機器人的端點可以產生的速度是由兩個速度合成的:v1和v2.
v1是由於第一個旋轉關節產生的;
v2是由於第二個旋轉關節產生的;

可以看到兩個速度矢量v1和v2在平面上沒有共線,它們是獨立的(記得線性代數里面的independent和dependent么)。
機器人的端點可以產生的速度就是這兩個矢量的合矢量,這個合矢量可以是任意的嗎?
來看兩個分矢量:
這兩個矢量的方向是定了的(在這一瞬間),但是大小呢?
大小是可變的,而且正比於相應的轉動關節的角速度。(線速度=角速度*距離)
可以知道在v1和v2不共線的情況下,我們是可以通過調整v1和v2的大小來得到任意的合速度的(大小和方向)。
但是,當機器人處於這個姿態的時候:

可以看到兩個速度矢量v1和v2在平面上共線了,它們是不獨立的(independent)。
這個情況很直接,無論你怎樣改變v1和v2的大小,你都只能合成出和v1(v2)方向相同的速度。
這就意味着你的機器人端點的速度不是任意的了,你只能產生某個方向上的速度。
這樣機器人就奇異了。
在機器人控制上來說,就意味着,你一旦奇異了,你就不能隨意控制你的機器人朝着你想要的方向前進了。
這也就是前面同學所謂的自由度退化、逆運動學無解。