3D Object Absolute pose orientation estimation

asked 2022-07-19 14:17:56 -0500

hey guys , I am working on a pose estimation problem for objects from their 3D pointcloud in the scene using traditional techniques (like PCA / OBB ) within the PCL library. I have got this thing working but sometimes I am having erroneous absolute orientation values for objects. Eg: In this image below you can see pose visualization for two cones (left and right , the camera pose is in the center).

Here is the image visualization link for the issue.

The 3D position of the cones are correct but The absolute orientation of the cones is incorrect. Both the cones should have the same absolute orientation values and they should be parallel to the camera pose.

The Viz is created using this code block: pcl::MomentOfInertiaEstimation <pcl::pointxyzrgb> feature_extractor;

feature_extractor.setInputCloud (cloud_ptr);

feature_extractor.compute();

std::vector <float> moment_of_inertia;

std::vector <float> eccentricity;

feature_extractor.getMomentOfInertia (moment_of_inertia);

feature_extractor.getEccentricity (eccentricity);

feature_extractor.getAABB (min_point_AABB, max_point_AABB);

feature_extractor.getOBB (min_point_OBB, max_point_OBB, position_OBB, rotational_matrix_OBB);

Eigen::Quaternionf quat (rotational_matrix_OBB);

The pointcloud input is in odom frame. Could this be a bad transform problem on the rotation matrix calculated ? I think I am missing some information on how to go on about doing this. Is what I am saying even feasible ? Is it possible to constrain the absolute pose of the objects some how ? Can anyone point me to any resources that help me regarding this problem ?

edit retag flag offensive close merge delete