Table of Contents
Fetching ...

A Solution to the Generalized ROS Hardware IO Problem -- A Generic Modbus/TCP Device Driver for PLCs, Sensors and Actuators

Arne Wendt, Thorsten Schüppstuhl

TL;DR

This paper identifies a gap in ROS for generic, scalable hardware IO integration and proposes a Modbus/TCP-based driver to bridge PLCs, sensors, and actuators with ROS. The authors implement a driver where each Modbus slave maps IOs to individual ROS topics, enabling read/write access and IEC 61131-3 type decoding, and demonstrate low-latency performance in a docker-based setup. The work shows Modbus/TCP’s practicality due to wide hardware support and simplicity, enabling rapid prototyping across industrial and research contexts. While acknowledging potential benefits of OPC UA or MQTT in the future, the solution provides a portable, reusable approach that aligns with ROS principles of modularity and reusability, especially for generic IO tasks.

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.

A Solution to the Generalized ROS Hardware IO Problem -- A Generic Modbus/TCP Device Driver for PLCs, Sensors and Actuators

TL;DR

This paper identifies a gap in ROS for generic, scalable hardware IO integration and proposes a Modbus/TCP-based driver to bridge PLCs, sensors, and actuators with ROS. The authors implement a driver where each Modbus slave maps IOs to individual ROS topics, enabling read/write access and IEC 61131-3 type decoding, and demonstrate low-latency performance in a docker-based setup. The work shows Modbus/TCP’s practicality due to wide hardware support and simplicity, enabling rapid prototyping across industrial and research contexts. While acknowledging potential benefits of OPC UA or MQTT in the future, the solution provides a portable, reusable approach that aligns with ROS principles of modularity and reusability, especially for generic IO tasks.

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.
Paper Structure (18 sections, 3 figures, 4 tables)

This paper contains 18 sections, 3 figures, 4 tables.

Figures (3)

  • Figure 1: Schematics of information flow from hardware IO to ROS, showing components and properties to identify, as well as their relations and interfaces; class or set of GPIO capable hardware, as Device A to Device N
  • Figure 2: Basic ROS Modbus/TCP driver principle. Mapping Modbus/TCP items to individual ROS topics. Data interpretation from registers show as conversion-method $t$, converting from register value $v$ to ROS compatible representation with data type $T$.
  • Figure 3: Simplified and abstracted class relationship diagram of the Modbus/TCP slave device wrapper ModbusSlaveDevice.