ROS peripheral interface
The ROS periphery interface provided in this module is implemented on a micro-computer, e.g. Raspberry Pi. It provides a bridge between hardware that is not ROS-compliant and the ROS backbone of the system, e.g. robot workcell. It acts as a proxy between the ROS-based system and exchangeable elements of the cell without ROS capabilities. It allows users to quickly integrate existing hardware into the ROS-based software system. It can be customized to meet the needs of different peripheral equipment in terms of shape, size and connectivity. The included software initializes all interfaces at boot time and thus provides plug-and-produce connectivity to the newly integrated hardware element.
Peripheral elements without ROS interface might include active components that need to be controlled, e.g. actuators, breaks, sensors, etc. It is beneficial if they are controlled using the same software infrastructure as the rest of the ROS-based system. In addition, sometimes it is necessary that peripheral elements provide or store data. Stored data can include coordinates of points of interest, maintenance data, information about products, etc. With all this in mind, the ROS periphery interface has been designed as a self-contained unit.
At the core of the ROS periphery interface is a micro-computer that runs ROS. It implements ROS-compliant interfaces for the GPIOs (general purpose inputs-outputs), which are used to communicate with the new peripheral element to be integrated into the ROS system. A 3rd generation Raspberry Pi micro-computer can be used for this purpose, with version B+ recommended. It is usually encased for protection. The power comes through Power-over-Ethernet with an additional PoE HAT board. The real-world integration of the module depends on the shape and possibly other characteristics of the new hardware element.
To make the micro-computer ROS-compatible, a Pi image with Raspbian OS and pre-installation of ROS is mounted. As the peripheral elements should enable swapping, the ROS instance on the micro-computer runs automatically when the periphery interface receives power. Standard ROS communication protocols are used to send and receive commands to the micro-computer. The commands are then further relayed to the non-compliant peripheral.
Inputs and outputs
Power and Ethernet are mandatory, though power can also be provided via the Power over Ethernet (PoE) standard. Ethernet is used to communicate with the rest of the ROS-based system.
GPIOs (general purpose inputs-outputs) to communicate with the newly integrated hardware element.
Both communication channels are bidirectional.
Formats and standards
The software to be installed on the micro-computer is released under 3-clause BSD license (https://opensource.org/licenses/BSD-3-Clause).
Support for software installation and the development of hardware interface is available free of charge within TRINITY open calls and on contract basis otherwise.
ROS Kinetic is currently supported. It can run either directly under Raspbian OS or inside a Docker container.
Jožef Stefan Institute, Department of Automatics, Biocybernetics and Robotics
ABR conducts basic and applied research in the area of robotics (including intelligent control, robot learning, exoskeletons, humanoid robotics, and industrial robotics), factories of the future, industrial automation, and environmental physiology. The aim of the group is to create robots that are capable of acquiring new knowledge through learning and can collaborate with people, which is essential for bringing robots to new application domains. Besides research projects, ABR researchers also provide support for transferring robotics technologies to practical applications.
Web address: http://abr.ijs.si
Contact for this module: Rok Pahič, e-mail: firstname.lastname@example.org
Manual for the implementation of ROS periphery interface is available at https://www.ijs.si/usr/aude/trinity/ros_periphery_interface.pdf