Skip to main content

Core Python Controller of the ORCA Hand. Handles all hardware interaction, logic and abstracts control. Provides API for basic functionality and info of the hand.

Project description

arXiv Discord Twitter Follow Website
GitHub stars Tests

Orca Core is the core control package of the ORCA Hand. It's used to abstract hardware, provide scripts for calibration, tensioning and to control the hand with simple high-level control methods in joint space.

Get Started

To get started with Orca Core, follow these steps:

  1. Sync a local development environment with uv:

    uv sync --group dev
    

    This creates a local .venv and installs the package plus development dependencies.

  2. Run commands through uv:

    uv run pytest
    

    If you prefer an activated shell, you can still use:

    source .venv/bin/activate
    

    End users who do not use uv can still install the package with:

    pip install .
    
  3. Check the configuration file:

    • Review the config file (e.g., orca_core/models/v2/orcahand_right/config.yaml) and make sure it matches your hardware setup.
  4. Run the tension and calibration scripts:

    uv run python scripts/tension.py orca_core/models/v2/orcahand_right/config.yaml
    uv run python scripts/calibrate.py orca_core/models/v2/orcahand_right/config.yaml
    

    Replace the path with your specific hand model folder if needed.

  5. Move the hand to the neutral position:

    uv run python scripts/neutral.py orca_core/models/v2/orcahand_right/config.yaml
    

Troubleshooting

Serial Port Permissions (Linux)

On Linux, the serial port (e.g., /dev/ttyACM0) is owned by the dialout group. If your user is not in this group, you will get a permission denied error and motors won't be detected.

Permanent fix (requires re-login):

sudo usermod -aG dialout $USER

Temporary fix (resets on reboot/replug):

sudo chmod 666 /dev/ttyACM0

Serial port, baudrate, and motor type

By default these are all auto-detected at connect time.

However, you can declare them explicitly in config.yaml. Useful when:

  • multiple hands are connected at once → port disambiguates which one
  • motors run at a non-default baudratebaudrate skips the probe sweep
  • the auto-detection picks the wrong familymotor_type forces a specific one
# Optional overrides:   auto-detected if omitted
port: /dev/ttyACM0      # or /'dev/cu.usbmodemXXXX' on macOS
baudrate: 1000000       # 1M for v2; 3M for v1 
motor_type: dynamixel   # or 'feetech'

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

orca_core-0.3.0.tar.gz (158.8 kB view details)

Uploaded Source

Built Distribution

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

orca_core-0.3.0-py3-none-any.whl (91.2 kB view details)

Uploaded Python 3

File details

Details for the file orca_core-0.3.0.tar.gz.

File metadata

  • Download URL: orca_core-0.3.0.tar.gz
  • Upload date:
  • Size: 158.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for orca_core-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a8bfd2a2eda1c8ba0bf019cb032ffeeb143139b26d65c36904b567ba01ad393f
MD5 039c2a7b88f6e446dc924641a45a9a96
BLAKE2b-256 2bf0deb05055a0bc50ee4fe70a38f54498b867eeecd88fbe659fde6bf3bf0813

See more details on using hashes here.

Provenance

The following attestation bundles were made for orca_core-0.3.0.tar.gz:

Publisher: release.yml on orcahand/orca_core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orca_core-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: orca_core-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for orca_core-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c14280b3fa8d8712dd44ea328bdeefdf9409a4b9d28483354aff609f6db5a47c
MD5 7ae556d8766177247fdc19a43e59c986
BLAKE2b-256 868d5a58ba9964bdc21d0e81ce861a84724da6c6565ae97573f9815599b996d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for orca_core-0.3.0-py3-none-any.whl:

Publisher: release.yml on orcahand/orca_core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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