Open Xuyanqingg opened 4 days ago
probably you can try with ros2 node list --no-daemon
see if there is any difference? if the ros2 daemon is starting up aligned with the other nodes by systemd service, there might not be enough time to collect the connectivity graph in time.
while other machines can detect the nodes via 'ros2 node list' and communicate.
sounds related to ros2 daemon
things, since ros2 daemon
serves xmlrpc only to localhost system.
@fujitatomoya Thanks for your response !!! This issue occurs occasionally and is difficult to reproduce. I have tried with 'ros2 node list --no-daemon' last time, but It didn't work. And I also have tried with 'ros2 daemon stop' and 'ros2 daemon start', but It worked sometimes. In my script(systemd service), the ROS2 nodes will start up after the WiFi connection is established.So, I think there is enough time to collect the connectivity graph. Maybe my thought is not correct and I will try to start daemon first before starting up ROS2 nodes.
probably you can try with
ros2 node list --no-daemon
see if there is any difference? if the ros2 daemon is starting up aligned with the other nodes by systemd service, there might not be enough time to collect the connectivity graph in time.while other machines can detect the nodes via 'ros2 node list' and communicate.
sounds related to
ros2 daemon
things, sinceros2 daemon
serves xmlrpc only to localhost system.
@fujitatomoya I have tried to start daemon first before starting up ROS2 nodes.But It didn't work.The process of all the nodes is normal and the command "ros2 node list" did not show anythings.What's more,I public message to a node,but I can't subcribe the message.What the command I used is ' ros2 topic pub /chatter std_msgs/msg/String "data: 'hello world'" ' and ' ros2 topic echo /chatter '.
What's more,I public message to a node,but I can't subcribe the message.What the command I used is ' ros2 topic pub /chatter std_msgs/msg/String "data: 'hello world'" ' and ' ros2 topic echo /chatter '.
seems like endpoint discovery does not work sometimes in your environment. so this is expected because they cannot find each other in ROS 2 system yet. (they need to be able to find each other before start communicating.)
can you confirm ros2 node list --no-daemon
does not work either? if it does work, we can be sure something is wrong with ros2 daemon
, so that we can see more information with ros2 daemon start --debug
to make sure if the appropriate network interfaces are bound to server, and if the query comes to xmlrpc server and so on.
The environment is as follows:
The issues is as follows:
The ros2 nodes will start automatically when the system boots up through systemd service.The command 'ros2 node list' should display all active nodes normally.However,there are intermittent occurrences where the command fails to display any nodes.And the probability of occurrence is relatively low.
When this situaiton arises,only the local node fails to detect,while other machines can detect the nodes via 'ros2 node list' and communicate.I am certain that the ROS_DOMAIN_ID has been configured correctly.What could be causing this issue?
This issue has troubled me for quite some time. Thank you very much for your response !!!