我想一个点旋转使用四元数的函数

12个视图(30天)
我想旋转点(1、2、3)对轴通过45使用四元数的函数
我试着把它放在单位矩阵和旋转它,但它不是工作我也要绘制q.plot ()
这是matlab的函数
P = (1 2 3);
R = transl (P) * eul2tr ([0 0 0])
q =四元数(右)
R1 = R * trotx (45);
q1 =四元数(R1)
2的评论
詹姆斯Tursa
詹姆斯Tursa 2020年4月6日
你能给一个数字所需的输入和输出的例子吗?即。让我们开始向量和角度,告诉我们你希望得到作为输出。

登录置评。

接受的答案

詹姆斯Tursa
詹姆斯Tursa 2020年4月6日
编辑:詹姆斯Tursa 2020年4月6日
我看了看这个相关链接:
转换的代码有一个方向余弦矩阵的四元数称为tr2q.m。基于这个代码我得到以下比较:
> > q =兰德(1、4)* 2 - 1%从一个随机的四元数
q =
0.6294 0.8116 -0.7460 0.8268
> > q = q /规范(q)
q =
0.4155 0.5357 -0.4925 0.5457
> > dcm = quat2dcm (q)%航空工具箱dcm转换
dcm =
-0.0807 -0.0741 0.9940
-0.9812 -0.1697 -0.0923
0.1755 -0.9827 -0.0590
> > tr2q (dcm)%彼得·柯克发表代码转换dcm四元数
ans =
0.4155 -0.5357 0.4925 -0.5457
> > dcm2quat (dcm)%航空工具箱转换dcm四元数
ans =
0.4155 0.5357 -0.4925 0.5457
与机器人工具箱和比较功能:
> > quat2dcm (q)%航空工具箱
ans =
-0.0807 -0.0741 0.9940
-0.9812 -0.1697 -0.0923
0.1755 -0.9827 -0.0590
> > quat2rotm (q)%机器人工具箱
ans =
-0.0807 -0.9812 0.1755
-0.0741 -0.1697 -0.9827
0.9940 -0.0923 -0.0590
> > dcm2quat (dcm)%航空工具箱
ans =
0.4155 0.5357 -0.4925 0.5457
> > rotm2quat (dcm)%机器人工具箱
ans =
0.4155 -0.5357 0.4925 -0.5457
所以你可以看到,四元数转换是互相的配合。所以你需要非常小心你如何使用机器人工具箱的彼得·柯克代码或代码比较时或者从航空航天工具箱使用MATLAB四元数函数。
如果我猜,可能是彼得·柯克和机器人工具箱代码适用于活跃的矢量旋转(旋转向量在同一个坐标系)。但这只是猜测我,因为我从来没有使用这个代码。
看到这个链接的讨论MATLAB工具箱四元数约定:

更多的答案(2)

马特·J
马特·J 2020年4月6日
q1 * [1, 2, 3]
4评论
马特·J
马特·J 2020年4月6日
这是第三方代码,所以你可能需要咨询的人写的。

登录置评。


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的