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

Support environment variables for dynamic discovery #241

Open
Yadunund opened this issue Jul 11, 2024 · 3 comments
Open

Support environment variables for dynamic discovery #241

Yadunund opened this issue Jul 11, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@Yadunund
Copy link
Member

As documented here https://docs.ros.org/en/rolling/Tutorials/Advanced/Improved-Dynamic-Discovery.html

@Yadunund Yadunund added the enhancement New feature or request label Jul 11, 2024
@gavanderhoorn
Copy link
Contributor

@Yadunund: somewhat related (hence my comment here): would it perhaps make sense to support an environment variable just for configuring / adding to connect.endpoints in the router config?

Right now, if a user wants to connect their router to an off-host router (ie: join/create a mesh), they have to copy the router config file, edit it and make rmw_zenoh use that copy, instead of the default one.

But having to duplicate the file (and manage it) just in order to be able to setup a multi-machine ROS 2 application -- which requires just a single line addition -- seems like it's more complex than it absolutely needs to be.

Support for something like ROS_STATIC_PEERS could help here perhaps: users would just need to set that environment variable. Especially when IPs/peers change that would be much easier than having to copy & edit the file.

@ros-discourse
Copy link

This issue has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/rmw-zenoh-binaries-for-rolling-jazzy-and-humble/41395/8

@Yadunund
Copy link
Member Author

@gavanderhoorn,

What you suggested will be doable once we address #262. The upstream Zenoh router, ie, zenohd, already parses various CLI args to inject/overwrite the config that may be loaded from the file. In rmw_zenoh, we're not running the upstream zenohd and instead have a custom executable rmw_zenohd which starts a router process with limited functionalities. Long story short, the c(pp) bindings of Zenoh did not distribute the zenohd binary but Zettascale has recently added some mechanisms to install the router when building the bindings. Once those changes go in, we'll bump the version of zenoh-cpp we vendor in rmw_zenoh and update our rmw_zenohd to simply run the upstreamzenohd while passing along all the CLI args that the Zenoh router already parses including ones that specify additional endpoints to connect to 😄

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