Orca ハンドセットアップガイド
開梱から最初に手に取るまでの完全なステップバイステップのパス。 最初のビルドでは合計 3 ~ 4 時間を計画してください。
組立・検査
開始する前に、指モジュール (5 ×)、手のひら/手首マウント、腱ルーティング ハードウェア、留め具、およびオプションの指先センサー モジュールのすべてのコンポーネントをレイアウトします。
- フィンガーモジュール: 各指モジュールを親指、人差し指、中指、薬指、小指の順に手のひらフレームにはめ込みます。 腱を配線する前に、各関節が自由に動くことを確認します。
- リストマウント: 付属の留め具を使用して、パーム アセンブリをリスト プレートに取り付けます。 フランジのパターンがロボット アームと一致していることを確認します。
- 腱のルーティング: 各腱 (指ごとに 1 つ) をアクチュエーター プーリーからコンジット ガイドに通します。 張力をかける前に 2 ~ 3 mm のたるみを残してください。この段階で張力が強すぎるとバインドが発生します。
- 触覚センサー (オプション): 指先触覚センサーを取り付ける場合は、フィンガーシェルを閉じる前に指先ハウジングにセンサーを取り付けます。 センサー ケーブルをフィンガー本体を通してパーム コネクタに戻します。
ソフトウェアのインストール
の orca_core Python パッケージが唯一のソフトウェア依存関係であり、ROS 要件はありません。 Dynamixel プロトコルを使用して、1 つの USB シリアル接続を介して 3 Mbps で 17 個の Feetech STS3215 モーターすべてと通信します。 Python 3.9 以降が必要です。
オプション A — Poetry 経由でインストールする (推奨):
git clone https://github.com/orcahand/orca_core.git cd orca_core poetry install
オプション B — pip 経由でインストールします。
pip install orca_core
Linux で USB シリアル ポート アクセスを許可します。
# Add your user to the dialout group (requires logout/login to take effect) sudo usermod -aG dialout $USER # Or grant temporary access without logging out sudo chmod 666 /dev/ttyUSB0
/dev/tty.usbserial-FT4TFV01。 開ける orca_core/models/orcahand_v1/config.yaml そして更新します port 接続する前にフィールドに指定するか、構築時にポート文字列を明示的に渡します。 OrcaHand().
接続して確認します。
from orca_core import OrcaHand hand = OrcaHand() status = hand.connect() print(status) # (True, 'Connection successful')
較正
キャリブレーションにより、17 個のジョイントのそれぞれが、低減された電流制限 (450 ロー ユニット) で機械的ハード ストップまで駆動され、モーターごとのゼロ オフセットが確立されます。 位置コマンドを発行する前に必ず校正してください。このステップをスキップすると、大きな位置誤差や予期しない動作が発生する可能性があります。
from orca_core import OrcaHand hand = OrcaHand() hand.connect() # Drives all joints to hard stops at calib_current=450 to establish zero offsets hand.calibrate() # Calibration results are saved automatically to: # models/orcahand_v1/calibration.yaml
calibrate() このメソッドは、各ジョイントをハード ストップに向かって 0.3° ずつ繰り返しステップさせます (次の方法で設定可能) calib_step_size)、0.01°以内の 10 回の連続した安定した読み取り後にジョイントがホームに到達したことを宣言します (経由で設定可能) calib_num_stable そして calib_threshold)、オフセットを次の場所に保存します。 calibration.yaml。 ハードウェアを変更した場合にのみ再実行してください。
キャリブレーション後、すべてのジョイントを開いた/ゼロの位置に移動します。
# Command all 17 joints to 0° (open position)
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})
最初の把握テスト
を使用して共同制御を検証します。 orca_core Python API。 名前で個々のジョイントをコマンドします — SDK は、 joint_to_motor_map で config.yaml.
from orca_core import OrcaHand
hand = OrcaHand()
hand.connect()
hand.calibrate()
# --- Read current joint positions (degrees) ---
positions = hand.get_joint_pos()
print(positions)
# e.g. {'thumb_mcp': 0.0, 'thumb_abd': 0.0, 'index_mcp': 0.0, ...}
# --- Make a fist: flex all MCP and PIP joints ---
hand.set_joint_pos({
"index_mcp": 90, "index_pip": 110,
"middle_mcp": 90, "middle_pip": 110,
"ring_mcp": 90, "ring_pip": 110,
"pinky_mcp": 90, "pinky_pip": 110,
"thumb_mcp": 30, "thumb_pip": 100,
})
# --- Open hand back to zero ---
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})
# --- Torque control ---
hand.enable_torque() # Enable torque on all motors
hand.disable_torque(motor_ids=[1, 2]) # Disable specific motors (by ID)
# --- Disconnect (disables torque, closes serial port) ---
hand.disconnect()
いずれかのジョイントが指令された角度に達していない場合は、そのモーターのケーブルの配線と腱の張力を確認してください。 各フィンガーは専用の Feetech STS3215 サーボを使用します。 バインディングは通常、ソフトウェアの問題ではなく、ルーティングまたは張力の問題です。
ロボットアームとの統合
標準のリスト フランジ アダプターを使用して、Orca Hand をロボット アームに取り付けます。 ハンドは OpenArm 101 と互換性があり、標準 ISO 9283 フランジ パターンを備えたほとんどのアームと互換性があります。
- 付属のパターンで M4 ボルトを使用して、リスト プレートをアームのエンドエフェクタ フランジに取り付けます。
- 信号ケーブルと電源ケーブルをアーム構造に沿って配線し、動作中の引っ掛かりを防ぐためにケーブルタイで固定します。
- アームの ROS2 ワークスペースで、Orca Hand をエンドエフェクター ノードとして追加し、アームとハンドの両方のコントローラーを一緒に起動します。
Orca Hand を使用した器用な操作研究ワークフローの完全なチュートリアルについては、 SVRC 研究ガイド.