tf2_msgs Adapters
mosaicolabs.ros_bridge.adapters.tf2_msgs ¶
FrameTransformAdapter ¶
Bases: ROSAdapterBase[FrameTransform]
Adapter for translating ROS TF2 messages to Mosaico FrameTransform.
Supported ROS Types:
Example
ros_msg = ROSMessage(
timestamp=17000,
topic="/tf",
msg_type="tf2_msgs/msg/TFMessage",
data={
"transforms": [
{
"header": {
"stamp": {
"sec": 17000,
"nanosec": 0,
},
"frame_id": "map",
},
"child_frame_id": "base_link",
"transform": {
"translation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0,
},
},
}
]
},
)
# Automatically resolves to a flat Mosaico FrameTransform with attached metadata
mosaico_frame_transform = FrameTransformAdapter.translate(ros_msg)
translate
classmethod
¶
Translates a ROS message into a Mosaico Message.
Returns:
| Name | Type | Description |
|---|---|---|
Message |
Message
|
The translated message containing a |
Raises:
| Type | Description |
|---|---|
Exception
|
Wraps any translation error with context (topic name, timestamp). |
from_dict
classmethod
¶
Converts the raw dictionary data into the specific Mosaico type.
Example
ros_data={
"transforms": [
{
"header": {
"stamp": {
"sec": 17000,
"nanosec": 0,
},
"frame_id": "map",
},
"child_frame_id": "base_link",
"transform": {
"translation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0,
},
},
}
]
}
# Automatically resolves to a flat Mosaico FrameTransform with attached metadata
mosaico_frame_transform = FrameTransformAdapter.from_dict(ros_data)
to_ros
classmethod
¶
Converts a Mosaico FrameTransform (or a Message wrapping one) into a
tf2_msgs/msg/TFMessage.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mosaico_data
|
Union[Message, FrameTransform]
|
A |
required |
typestore
|
Typestore
|
The rosbags typestore for target type resolution. |
required |
ros_msg_type
|
Optional[str]
|
Override for the output ROS type. Only
|
None
|
Returns:
| Name | Type | Description |
|---|---|---|
MsgType |
MsgType
|
The constructed
|
schema_metadata
classmethod
¶
Extract the ROS message specific schema metadata, if any.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
typestore
|
Typestore
|
The rosbags typestore for target type resolution. |
required |
ros_msg_type
|
str
|
The ROS message type to extract metadata for. |
required |
ros_version
|
int
|
The ROS version (1 or 2) to consider for metadata extraction. |
required |
Returns:
| Type | Description |
|---|---|
Optional[dict]
|
Optional[dict]: A dictionary containing the schema metadata, or None if not applicable. |
ros_msg_type
abstractmethod
classmethod
¶
Returns the specific ROS message type handled by this adapter.
is_rosmsg_type_valid
classmethod
¶
Checks whether a given ROS message type string is handled by this adapter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
type_to_validate
|
str
|
The full ROS message type string to check
(e.g., |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
|
unpack_mosaico_msg
classmethod
¶
Extracts the typed Mosaico payload and its Header (if present) from a wrapped or bare message.
Handles two input cases:
Messagewrapper: the typed data is extracted viaget_data().- Raw ontology instance: returned as-is with
the Header is extracted from the ontology (if supported), otherwise an default Header (empty frame_id and zero Time) is returned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mosaico_msg
|
Union[Message, T]
|
Either a |
required |
Returns:
| Type | Description |
|---|---|
T
|
tuple[T, Header]: A |
Header
|
header is the corresponding |
tuple[T, Header]
|
zero |
Raises:
| Type | Description |
|---|---|
TypeError
|
If mosaico_msg is neither a |
ontology_data_type
classmethod
¶
Returns the Ontology class type associated with this adapter.