robocore


Namerobocore JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/pthangeda/robocore
SummaryA Python middleware for robotic communication.
upload_time2024-10-21 00:15:29
maintainerNone
docs_urlNone
authorPranay Thangeda
requires_python>=3.6
licenseMIT
keywords robotics communication middleware
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## **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

```bash
pip install robocore
```

## Getting Started

### Simple Publish/Subscribe

```python
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:

```bash
python examples/multiple_subscribers.py
```

### Robotic Manipulator Example

Simulate a robotic manipulator with multiple publishers and subscribers:

```bash
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:

```yaml
topics:
  - name: camera_feed
    type: image
    visualize: true
```

## Visualization

Integrate with `rerun-sdk` for real-time visualization:

```python
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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pthangeda/robocore",
    "name": "robocore",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "robotics communication middleware",
    "author": "Pranay Thangeda",
    "author_email": "contact@prny.me",
    "download_url": "https://files.pythonhosted.org/packages/d0/8f/d364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707/robocore-0.0.1.tar.gz",
    "platform": null,
    "description": "## **13. `README.md`**\n\n# Robocore\n\n**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.\n\n## Philosophy\n\nRobocore 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.\n\n## Features\n\n- **Publish/Subscribe Paradigm**: Simple string-based topics with support for multiple publishers and subscribers.\n- **Centralized Key-Value Store**: A database-like system for storing and retrieving key-value pairs.\n- **Automatic Server Initiation**: Servers for topic registry and key-value store start automatically in the background.\n- **Visualization Tools**: Real-time data inspection and visualization using `rerun-sdk`.\n- **Configuration Files**: Use `.yaml` files to specify topic types and additional info.\n\n## Installation\n\n```bash\npip install robocore\n```\n\n## Getting Started\n\n### Simple Publish/Subscribe\n\n```python\nimport robocore as rc\n\ndef publisher():\n    pub = rc.Publisher(topic=\"camera_feed\")\n    pub.publish(data)  # Replace 'data' with your data\n    pub.close()\n\ndef subscriber():\n    sub = rc.Subscriber(topic=\"camera_feed\")\n    data = sub.receive()\n    sub.close()\n```\n\n### Multiple Subscribers\n\nCheck out the example in the `examples` folder:\n\n```bash\npython examples/multiple_subscribers.py\n```\n\n### Robotic Manipulator Example\n\nSimulate a robotic manipulator with multiple publishers and subscribers:\n\n```bash\npython examples/robotic_manipulator.py\n```\n\n### Cross-Device Communication\n\nUse Tailscale for networking across devices:\n\n- Install Tailscale on both devices.\n- Run the publisher on one device and the subscriber on the other.\n- Modify the `connect` method to use the Tailscale IP address.\n\n## Configuration\n\nUse a `.yaml` file to specify topic types and visualization settings:\n\n```yaml\ntopics:\n  - name: camera_feed\n    type: image\n    visualize: true\n```\n\n## Visualization\n\nIntegrate with `rerun-sdk` for real-time visualization:\n\n```python\nvisualizer = rc.Visualizer(topics=[\"camera_feed\"])\nvisualizer.start()\n```\n\n## Contributing\n\nContributions are welcome! Please refer to the documentation and follow the coding standards.\n\n---\n\nFor more examples and detailed usage, please refer to the `examples` folder.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python middleware for robotic communication.",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/pthangeda/robocore"
    },
    "split_keywords": [
        "robotics",
        "communication",
        "middleware"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "944690e66faae3560e622ee900958cad0cdd8df404d37d9d47bcddb1986c71da",
                "md5": "23377135ba603974064bd02684ff87d1",
                "sha256": "410f0e04cd19b50620c8efe67a98a58890794c5048194ef6946ed7555c4b9fdf"
            },
            "downloads": -1,
            "filename": "robocore-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "23377135ba603974064bd02684ff87d1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 7413,
            "upload_time": "2024-10-21T00:15:27",
            "upload_time_iso_8601": "2024-10-21T00:15:27.479326Z",
            "url": "https://files.pythonhosted.org/packages/94/46/90e66faae3560e622ee900958cad0cdd8df404d37d9d47bcddb1986c71da/robocore-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d08fd364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707",
                "md5": "aefcae021319fb7ccaaf9c220918334b",
                "sha256": "1790c08b7ae52afffa5a44c17a2accc4229de1821202cde38acdc34405edbf7c"
            },
            "downloads": -1,
            "filename": "robocore-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "aefcae021319fb7ccaaf9c220918334b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 6710,
            "upload_time": "2024-10-21T00:15:29",
            "upload_time_iso_8601": "2024-10-21T00:15:29.496660Z",
            "url": "https://files.pythonhosted.org/packages/d0/8f/d364b831dfcb759f927fae361f66a21e2564df6415e38ac7d3609ba26707/robocore-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-21 00:15:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pthangeda",
    "github_project": "robocore",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "robocore"
}
        
Elapsed time: 0.37864s