Skip to main content

A Python middleware for robotic communication.

Project description

13. README.md

Robocore

Robocore is a pure Python middleware for robotic communication, emphasizing simplicity, customizability, and ease of use. It enables high-bandwidth, low-latency communication suitable for streaming data like RGB-D arrays.

Philosophy

Robocore aims to lower the barrier to entry for robotic communication by providing an easy-to-use and highly customizable framework. The goal is to make sure that you can focus on your methods without worrying about the underlying communication complexities.

Features

  • Publish/Subscribe Paradigm: Simple string-based topics with support for multiple publishers and subscribers.
  • Centralized Key-Value Store: A database-like system for storing and retrieving key-value pairs.
  • Automatic Server Initiation: Servers for topic registry and key-value store start automatically in the background.
  • Visualization Tools: Real-time data inspection and visualization using rerun-sdk.
  • Configuration Files: Use .yaml files to specify topic types and additional info.

Installation

pip install robocore

Getting Started

Simple Publish/Subscribe

import robocore as rc

def publisher():
    pub = rc.Publisher(topic="camera_feed")
    pub.publish(data)  # Replace 'data' with your data
    pub.close()

def subscriber():
    sub = rc.Subscriber(topic="camera_feed")
    data = sub.receive()
    sub.close()

Multiple Subscribers

Check out the example in the examples folder:

python examples/multiple_subscribers.py

Robotic Manipulator Example

Simulate a robotic manipulator with multiple publishers and subscribers:

python examples/robotic_manipulator.py

Cross-Device Communication

Use Tailscale for networking across devices:

  • Install Tailscale on both devices.
  • Run the publisher on one device and the subscriber on the other.
  • Modify the connect method to use the Tailscale IP address.

Configuration

Use a .yaml file to specify topic types and visualization settings:

topics:
  - name: camera_feed
    type: image
    visualize: true

Visualization

Integrate with rerun-sdk for real-time visualization:

visualizer = rc.Visualizer(topics=["camera_feed"])
visualizer.start()

Contributing

Contributions are welcome! Please refer to the documentation and follow the coding standards.


For more examples and detailed usage, please refer to the examples folder.

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

robocore-0.0.1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

robocore-0.0.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file robocore-0.0.1.tar.gz.

File metadata

  • Download URL: robocore-0.0.1.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for robocore-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1790c08b7ae52afffa5a44c17a2accc4229de1821202cde38acdc34405edbf7c
MD5 aefcae021319fb7ccaaf9c220918334b
BLAKE2b-256 d08fd364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707

See more details on using hashes here.

File details

Details for the file robocore-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: robocore-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for robocore-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 410f0e04cd19b50620c8efe67a98a58890794c5048194ef6946ed7555c4b9fdf
MD5 23377135ba603974064bd02684ff87d1
BLAKE2b-256 944690e66faae3560e622ee900958cad0cdd8df404d37d9d47bcddb1986c71da

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