오르카 핸드 설정 가이드
개봉부터 첫 번째 파악까지 단계별 과정을 완료하세요. 첫 번째 빌드에서는 총 3~4시간을 계획하세요.
조립 및 검사
시작하기 전에 손가락 모듈(5×), 손바닥/손목 마운트, 힘줄 라우팅 하드웨어, 패스너 및 선택적 손가락 끝 센서 모듈 등 모든 구성 요소를 배치합니다.
- 핑거 모듈: 각 손가락 모듈을 엄지, 검지, 가운데, 약지, 작은 순서로 손바닥 프레임에 끼웁니다. 힘줄을 라우팅하기 전에 각 관절이 자유롭게 움직이는지 확인하십시오.
- 손목 마운트: 제공된 패스너를 사용하여 손바닥 어셈블리를 손목 플레이트에 부착합니다. 플랜지 패턴이 로봇 팔과 일치하는지 확인하세요.
- 힘줄 라우팅: 도관 가이드를 통해 액추에이터 풀리의 각 힘줄(손가락당 하나씩)을 배선합니다. 장력을 가하기 전에 2~3mm의 여유분을 두십시오. 이 단계에서 과도한 장력을 가하면 결속이 발생합니다.
- 촉각 센서(옵션): 손가락 끝 촉각 센서를 설치하는 경우 손가락 껍질을 닫기 전에 손가락 끝 하우징에 장착하십시오. 센서 케이블을 손가락 본체를 통해 손바닥 커넥터까지 다시 배선합니다.
소프트웨어 설치
그만큼 orca_core Python 패키지는 유일한 소프트웨어 종속성이므로 ROS 요구 사항이 없습니다. Dynamixel 프로토콜을 사용하여 3Mbps 속도의 단일 USB 직렬 연결을 통해 Feetech STS3215 모터 17개 모두와 통신합니다. 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')
구경 측정
보정은 감소된 전류 제한(450 원시 단위)에서 17개의 조인트 각각을 기계적 하드 정지로 구동하여 모터당 영점 오프셋을 설정합니다. 위치 명령을 내리기 전에 항상 보정하십시오. 이 단계를 건너뛰면 큰 위치 오류나 예상치 못한 동작이 발생할 수 있습니다.
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 파이썬 API. 이름으로 개별 관절에 명령 — SDK는 자동으로 관절 이름을 모터 ID로 변환합니다. 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 연구 가이드.