GithubHelp home page GithubHelp logo

Comments (3)

jparisu avatar jparisu commented on June 18, 2024

Hi @lairdm

Glad to know you are using our new Repeater feature. Every feedback is welcome.

Regarding your issue, I was not able to replicate the error, nor in foxy neither humble. I have checked the QoS and they have not changed for the command you are using. And this should not be a problem, as the DDS Router currently forward all the data (the internal entities use the lowest restriction QoS).

We have recently added a new functionality to EchoParticipant where you can see the Discovery information (and set a verbose option). From this PR #264 it is available and it may help you to see if the problem is that messages are not being forwarded correctly, or it is a discovery problem.
Sorry, but this feature is not well documented yet. I am working on it and I would upload it ASAP.

So, in order to help you with your issue, I may need to know if the error occurs in discovery (check that Cloud and Edge2 DDS Routers create the entities regarding the Edge1, and Discover the remote endpoitns) or whether it is a communication problem (EchoParticipant may not show data been forwarded from a router to the other).

from dds-router.

lairdm avatar lairdm commented on June 18, 2024

I've solved the issue but I have no idea why it works. I briefly got a Foxy VM working, which confused me. I then rebooted it and it stopped working. Digging through the data: true and verbose: true settings for the echo participant, thank you that was very useful, I saw that DDS Router wasn't even seeing the twist commands being sent locally on Foxy.

I found this post talking about disabling the shared memory transport [1]. I tried adding the profile and now the Foxy node works perfectly fine in both directions. And again, this is something I've sort of gotten hints about as I've been learning and evaluating RTI's Routing Service over the last month. I've seen hints that something with QoS or the SHMEM protocol magic number/identifier changed in the DDS standard around the time of Foxy/Galactic. I don't fully understand but I've seen different mentions about Foxy and SHMEM compatibility and changes.

Regardless, I've found a way to make Foxy work consistently. Thank you very much for your assistance.

[1] https://answers.ros.org/question/370595/ros2-foxy-nodes-cant-communicate-through-docker-container-border/

from dds-router.

jparisu avatar jparisu commented on June 18, 2024

Hi @lairdm
I am glad that it works now. We are working to improve our documentation, but indeed the Echo feature is a great advantage.

Regarding the changes in ROS2 that you mention, I am not completely aware of it, but notice this;

  • Foxy works (by default) with eProsima Fast DDS. Galactic has Cyclone DDS by default. So this is a major change in middleware, especially regarding default values. But the default QoS should have no change as far as I know. Humbles turns back to Fast DDS.
  • Shared Memory Transport is not something standard in DDS, so each implementation has its own (if they have one). In Fast DDS we know that it has been issues when working with dockers, as entities think they are in the same host while they do not have access to the same shared memory segment. This is configurable via CMake options, via code or by xml configuration.
  • DDS Router always works with Fast DDS underneath. Thus, it will behave differently with Fast DDS entities than with other DDS vendors entities. However, this differences would be noticed in performance, but should not affect the user experience (except this SHM docker failure).

Please, if this issue has been solved, close this issue and feel free to open it or open a new one if any other problem arises.

from dds-router.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.