Lightweight communication middleware for cloud-based robotics controllers
Project description
🦫 Capybarish
Capybarish is a lightweight communication middleware designed for cloud-based robotics controllers. This MVP (Minimum Viable Product) was developed to support research on reconfigurable legged metamachines - modular robots that can dynamically reconfigure their morphology using autonomous modular legs.
🔬 Research Context
This package supports the research presented in "Reconfigurable legged metamachines that run on autonomous modular legs" by Chen Yu et al. The middleware enables real-time communication between cloud-based controllers and distributed modular robot components, facilitating the coordination of autonomous modular legs that can form complex legged metamachines.
🚀 Quick Start
Installation
pip install capybarish
Basic Usage
from capybarish.interface import Interface
from capybarish.utils import load_cfg
import numpy as np
# Load configuration
config = load_cfg("default")
# Initialize the interface
interface = Interface(config)
# Basic control loop for modular robot communication
for i in range(100):
# Receive sensor data from robot modules
interface.receive_module_data()
# Get observable data
data = interface.get_observable_data()
# Send control commands to modular legs
action = np.array([0.1 * np.sin(i * 0.1)])
interface.send_action(action, kps=np.array([10.0]), kds=np.array([1.0]))
Configuration
Create a YAML configuration file in the config/ directory:
# config/default.yaml
interface:
module_ids: [1, 2, 3] # IDs of your modular robot components
communication:
protocol: "udp"
timeout: 0.1
dashboard:
enabled: true
port: 6667
🏗️ Architecture
Capybarish provides a modular middleware architecture with:
- Interface: Main control interface for robot communication
- Communication Manager: UDP-based real-time communication
- Dashboard Server: Data visualization and monitoring
- Plugin System: Extensible architecture for custom components
- Configuration Management: Flexible YAML-based setup
📋 Requirements
- Python 3.8+
- NumPy >= 1.20.0
- OmegaConf >= 2.1.0
- MessagePack >= 1.0.0
- Rich >= 10.0.0 (for UI)
- PyYAML >= 5.4.0
🔧 Development Status
This is an MVP under active development. The package is being continuously updated and generalized as part of ongoing PhD research at Northwestern University. Features and APIs may change as the research progresses.
Roadmap
- Enhanced plugin system for more sensors
- Improved cloud-robotics integration
- Performance optimizations for real-time control
🤝 Contributing
This project is primarily research-focused, but contributions are welcome! Please feel free to:
- Report issues or bugs
- Suggest improvements
- Submit pull requests
📚 Citation
If you use this software in your research, you are welcomed cite:
@software{metamachine2024,
title={Capybarish: A lightweight communication middleware designed for cloud-based robotics controllers},
author={Chen Yu},
year={2025},
url={https://github.com/chenaah/capybarish}
}
@article{yu2025reconfigurable,
title={Reconfigurable legged metamachines that run on autonomous modular legs},
author={Yu, Chen and Matthews, David and Wang, Jingxian and Gu, Jing and Blackiston, Douglas and Rubenstein, Michael and Kriegman, Sam},
journal={arXiv preprint arXiv:2505.00784},
year={2025}
}
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
📞 Contact
Chen Yu
PhD Student, Northwestern University
Email: chenyu@u.northwestern.edu
This middleware is part of ongoing research on evolutionary modular robots. Updates and improvements will be released as the research progresses.
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 capybarish-0.1.0.tar.gz.
File metadata
- Download URL: capybarish-0.1.0.tar.gz
- Upload date:
- Size: 87.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fa7b3c6e6c9d59b7b4b536c7ad11c94ea38ccb05bdc93bb4fb5637e90354a04
|
|
| MD5 |
95d7f528aa875b2866e257a6e14405cf
|
|
| BLAKE2b-256 |
c68816e6062b53847a236074df5ff665b5c693425cab569ca1a6757d1b704c22
|
File details
Details for the file capybarish-0.1.0-py3-none-any.whl.
File metadata
- Download URL: capybarish-0.1.0-py3-none-any.whl
- Upload date:
- Size: 91.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdcb6731b90eb0ca674ca0f5238685ae1273053e616365240134b2e40e665e48
|
|
| MD5 |
1d2b8de4df897b03a8fe97ee794db215
|
|
| BLAKE2b-256 |
7f2a7910fbe5e566b1cd8a1b3b5ad51a3243c1b8f63ba01d2afa840ff94b6c53
|