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
.yamlfiles 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
connectmethod 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|