首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >icp变换矩阵解释

icp变换矩阵解释
EN

Stack Overflow用户
提问于 2013-09-23 17:43:36
回答 2查看 1.8K关注 0票数 3

我使用PCL从ICP (getTransformationMatrix())获得转换矩阵。对于没有旋转平移运动的例子,所获得的结果是

代码语言:javascript
复制
0.999998         0.000361048   0.00223594     -0.00763852
-0.000360518     1             -0.000299474   -0.000319525
-0.00223602      0.000298626   0.999998       -0.00305045
       0         0             0              1

如何从矩阵中找到变换?这个想法是为了观察静止和真实运动之间的误差。

EN

回答 2

Stack Overflow用户

发布于 2013-11-18 20:06:57

我没有使用您在这里引用的库,但我很清楚您提供的结果是一个同质变换,即左上角的3x3矩阵(R)是旋转矩阵,右侧的3x1 (T)是平移:

代码语言:javascript
复制
M1 = [  **[** [R], [T] **], [** 0 0 0 1 **]**  ] 

请参阅此处的“矩阵表示法”部分:http://en.wikipedia.org/wiki/Kinematics

使用此表示法是为了使您可以通过将转换矩阵相乘来获得连续转换后的最终点。

如果你有一个点p0变换n次,你得到的点p1为:

代码语言:javascript
复制
P0 = [[p0_x], [p0_y], [p0_z], [1]]
P1 = [[p1_x], [p1_y], [p1_z], [1]]
M = M1*M2*...*Mn
P1 = M*P0
票数 0
EN

Stack Overflow用户

发布于 2014-10-31 22:01:59

tROTA是具有平移和旋转的矩阵:

代码语言:javascript
复制
auto trafo = icp.getFinalTransformation();

Eigen::Transform<float, 3, Eigen::Affine> tROTA(trafo);

float x, y, z, roll, pitch, yaw;

pcl::getTranslationAndEulerAngles(tROTA, x, y, z, roll, pitch, yaw);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18956151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档