Skip to main content

Lightweight communication middleware for cloud-based robotics controllers

Project description

🦫 Capybarish

PyPI version Python Support License: Apache-2.0 arXiv

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

capybarish-0.1.0.tar.gz (87.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

capybarish-0.1.0-py3-none-any.whl (91.8 kB view details)

Uploaded Python 3

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

Hashes for capybarish-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2fa7b3c6e6c9d59b7b4b536c7ad11c94ea38ccb05bdc93bb4fb5637e90354a04
MD5 95d7f528aa875b2866e257a6e14405cf
BLAKE2b-256 c68816e6062b53847a236074df5ff665b5c693425cab569ca1a6757d1b704c22

See more details on using hashes here.

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

Hashes for capybarish-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fdcb6731b90eb0ca674ca0f5238685ae1273053e616365240134b2e40e665e48
MD5 1d2b8de4df897b03a8fe97ee794db215
BLAKE2b-256 7f2a7910fbe5e566b1cd8a1b3b5ad51a3243c1b8f63ba01d2afa840ff94b6c53

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page