问题记录-(2019/11/5)

  • 坐标变换-旋转(我们把点云原坐标系称为世界坐标系,把以本身正方向得到的坐标系称为 基坐标系)

让点云cloud 旋转到与坐标轴重回,且质心位于世界坐标系原点;

1。由cloud 本身参数求得质心,获得协方差矩阵,由协方差矩阵solver 得到 vectors 和 values,

使得vectors 正交化,得到点云主方向极坐标,也是由cloud世界坐标到基坐标的旋转矩阵,

2.点云旋转至世界坐轴系重回即为基坐标向世界坐标系旋转。求仿射变换矩阵。

    Eigen::Matrix4f transfroms_residual = Eigen::Matrix4f::Identity();
    Eigen::Matrix4f transfroms_residual_inv = Eigen::Matrix4f::Identity();
    transfroms_residual.block<3, 3>(0, 0) = eigenVectorsPCA_residual.transpose();
    transfroms_residual.block<3, 1>(0, 3) = -1.0f*(eigenVectorsPCA_residual.transpose())*(pcaCentroid_residual.head<3>()); //-R*t
    transfroms_residual_inv = transfroms_residual.inverse();

要使质心位于世界坐标系原点,则平移向量为质心点坐标;

求得仿射变换矩阵;

猜你喜欢

转载自www.cnblogs.com/xiaoniubenrecord-6161/p/11800327.html