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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1790c08b7ae52afffa5a44c17a2accc4229de1821202cde38acdc34405edbf7c |
|
MD5 | aefcae021319fb7ccaaf9c220918334b |
|
BLAKE2b-256 | d08fd364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 410f0e04cd19b50620c8efe67a98a58890794c5048194ef6946ed7555c4b9fdf |
|
MD5 | 23377135ba603974064bd02684ff87d1 |
|
BLAKE2b-256 | 944690e66faae3560e622ee900958cad0cdd8df404d37d9d47bcddb1986c71da |