Setup
I am running ROS nodes on two separate machines (my laptop, running ROS melodic on Ubuntu 18.04, and a voxl computer running ROS kinetic on yocto).
Problem
The voxl computer runs the roscore. The communication between the two devices is fine. The respective IPs are set properly (ROS_IP and ROS_MASTER_URI are explicitly set accordingly on each device).
However, there are some nodes (only a few!) that seem unconnected although they launch fine, with roswtf generating the error:
ERROR The following nodes should be connected but aren't:
* /node_x -> /node_y
* ...
When searching online, what causes this type of error are usually DNS related issues, but here, both devices are successfully connected over the network and most nodes function properly, except for some of them...
Also, killing a node that has trouble communicating with rosnode kill node_z and restarting it alone with rosrun package node_z enables it to communicate properly again.
roscore related issue?
Furthermore, taking a working configuration (several nodes interacting together on the same device, with the roscore on the same machine) is fine, but running the same configuration, but this time, with the roscore on another device breaks certain connections. What could cause this discrepancy?
Sensitivity to launch sequence
It seems that the order in which nodes or launch files are called have an impact.
Conclusion
I am not sure what causes the issue here and where to look to solve the it...