I am trying to explore the usage of DDS in ROS2. My set up is 2 computers connected to the same network. Slave computer runs ROS2 Foxy and host Computer runs ROS2 Humble.

I couldn't get them to communicate .

I am grateful if someone can help me with my problem or correct what i've done. Please advise.

Steps I've done so far: On Slave Computer:

On slave computer i modified my bashrc to add these lines : export ROS_DOMAIN_ID=1
In a terminal i ran fastdds discovery --server-id 0
In another terminal. I ran my talker node.
/chatter is being published checked using ros2 topic list.

On Host Computer:

On Host computer i modified my bashrc to add these lines :

export ROS_DOMAIN_ID=1

export ROS_DISCOVERY_SERVER=Slave'sIP:11811

I checked ros2 topic list. /chatter is missing.

I tried running my listener node. Nothing was heard.

After this, i tried to kill and re-start the ros2 daemon and just repeated the process.

I'm expecting that after the proper setup. host machine can at least view slave machine's topic and can run the listener while subscribing to the topic from host machine.


1 Answer 1


Communication between different ROS 2 releases is not guaranteed to work, see this previous answer.

  • $\begingroup$ Understood. Thank you very much. Given that info would writing a FASTDDS subscriber in C++ without ROS2 be a solution? Or would you suggest, I make both machines use ROS2 Foxy or Humble strictly. May I know your thoughts? $\endgroup$
    – Joshua Siy
    Nov 16, 2023 at 13:22
  • $\begingroup$ I assume if there would be an easy solution to interoperability between releases, that it would have been implemented. Given there is no such implementation, I conclude that the best option is to use only one release. $\endgroup$
    – JRTG
    Nov 16, 2023 at 16:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.