ros2 / rmw_cyclonedds

ROS 2 RMW layer for Eclipse Cyclone DDS
Apache License 2.0
108 stars 89 forks source link

Support DDS XTypes creation #445

Open Splinter1984 opened 1 year ago

Splinter1984 commented 1 year ago
Description:

This changes allow us to register ros_types as DDSXtypes. In example this allow to use cyclonedds cli tool to access to middleware of ros2.

Example (subscribe to ros2 topic):

~$ cyclonedds subscribe rt/chatter
   0:00:01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Entities discovered: 1

 Subscribing, CTRL-C to quit
String_(data='Hello World: 1')
String_(data='Hello World: 2')
String_(data='Hello World: 3')

Example (display type information):

~$ cyclonedds typeof rt/chatter
   0:00:01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Entities discovered: 1

As defined in participant(s) 0110283f-9e45-f5f7-b391-ffe7000001c1
module std_msgs {                                                                                                                                         
    module msg {                                                                                                                                          
        module dds_ {                                                                                                                                     
            @final                                                                                                                                        
            struct String_ {                                                                                                                              
                string data;                                                                                                                              
            };                                                                                                                                            
        };                                                                                                                                                
    };                                                                                                                                                    
};
Depends on:
clalancette commented 1 year ago

@ivanpauno if you think I am wrong in assuming that doing a release for Cyclone and updating rolling to that new release would be something that the ROS 2 community would appreciate, then please do say so!

@eboasson I think a CycloneDDS update would be great. I'd say go ahead and make the CycloneDDS releases. Once that is done, we can do a PR to https://github.com/ros2/ros2 (like we did in https://github.com/ros2/ros2/pull/1402) to update ROS 2, and run CI on it.