如何从 pcl::ModelCoefficient 轴方向转换为 ROS/Rviz 的四分之一数?

问题描述 投票:0回答:0

我正在尝试使用 PCL RANSAC 函数可视化适合点云的圆柱体。当我拟合模型时,我得到一个

pcl::ModelCoefficients
对象,它具有以下系数 point_on_axis、axis_direction、cylinder_radius_R,请参阅此处的文档

据我了解,轴方向值(系数对象值成员的值3、4和5)分别是圆柱轴向量的x、y和z分量。要使用标记对象在 RVIZ 中显示此向量,我需要将此向量转换为四元数。我一直在使用以下 C++ 代码执行此操作:

        //Convert axis vector to quarternion format
        double axis_pitch = atan2(coefficients_cylinder.values[5],coefficients_cylinder.values[4]);
        double axis_roll = atan2(coefficients_cylinder.values[3],coefficients_cylinder.values[5]);
        double axis_yaw = atan2(coefficients_cylinder.values[3],coefficients_cylinder.values[4]);
        tf2::Quaternion axis_quarternion;
        axis_quarternion.setRPY( axis_roll, axis_pitch, axis_yaw );
        axis_quarternion.normalize();

但是,每当我查看覆盖在原始点云上的圆柱体标记时,它们的方向都是错误的。

这是什么原因造成的?我是否错过了转换过程中的一个步骤,或者我的方法完全偏离了?

感谢您的帮助!

c++ ros robotics pcl rviz
© www.soinside.com 2019 - 2024. All rights reserved.