工业机器人在关节空间中运动时,仅需控制机器人的各关节轴运动到指定角度。而在常用的抛磨、焊接等加工过程中仅考虑机器人末端的运动轨迹,即在笛卡尔空间坐标系下对机器人进行轨迹规划,因此需要给定加工点位姿,来反解机器人的各关节角度。
而进行机器人的运动学逆解,就一定避不开机器人的奇异点。对于工业机器人来说,奇异点是不可避免的,属于运动机构的机械特性。一般来讲六自由度串联机器人,存在三种类型的奇异点,分别为腕部奇异、肘部奇异和肩部奇异,在这些奇异点附近,机器人会出现自由度减少或者末端微小的运动导致关节速度发生突变。
1. 工业机器人常见奇异点
1.1 腕部奇异
先从物理层面来看,机器人腕部奇异如下图所示:
此时机器人5轴的角度为0,导致机器人4轴和6轴同向, 4轴正转任何角度都可以通过6轴反转补齐,因此对于空间中一点位姿,仅机器人的4轴和6轴就可以得到无穷多组解。Robotstudio机器人库中机器人的5轴初始关节角度为30°就是为了避开腕部奇异。
1.2 肘部奇异
机器人的肘部奇异点下图所示:
此时机器人的腕部与2轴和3轴共平面时,此时机器人沿着6轴轴线的速度为0,丢失了一个自由度。
1.3 肩部奇异
机器人的肩部奇异点如图所示:
此时机器人的腕部与1轴共线,和腕部奇异类似,1轴的旋转可以通过6轴补偿,机器人逆解难以确定,且末端微小运动会导致关节变化剧烈。
2. 奇异点判定
在数学层面上,奇异点是通过机器人的雅可比矩阵来进行判定的,雅可比矩阵的定义如下式所示,其含义可以理解为:机器人关节角速度和末端笛卡尔空间速度之间的转换关系(转换系数)。
当雅可比矩阵的行列式为0时,雅可比矩阵无法求逆,因此此时机器人在笛卡尔空间的运动速度无法映射至关节空间,导致机器人的速度无法控制。
根据之前的MDH参数依靠matlab机器人工具箱求取机器人关节角度在[0 0 0 0 0 0]时的雅可比矩阵:
clc
clear all;
%% 定义机器人关节角度
theta1=0;
theta2=0;
theta3=0;
theta4=0;
theta5=0;
theta6=0;
%% 机器人连杆长度
d1=0.445;
d4=0.795;
d6=0.085;
a1=0.15;
a2=0.7;
a3=0.115;
%% 关节角度转换为弧度
q(1)=theta1/180*pi;
q(2)=theta2/180*pi-pi/2;
q(3)=theta3/180*pi;
q(4)=theta4/180*pi;
q(5)=theta5/180*pi;
q(6)=theta6/180*pi-pi;
%利用机器人工具箱根据M-DH建立机器人模型
% theta d a alpha
L1=Link([ 0 d1 0 0 ],'modified');
L2=Link([ 0-pi/2 0 a1 -pi/2 ],'modified');
L3=Link([ 0 0 a2 0 ],'modified');
L4=Link([ 0 d4 a3 -pi/2 ],'modified');
L5=Link([ 0 0 0 pi/2 ],'modified');
L6=Link([ -pi d6 0 -pi/2 ],'modified');
dof6_IRB2600=SerialLink([L1,L2,L3,L4,L5,L6],'name','IRB2600');
%输出结果
J=dof6_IRB2600.jacob0(q)
通过det函数计算可以得到机器人此时的雅可比矩阵为|J|=0,因此此时机器人处于奇异点位置,正好对应仿真图中的腕部奇异。
3. 奇异点规避
目前针对机器人奇异点的规避主要有两种方法:
(1)如下图所示,ABB机器人会在运动至奇异点附近之前进行报警,机器人停止运动,再在关节空间中通过控制各轴进行运动。因为关节运动不涉及求逆,可以顺利规避奇异点。这也是目前主流机器人厂商采用的规避方法。
(2)通过求解雅可比矩阵的伪逆 ,如根据雅可比矩阵阻尼最小二乘法来求解运动学近似解,即牺牲一定的机器人精度,到达机器人给定目标点附近的近似点,来保证机器人逆运动学的稳定性。最终使机器人在误差的允许范围内通过奇异点。