Abstract

In a Robot Operating System (ROS) application, robot software is often distributed across multiple networked components, forming the ROS network, where every component acts as server and/or a client, and publishing and/or receiving robot data simultaneously. For indoor robots, a local ROS network, through a Wi-Fi hotspot, is sufficient. But for outdoor robots, a remote ROS network is needed to connect the ROS application to the cloud. Although a number of cloud-based solutions support this, implementing them is challenging, as they need to be configured to facilitate ROS's unique, multidirectional, and simultaneous flow of robot data. This article presents Port Forwarding as an alternative approach, which offers a private, secured, and a direct ROS-to-ROS, eliminating the need for a dedicated middleware and its configuration and setup complexities. But Port Forwarding has its own challenges; chiefly, the beforehand knowledge of Internet addresses of all networked components and the need to update port forwarding settings when these addresses change, which they often do. This article addresses this issue (and others) and presents a detailed procedure for setting Port Forwarding for ROS applications, highlighting configuration, and troubleshooting steps. Also, the article compares between Port Forwarding and cloud-based solutions, in terms of setup, performance, and others. Results show that robot performance under Port Forwarding is on par with cloud-based solutions, but it required a fraction of setup time. The authors developed a set of shell scripts that monitor the Internet addresses of all networked components and auto-update Port Forwarding settings when they change, solving this issue. With this, Port Forwarding could be considered a viable option for ROS system networks, on par with cloud-based solutions.

Highlights

  • The Robot Operting System (ROS) is one of the fastest growing platforms for robot software development,[1,2] and one of its many features is software distribution

  • Robot data are shared among all connected components, with every component publishing and/or subscribing to this robot data, and ROS’s

  • A local ROS network is sufficient, where all components are networked via a local Wi-Fi router

Read more

Summary

Introduction

The Robot Operting System (ROS) is one of the fastest growing platforms for robot software development,[1,2] and one of its many features is software distribution. In this network, robot data are shared among all connected components, with every component publishing and/or subscribing to this robot data, and ROS’s. The situation becomes more challenging.[3] This is where a remote ROS network is needed, where components are networked remotely through the cloud. One approach is to create a bridge, or a middle point in the cloud, where robot data are hosted and is accessible to all connected components, allowing them to indirectly interact with each other. A number of cloud-based solutions facilitate this, such as webservers, android, and a number of cloudrobotics platforms, such as RoboEarth.[4,5,6,7,8,9]

Methods
Discussion
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.