Skip to main content

SolveHandEyeCalibration Class Template

Solves both unknown transforms of a hand-eye calibration from collected samples. More...

Declaration​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
class moveit_pro::behaviors::SolveHandEyeCalibration<mode> { ... }

Included Headers​

#include <solve_hand_eye_calibration.hpp>

Base class​

classSharedResourcesNode<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::NodeStatustick () override

Public Static Functions Index​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
static BT::PortsListprovidedPorts ()
template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
static BT::KeyValueVectormetadata ()

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"). Each solve is summarized as an info message; a residual above its warn threshold port also raises a warning.

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. Each board pose is derived with the intrinsics stored in that sample's observation.

Data Port NamePort TypeObject Type
samplesinputstd::vector<moveit_pro::hand_eye_calibration::CalibrationSample>
camera_nameinputstd::string
rotation_residual_warninputdouble
translation_residual_warninputdouble
calibrated_camera_poseoutputgeometry_msgs::msg::PoseStamped
calibrated_board_poseoutputgeometry_msgs::msg::PoseStamped
used_sample_countoutputint
rotation_residualoutputdouble
translation_residualoutputdouble

Definition at line 51 of file solve_hand_eye_calibration.hpp.

Public Constructors​

SolveHandEyeCalibration()​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
moveit_pro::behaviors::SolveHandEyeCalibration< mode >::SolveHandEyeCalibration (const std::string & name, const BT::NodeConfiguration & config, const std::shared_ptr< BehaviorContext > & shared_resources)

Constructor for the Behavior.

Parameters
name

See SharedResourcesNode

config

See SharedResourcesNode

shared_resources

See SharedResourcesNode

Declaration at line 66 of file solve_hand_eye_calibration.hpp, definition at line 86 of file solve_hand_eye_calibration.cpp.

Public Member Functions​

tick()​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
BT::NodeStatus moveit_pro::behaviors::SolveHandEyeCalibration< mode >::tick ()

Declaration at line 73 of file solve_hand_eye_calibration.hpp, definition at line 132 of file solve_hand_eye_calibration.cpp.

Public Static Functions​

metadata()​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
BT::KeyValueVector moveit_pro::behaviors::SolveHandEyeCalibration< mode >::metadata ()
static

Declaration at line 71 of file solve_hand_eye_calibration.hpp, definition at line 123 of file solve_hand_eye_calibration.cpp.

providedPorts()​

template <moveit_pro::hand_eye_calibration::CalibrationMode mode>
BT::PortsList moveit_pro::behaviors::SolveHandEyeCalibration< mode >::providedPorts ()
static

Declaration at line 69 of file solve_hand_eye_calibration.hpp, definition at line 93 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.