(二)机器人工具箱三维空间描述
来源:互联网 发布:js 多功能日历插件 编辑:程序博客网 时间:2024/06/15 18:58
(二)机器人工具箱三维空间描述
1.旋转矩阵
Rx=rotx(pi/3); %绕x轴的旋转矩阵Rx(pi/3),同理如下
Ry=roty(pi/4);
Rz=rotz(pi/2);
2.带变量的旋转矩阵
syms alpha beta gama
Rx1=rotx(alpha) %绕x轴的旋转矩阵,同理如下
Ry1=roty(beta)
Rz1=rotz(gama)
3.坐标系绘制
trplot(Rx,'frame','Rx_1','color','g');%Rx即要绘制的旋转矩阵,frame是当前坐标系的标识
显示效果
3.坐标系绘制
trplot(Rx,'frame','Rx_1','color','g');%Rx即要绘制的旋转矩阵,frame是当前坐标系的标识
4.旋转动画显示
while(1)
tranimate(Rz*Rx*Ry);%显示从基坐标开始到Rz的变换动画
pause(5);%等待5s再循环动画
end
5.欧拉角(zyz时)
ou_zyz=eul2r(0.1,0.2,0.3);%zyz欧拉角,等价于下面的旋转变换的叠乘
R1=rotz(0.1)*roty(0.2)*rotz(0.3);
trplot(ou_zyz);%绘制欧拉角
tranimate(ou_zyz);%动画显示欧拉变换
rot_eul1=tr2eul(R1);%旋转矩阵转换为欧拉角
6.欧拉角(卡尔丹式 xyz,翻滚、俯仰、偏航)
ou_xyz=rpy2r(0.1,0.2,0.3);%xyz欧拉角,理论上等价于下面旋转变换的叠乘
R2=rotx(0.1)*roty(0.2)*rotz(0.3);
rot_eul2=tr2rpy(R2);%旋转矩阵转换为欧拉角
7.绕任意轴旋转
R3=eul2r(0.1,0.2,0.3);
[theta,v]=tr2angvec(R3);%theta 表示旋转角度的大小,v 表示转轴的方向向量
运行结果
theta =
0.4466
v =
0.0450 0.4486 0.8926
上面的这些信息实际上是包含在 R3 的特征值和特征向量中,仔细对比lambdta对角线上的元素为R3的特征值,由于正交旋转矩阵必有有一个特征值为1其余的为lambdta值为 cos(theta)±isin(theta),而特征值为1所对应的列向量即为旋转轴的方向向量
[v,lambda]=eig(R3)
运行结果
v =
0.7064 + 0.0000i 0.7064 +0.0000i 0.0450 + 0.0000i
-0.0143 - 0.6318i -0.0143 +0.6318i 0.4486 + 0.0000i
-0.0284 + 0.3175i -0.0284 -0.3175i 0.8926 + 0.0000i
lambda =
0.9019 + 0.4319i 0.0000 +0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.9019 - 0.4319i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 +0.0000i 1.0000 + 0.0000i
上面的红色字体为 cos(theta)= 0.9019 、sin(theta)= 0.4319 ,黄色背景表示特征值1对应的列向量为旋转轴
8.四元数
四元数的表示为 q=s+v=s+v1i+v2j+v3k,其中s为标量
Q=Quaternion(rpy2r(0.1,0.2,0.3));%运行结果中第一个是标量,其他的为i、j、k
运行结果
Q =
0.98186 < 0.064071, 0.091158, 0.15344>
若Q.norm=1 则表示的是单位四元数,即 s2+v12+v22+v32=1
单位矢量非常特殊,他可以表示绕轴n转了theta角,相关关系为s=cos(theta/2) ,v=sin(theta/2)n
8.四元数
Q=Quaternion(rpy2r(0.1,0.2,0.3));%运行结果中第一个是标量,其他的为i、j、k
Q.inv();%表示四元数的逆或者说是共轭
Q*Q.inv();%乘积为标量
Q/Q;%等价于Q*Q.inv()
Q.R;%表示将四元数转换为旋转矩阵
Q.plot();%绘制四元数坐标系
- (二)机器人工具箱三维空间描述
- (一)机器人工具箱二维空间描述
- Matlab机器人工具箱(二)
- Matlab机器人工具箱(一)
- MATLAB机器人工具箱参考
- Matlab机器人工具箱
- matlab机器人工具箱学习
- 机器人工具箱的安装
- Matlab01_安装机器人工具箱
- MVG读书笔记——三维空间中的射影几何(二)
- ROS:机器人描述(URDF、XACRO)
- 机器人工具箱-6自由度机器人建模
- Matlab机器人工具箱学习9.10
- C++工具箱(二)——定时器
- Nao机器人学习(二)
- 【机器人】空间描述和变换:平移、旋转、变换(算子)
- ROS机器人Diego 1#制作(十六)创建机器人的urdf模型描述文件
- 三维空间中的圆与三角形(二):圆与外切三角形
- C语言中矩阵定义问题(续)
- 每天一个linux命令(25):文件权限命令 chgrp命令
- java初级开发面试题全集(上)
- JS正则表达式(密码同时包含数字和字母)
- 系统监测工具
- (二)机器人工具箱三维空间描述
- spring 模型视图
- spring(三)(基于注解的方式配置bean)
- Spring AOP 实现原理
- 原生JS添加类名 删除类名 检查是否含有某个CSS类名
- JAVA标示符命名原则
- 创建链式运动startMove(obj,json,fnEnd)
- 事件响应,让网页交互
- Gitlab的使用