No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description sensor calibration tools for autonomous driving and robotics
Checkout URI https://github.com/tier4/calibrationtools.git
VCS Type git
VCS Version tier4/universe
Last Updated 2025-07-31
Dev Status UNKNOWN
Released UNRELEASED
Tags computer-vision camera-calibration calibration autonomous-driving ros2 autoware sensor-calibration lidar-calibration robtics
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The tag_based_sfm_calibrator package

Additional Links

No additional links.

Maintainers

  • Kenzo Lobos Tsunekawa

Authors

No additional authors.

tag_based_sfm_calibrator

A tutorial for this calibrator can be found here.

Purpose

The tag_based_sfm_calibrator package performs extrinsic calibration among most sensors and frames used in autonomous driving and robotics. In particular, it allows the following extrinsic calibrations:

  • base_frame (e.g., base_link)
  • cameras
  • lidars (see the list of supported lidars for Lidartag [1] detection in our repository)

Note: depending on how this tool is configured it can perform the following calibrations:

  • base-camera(s)
  • base-lidar(s)
  • camera-camera(s)
  • lidar-lidar(s)
  • camera(s)-lidar(s)
  • base-camera(s)-lidar(s)

Inner-workings / Algorithms

As the name of the calibrator suggests, this tool relies upon SfM (Structure from Motion) to find the extrinsics between different sensors. However, since we prioritize calibration accuracy, we do not use natural features and local descriptors, but fiducial systems (in our case apriltags/lidartags). Furthermore, since the sensors are attached to a still vehicle, we employ an additional camera (from now on referred to as the external camera), which we use to create a graph and connect the different vehicle’s sensors, which we optimize using standard bundling adjustment. By using a particular sensor as the origin during bundle adjustment, the other sensor’s poses correspond to the desired extrinsics.

Base calibration, on the other hand, can not be directly formulated as a sensor calibration problem (since the base is not a sensor !). We instead formulate an indirect approach to find the base_link by using its definitions: a frame between the rear axle projected to the ground. We place two tags in each of the rear wheels and then define the base_link as the intersection between these two tags projected into the ground.

ROS Interfaces

Input

Name Type Description
{calibration_lidar_detections_topics} lidartag_msgs::msg:: LidarTagDetectionArray Lidartag detections. calibration_lidar_detections_topics is provided via parameters
{calibration_camera_detections_topics} apriltag_msgs::msg:: AprilTagDetectionArray Apriltag detections. calibration_camera_detections_topics is provided via parameters
{calibration_compressed_image_topics} sensor_msgs::msg:: CompressedImage Calibration cameras’ image topics. Not used directly for calibration but for debugging and evaluation. {calibration_compressed_image_topics} is provided via parameters
{calibration_camera_info_topics} sensor_msgs::msg:: CameraInfo Intrinsic parameters for the calibration cameras . calibration_camera_info_topics is provided via parameters

Output

Name Type Description
markers visualization_msgs::msg::MarkerArray Calibration markers
raw_detections_markers visualization_msgs::msg::MarkerArray Detection markers

Services

Name Type Description
extrinsic_calibration tier4_sensor_calibration_msgs:: srv::ExtrinsicCalibrator Generic calibration service. The call is blocking and only returns when the calibration process finishes
add_external_camera_ images_to_scenes tier4_sensor_calibration_msgs:: srv::FilesListSrv Provides a list of external camera images’ files for each scene
add_calibration_sensor_ detections_to_new_scene tier4_sensor_calibration_msgs::srv::Empty Creates a new scene from the latest detections received by the node
load_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a file containing previously computed external camera intrinsics
save_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a path to save the computed external camera intrinsics
calibrate_external_camera_intrinsics tier4_sensor_calibration_msgs::srv::FilesSrv Provides a list of files of external camera images to perform intrinsic calibration for the external camera
process_scenes tier4_sensor_calibration_msgs::srv::Empty Processes all the obtained scenes, mainly applying the tag detector to the external images
calibrate tier4_sensor_calibration_msgs::srv::Empty Uses the processed scenes to perform bundling adjustment optimization
load_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Loads a processed database of scenes
save_database tier4_sensor_calibration_msgs::srv::FilesSrv For debugging purposes. Saves a processed database of scenes

Parameters

Core Parameters

Name Type Default Value Description
publish_tfs bool   Flag to optionally publish the resulting calibration as tfs
write_debug_images bool   Flag to optionally create images with the resulting calibration poses and detections
base_frame std::string base_link The base_frame is used to compare the initial and calibrated values
main_calibration_sensor_frame std::string   The sensor whose frame will act as the origin during optimization
calibration_lidar_frames std::vector<std::string>   List of the calibration lidars’ frames
calibration_camera_frames std::vector<std::string>   List of calibration cameras’ frames
lidartag_to_apriltag_scale double   The scale factor for converting lidartag detection sizes to apriltag detection sizes
auxiliar_tag.family std::string   The family name of the auxiliary tags
auxiliar_tag.rows int   The number of rows in the auxiliary tags
auxiliar_tag.cols int   The number of columns in the auxiliary tags
auxiliar_tag.size double   The size of the auxiliary tags in meters
auxiliar_tag.spacing double   The spacing between auxiliary tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
auxiliar_tag.ids std::vector<int64_t>   The auxiliar tag IDs
waypoint_tag.family std::string   The family name of the waypoint tag
waypoint_tag.rows int   The number of rows in the waypoint tag
waypoint_tag.cols int   The number of columns in the waypoint tag
waypoint_tag.size double   The size of the waypoint tag in meters
waypoint_tag.spacing double   The spacing between waypoint tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
waypoint_tag.ids std::vector<int64_t>   The waypoint tag IDs
ground_tag.family std::string   The family name of the ground tag
ground_tag.rows int   The number of rows in the ground tag
ground_tag.cols int   The number of columns in the ground tag
ground_tag.size double   The size of the ground tag in meters
ground_tag.spacing double   The spacing between ground tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one
ground_tag.ids std::vector<int64_t>   The ground tags IDs
wheel_tag.family std::string   The family name of the wheel tag
wheel_tag.rows int   The number of rows in the wheel tag
wheel_tag.cols int   The number of columns in the wheel tag
wheel_tag.size double   The size of the wheel tag in meters
wheel_tag.spacing double   The spacing between wheel tags (as a proportion relative to the tag size). Only relevant when rows or cols is greater than one

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/apriltag_detector.launch.xml
      • ns [default: ]
      • image_compressed_topic
      • camera_info_topic
      • filtered_detections_topic [default: apriltag/filtered/detections_array]
      • apriltag_detector_families
  • launch/calibrator.launch.xml
      • ns [default: ]
      • rviz [default: true]
      • calibration_service_name [default: extrinsic_calibration]
      • config_file [default: omiya_calibration_room_2023.param.yaml]
      • publish_tfs [default: true]
      • fixed_ground_plane_model [default: false]
      • base_frame [default: base_link]
      • main_calibration_sensor_frame
      • calibration_lidar_0_frame [default: ]
      • calibration_lidar_1_frame [default: ]
      • calibration_lidar_2_frame [default: ]
      • calibration_lidar_3_frame [default: ]
      • calibration_lidar_4_frame [default: ]
      • calibration_lidar_5_frame [default: ]
      • calibration_lidar_6_frame [default: ]
      • calibration_lidar_7_frame [default: ]
      • calibration_camera_0_frame [default: ]
      • calibration_camera_1_frame [default: ]
      • calibration_camera_2_frame [default: ]
      • calibration_camera_3_frame [default: ]
      • calibration_camera_4_frame [default: ]
      • calibration_camera_5_frame [default: ]
      • calibration_camera_6_frame [default: ]
      • calibration_camera_7_frame [default: ]
      • calibration_lidar_0_model [default: ]
      • calibration_lidar_1_model [default: ]
      • calibration_lidar_2_model [default: ]
      • calibration_lidar_3_model [default: ]
      • calibration_lidar_4_model [default: ]
      • calibration_lidar_5_model [default: ]
      • calibration_lidar_6_model [default: ]
      • calibration_lidar_7_model [default: ]
      • calibration_lidar_0_topic [default: /null]
      • calibration_lidar_1_topic [default: /null]
      • calibration_lidar_2_topic [default: /null]
      • calibration_lidar_3_topic [default: /null]
      • calibration_lidar_4_topic [default: /null]
      • calibration_lidar_5_topic [default: /null]
      • calibration_lidar_6_topic [default: /null]
      • calibration_lidar_7_topic [default: /null]
      • calibration_camera_info_0_topic [default: ]
      • calibration_camera_info_1_topic [default: ]
      • calibration_camera_info_2_topic [default: ]
      • calibration_camera_info_3_topic [default: ]
      • calibration_camera_info_4_topic [default: ]
      • calibration_camera_info_5_topic [default: ]
      • calibration_camera_info_6_topic [default: ]
      • calibration_camera_info_7_topic [default: ]
      • calibration_compressed_image_0_topic [default: ]
      • calibration_compressed_image_1_topic [default: ]
      • calibration_compressed_image_2_topic [default: ]
      • calibration_compressed_image_3_topic [default: ]
      • calibration_compressed_image_4_topic [default: ]
      • calibration_compressed_image_5_topic [default: ]
      • calibration_compressed_image_6_topic [default: ]
      • calibration_compressed_image_7_topic [default: ]
      • calibration_camera_0_detections_topic [default: ]
      • calibration_camera_1_detections_topic [default: ]
      • calibration_camera_2_detections_topic [default: ]
      • calibration_camera_3_detections_topic [default: ]
      • calibration_camera_4_detections_topic [default: ]
      • calibration_camera_5_detections_topic [default: ]
      • calibration_camera_6_detections_topic [default: ]
      • calibration_camera_7_detections_topic [default: ]
      • auxiliar_tag_ids [default: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]]
      • waypoint_tag_ids [default: [0, 3, 4, 5]]
      • ground_tag_ids [default: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
      • left_wheel_tag_id [default: 22]
      • right_wheel_tag_id [default: 26]
  • launch/lidartag_detector.launch.xml
      • ns [default: ]
      • pointcloud_topic
      • filtered_detections_topic [default: lidartag/filtered/detections_array]
      • lidar_model

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tag_based_sfm_calibrator at Robotics Stack Exchange