ROS 2 and Zenoh - From Zero to Deployment
HTML-код
- Опубликовано: 8 фев 2025
- This webinar hosted by our Senior Solution Architect, Julien Enoch, will explain how you can exploit the power of Zenoh today by leveraging our highly optimised ROS 2 zenoh-plugin. This plug-in allows you to leverage Zenoh transparently, without any changes in your applications.
You can see and download the webinar presentation here: / 41a80e70-c674-4002-b6a...
If you want to learn more about Zetta, visit our website: www.zettascale...
If you have any questions or you'd like to register for an evaluation of our platform, email us at zetta@zettascale.tech
Stay up to date with the latest news:
Twitter: / zettascaletech
LinkedIn: / zettascaletech
Website: www.zettascale...
Newsletter: eepurl.com/igPw31
Great webinar. Thank you.
We're happy it was helpful for you. Fell free to join our community on Discord: discord.com/invite/hJFQWjN6Jm
Great webinar 🙌
Glad it was useful to you!
If I want to send the video stream of one robot to another PC, but they are in different place and thus different network, how should I do it?
If your networks are isolated from each other (by NATs or firewalls), you need to deploy a Zenoh router on a host with a public IP (typically in a cloud). Then configure your 2 bridges (robot and PC) with :
connect:{ endpoints: ["tcp/:7447"] },
The router will route the ROS 2 messages (including your video stream) between the 2 bridges.
For secure communications, you should use the Zetta PaaS wich will provision and run a secured router with TLS certificates and keys generated for you: www.zettascale.cloud/
@@zettascaletech Very interesting idea. Do you happened to have example repo or examples about how to implement this in more detail? I will be really appreciated since I have been stuck here for a while with fast DDS.
@@zettascaletech Hello, once again, could you please provide some examples about this? I tried to enable this setup, but from my subscriber I can found the topic but not echoing it or view it.
@@jianqiaocheng1644 sorry for the dekay! You should try with simple talker/listener example at first:
- In your cloud, just run: zenohd
- In your robot run:
- zenoh-bridge-ros2dds -e tcp/:7447
- ros2 run demo_nodes_cpp listener
- In your PC run:
- zenoh-bridge-ros2dds -e tcp/:7447
- ros2 run demo_nodes_cpp talker
If this works, but the video stream doesn’t work, it probably means the video stream and/or other topics are causing some congestion of the network.
So you should try to configure the bridge in your robot to downsample the video stream and other topics at lower frequency.
For instance, assuming your camera topic name ends with "/image_raw", use such configuration.json5 file:
{
connect: {
endpoints: ["tcp/:7447"]
},
plugins: { ros2: {
pub_max_frequencies: [
".*/image_raw=2", // 2Hz max for video stream
".*=10" // 10Hz max for any other topic
]
} }
}
Run the bridge in robot with: zenoh-bridge-ros2dds -c configuration.json5
If you still have troubles, please join our Discord server to get support from our team:
discord.gg/vSDSpqnbkm
@@zettascaletech hey no problem. I gave up on zenith bridge and tried zenoh rmw. It works super smooth and my topology over cloud is also very simple with the help of zenoh. Great work and really appreciate it!
How to do it for multiple robots?
Hi Mike,
As shown in slide 17 (Fleet management), you deploy 1 bridge per robot. To avoid conflicts with several robots using the same topics/services/actions names, you configure different namespaces for each robot.
Join our Discord if you have more questions: discord.com/invite/hJFQWjN6Jm