-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Specifying different ros_domain_ids
should connect to different routers and not simply prefix topic keyexpressions
#201
Comments
The intended use case of this rmw is not to communicate with other native Zenoh applications such as
Can you explain what the difficulty is? We simple map |
Yes, but that is a capability of zenohd.
The Zenoh key is prefixed with the ros_domain_id. We cann't get the DOMAIN_ID via As for
@JEnoch Do you have any good suggestions? |
I see 3 points to consider when defining the mapping of ROS topics/services/actions names to Zenoh key expressions: 1. ROS_DOMAIN_IDThe
Using Namespaces within the same Domain is not enough with DDS because even if using difference namespaces avoid topics conflicts, the DDS discovery still occurs between all Nodes despite the namespaces and it's already quite a burden. Thus in my opinion the That said, most of 2. Topic name
Actually the The replacement by 3. Type name#171 would add to the keyexpr the type name as a suffix, to solve the case where a user use the same topic name, but with different types, leading to a error in subscriber. I would argue that the same error will still occur even with DDS if the user uses the same type name, but with different type definition (IDL). Adding the type name in key expression brings little benefit and complexifies the configuration for Downsampling and Access Control as well as for development of pure-Zenoh applications. TL;DRMy suggestion is such a mapping:
(Note the |
We discussed this further today and here's what we agreed on
I will adapt #171 accordingly. |
This documentation shows that DDS will determine the UDP port according DOMAIN_ID, and according to the rmw_zenoh design,
Here are my suggestions:
For example:
|
/assign @Yadunund |
ros_domain_ids
should connect to different routers and not simply prefix topic keyexpressions
rmw_zenoh
now addDOMAIN_ID
and replace/
with%
when creating zenoh key, takedemo_nodes_cpp/talker
for example:While
zenoh-plugin-ros2dds
map ros topic name to zenoh key in this way:We need use zenoh key when communicate with zenoh native applications.
When using
0/%demo%chatter
,zenoh-pico listener
can receive messages correctly, but it is difficult to get the correct zenoh key. So, was there any specific considerations mapping zenoh key initially? Can we just map ROS topic names similar to howzenoh-plugin-ros2dds
does?The text was updated successfully, but these errors were encountered: