Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ros2_msg_transform-0.2.2.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

ros2_msg_transform-0.2.2-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file ros2_msg_transform-0.2.2.tar.gz.

File metadata

  • Download URL: ros2_msg_transform-0.2.2.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.6.8-2-MANJARO

File hashes

Hashes for ros2_msg_transform-0.2.2.tar.gz
Algorithm Hash digest
SHA256 597a91a2330ad73224c8c1fa2c61c5ea4495ea6bdb33cf3b53b1bfd1e784ae48
MD5 76835465099aeced8b286381ea3558c8
BLAKE2b-256 2afdd04059dcb2b677ddd8ba365a64403e0904ab6ea03aca19160786d1f58bcc

See more details on using hashes here.

File details

Details for the file ros2_msg_transform-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ros2_msg_transform-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 847c1d5a5ee22da254c391afe336690895219796cd03326c40b2e4add0dbeee8
MD5 98b056998c34e4fd260fef0693c65fc4
BLAKE2b-256 6b8afd508990e403215b0ef6f296a8209bfd3f7ede231f3ae1f2988ac6786285

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page