|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged hatchbed_localization at Robotics Stack Exchange
|
hatchbed_localization package from hatchbed_localization repohatchbed_localization |
ROS Distro
|
Package Summary
| Version | 0.1.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/hatchbed/hatchbed_localization.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-14 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Marc Alban
Authors
- Marc Alban
hatchbed_localization
ROS 2 helper nodes for TF tree management and localization support.
Nodes
imu_to_twist
Converts a sensor_msgs/Imu message to geometry_msgs/TwistWithCovarianceStamped for use
as a velocity input to state estimators such as robot_localization.
In direct mode the angular velocity and its diagonal covariance are copied from the IMU message. Linear velocity is always zero (IMUs do not provide it).
In differential mode the angular velocity is derived by finite-differencing consecutive
orientation quaternions. The orientation field must be populated
(orientation_covariance[0] >= 0).
Subscriptions
| Topic | Type | Description |
|---|---|---|
imu |
sensor_msgs/Imu |
Input IMU messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Angular velocity derived from IMU |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
differential |
bool | false |
Derive angular velocity from orientation differential rather than reading angular_velocity directly |
odom_to_twist
Extracts the twist from a nav_msgs/Odometry message and republishes it as
geometry_msgs/TwistWithCovarianceStamped. Useful when a state estimator requires a
standalone twist topic rather than a full odometry message.
In direct mode the twist field is copied verbatim. In differential mode the body-frame
twist is derived by finite-differencing consecutive poses, with covariance propagated as
C_twist = 2 * C_pose / dt^2.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
twist |
geometry_msgs/TwistWithCovarianceStamped |
Twist extracted from odometry |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
frame_id |
string | "" |
Override the output header frame_id; uses the odometry frame if empty |
differential |
bool | false |
Derive twist by differencing consecutive poses rather than reading the twist field directly |
odom_tf_broadcast
Derives and broadcasts a parent_frame -> child_frame TF transform from an odometry
message. Intended for cases where a localization source publishes an odometry topic but
its TF output is suppressed or absent, or where the desired TF relationship differs from
the one directly expressed in the odometry frames.
child_frame must match either header.frame_id or child_frame_id of the incoming
odometry message. The other frame is looked up in the main TF tree to compute the
transform. The parent_frame == known_frame identity case is handled without a TF
lookup, so parent_frame may appear directly in the odometry message.
The only hard requirement is that child_frame must not already have a parent in the
main TF tree.
Subscriptions
| Topic | Type | Description |
|---|---|---|
odom |
nav_msgs/Odometry |
Input odometry messages (remap to the desired topic) |
Publications
| Topic | Type | Description |
|---|---|---|
/tf |
tf2_msgs/TFMessage |
parent_frame -> child_frame transform |
Parameters
| Parameter | Type | Default | Description | |—|—|—|—|
File truncated at 100 lines see the full file
Changelog for package hatchbed_localization
0.1.0 (2026-04-11)
- Contributors: Marc Alban
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_lint_auto | |
| ament_lint_common | |
| eigen3_cmake_module | |
| Eigen3 | |
| geometry_msgs | |
| hatchbed_common | |
| nav_msgs | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tf2 | |
| tf2_msgs | |
| tf2_ros |