ROS2 compiled from source - Relocate

Hello,

i tried to move the complete ROS2 install, that i compiled from source, onto my embedded board. After sourcing the local_setup.bash file I’m able to start the talker, which starts publishing as intended. If i start the listener, it starts listening, but no messages will be heard. Did i miss something? This should be possible, right?

Certainly that should be possible. Can you provide more details about your setup, what embedded board are you using? And how you’re diagnosing that talker is publishing but listener is not listening? Have you tried communicating each way from a non-embedded board?

Thank you very much for your fast reply.

I’m using the Renesas-H3 board with a customized linux on it (yocto project). ROS1 is working like a charm on it.
The all the standard examples e.g. Listener, Talker and Service, Client are working on my other PC where i compile the ROS2 install (Ubuntu Xenial).

I concluded that the node publishes, because of the standard output the talker node prints onto the console and the publisher returns no messages. Same with the Client, Service example when I start the Service node and after that the Client node, the Client node prints waiting for service to start.

Thank you in advance!

Hello again,

today I tried to start the lifecycle demo on the embedded board. After I Start up the
lifecycle_talker,
lifecycle_listener,
lifecycle_service_client,
the service_client prints out:
Service lc_talker__change_state is not available.

Thanks in advance for any help.

For anyone who might be struggle wit the same problem, i solved it by:

  • enabling multicast in the kernel on the embedded board,
  • adding a loopback address to the kernel route ip table with:
    $ route add -net 224.0.0.0/4 dev lo

Thanks for answering to @tfoote

@FlorianFusseder I’m glad to hear it’s working!

And thanks for the follow up letting people know what you found was the issue. We’ll try to keep those issues in mind as others might run in to similar issues.