I’m using ROS 2 Humble on an embedded platform. During program execution, if the robot loses network connection, everything stops and the program halts. I would like to ensure that the robot continues executing the program even after the network connection is lost.
I’ve already tried the solution described in this post, but unfortunately, it didn’t work for me.
Has anyone encountered a similar issue or found a reliable solution?
What middleware are you using? If it’s an option, you may want to consider switching to rmw_zenoh, which by default only works on localhost. This should make your system robust to the network dropping.
We have had the best results compiling rmw_zenoh from source as we found the release builds had a few issues.
Thank you for your reply. We are using cyclonedds RMW, but switching to zenoh is not an option as we are building a system for a robotics competition next week. Therefore we need a robust solution, without critical changes.
Using the ssh protocol, we communicate with the embedded platform, where we start all the necessary components (navigation, detection, hardware components). We have a startup launch script that starts all.
Are you saying your problem is that when a network interface disappears and then appears again, the RMW doesn’t notice it and doesn’t communicate on this interface? Or does the disappearing of the network device even break comms on localhost while the link is lost?
We appreciate the iterations here. However this thread is a much better suited for Robotics Stack Exchange As is described in our support guidelines ROS Discourse we want to focus on general disussions and troubleshooting support is on Robotics Stack Exchange which has many better mechanisms to improve the flow for helping get to the best answer faster.
@Marija_Golubovic based on all these iterations please try to make a minimal reproducible example so that others can help you better. Because your question is not clearly defined and reproducible you’re getting a lot of suggestions that are not helpful for you. Please ask your question and then follow up here one last time to provide a link to the question so that if someone has an issue similar to yours they can find the question and hopefully answer on Stack Exchange.