SolveHandEyeCalibration Class Template
Solves both unknown transforms of a hand-eye calibration from collected samples. More...
Declaration
class moveit_pro::behaviors::SolveHandEyeCalibration<mode> { ... }
Included Headers
Base class
| class | SharedResourcesNode<BehaviorTreeNodeT> |
|
The SharedResourcesNode class provides a BehaviorContext object when constructing a BehaviorTree.Cpp node. More... | |
Public Constructors Index
template <moveit_pro::hand_eye_calibration::CalibrationMode mode> | |
| SolveHandEyeCalibration (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources) | |
|
Constructor for the Behavior. More... | |
Public Member Functions Index
template <moveit_pro::hand_eye_calibration::CalibrationMode mode> | |
| BT::NodeStatus | tick () override |
Public Static Functions Index
template <moveit_pro::hand_eye_calibration::CalibrationMode mode> | |
| static BT::PortsList | providedPorts () |
template <moveit_pro::hand_eye_calibration::CalibrationMode mode> | |
| static BT::KeyValueVector | metadata () |
Description
Solves both unknown transforms of a hand-eye calibration from collected samples.
Registered once per camera arrangement: SolveEyeInHandCalibration (camera on the end effector, board fixed in the world) recovers the camera pose in the end effector frame and the board pose in the robot base frame; SolveEyeToHandCalibration (camera fixed in the world, board on the end effector) recovers the camera pose in the robot base frame and the board pose in the end effector frame. The ports are identical; only what the two recovered poses mean differs. The pose outputs are stamped with the frames the samples were recorded with; only the frame name is set, the timestamp stays zero (which TF consumers read as "latest available").
Synchronous by design: the solve is one small PnP per sample plus a fixed-size linear solve, so the tick cost grows only linearly with the number of collected samples.
The recovered camera pose is the camera optical frame (REP 103 optical convention: z forward, y down), not the camera mount link, because the board observations come from PnP in that frame.
| Data Port Name | Port Type | Object Type |
|---|---|---|
| samples | input | std::vector<moveit_pro::hand_eye_calibration::CalibrationSample> |
| camera_name | input | std::string |
| camera_info | input | sensor_msgs::msg::CameraInfo |
| camera_pose | output | geometry_msgs::msg::PoseStamped |
| board_mount_pose | output | geometry_msgs::msg::PoseStamped |
| used_sample_count | output | int |
| rotation_residual | output | double |
| translation_residual | output | double |
Definition at line 72 of file solve_hand_eye_calibration.hpp.
Public Constructors
SolveHandEyeCalibration()
|
Constructor for the Behavior.
- Parameters
-
name config shared_resources
Declaration at line 87 of file solve_hand_eye_calibration.hpp, definition at line 118 of file solve_hand_eye_calibration.cpp.
Public Member Functions
tick()
|
Declaration at line 94 of file solve_hand_eye_calibration.hpp, definition at line 181 of file solve_hand_eye_calibration.cpp.
Public Static Functions
metadata()
| static |
Declaration at line 92 of file solve_hand_eye_calibration.hpp, definition at line 158 of file solve_hand_eye_calibration.cpp.
providedPorts()
| static |
Declaration at line 90 of file solve_hand_eye_calibration.hpp, definition at line 125 of file solve_hand_eye_calibration.cpp.
The documentation for this class was generated from the following files:
Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.9.8.