我试图让一个tform变换矩阵,但我得到以下错误一次,你能协助我解决吗?

22日视图(30天)
我要项目上的一个点云图像我转换元素,如旋转和转换矩阵如下:
旋转=
0.0499 0.999 -0.0213
-0.0283 0.0228 0.999
0.998 -0.0493 0.0294
翻译=
2.489 9.58 7.4404 e + e + 06 06
tform = rigidtform3d(旋转,翻译)
错误使用images.geotrans.internal.rigidtform3dImpl
无效的旋转矩阵。
错误在rigidtform3d(第8行)
自我= self@images.geotrans.internal.rigidtform3dImpl(变长度输入宗量{:});

答案(1)

Sakshay
Sakshay 2022年12月1日
你好,阿巴斯,
按我的理解你试图创建“rigidtform3d”对象翻译使用旋转矩阵和向量。但是,你得到一个错误指示不正确的旋转矩阵。
一个有效的旋转矩阵应该满足以下约束条件:
MATLAB做这些内部检查之前分配的旋转矩阵。对你的情况下,旋转矩阵似乎并不满足约束(精度高达 ),就像下面的代码:
%分配旋转矩阵
(R = 0.0499, 0.9990, -0.0213;-0.0283、0.0228、0.9990;0.9980,-0.0493,0.0294);
%测试1
‘* R
ans = 3×3
0.9993 0.0000 0.0000 0.0000 1.0010 0.0000 0.0000 0.0000 0.9993
* R '
ans = 3×3
1.0009 0.0001 -0.0001 0.0001 0.9993 0.0000 -0.0001 0.0000 0.9993
%测试2
依据(右)
ans = 0.9998
你可以试着从欧拉角生成一个旋转矩阵,使用“eul2rotm”功能。更多信息请参考以下文档:

s manbetx 845


释放

R2022b

社区寻宝

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

开始狩猎!