Abstract:With the ability to use containers at the edge, they pose a unified solution to combat the complexity of distributed multi-host ROS deployments, as well as individual ROS-node and dependency deployment. The bidirectional communication in ROS poses a challenge to using containerized ROS deployments alongside non-containerized ones spread over multiple machines though. We will analyze the communication protocol employed by ROS, and the suitability of different container networking modes and their implications on ROS deployments. Finally, we will present a layer 7 transparent proxy server architecture for ROS, as a solution to the identified problems. Enabling the use of ROS not only in containerized environments, but proxying ROS between network segments in general.
Abstract:The Robot Operating System (ROS) provides a software framework, and ecosystem of knowledge and community supplied resources to rapidly develop and prototype intelligent robotics applications. By standardizing communication, configuration and invocation of software modules, ROS facilitates reuse of device-driver and algorithm implementations. Using existing implementations of functionality allows users to assemble their robotics application from tested and known-good capabilities. Despite the efforts of the ROS-Industrial consortium and projects like ROSIN to bring ROS to industrial applications and integrate industrial hardware, we observe a lack of options to generically integrate basic physical IO. In this work we lay out and provide a solution to this problem by implementing a generic Modbus/TCP device driver for ROS.