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").

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 NamePort TypeObject Type
samplesinputstd::vector<moveit_pro::hand_eye_calibration::CalibrationSample>
camera_nameinputstd::string
camera_infoinputsensor_msgs::msg::CameraInfo
camera_poseoutputgeometry_msgs::msg::PoseStamped
board_mount_poseoutputgeometry_msgs::msg::PoseStamped
used_sample_countoutputint
rotation_residualoutputdouble
translation_residualoutputdouble

Definition at line 72 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 87 of file solve_hand_eye_calibration.hpp, definition at line 118 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 94 of file solve_hand_eye_calibration.hpp, definition at line 181 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 92 of file solve_hand_eye_calibration.hpp, definition at line 158 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 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.