先看如下代码

ML1 = Link([0   0 0     pi/2      0     ],'modified');

ML2 = Link([0 0     1    0     0   ],'modified');

ML3 = Link([0 0     1     0     0     ],'modified');

rob = SerialLink([ML1 ML2 ML3],'name','modified');

rob.tool=[eye(3),[1;0;0];0 0 0 1];

rob.plot([40,20,30]/180*pi,'scale',0.5,'delay',0.00001)

P=rob.fkine([-23.23,20,30]/180*pi);

P1 = P;

P = P.T; %将SE3数据类型转换成double数据类型 

P=rob.fkine([-23.23,20,30]/180*pi);这一步通过机器人工具箱的正运动学函数得到一个旋转加位移的4*4变换矩阵,产生的P的数据类型就是SE3,SE3数据类型不能直接用来运算,需要通过P = P.T,将其转换为double数据类型。

为了直观起见,我们将P与P.T所产生的数据单独拿出来看一下

P的数据

P.T的数据

其中t,n,o,a分别代表平移,以及旋转矩阵的n,s,a

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐