Skip to main content

Meta-ROS middleware

Project description

Meta-ROS

Zero-dependency ROS-like middleware for Python

This module acts as a middleware for communication between different processes using ZeroMQ. It consists of Publisher, Subscriber and MessageBroker classes to be able to publish and subscribe messages to a topic. The module contains different message types including string, int, float and more.

PyPI Wheels platforms Downloads License

Why Meta-ROS?

A middleware solution designed for process communication, incorporating Publisher, Subscriber, and MessageBroker classes. It handles various message types, including strings, integers, and floats, facilitating seamless data exchange. This module fosters a cohesive and scalable robotics environment, driving innovation and research by enabling efficient communication and robust integration across different systems.

Installation

To install the library, use pip:

pip install metaros

Usage

The library is composed of three main classes: Publisher, Subscriber and MessageBroker.

MessageBroker

The MessageBroker class is used to create a message broker that can be used by publishers and subscribers to communicate with each other.

from metaros import MessageBroker

broker = MessageBroker()

Publisher

The Publisher class is used to publish messages to a topic. The constructor takes two arguments: the topic name and the message type. The topic name is a string, while the message type is a Python class. The message type is used to serialize and deserialize messages.

from metaros import Publisher

pub = Publisher("topic_name", String)
pub.publish("Hello world!")

Subscriber

The Subscriber class is used to subscribe to a topic and receive messages. The constructor takes two arguments: the topic name and the message type. The topic name is a string, while the message type is a Python class. The message type is used to serialize and deserialize messages.

import time
from metaros import Subscriber

def callback(msg):
    print(msg)

sub = Subscriber("topic_name", String, callback)
while True:
    # Do something else
    time.sleep(1)

# Stop the subscriber
sub.stop()

Messages

The library comes with a few built-in messages that can be used out of the box. The following messages are available:

  • std_msgs.String
  • std_msgs.Int
  • std_msgs.Float
  • std_msgs.Bool
  • std_msgs.Header
  • geometry_msgs.Vector3
  • geometry_msgs.Vector3Stamped
  • geometry_msgs.Twist
  • geometry_msgs.Quaternion
  • geometry_msgs.Pose
  • geometry_msgs.PoseStamped
  • geometry_msgs.PoseWithCovariance
  • geometry_msgs.TwistWithCovariance
  • nav_msgs.Odometry
  • nav_msgs.Path
  • sensors_msgs.LaserScan
  • sensors_msgs.Image
  • More to come...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metaros-1.0.5.tar.gz (23.6 kB view details)

Uploaded Source

File details

Details for the file metaros-1.0.5.tar.gz.

File metadata

  • Download URL: metaros-1.0.5.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for metaros-1.0.5.tar.gz
Algorithm Hash digest
SHA256 67727277a7389817da2eccc086414b9376ba9e4b8c19a544b1a8c9ac4cd61408
MD5 279d7717ac66b2ae6778963f1828f156
BLAKE2b-256 80dad96f72e901c4bf352ece74e00aa0af8a561804d41306703be9685f1dcea6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page