如何用Matlab实现机器人的变换矩阵
如何用Matlab实现机器人的变换矩阵
前言
其中有些思路参考了这篇博客,有兴趣的同学可以看一下博客参考(关于位姿变换矩阵)
刚开始学工业机器人的时候,大家都先学到了其中的一些矩阵变换,但是计算过程还是不太熟悉,如果想要有较深的体验,可以从本文中获取一些经验,具体实例以我上一个博客中的两个三棱柱为主。
1.确定初始位姿
以我上一篇博客为例,那么初始位姿已经确定了代码如下
V1=[
-1,0,2;
-1,4,0;
-1,0,0;
1,0,2;
1,4,0;
1,0,0];
这里每一行是每一个顶点的x,y,z坐标值
2.矩阵方程
那么如果我要对这样一个点集做转换,就需要位移变换矩阵以及角度变换矩阵,所以这里做两个function,具体代码如下
function fx=Trans(a,b,c)
fx=[1,0,0,a;
0,1,0,b;
0,0,1,c;
0,0,0,1;];
end
function fx=Rot(a,b)
switch a
case 'X轴'
fx=[1,0,0,0;
0,cos(b),-sin(b),0;
0,sin(b),cos(b),0;
0,0,0,1];
case 'Y轴'
fx=[cos(b),0,sin(b),0;
0,1,0,0;
0,-sin(b),0,cos(b);
0,0,0,1];
case 'Z轴'
fx=[cos(b),-sin(b),0,0;
sin(b),cos(b),0,0;
0,0,1,0;
0,0,0,1]; %具体内容属于机器人学内容,这里不做赘述
end
于是后续可以直接调用该方程
3.最终变换过程
初始位姿如下图所示
而需求的最终的位姿如下图