Table of Contents
Fetching ...

Wrapyfi: A Python Wrapper for Integrating Robots, Sensors, and Applications across Multiple Middleware

Fares Abawi, Philipp Allgeuer, Di Fu, Stefan Wermter

TL;DR

Wrapyfi addresses interoperability bottlenecks when integrating robots, sensors, and applications across multiple middleware by providing a Python wrapper that unifies ZeroMQ, YARP, ROS, and ROS 2 with a decorator-based API. It supports type-aware serialization and a plugin system to transfer native objects, arrays, and tensors, enabling seamless cross-framework data exchange without forcing ONNX or other model representations. The framework introduces three communication schemes—Mirroring, Forwarding, and Channeling—and supports the two common patterns (publish-subscribe and request-reply), facilitating multi-machine, multi-robot workloads. This approach lowers integration effort and broadens the combination of robotics and deep learning tools for cross-platform robotics development.

Abstract

Message oriented and robotics middleware play an important role in facilitating robot control, abstracting complex functionality, and unifying communication patterns between sensors and devices. However, using multiple middleware frameworks presents a challenge in integrating different robots within a single system. To address this challenge, we present Wrapyfi, a Python wrapper supporting multiple message oriented and robotics middleware, including ZeroMQ, YARP, ROS, and ROS 2. Wrapyfi also provides plugins for exchanging deep learning framework data, without additional encoding or preprocessing steps. Using Wrapyfi eases the development of scripts that run on multiple machines, thereby enabling cross-platform communication and workload distribution. We finally present the three communication schemes that form the cornerstone of Wrapyfi's communication model, along with examples that demonstrate their applicability.

Wrapyfi: A Python Wrapper for Integrating Robots, Sensors, and Applications across Multiple Middleware

TL;DR

Wrapyfi addresses interoperability bottlenecks when integrating robots, sensors, and applications across multiple middleware by providing a Python wrapper that unifies ZeroMQ, YARP, ROS, and ROS 2 with a decorator-based API. It supports type-aware serialization and a plugin system to transfer native objects, arrays, and tensors, enabling seamless cross-framework data exchange without forcing ONNX or other model representations. The framework introduces three communication schemes—Mirroring, Forwarding, and Channeling—and supports the two common patterns (publish-subscribe and request-reply), facilitating multi-machine, multi-robot workloads. This approach lowers integration effort and broadens the combination of robotics and deep learning tools for cross-platform robotics development.

Abstract

Message oriented and robotics middleware play an important role in facilitating robot control, abstracting complex functionality, and unifying communication patterns between sensors and devices. However, using multiple middleware frameworks presents a challenge in integrating different robots within a single system. To address this challenge, we present Wrapyfi, a Python wrapper supporting multiple message oriented and robotics middleware, including ZeroMQ, YARP, ROS, and ROS 2. Wrapyfi also provides plugins for exchanging deep learning framework data, without additional encoding or preprocessing steps. Using Wrapyfi eases the development of scripts that run on multiple machines, thereby enabling cross-platform communication and workload distribution. We finally present the three communication schemes that form the cornerstone of Wrapyfi's communication model, along with examples that demonstrate their applicability.
Paper Structure (6 sections, 2 figures)

This paper contains 6 sections, 2 figures.

Figures (2)

  • Figure 1: Facial expression imitation on the Pepper and iCub.
  • Figure 2: Head and eye movement imitation using either an IMU-fitted eye tracker or a head pose estimation model.