open-rmf / free_fleet

A free fleet management system.
Apache License 2.0
157 stars 65 forks source link

dds config over wider network #54

Closed txlei closed 3 years ago

txlei commented 3 years ago

goal is for server and client to communicate across different network/ over internet. specifically, robot running client connected to standard wifi route and server is hosted on aws ec2 instance.

I've tried to disable udp multicast and add in the ipv4 addresses for peer discovery in the cyclonedds xml config but it does not work. Cyclone DDS documentation is still lacking tutorials for such set-up. I've found few links that recommended an external VPN service that provides ipv6 addresses to connect.

Would like to ask if you have any suggestion on this.

codebot commented 3 years ago

Greetings!

We are starting to look into this scenario also, and will update the documentation as we learn more about operating FreeFleet over a WAN. In the meantime, I'm sure you're doing this already, but just to be clear: both sides of the DDS link need to be configured in a compatible way, not just one side.

I'd suggest contacting the cyclone dds folks directly and asking them for a tutorial about how to configure hello-world over a WAN. I believe you can put Cyclone into TCP mode, which can help, but they will know more than any of us about how to tune Cyclone for WAN transport.

aaronchongth commented 3 years ago

Hello @txlei!

The main branch of free_fleet is currently using CycloneDDS in UDP by default, due to the requirements of working with robots over possibly spotty networking situations. The current implementation's qos settings can be found here and here. You can get TCP by setting down different qos settings, but for WAN, you might need to consult the maintainers of CycloneDDS.

The next re-work of free_fleet will comprise of abstractions that allow users to use their own middleware implementations. Stay tuned for that :) In the meantime, let us know if you have any other lingering questions.