如何找出定向包围盒在坐标系中绕y轴的旋转?

时间:2018-10-24 15:52:48

标签: 3d bounding-box euler-angles rotational-matrices

我在世界坐标系中有一个定向的边界框。我想找出它在相机坐标系中绕y轴的旋转。

因此定向的边界框由归一化的轴和大小表示。

class BoundingBox3D {
public:
    Eigen::Vector3f centroid;
    Eigen::Vector3f size_along_obb_axes;
    // define OBB local coordinate system for the orientation
    Eigen::Vector3f x_axis; 
    Eigen::Vector3f y_axis;
    Eigen::Vector3f z_axis;
}

顺便说一句,归一化轴也构成了其旋转矩阵的世界坐标系的列。

我拥有相机坐标系转换矩阵的世界,通过该矩阵,我可以将每个轴转换为相机坐标系。我以变换后的轴为列构造旋转矩阵,并从旋转矩阵中获得欧拉角,如下所示:

this->rot_mat << this->transformed_x_axis[0], this->transformed_y_axis[0], this->transformed_z_axis[0],
                         this->transformed_x_axis[1], this->transformed_y_axis[1], this->transformed_z_axis[1],
                         this->transformed_x_axis[2], this->transformed_y_axis[2], this->transformed_z_axis[2];

this->heading_rad = this->rot_mat.eulerAngles(0, 1, 2); //x, y, z  angles in radians

这是正确的吗? 有没有更好的方法可以做到这一点?

0 个答案:

没有答案