摘要
在机器人工具箱中,可以用rotx( )、roty( )、rotz( )计算旋转 的旋转矩阵,默认单位为度(版本10.2.0)。可以用trplot()和tranimate()实现坐标旋转可视化。
##获取旋转矩阵
- rotx(): R=rotx( )是表示围绕X轴旋转角度为 得到的旋转矩阵,返回一个3x3的矩阵。
- roty(): R=roty( )是表示围绕Y轴旋转角度为 得到的旋转矩阵,返回一个3x3的矩阵。
- rotz(): R=rotz( )是表示围绕Z轴旋转角度为 得到的旋转矩阵,返回一个3x3的矩阵。
例如
>> R=rotx(30)R =1.0000 0 00 0.8660 -0.50000 0.5000 0.8660
绘制坐标系
-
函数trplot()
trplot?:绘制由旋转矩阵R得到的坐标系,其中坐标系根据正交旋转矩阵围绕原点旋转得到,R为3x3的矩阵。
trplot(T):trplot?:绘制由齐次矩阵T表示的三维坐标系,T为4x4的矩阵。另外函数trplot()还包含了以下主要可选参数
参数 意义 参数 意义 ‘noaxes’ 在绘图上不显示坐标轴 ‘axis’, A 将图形显示的轴尺寸设置为A,其中 A=[xmin xmax ymin ymax zmin zmax] ‘color’,C 设置轴的颜色,C代表MATLAB图形内置的颜色类型 ‘frame’,F 将绘制出来的坐标系命名为F,并且X,Y,Z轴的下标含有F ‘text_opts’,opt 调整显示文本的字体等属性;例如{‘FontSize’,10,‘FontWeight’,‘bold’} ‘view’,V 把绘图视图参数设置为V=[az,el]角度,或者对于坐标系的原点查看‘atuo’ ‘length’,s 坐标轴的长度(默认值1) ‘arrow’ 设置坐标轴的末端为箭头,而不是线段 ‘with’,w 箭头宽度(默认值1) ’thick‘,t 线条粗细,默认0.5 ’3d‘ 在三维空间中使用浮雕图形绘制 ’anaglyph‘,A 将“3d”的浮雕颜色指定为左右两个字符(默认为rc):选自红,绿,蓝,青,品红 ’dispar‘,D 3d显示差异(默认0.1) ’text‘ 启用在框架上显示X,Y,Z标签 ’labels‘,L 使用字符串L的第1个,第2个,第3个字符标记X,Y,Z轴 ’rbg‘ 以红色,绿色,蓝色分别显示X,Y,Z轴 动画展示
函数为:tranimate()
-
tranimate(x1,x2,options)展示3D坐标系从姿态x1变换到姿态x2的动画效果。其中姿态x1和x2有三种表示方法:一个4x4的其次矩阵,或一个3x3的旋转矩阵,或一个四元素。
-
tranimate(x,options)展示坐标系由上一个姿态变换到姿态x的动画效果。其中姿态x有三种表示方法:一个4x4的其次矩阵,或一个3x3的旋转矩阵,或一个四元素。
-
tranimate(xseq,options)展示了移动一段轨迹的动画效果。xseq可以是一组4x4xN的其次矩阵,或一组3x3xN的旋转矩阵,或是一组四元素向量(Nx1).
options可以是以下可选参数
参数 意义 参数 意义 ‘fps’,fps 每秒显示的帧数(默认为10) ‘nstep’,n 沿路径的步数(默认50) ‘axis’,A 设置三个轴的边界,A=[xmin xmax ymin ymax zmin zmax] ‘movie’,M 将帧保存为文件夹M中的文件,M为文件的路径
例子
R=rotx(0); R2=rotx(90); tranimate(R,R2);
结果如下图所示
参考文献
[1]机器人仿真与编程技术[M].杨辰光,李智军,许杨.北京:清华大学出版社,2018
-