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.
Metadata
Release files for robocore 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| robocore-0.0.1.tar.gz | 6.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robocore-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.1 kB
Release files / robocore-0.0.1.tar.gz
| Download URL | robocore-0.0.1.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1790c08b7ae52afffa5a44c17a2accc4229de1821202cde38acdc34405edbf7c
|
|
BLAKE2b-256 checksum How to use checksums |
d08fd364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.10
|
Release files / robocore-0.0.1-py3-none-any.whl
| Download URL | robocore-0.0.1-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
410f0e04cd19b50620c8efe67a98a58890794c5048194ef6946ed7555c4b9fdf
|
|
BLAKE2b-256 checksum How to use checksums |
944690e66faae3560e622ee900958cad0cdd8df404d37d9d47bcddb1986c71da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.10
|
Security for robocore 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.