robokudo.annotators.icp_pose_refinement¶
Pose refinement using iterative closest point (ICP).
This module provides an annotator for:
Refining object pose estimates using ICP
Matching against reference point cloud models
Supporting multiple initial pose variants
Evaluating registration quality
The module uses:
Open3D ICP implementation
Point-to-point registration
Multiple pose hypotheses
PLY model loading
Visualization tools
Warning
Currently limited to refining against a single pre-loaded model.
Classes¶
Pose refinement using iterative closest point (ICP). |
Module Contents¶
- class robokudo.annotators.icp_pose_refinement.ICPPoseRefinementAnnotator(name='ICPPoseRefinementAnnotator', descriptor=Descriptor())¶
-
Bases:
robokudo.annotators.core.ThreadedAnnotatorPose refinement using iterative closest point (ICP).
This annotator:
Refines object pose estimates using ICP
Matches against reference point cloud models
Evaluates multiple initial pose variants
Selects best registration result
Creates refined pose annotations
Note
Point cloud models can be generated from meshes using CloudCompare’s “Sample points on a mesh” feature.
Warning
Currently limited to refining against a single pre-loaded model.
- class Descriptor¶
-
Bases:
robokudo.annotators.core.BaseAnnotator.DescriptorConfiguration descriptor for ICP refinement.
- class Parameters¶
-
Parameters for configuring model loading.
Path parameters:
- Variables:
-
ros_pkg_path – ROS package containing models, defaults to None
data_path – Path to model directory (absolute or relative to ros_pkg_path), defaults to None
- ros_pkg_path = None¶
- data_path = None¶
- parameters¶
- class_name_to_ply_model¶
- get_model_path(class_name: str = '')¶
-
Get path to PLY model file.
Resolves model path using:
ROS package path if provided
Direct data path otherwise
- Parameters:
-
class_name (str, optional) – Name of object class to load model for
- Returns:
-
Path to PLY file or None if not found
- Return type:
-
pathlib.Path or None
- compute()¶
-
Process object hypotheses and refine poses.
The method:
Loads point cloud and object hypotheses
For each hypothesis with pose: * Creates initial pose variants * Performs ICP registration for each variant * Selects best registration result * Creates refined pose annotation * Generates visualization markers
- Returns:
-
SUCCESS after processing, even if annotator deactivated
- Return type:
-
py_trees.Status