对于常见的球腕6轴机械臂构型,在大多数资料中奇异点描述如下:
-
肩部奇异点(Shoulder singularity): 肩部奇异点是在机器人手腕的中心与J1轴关节在同一条直线上时发生。这种情况下,会导致关节轴1和4试图瞬间旋转180度。
-
肘部奇异点(Elbow singularity): 当机器人手腕的中心与关节轴2和3处于同一平面时,会产生肘部奇异点。肘部奇异点看起来像机器人"伸得太远",导致肘部锁定在某个空间位置。
-
腕部奇异点(Wrist singularity): 当机器人的两个手腕轴(关节轴4和6)在同一条直线上时,就会发生这种情况,这可能会导致这些关节试图立即旋转180度。
对于肘部奇异和腕部奇异,博主无异议,而对于肩部奇异点,博主发现一个问题,即即使球腕中心点与J1轴线不重合,也可能存在该问题。
案例如下:
现有一机器人构型(最常见的构型)如下图所示,
MDH被定义为:
robot:: 6 axis, RRRRRR, modDH, slowRNE
+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0.1| 0| 0| 0|
| 2| q2| 0| 0| 1.5708| 1.5708|
| 3| q3| 0| 0.2| 0| 1.5708|
| 4| q4| 0.2| 0| 1.5708| 0|
| 5| q5| 0| 0| -1.5708| 0|
| 6| q6| 0.1| 0| 1.5708| 0|
+---+-----------+-----------+-----------+-----------+-----------+
在当前位置下,坐标系456原点与1轴重合,发现雅可比矩阵的秩为5。
当我给连杆2一个较大的偏置时,此处d2=200,此时构型如下图所示:
从下图中可以看到,坐标系456原点与J1轴线已不再重合,但雅可比矩阵仍奇异。
由此可见,常见的肩部奇异描述是有问题的,正确的肩部奇异点描述应如下:
腕部中线点在通过J1轴线且平行J2轴线的平面上。
腕部中线点在通过J1轴线且平行J2轴线的平面上。
腕部中线点在通过J1轴线且平行J2轴线的平面上。
What are robot singularities
测试代码如下:
matlab
% 通过修改d2的值,观察该现象
clear,clc,close all
d1 = 100;
d2 = 0;
d4 = 200;
d6 = 100;
a3 = 200;
d=[d1 d2 0 d4 0 d6]/1000;
a=[0 0 a3 0 0 0]/1000;
alpha=[0 pi/2 0 pi/2 -pi/2 pi/2];
offset = [0 pi/2 pi/2 0 0 0];
for i=1:6
Link(i) = RevoluteMDH('d', d(i),'a', a(i),'alpha', alpha(i), 'offset', offset(i));
end
robot = SerialLink(Link,'name','robot')
R = sqrt(a3*a3+d4*d4);
q = [0,-asin(a3/R),pi/2,0,pi/4,pi/2]
J = robot.jacob0(q)
[~,S,~]=svd(J)
rankJ = rank(J)
robot.plot(q)
jsingu(J)
T01 = robot.links(1).A(q(1)).T;
T12 = robot.links(2).A(q(2)).T;
T23 = robot.links(3).A(q(3)).T;
T34 = robot.links(4).A(q(4)).T;
T04 = T01 * T12 * T23 * T34
参考链接: