(6.1)MATLAB机器人正、逆解中姿态求解的欧拉角的说明

1、欧拉角的类型:

例程中MATLAB机器人工具箱中采用的是世界坐标系的欧拉角(先旋转的在右边)。如下:

利用机器人工具箱的.teach()函数进行可是化时的欧拉角如下:

2、正解算法中的欧拉角: 

在运动学正解中根据输入的各关节角度得到末端的位姿,这里输出的姿态就是欧拉角即RPY。利用上面的旋转矩阵便可以根据齐次矩阵中的旋转矩阵求解R(\gamma)P(\beta)Y(\alpha)角。

   %% 求末端姿态Rotations about X, Y, Z axes (for a robot gripper)
    R=T06;
    if abs(abs(R(1,3)) - 1) < eps  % when |R13| == 1
        % singularity
        rpy(1) = 0;  % roll is zero
        if R(1,3) > 0
        rpy(3) = atan2( R(3,2), R(2,2));   % R+Y
        else
             rpy(3) = -atan2( R(2,1), R(3,1));   % R-Y
        end
        rpy(2) = asin(R(1,3));
    else
        rpy(1) = -atan2(R(1,2), R(1,1));
        rpy(3) = -atan2(R(2,3), R(3,3));

        rpy(2) = atan(R(1,3)*cos(rpy(1))/R(1,1));
    end
    RPY=rpy*180/pi;
    Rall=RPY(1);Pitch=RPY(2);Yaw=RPY(3);

这里还需要注意当\beta =90时,sin\beta =1,cos\beta =0,此时:

 

 当\beta =-90时,sin\beta =-1,cos\beta =0,此时:

 

这时只能求出\alpha +\gamma\alpha -\gamma 的值,通常令\alpha =0,求出此时的\gamma。如上代码所示。

3、逆解算法中的欧拉角:

在逆运动学中输入的是位姿Pos=[x,y,z,\gamma ,\beta ,\alpha ],先输入的\gamma是绕z轴转动的角度,\beta是绕y轴转动的角度,\alpha是绕x轴转动的角度。

根据输入的参数得到的齐次矩阵为:

综上可知,在正逆解中的欧拉角类型都是一致的采用的都是世界坐标系的欧拉角: 

 而且他们也必须一致否则正逆解的结果就不会统一起来。

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值