Library to perform 6D object pose estimation: Yolact masking + ICP Point Cloud Registration
The library contains python modules which are dependent on the following 3rd-party libraries:
setuptools, numpy, open3d, opencv-python, matplotlib
Additionally, it is necessary to install our camera_utils, ai_utils, and camera_calibration
To install the object_pose_estimation package on your system, clone the GitHub repository in a folder of your choice, open the cloned repository path in a terminal and run the following command
python3 -m pip install .
Instead if you want to install the package in "editable" or "develop" mode (to prevent the uninstall/install of the package at every pkg modification) you have can run the following command:
python3 -m pip install -e .
A PoseEstimator object provides different functions to capture object point clouds from RGBD cameras and retrieve object 6D pose using ICP registration techniques (given a model of the desired object).
- get_yolact_pcd use Yolact algorithm to isolate the desired object point cloud from images taken by multiple cameras.
- global_registration gets a rough alignment between the observed point cloud and the model of the desired object.
- local_registration refines the alignment between the observed point cloud and the model using ICP (Iterative Closest Point)
- locate_object applies the full pipeline for object pose estimation (get_yolact_pcd + global_registration + local_registration)
Some example scripts can be found inside the example folder.
A PCD_Obj_Combined object provides different functions to capture object point clouds from RGBD cameras, retrieves the pcd combined of the masked object and the centroid of the fitted plane of the upper surface of the objects (in general boxes).
- get_yolact_pcd use Yolact algorithm to isolate the desired object point cloud from images taken by multiple cameras.
- compute_centroid gets the 3D position of the centroid of the desired object.
Some example scripts can be found inside the example folder (i.e. test_pcd_combined.py).
Distributed under the GPLv3
License. See LICENSE for more information.
The package is provided by:
- Fabio Amadio [Mantainer]