转载:为什么工业机器人至少需要6个自由度?


协作臂的设计出发点是模拟人的手臂 ,在某些特定场景下(人们越来越懒,越来越娇贵,苦活脏活累活都不想自己干),代替手臂进行抓取、码垛、喷漆、打磨等操作。新手小白要学习协作臂,理解各种基本概念,理所当然应该从重新认识我们的手臂开始。


想一想,手臂有几个关节?


从躯干往手掌方向,依次是肩、肘、腕关节。

• 肩关节运动范围大,大臂绕肩关节,可以进行上下、前后和扭转运动;

• 肘关节可以让大、小臂张合,大力水手秀肌肉的时候,一般都会弯曲肘关节;

• 腕关节灵活,可以拧螺丝、挪动鼠标(打CS)、拍手;


手臂灵活吧,这里其实已经涉及到自由度(DoF, Degree of Freedom)的概念。


机器人的自由度(DoF, Degree of Freedom),表示机器人位形所需的最小实值坐标数。——《现代机器人学-机构、规划和控制》

操作臂的自由度,是操作臂中具有独立位置变量的数目,这些位置变量确定了机构中所有部件的位置。——《机器人学导论》


概念不太好理解?举个两粟子:

• 家里卧室的门,自由度是1,因为只需要门与门框的夹角这一个变量就可以确定门的位置;

• 办公桌面上平放的一张A4纸,自由度是3,首先平面内用x,y确定A4纸中心的相对桌面的位置,再用一个转角确定A4纸长的边相对于桌面的角度。


机器人结构各异,这样算自由度好麻烦,没关系已经有大神推出了公式:


Kutzbach - Grubler公式


DoF = m(N-1-J) + sum_{i=1}^{J}{f_{i}} 


对于一个具有N个构件(含基座)的机构,令J为关节数,m为刚体的自由度数(对于平面机构,m=3;对于空间机构,m=6),fi为关节i对应的自由度数。注意:此公式只有在所有关节约束都独立的情况下才成立,否则,只能用于判断自由度的下限值。


这下可以开算了,这回是书上的粟子,都是平面机构:


image.png




图a)机构的自由度,N=5,J=4,每个关节的自由度为1,dof = 3(5-1-4)+4 = 4


图b)机构的自由度,N=5,J=5,每个关节的自由度为1,dof = 3(5-1-5)+5 = 2


图c)机构的自由度,N=6,J=7,每个关节的自由度为1,dof = 3(6-1-7) + 7 = 1


图d)机构的自由度,N=6,J=7,每个关节的自由度为1,dof = 3(6-1-7) + 7 = 1


现在,再回看看手臂的自由度是多少,能不能套用这个公式。首先N = 4(躯干(基座)、大臂、小臂、手),J = 3(肩、肘、腕)。


再来确定一下,手臂各个关节的自由度,上图来照着说。


image.png

图中每个箭头代表一个自由度,解释一下:

• 肩关节,固定在躯干上,不能移动,但能转动。3个自由度:

• 1轴,肩关节前后运动;

• 2轴,肩关节左右运动;

• 3轴,肩关节带动大臂转动;

• 肘关节,连接大臂和小臂,只能弯曲,1个自由度;

• 肘、腕关节配合,由尺骨和桡骨转动,使腕关节可以转动,1个自由度(拧钥匙);

• 腕关节,本身可以本左右摆动(玩鼠标),可以上下摆动(招手),2个自由度;


套用前面的公式,手臂自由度 dof = (4 - 1 - 3) + 3(肩)+1(肘)+3(腕) = 7;


接下来看看这个图,反手摸肚脐。大部分人的手臂都做不到,这又引入了一个概念,那就是工作空间。


image.png



机械臂的工作空间,简单的说就是机械臂可以到达的所有位置的。


机械臂由于本身设计的原因,有些位置是不能到达的,用数学来解释,就是逆运动学方程无解。下图为某协作臂的工作空间,中间的圆柱形区域是不能到达的。