使用点云库将点云转换为世界坐标

时间:2015-03-11 00:54:27

标签: c++ point-cloud-library

我搜遍了互联网,这被认为很容易。但是更难得到一个直接的答案。我需要将点云转换为世界坐标系。在变换之前,Z轴(kinect传感器)将指向物体,x轴指向底部,Y轴指向左侧。或任何其他方向的kinect传感器。在变换之后,X轴朝向物体,Y轴向左,Z轴向顶部,即固定的世界坐标。最简单的方法来实现它?。

这是我到目前为止所尝试的。我试图找到云的观点,认为它会给我定位世界坐标系。但它需要kinect作为起源。所以我得到了非转换矩阵。 i,e身份轮换矩阵和单位翻译向量。

请有人能给我一些线索吗?。

1 个答案:

答案 0 :(得分:1)

kinect坐标将是Z轴面向对象,x轴指向底部,y轴指向右侧。所以这种转变应该有效。

double thetha=M_PI/2;
Eigen::Affine3f transform_2 = Eigen::Affine3f::Identity();

//在x轴上定义2.5米的平移。

transform_2.translation() << 0.0, 0.0, 0.0;     

//与之前相同的旋转矩阵; thetha弧度绕Z轴。

transform_2.rotate (Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitZ()) * Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitX()));