roboticsatiowa / Base-Station

Main base station repository
GNU General Public License v3.0
1 stars 0 forks source link

Transition to rmw_zenoh #25

Open ethanholter opened 3 weeks ago

ethanholter commented 3 weeks ago

Steps for completion

smukunza commented 2 days ago

https://github.com/ros2/rmw_zenoh A ROS 2 RMW implementation based on Zenoh that is written using the zenoh-c bindings.

https://www.youtube.com/watch?v=-WZAA35jLxc&t=1249s Comment from video: "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:

https://zenoh.io/docs/getting-started/quick-test/ Quick test to run Zenoh in a Docker container

ethanholter commented 2 days ago

In reference to the YouTube comment: the rover and base-station will be on the same network so we don't need to worry about that. The main source of trouble will be from our docker container, but we can get around that by exposing and then publishing the correct port to the host system (that's what the -p 7447:7447/tcp -p 8000:8000/tcp does in the last link. We also operate every container in host mode, which may or may not be redundant, but better be safe. Info about both these measures below

https://betterstack.com/community/questions/what-is-the-difference-between-expose-and-publish-in-docker/

https://www.metricfire.com/blog/understanding-dockers-net-host-option/

smukunza commented 1 day ago

https://github.com/eclipse-zenoh/zenoh-plugin-ros2dds Zenoh bridge for ROS2 over DDS

https://roboticseabass.com/2023/07/09/updated-guide-docker-and-ros2/