Skip to main content

Unified interface for HEXFELLOW robots and cameras (simulation and real world)

Project description

HEXFELLOW YOCO DRIVER

DOI       


📖 Overview

What is hex_driver_yoco

hex_driver_yoco (You Only Control Once) is a Python library providing a unified interface for HEXFELLOW robots and cameras, allowing seamless switching between simulation (MuJoCo) and real‑world (robot hardware + cameras) environments with minimal code changes.

The library wraps existing drivers (hex_driver_mujoco, hex_driver_robot, hex_driver_camera) and exposes a consistent API, so that the same client code can run in simulation and on real hardware just by changing a mode parameter. Currently supports Archer Y6 (single‑arm) and E3 Desktop (dual‑arm) robot models.

What problem it solves

  • Unified simulation/real interface: Write your control/vision pipeline once, then switch between simulation and real hardware by changing one parameter.
  • Minimal code changes: No need to rewrite robot commands or image‑acquisition logic when moving from simulation to real deployment.
  • Consistent API: Offers a common subset of methods that work in both environments (e.g., get_arm_motor, get_color_img, set_arm_mit_cmd).
  • Optional‑dependency handling: Automatically checks for the presence of underlying drivers and raises clear errors if they are missing.

Target users

  • Robotics researchers prototyping algorithms in simulation before deploying to real robots.
  • Developers who want to test vision pipelines with simulated cameras before using real cameras.
  • Anyone who needs to frequently switch between simulation and real hardware during development.

📦 Installation

Requirements

  • Python ≥ 3.10
  • OS: Linux (macOS/Windows may work but are less tested)
  • Core dependencies:
    • hex_util_runtime ≥ 0.0.0, < 0.1.0

Optional dependencies (depending on mode)

  • Simulation mode: hex_driver_mujoco (installs mujoco ≥ 3.3.0)
  • Real‑robot mode: hex_driver_robot (installs hex_device ≥ 1.3.17)
  • Real‑camera mode: hex_driver_camera (installs opencv‑python ≥ 4.10.0 and optional camera backends)

Install from PyPI

  • Full install: includes all optional cameras (Berxel, RealSense)

    pip install hex_driver_yoco[all]
    
  • Core install: only the core package (only USB cameras)

    pip install hex_driver_yoco
    
  • Install with a specific extra (e.g., only USB cameras and RealSense):

    pip install hex_driver_yoco[realsense]
    

Install from Source

Note: We use uv to manage the Python environment. Please install it first.

  1. Clone and install in editable mode:

    git clone https://github.com/hexfellow/hex_driver_yoco.git
    cd hex_driver_yoco
    ./venv.sh
    
    • ./venv.sh — creates .venv, installs hex_driver_yoco with all optional drivers (simulation, robot, camera).
    • ./venv.sh --min — installs the core package only (no optional drivers). Some examples will not run.
    • ./venv.sh --pkg-only — installs the package only, skips example‑related dependencies.
  2. Activate before running examples:

    source .venv/bin/activate
    

📑 API

See API for details of all Yoco driver classes and parameters.

💡 Example

See Example for usage examples of both simulation and real‑world modes.

📚 Citation

If you want to cite this project in your work, you can use the following BibTeX entry:

@software{hex_zmq_servers,
  author    = {Dong, Zhaorui and Chen, Zejun},
  title     = {Hex ZMQ Servers: A ZeroMQ-Based Embodied AI Communication Framework},
  year      = {2025},
  publisher = {Zenodo},
  version   = {v1.0.0},
  doi       = {10.5281/zenodo.18309960},
  url       = {https://doi.org/10.5281/zenodo.18309960}
}

📄 License

Apache License 2.0. See LICENSE.

🌟 Star History

Star History Chart

👥 Contributors

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

hex_driver_yoco-0.0.1a2.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

hex_driver_yoco-0.0.1a2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file hex_driver_yoco-0.0.1a2.tar.gz.

File metadata

  • Download URL: hex_driver_yoco-0.0.1a2.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for hex_driver_yoco-0.0.1a2.tar.gz
Algorithm Hash digest
SHA256 28b5183255e7ad1a37c6b6ef01b8e8a75af713b48e6545b1e975c924ca98f140
MD5 35891782ed7bd2a1262d09f3025539d7
BLAKE2b-256 975f2e0c32a2854c828f4f364c0933758305387dfb9a7e3f9791e0b12b4ea345

See more details on using hashes here.

File details

Details for the file hex_driver_yoco-0.0.1a2-py3-none-any.whl.

File metadata

File hashes

Hashes for hex_driver_yoco-0.0.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 954a4dd58c3d48d38e318a290f6b7482c312a945eb31f7051bcc591ee6409bc7
MD5 4eb70f51af0a366ae2abdf46f9cb90c3
BLAKE2b-256 1e7d97e06c37861db9f3c8e56010f7f77ed7d7b385ce8f8633ca80c7641c2cb9

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