Transform ROS2 messages to Python structures
Project description
ros2_msg_conversions
Implements ros2 message conversion operations.
Methods
Convert ROS2 structures to OrderedDict
Can be used to convert any type of ROS2 communication structure (Topic Message, Service, Action).
def ros2_msg_to_dict(msg: Any) -> OrderedDict:
"""ros2_msg_to_dict.
Converts a ROS2 communication message to an OrderedDict.
Args:
msg: ROS2 Message to transform. Can be one of type:
- Topic Message (Message)
- Service Request Message (Service.Request)
- Service Response Message (Service.Response)
- Action Goal Message (Action.Goal)
- Action Cancel Message (Action.Cancel)
- Action Result Message (Action.Result)
- Action Status Message (Action.Status)
- Action Feedback Message (Action.Feedback)
"""
Below are two examples, one for converting a ROS2 msg and one for converting a ROS2 srv into an OrderedDict.
from sensor_msgs.msg import Range
msg = Range()
_dict = ros2_msg_to_dict(msg)
from std_srvs.srv import SetBool
req = SetBool.Request()
_dict = ros2_msg_to_dict(req)
Convert an OrderedDict to a ROS2 communication structure
Can be used to convert into any type of ROS2 communication structure (Topic Message, Service, Action).
def dict_to_ros2_msg(py_dict: OrderedDict, msg_cls: Any) -> Any:
"""dict_to_ros2_msg.
Converts a dict/OrderedDict into a ROS2 message, given the message cls
as input.
Args:
py_dict (OrderedDict): Dict/OrderedDict to convert to ROS2 message.
msg_cls (Any): ROS2 Message class.
- Topic Message (Message)
- Service Request Message (Service.Request)
- Service Response Message (Service.Response)
- Action Goal Message (Action.Goal)
- Action Cancel Message (Action.Cancel)
- Action Result Message (Action.Result)
- Action Status Message (Action.Status)
- Action Feedback Message (Action.Feedback)
"""
Below are two examples, one for converting a ROS2 msg and one for converting a ROS2 srv into an OrderedDict.
from sensor_msgs.msg import Range
_dict = {
'range': 10.0,
'min_range': 0.2,
'max_range': 240.0,
'field_of_view': 60.0,
'radiation_type': 0,
}
_msg = dict_to_ros2_msg(_dict, Range)
from std_srvs.srv import SetBool
...
_req = dict_to_ros2_msg(_dict, SetBool.Request)
_resp = dict_to_ros2_msg(_dict, SetBool.Response)
You can also construct from and to ROS2 message structures without the need to import them. This is achieved via passing a string that includes the namespace of the message.
_msg = dict_to_ros2_msg_from_ns(_dict, 'sensor_msgs/Range')
_msg = dict_to_ros2_srv_from_ns(_dict, 'std_srvs/SetBool.Request')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ros2_msg_transform-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 847c1d5a5ee22da254c391afe336690895219796cd03326c40b2e4add0dbeee8 |
|
MD5 | 98b056998c34e4fd260fef0693c65fc4 |
|
BLAKE2b-256 | 6b8afd508990e403215b0ef6f296a8209bfd3f7ede231f3ae1f2988ac6786285 |