Networking is at the heart of any modern robotic system. Whether you’re a hobbyist building a single robot or a professional managing a fleet of autonomous machines, reliable network communication is critical. Yet, when it comes to ROS 2, networking challenges can sometimes feel like navigating a maze blindfolded.
We have observed a recurring theme among users and the broader robotics community: networking issues are one of the most common pain points in ROS 2 projects. These problems can range from discovering why nodes aren’t communicating to diagnosing intermittent connectivity that only rears its head under load.
We also experienced this struggle and wanted to help the community – so we developed a comprehensive resource to empower you to navigate the complexities of ROS 2 networking with confidence.
Understanding the Challenge
ROS 2 middleware is powerful and flexible, but this configurability comes with its own challenges. It enables dynamic discovery and scalability but at the same time introduces configuration complexity and complicates troubleshooting. While new middleware will come and address some of the issues with older versions, there isn’t a single middleware that is best for all situations. They each have their own advantages and disadvantages. Some of the most common networking challenges users face include:
- Lack of awareness of the role of the ROS 2 Daemon, making ROS 2 networking feel inconsistent or unreliable.
- Suboptimal networking hardware, poor hardware placement, or network misconfiguration that results in poor network performance, particularly in wireless networks.
- Networks overwhelmed by bandwidth-intensive topics or excessive numbers of messages.
- Handling multiple or dynamic network connections within one system.
- Quality of service settings that can exasperate existing network reliability issues.
Clearpath Takes On ROS 2 Networking at ROSCon 2024
We had the pleasure of hosting a full-day, sold-out workshop at ROSCon 2024 in Odense, Denmark. The mission – demystify ROS 2 networking. Our team broke this substantial topic down covering the fundamentals of networking, how ROS 2 middleware works and then doing a deep dive into Fast DDS Simple Discovery and Discovery Server. Each step along the way was accompanied by practical examples and hands-on exercises. The day was rounded out by discussing case studies that covered many common issues as well as more advanced situations. To see the workshop slideshow or try out the exercises, visit the workshop repository.
Introducing our ROS 2 Networking Resources
Speaking with the community and commiserating over collective challenges at ROSCon inspired us to release a compilation of networking resources. We want to enable both our customers and the community as a whole to use ROS 2 efficiently and effectively, removing barriers to innovation where we can.
Click here to access the ROS 2 networking resources.
No matter where you find yourself in your ROS 2 journey, there is a section that will likely benefit you.
- For those who are just starting to work with ROS 2, see the ROS 2 Communication page which introduces the ROS 2 Daemon, handling network changes and Quality of Service.
- For those setting up robots to operate over Wi-Fi, familiarize yourself with Wi-Fi Fundamentals and Wi-Fi Hardware selection, and recommendations specific to robotic systems. Once the network is well configured, there is a detailed tutorial on how to optimize video feeds for transmission over your network.
This is all well and good, but what if the system is still not working? We have created a large network troubleshooting section to address just that. There are flowcharts to troubleshoot connectivity between computers both for network integrity and for ROS 2 connectivity to facilitate addressing persistent connectivity issues. Intermittent connectivity issues are covered separately and network troubleshooting tools are introduced to help diagnose any additional issues.
Don’t forget, for those using the Clearpath ROS 2 robot packages, many of these issues are addressed automatically in the packages or through the robot.yaml configuration.
Let’s Build a More Connected Future
Robotics is about more than just hardware and code – it’s about solving real-world problems and enabling innovation. Networking issues shouldn’t stand in the way of your success.
We’re proud to share these resources with the ROS 2 community, and we hope they help you spend less time troubleshooting and more time building incredible robotic systems.
We’ve taken care to make these resources accessible to all experience levels, but would love your contributions and feedback. If you have tips and experience to share, or clarifications that you think would be helpful, please submit an issue or PR to our documentation repository.
About the Author
Hilary Luo (M. Eng, P. Eng) is a Software Developer at Clearpath Robotics. She’s a member of the platform software team with expertise in ROS 2 networking. Hilary ran the Clearpath Robotics ROSCon 2024 workshop along with her fellow teammates and personally authored the networking documentation featured in this blog post.
Thank you Hilary for contributing your extensive knowledge and time to supporting the ROS community with this blog article and associated resources.