Orca Core is the core control package of the ORCA Hand. It's used to abstract hardware, provide scripts for calibration and tensioningm and to control the hand with simple high-level control methods in joint space.
To get started with Orca Core, follow these steps:
-
Sync a local development environment with
uv:uv sync --group dev
This creates a local
.venvand installs the package plus development dependencies. -
Run commands through
uv:uv run pytest
If you prefer an activated shell, you can still use:
source .venv/bin/activateEnd users who do not use
uvcan still install the package with:pip install . -
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.
- Review the config file (e.g.,
-
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.
-
Move the hand to the neutral position:
uv run python scripts/neutral.py orca_core/models/v2/orcahand_right/config.yaml
On Linux, the serial port (e.g., /dev/ttyUSB0) 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 $USERTemporary fix (resets on reboot/replug):
sudo chmod 666 /dev/ttyUSB0Make sure the port field in your config.yaml matches your operating system:
| OS | Example port |
|---|---|
| Linux | /dev/ttyUSB0 |
| macOS | /dev/tty.usbserial-XXXXXXXX |
Note:
- Always ensure your
config.yamlmatches your hardware and wiring. - All scripts in the
scripts/folder take the model path as their first argument. - For more advanced usage, see the other scripts and the API documentation.