Skip to content
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

[FEAT]: Multi robot using Zenoh #19

Open
jondave opened this issue Feb 20, 2024 · 7 comments
Open

[FEAT]: Multi robot using Zenoh #19

jondave opened this issue Feb 20, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@jondave
Copy link

jondave commented Feb 20, 2024

Description

To run zenoh on multiple robots and interact with a single zenoh server need to change the line in the docker compose file and add a namespace e.g. limo number. -n /limo_1522
Topics on the server are /namespace/topic e.g. /limo_1522/imu

command: bash -c "source /opt/ros/lcas/install/setup.bash; (zenoh-bridge-ros2dds -n /limo_1522 -l tcp/0.0.0.0:8888 &); (ros2 launch astra_camera dabai.launch.py &); ros2 launch limo_bringup limo_start.launch.py"

Tried this with two limos and the topic data lags quite a bit.

This is more for Leonardo in ROB1001 for two limo robots to communicate with each other.

Additional Information

No response

@jondave jondave added the enhancement New feature or request label Feb 20, 2024
@marc-hanheide
Copy link
Member

I'd suggest making the namespace an environment variable option which by default is no namespace.
We could support a special keyword,.e.g. hostname which automatically will take the value of the $HOSTNAME?

@marc-hanheide
Copy link
Member

see #20

@jondave
Copy link
Author

jondave commented Feb 21, 2024

I'm thinking about what @LeonardoGuevara wants to do with the limos, have two limos communicate with each other. E.g. limo 1 publishes a topic and limo 2 subscribes to it.

@marc-hanheide
Copy link
Member

Does it work at all or not? It may be best if we deploy a zenoh server just like we do with mqtt, and let all robots connect to that with their namespace

@jondave
Copy link
Author

jondave commented Feb 23, 2024

As a quick "fix" you can launch zenoh bridge zenoh-bridge-ros2dds -e tcp/10.82.0.XXX:8888 -n /limo_XXX inside the container on Limo 1 with the IP address of Limo 2. Just change the namespace -n otherwise the topics interfere with each other.
Limo 1 can publish a topic and Limo 2 can subscribe to it or vice versa.
You can run zenoh bridge on a lab PC and connect to either Limo 1 or Limo 2 and subscribe to the topic published by Limo 1.
Hopeful this is useful for @LeonardoGuevara

@LeonardoGuevara
Copy link
Collaborator

Sounds exactly like what we need the students to do, I will try it on Monday with the Limos.

@jondave
Copy link
Author

jondave commented Feb 29, 2024

As a quick "fix" you can launch zenoh bridge zenoh-bridge-ros2dds -e tcp/10.82.0.XXX:8888 -n /limo_XXX inside the container on Limo 1 with the IP address of Limo 2. Just change the namespace -n otherwise the topics interfere with each other. Limo 1 can publish a topic and Limo 2 can subscribe to it or vice versa. You can run zenoh bridge on a lab PC and connect to either Limo 1 or Limo 2 and subscribe to the topic published by Limo 1. Hopeful this is useful for @LeonardoGuevara

@marc-hanheide This won't work we need to set up a zenoh server/router for this to work properly as @LeonardoGuevara wants four limos to communicate with each other.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants