cyberwave-robotics-integrations


Namecyberwave-robotics-integrations JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryRobot driver interfaces and CLI plugin for Cyberwave
upload_time2025-08-20 09:54:05
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords robotics digital-twin automation drivers cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cyberwave Robotics Integrations

Robot drivers, hardware interfaces, and CLI plugins for the Cyberwave Digital Twin Platform.

## Installation

```bash
pip install cyberwave-robotics-integrations
```

Or with the main SDK:
```bash
pip install cyberwave cyberwave-robotics-integrations
```

## Supported Robots

- **🦾 SO100** - 6-DOF robotic arm by Standard Robots
- **🦾 SO_ARM100** - Advanced robotic arm with gripper
- **🐕 Boston Dynamics Spot** - Quadruped robot
- **🚁 DJI Tello** - Educational drone
- **🦾 KUKA KR3** - Industrial robotic arm

## Quick Start

### Using with Cyberwave SDK

```python
import cyberwave as cw

# Create digital twins for real robots
spot = cw.twin("spot/spot_mini")
so101 = cw.twin("cyberwave/so101")
tello = cw.twin("dji/tello")

# Control robots through digital twins
spot.move(x=1, y=0, z=0)
so101.joints.shoulder = 45  # degrees
tello.move(x=0, y=0, z=1)  # takeoff
```

### Direct Driver Usage

```python
from cyberwave_robotics_integrations.drivers import so100_driver, spot_driver
from cyberwave_robotics_integrations.factory import Robot

# Method 1: Direct driver import
driver = so100_driver.SO100Driver()
driver.connect()
driver.move_joint("shoulder", 45)
driver.disconnect()

# Method 2: Factory pattern
robot = Robot("spot")
robot.connect()
robot.move_to(1.0, 2.0)
robot.sit()
robot.disconnect()

# Method 3: Via main SDK
from cyberwave import RobotDriver
RobotDriver("kuka_kr3").connect()
```

## CLI Usage

The package provides CLI commands for direct robot control:

```bash
# Install CLI support
pip install cyberwave-cli cyberwave-robotics-integrations

# Start robot drivers
cyberwave drivers start spot
cyberwave drivers start so100
cyberwave drivers start tello

# Check status
cyberwave drivers status spot
cyberwave drivers list

# Stop drivers
cyberwave drivers stop spot
```

### Advanced CLI Options

```bash
# Start with specific device ID and token
cyberwave drivers start tello --device-id 123 --token <offline-token>

# Automatic device registration
cyberwave drivers start tello  # Auto-registers device

# Start with telemetry forwarding
cyberwave drivers start spot --forward-telemetry --backend-url http://localhost:8000
```

## Robot Driver Details

### SO100 Robotic Arm
```python
from cyberwave_robotics_integrations.drivers.so100_driver import SO100Driver

driver = SO100Driver()
driver.connect()

# Joint control
driver.move_joint("shoulder", 45)  # degrees
driver.move_joint("elbow", -30)
driver.move_joint("wrist", 90)

# Cartesian control
driver.move_to_position([0.3, 0.1, 0.4])  # x, y, z in meters

driver.disconnect()
```

### Boston Dynamics Spot
```python
from cyberwave_robotics_integrations.drivers.spot_driver import SpotDriver

driver = SpotDriver()
driver.connect()

# Basic movements
driver.stand()
driver.sit()
driver.move_to(1.0, 2.0)  # x, y coordinates

# Advanced control
driver.set_body_pose(roll=0.1, pitch=0.0, yaw=0.2)
driver.walk_velocity(0.5, 0.0, 0.0)  # forward velocity

driver.disconnect()
```

### DJI Tello Drone
```python
from cyberwave_robotics_integrations.drivers.tello_driver import TelloDriver

driver = TelloDriver()
driver.connect()

# Flight control
driver.takeoff()
driver.move_up(50)  # cm
driver.move_forward(100)  # cm
driver.rotate_clockwise(90)  # degrees
driver.land()

driver.disconnect()
```

## Input Controllers

Create custom control interfaces for robots:

```python
from cyberwave_robotics_integrations.input_controller import BaseInputController

class KeyboardController(BaseInputController):
    def handle_input(self, key):
        if key == 'w':
            self.robot.move_forward(0.1)
        elif key == 's':
            self.robot.move_backward(0.1)
        # ... more controls

# Use with any robot
controller = KeyboardController(robot=spot_driver)
controller.start()
```

## Configuration

### Environment Variables

```bash
export CYBERWAVE_API_KEY="your-api-key"
export CYBERWAVE_BASE_URL="http://localhost:8000"
export CYBERWAVE_ENVIRONMENT_ID="your-env-id"
```

### Config File

Create `~/.cyberwave/config.yaml`:

```yaml
api_key: "your-api-key"
base_url: "http://localhost:8000"
default_environment: "your-env-id"
robots:
  spot:
    ip: "192.168.1.100"
    username: "admin"
  so100:
    port: "/dev/ttyUSB0"
    baudrate: 115200
```

## Development

### Running Tests

```bash
pytest tests/
```

### Contributing

1. Fork the repository
2. Create a feature branch
3. Add tests for new drivers
4. Submit a pull request

## License

MIT License - see LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cyberwave-robotics-integrations",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "robotics, digital-twin, automation, drivers, cli",
    "author": null,
    "author_email": "Simone Di Somma <sdisomma@cyberwave.com>",
    "download_url": "https://files.pythonhosted.org/packages/18/c9/28b64b2ecbfb2f2835d661d28fcbf7030e43d8e513782c3b3cdc2a9cfd68/cyberwave_robotics_integrations-0.1.1.tar.gz",
    "platform": null,
    "description": "# Cyberwave Robotics Integrations\n\nRobot drivers, hardware interfaces, and CLI plugins for the Cyberwave Digital Twin Platform.\n\n## Installation\n\n```bash\npip install cyberwave-robotics-integrations\n```\n\nOr with the main SDK:\n```bash\npip install cyberwave cyberwave-robotics-integrations\n```\n\n## Supported Robots\n\n- **\ud83e\uddbe SO100** - 6-DOF robotic arm by Standard Robots\n- **\ud83e\uddbe SO_ARM100** - Advanced robotic arm with gripper\n- **\ud83d\udc15 Boston Dynamics Spot** - Quadruped robot\n- **\ud83d\ude81 DJI Tello** - Educational drone\n- **\ud83e\uddbe KUKA KR3** - Industrial robotic arm\n\n## Quick Start\n\n### Using with Cyberwave SDK\n\n```python\nimport cyberwave as cw\n\n# Create digital twins for real robots\nspot = cw.twin(\"spot/spot_mini\")\nso101 = cw.twin(\"cyberwave/so101\")\ntello = cw.twin(\"dji/tello\")\n\n# Control robots through digital twins\nspot.move(x=1, y=0, z=0)\nso101.joints.shoulder = 45  # degrees\ntello.move(x=0, y=0, z=1)  # takeoff\n```\n\n### Direct Driver Usage\n\n```python\nfrom cyberwave_robotics_integrations.drivers import so100_driver, spot_driver\nfrom cyberwave_robotics_integrations.factory import Robot\n\n# Method 1: Direct driver import\ndriver = so100_driver.SO100Driver()\ndriver.connect()\ndriver.move_joint(\"shoulder\", 45)\ndriver.disconnect()\n\n# Method 2: Factory pattern\nrobot = Robot(\"spot\")\nrobot.connect()\nrobot.move_to(1.0, 2.0)\nrobot.sit()\nrobot.disconnect()\n\n# Method 3: Via main SDK\nfrom cyberwave import RobotDriver\nRobotDriver(\"kuka_kr3\").connect()\n```\n\n## CLI Usage\n\nThe package provides CLI commands for direct robot control:\n\n```bash\n# Install CLI support\npip install cyberwave-cli cyberwave-robotics-integrations\n\n# Start robot drivers\ncyberwave drivers start spot\ncyberwave drivers start so100\ncyberwave drivers start tello\n\n# Check status\ncyberwave drivers status spot\ncyberwave drivers list\n\n# Stop drivers\ncyberwave drivers stop spot\n```\n\n### Advanced CLI Options\n\n```bash\n# Start with specific device ID and token\ncyberwave drivers start tello --device-id 123 --token <offline-token>\n\n# Automatic device registration\ncyberwave drivers start tello  # Auto-registers device\n\n# Start with telemetry forwarding\ncyberwave drivers start spot --forward-telemetry --backend-url http://localhost:8000\n```\n\n## Robot Driver Details\n\n### SO100 Robotic Arm\n```python\nfrom cyberwave_robotics_integrations.drivers.so100_driver import SO100Driver\n\ndriver = SO100Driver()\ndriver.connect()\n\n# Joint control\ndriver.move_joint(\"shoulder\", 45)  # degrees\ndriver.move_joint(\"elbow\", -30)\ndriver.move_joint(\"wrist\", 90)\n\n# Cartesian control\ndriver.move_to_position([0.3, 0.1, 0.4])  # x, y, z in meters\n\ndriver.disconnect()\n```\n\n### Boston Dynamics Spot\n```python\nfrom cyberwave_robotics_integrations.drivers.spot_driver import SpotDriver\n\ndriver = SpotDriver()\ndriver.connect()\n\n# Basic movements\ndriver.stand()\ndriver.sit()\ndriver.move_to(1.0, 2.0)  # x, y coordinates\n\n# Advanced control\ndriver.set_body_pose(roll=0.1, pitch=0.0, yaw=0.2)\ndriver.walk_velocity(0.5, 0.0, 0.0)  # forward velocity\n\ndriver.disconnect()\n```\n\n### DJI Tello Drone\n```python\nfrom cyberwave_robotics_integrations.drivers.tello_driver import TelloDriver\n\ndriver = TelloDriver()\ndriver.connect()\n\n# Flight control\ndriver.takeoff()\ndriver.move_up(50)  # cm\ndriver.move_forward(100)  # cm\ndriver.rotate_clockwise(90)  # degrees\ndriver.land()\n\ndriver.disconnect()\n```\n\n## Input Controllers\n\nCreate custom control interfaces for robots:\n\n```python\nfrom cyberwave_robotics_integrations.input_controller import BaseInputController\n\nclass KeyboardController(BaseInputController):\n    def handle_input(self, key):\n        if key == 'w':\n            self.robot.move_forward(0.1)\n        elif key == 's':\n            self.robot.move_backward(0.1)\n        # ... more controls\n\n# Use with any robot\ncontroller = KeyboardController(robot=spot_driver)\ncontroller.start()\n```\n\n## Configuration\n\n### Environment Variables\n\n```bash\nexport CYBERWAVE_API_KEY=\"your-api-key\"\nexport CYBERWAVE_BASE_URL=\"http://localhost:8000\"\nexport CYBERWAVE_ENVIRONMENT_ID=\"your-env-id\"\n```\n\n### Config File\n\nCreate `~/.cyberwave/config.yaml`:\n\n```yaml\napi_key: \"your-api-key\"\nbase_url: \"http://localhost:8000\"\ndefault_environment: \"your-env-id\"\nrobots:\n  spot:\n    ip: \"192.168.1.100\"\n    username: \"admin\"\n  so100:\n    port: \"/dev/ttyUSB0\"\n    baudrate: 115200\n```\n\n## Development\n\n### Running Tests\n\n```bash\npytest tests/\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for new drivers\n4. Submit a pull request\n\n## License\n\nMIT License - see LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Robot driver interfaces and CLI plugin for Cyberwave",
    "version": "0.1.1",
    "project_urls": {
        "Documentation": "https://github.com/cyberwave-os/cyberwave-python-robotics-integrations#readme",
        "Homepage": "https://github.com/cyberwave-os/cyberwave-python-robotics-integrations",
        "Issues": "https://github.com/cyberwave-os/cyberwave-python-robotics-integrations/issues",
        "Repository": "https://github.com/cyberwave-os/cyberwave-python-robotics-integrations"
    },
    "split_keywords": [
        "robotics",
        " digital-twin",
        " automation",
        " drivers",
        " cli"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21e662f2bf8be8bcc112cfc816f19f3a34c9c0f66edb9ba0d1219f7ea85bc862",
                "md5": "da64319bbc3ba27395dfc81804d3a080",
                "sha256": "e2e50c9fb17c4d1e83e94c49eceeba1e82ebe1ac26bed1219578ffe23e05189a"
            },
            "downloads": -1,
            "filename": "cyberwave_robotics_integrations-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "da64319bbc3ba27395dfc81804d3a080",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 37902,
            "upload_time": "2025-08-20T09:54:04",
            "upload_time_iso_8601": "2025-08-20T09:54:04.391181Z",
            "url": "https://files.pythonhosted.org/packages/21/e6/62f2bf8be8bcc112cfc816f19f3a34c9c0f66edb9ba0d1219f7ea85bc862/cyberwave_robotics_integrations-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "18c928b64b2ecbfb2f2835d661d28fcbf7030e43d8e513782c3b3cdc2a9cfd68",
                "md5": "e935740cc6aa44f02247942a18ee68f8",
                "sha256": "ef49e0b274350a9217024af00d7e15e8550afffbd3424ff8544cf8523afb6fc7"
            },
            "downloads": -1,
            "filename": "cyberwave_robotics_integrations-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e935740cc6aa44f02247942a18ee68f8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 25754,
            "upload_time": "2025-08-20T09:54:05",
            "upload_time_iso_8601": "2025-08-20T09:54:05.508200Z",
            "url": "https://files.pythonhosted.org/packages/18/c9/28b64b2ecbfb2f2835d661d28fcbf7030e43d8e513782c3b3cdc2a9cfd68/cyberwave_robotics_integrations-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-20 09:54:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cyberwave-os",
    "github_project": "cyberwave-python-robotics-integrations#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cyberwave-robotics-integrations"
}
        
Elapsed time: 1.52552s