机器人正逆解的概念:
正解:已知机器人各个关节角的值→机器人末端在空间中的位置;
逆解则相反,而逆解是机器人中很重要的东西。下面是利用matlab求机器人的逆解(正解同理):
matlab代码如下所示:
clear;
clc;
%建立机器人模型
L_1 = 20;
L_2 = 50;
L_3 = 40;
% theta d a alpha offset(为机器人的关节初始偏置自行要求)
L(1) = Link([0 L_1 0 pi/2]);
L(2) = Link([0 0 L_2 0]);
L(3) = Link([0 0 L_3 0]);
robot=SerialLink([L(1) L(2) L(3)],'name','S725');
p = [1 0 0 90;
0 1 0 0;
0 0 1 20;
0 0 0 1];
% P_1 = [ 0.539 -0.7698 0.342 62.25;
% 0.1962 -0.2802 -0.9397 22.66;
% 0.8192 0.5736 6.123e-17 77.77;
% 0 0 0 1];%验证其准确性用的
mask = [1 1 1 0 0 0];%
q=ikine(robot,p,'mask',mask) %ikine逆解函数,根据末端位姿p,求解出关节角q
robot.plot(q);%输出机器人模型,后面的三个角为输出时的theta姿态
q_1 = q(1)*180/pi;
q_2 = q(2)*180/pi;
q_3 = q(3)*180/pi;%弧度制转为角度值
注:欠驱动机器人,对于操纵器具有少于6个DOF的情况,解空间向量具有比可以由操纵器关节坐标跨越的更多尺寸。q=R.ikine(T,q0,m,options)。当使用3自由度机械手时,旋转方向可能不重要,在这种情况下m mm=[1 1 1 0 0 0]。
可参考此篇博文,正逆解
运行结果如下所示:

注:机器人正解获得的位姿矩阵方程,如下图所示:P1.t为位移坐标,P1.n、P1.o、P1.o为旋转算子。

8957

被折叠的 条评论
为什么被折叠?



