Core Python Controller of the ORCA Hand
翻译准备中
开发工具PythonGitHub @orcahand自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗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. While working directly with core will let you interact with your ORCA Hand on a deep level, the Orca Ui repository (found at: https://github.com/orcahand/orca_ui) can let users get started right away, helping you setup/maintain your hand, tune its performance, and better understand its capabilities.
scripts/guided_tension.py, v2.1 hands): motors pull at max_current, settle where they stopped, then
hold at each motor's ceiling while you ratchet. Avoid hard pushes on a finger while the motors hold, because they may loosen the
tendon. Its currents can be overridden per motor family under guided_tension_currents: in config.yaml.orca_core.maintenance (run_slack_test, run_tension_sweep), with currents
per motor family. They refuse to run while a joint-feedback loop is running. Feetech values are provisional, and on Feetech a
slack test pass can miss small slack.run_calibration(manual=True) asks you to move each joint to its stops by hand, following
manual_calibration_sequence: in config.yaml, and lets you step back to redo a stop.210 = v2.1.0, 211 = v2.1.1). Older boards that report 21 or 2 are still
understood, and a v2.1.1 hand also gets joint_roms_v211:.setup.yaml beside the config. Older last_tension.yaml and tension_progress.yaml are
still read.To get started with Orca Core, follow these steps:
Pre-installation steps
Git clone the orca_core repository:
#use any preferred method, ssh clone shown here
git clone [email protected]:orcahand/orca_core.git
Install uv (found at: https://docs.astral.sh/uv/getting-started/)
Installing the repository
Sync a local development environment with uv:
uv sync --group dev
This creates a local .venv and 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/activate # macOS / Linux
.venv\Scripts\activate # Windows
End users who do not use uv can still install the package with:
pip install .
Post-installation sample usage scripts
Check the configuration file:
orca_core/models/v2/orcahand-right/config.yaml) and make sure it matches your hardware setup.Run the tension and calibration scripts:
uv run python scripts/detect.py
uv run python scripts/guided_tension.py orca_core/models/v2/orcahand-right/config.yaml
uv run python scripts/calibrate.py orca_core/models/v2/orcahand-right/config.yaml
detect.py only reads: it shows which model, motor type and hardware version is plugged in. Replace the path with that
model's folder. Guided tensioning needs v2.1 hardware; on v2.0, use scripts/tension.py instead. Tension first and
calibrate last.
Calibration and tensioning records are saved beside the config.yaml you load. With more than one hand of the same model,
give each hand its own copy of the config and point every script at it, including teleoperation's --model_path.
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/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
Supported on Windows 10 and 11; no permission setup is needed. Ports are named COM3, COM4, ... and are listed with:
uv run python -m serial.tools.list_ports -v
Driver notes, latency settings and the first-connection checklist: Running on Windows.
By default these are all auto-detected at connect time.
However, you can declare them explicitly in config.yaml. Useful when:
port disambiguates which onebaudrate skips the probe sweepmotor_type forces a specific one# Optional overrides: auto-detected if omitted
port: /dev/ttyACM0 # /dev/cu.usbmodemXXXX on macOS, COM3 on Windows
baudrate: 1000000 # 1M for v2; 3M for v1
motor_type: dynamixel # or 'feetech'