使用点云库将点云转换为世界坐标
transform point cloud to world coordinate using point cloud library
我在互联网上搜索了所有内容,这应该很容易。但是越来越难得到一个直接的答案。我需要将点云转换为世界坐标系。在转换之前,Z 轴(kinect 传感器)将指向对象,x 轴指向底部,Y 轴指向左侧。或 kinect 传感器的任何其他方向。变换后,X轴朝向物体,Y轴朝向左侧,Z轴朝向顶部即是固定的世界坐标。实现它的最简单方法?
这是我目前所尝试的。我试图找到云的视点,认为它会给我世界坐标系的方向。但它以kinect为原点。所以我得到了非变换矩阵。 i,e 恒等旋转矩阵和单位平移向量。
谁能给我一个线索?
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;
// 和之前一样的旋转矩阵;围绕 Z 轴的 thetha 弧度。
transform_2.rotate (Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitZ()) * Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitX()));
我在互联网上搜索了所有内容,这应该很容易。但是越来越难得到一个直接的答案。我需要将点云转换为世界坐标系。在转换之前,Z 轴(kinect 传感器)将指向对象,x 轴指向底部,Y 轴指向左侧。或 kinect 传感器的任何其他方向。变换后,X轴朝向物体,Y轴朝向左侧,Z轴朝向顶部即是固定的世界坐标。实现它的最简单方法?
这是我目前所尝试的。我试图找到云的视点,认为它会给我世界坐标系的方向。但它以kinect为原点。所以我得到了非变换矩阵。 i,e 恒等旋转矩阵和单位平移向量。
谁能给我一个线索?
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;
// 和之前一样的旋转矩阵;围绕 Z 轴的 thetha 弧度。
transform_2.rotate (Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitZ()) * Eigen::AngleAxisf (-theta, Eigen::Vector3f::UnitX()));