-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
Update Zenoh-pico from 0.7.0 to 1.0.0 #23462
Conversation
Great work!
You said earlier that sensor_combined doesn't work let's try to fix that before merging this, because it used to be working before. |
I changed the module source to the PX4 fork & formatted the project. It is indeed needed to make it work with ROS 2 & check multicast before merging. My main motivation is to put this work out is to avoid duplication of efforts. |
Btw it seems that for some odd reason
Which is quite unfortunate but I think it's fixable, the whole is goal of using Zenoh on PX4 is that we can work without a bridge and we can do p2p multicast. communication. Looking at this PR ros2/rmw_zenoh#171 we need to change the keyexpr to be compatible with |
I looked further. The sensor_combined topic actually works now, I built it all from scratch and probably had some options clashing last week. I didn't dig rmw_zenoh as it is not on the correct version and there are over 300 I tried using ros2dds as well as the dds compatibility layer with DDS without success as they both report:
On the other hand, I successfully decode them manually using |
You could try if the official zenoh pico dds example also has this problem. |
Thank you for the hint! I will try that tomorrow :) If you want to test the Python interface through idlc, I intentionally pushed the px4 idl file & generated library. |
@PetervdPerk-NXP Actually, the ROS 2 dds part works. It was my bad as I installed I will now update the description and test the multicast. No success for the multicast :/ |
Indeed good point the Zenoh DDS bridge relies on CycloneDDS.
Do you have to add |
I just tried it and confirm I need to use the namespace |
Indeed ros2dds didn't exist yet when I was implementing it. PX4-Autopilot/src/modules/zenoh/publishers/zenoh_publisher.hpp Lines 72 to 75 in dc7b77e
PX4-Autopilot/src/modules/zenoh/publishers/zenoh_publisher.cpp Lines 64 to 74 in dc7b77e
PX4-Autopilot/src/modules/zenoh/subscribers/zenoh_subscriber.hpp Lines 76 to 79 in dc7b77e
PX4-Autopilot/src/modules/zenoh/subscribers/zenoh_subscriber.cpp Lines 81 to 91 in dc7b77e
|
Unlike zenoh-bridge-dds we were using, zenoh-bridge-ros2dds is now adding the rt/ prefix automagically.
I removed the |
I'm okay with merging this as is, hopefully rmw_zenoh will move soon to 1.0.0 as well. |
|
Is this what you wanted? #23492 |
* Update Zenoh-pico from 0.7.0 to 1.0.0 * Update the zenoh-pico version to use PX4/dev/1.0.0-px4 * Remove the rostopic and rt/ prefix * Unlike zenoh-bridge-dds we were using, zenoh-bridge-ros2dds is now adding the rt/ prefix automagically.
Hello PX4 Team,
Everything works fine when I keep the number of Zenoh publishers and subscribers under 9. However, when I try to add more publishers and subscribers, I encounter a segmentation fault like
Could you please guide me on how to debug or resolve this issue? Is there a known limitation with the number of Zenoh publishers, or could it be related to memory allocation? Looking forward to your advice! |
Solved Problem
Zenoh 1.0.0 is soon to be released. This upgrades Zenoh-pico version from 0.7.0 to 1.0.0.
The API of Zenoh won't be changing anymore, making the upgrades trivial from now on. This also means from this version onwards, we should feel comfortable to add features without having to re-implement the Zenoh interface from scratch.
Followup of #22017
Solution
Changelog Entry
For release notes:
Usage
On your machine, tested in ROS 2 Jazzy
PX4 setup
Receive the data
Context
This is still to be considered as highly experimental.
NOTE: Zenoh requires
/dev/urandom
to be available which means you should usemake [platform] menuconfig
and enable it underdevice drivers
on the platform you want to use it on.Limitations
ros2 topic echo