Abstract

Middlewares are fundamental tools for progress in research and applications in robotics. They enable the integration of multiple heterogeneous sensing and actuation devices, as well as providing general purpose modules for key robotics functions (kinematics, navigation, planning). However, no existing middleware yet provides a complete set of functionalities for all robotics applications, and many robots may need to rely on more than one framework. This paper focuses on the interoperability between two of the most prevalent middleware in robotics: YARP and ROS. Interoperability between middlewares should ideally allow users to execute existing software without the necessity of: (i) changing the existing code, and (ii) writing hand-coded ``bridges'' for each use-case. We propose a framework enabling the communication between existing YARP modules and ROS nodes for robotics applications in an automated way. Our approach generates the ``bridging gap'' code from a configuration file, connecting YARP ports and ROS topics through code-generated YARP Bottles. % %The configuration file must describe: (i) the sender entities, (ii) the way to group and convert the information read from the sender, (iii) the structure of the output message and (iv) the receiving entity. Our choice for the many inputs to one output is the most common use-case in robotics applications, where examples include filtering, decision making and visualization. % We support YARP/ROS and ROS/YARP sender/receiver configurations, which are demonstrated in a humanoid on wheels robot that uses YARP for upper body motor control and visual perception, and ROS for mobile base control and navigation algorithms.

Highlights

  • Robotics midlewares such as the Robot Operating System (ROS) (Quigley et al, 2009) and Yet Another Robot Platform (YARP) (Metta et al, 2006) are currently two of the main frameworks for research and development on robotics platforms and are deployed in hundreds of robots worldwide

  • We introduced a software tool that improves the interoperability between YARP and ROS, reducing the coding effort and changing existing software

  • Our approach is based on a configuration file written by the user that is the input of our software, which generates C++ code

Read more

Summary

INTRODUCTION

Robotics midlewares such as the Robot Operating System (ROS) (Quigley et al, 2009) and Yet Another Robot Platform (YARP) (Metta et al, 2006) are currently two of the main frameworks for research and development on robotics platforms and are deployed in hundreds of robots worldwide They play a key enabling role on building complex applications requiring multiple distinct hardware and software tools but are still under active development and far from providing a complete set of functions for general purpose robots. Since in most of the cases, the user has more familiarity with one of the middlewares (YARP or ROS), we aim at simplifying the programing of data sending/receiving Issues such as concurrency and real-time communication are not addressed on this work. Our approach is constructed upon the interoperability YARP with ROS, proposed by Fitzpatrick (2016) and developed by the YARP team, which supports the run-time conversion of YARP bottles to ROS messages Our framework provides both YARP/ROS and ROS/YARP as sender/receiver use cases.

AND RELATED WORK
YARP BOTTLE GENERATOR
Main Concepts of the Generated Code
Software Architecture
Configuration File
YARP–ROS Case
ROS–YARP Case
Computational Performance
Known Issues and Limitations
CONCLUSION AND FUTURE WORK
Full Text
Published version (Free)

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