🧪 새 튜토리얼이 계속 업데이트 중 — 로봇 팔부터 센서까지
본문으로 건너뛰기

05 영점 캘리브레이션 (화살표 키; DIY 제작 필수) ​

서보 영점과 IMU 가속도 영점은 공장에서 제품별로 캘리브레이션되어 구워지므로, 완제품은 이 페이지에서 할 일이 없습니다. DIY 제작은 반드시 이 페이지를 해야 합니다: 손으로 조립한 암은 정확히 중심에 놓이는 경우가 거의 없습니다. 서보 혼을 펌웨어 영점에 정확히 장착하지 못했더라도 여기서 바로잡을 수 있습니다 - 화살표 키로 암을 눈으로 수직이 되게 조그한 뒤 z를 눌러 현재 자세를 q=0으로 선언하세요. z 명령은 IMU를 사용하지 않으므로 어떤 자세나 혼 인덱스에서도 동작합니다.

다음 경우에 다시 오세요: 혼을 재인덱싱했을 때, 암을 분해/재조립했을 때, 서보를 교체했을 때, IMU를 교체/재장착했을 때(가속도 재캘리브레이션), 또는 수축 후 암이 더 이상 눈으로 확인한 중심에 놓이지 않을 때.

z는 소프트웨어 영점만 이동시킬 뿐, 혼 인덱스가 가동 범위를 나누는 방식(PWM 500-2500 µs)을 바꾸지 않습니다. 영점 조정 후 한 방향의 가동 범위가 부족하면(펄스가 500/2500 µs에서 클램프되어 암이 필요한 시퀀스 각도에 도달하지 못함) 혼을 재인덱싱하고(숄더 기준 약 2톱니) 다시 영점을 잡으세요.

시점: 로봇 전체 조립과 메인 펌웨어 플래싱 이후(DIY 경로는 03 → 04 → 05 순서).

5.1 원리 ​

펌웨어는 눈으로 확인한 중심, 즉 암이 수직이고 두 링크가 일직선인 자세를 q=0으로 정의합니다. z 명령은 엔코더식 영점입니다: 현재 관절 위치를 q=0으로 만들고 해당 센터 펄스 폭을 출력합니다.

5.2 절차 ​

  1. 배터리와 USB를 모두 연결하고(서보 전원 공급) .venv를 활성화한 상태에서 SR-Support 폴더에서 다음을 실행하세요:

    bash
    python tools/hw_shoulder_range.py

    먼저 시리얼 어시스턴트/모니터를 모두 닫으세요(포트를 점유함); 아래 창의 키는 이 도구가 읽으므로 시리얼 어시스턴트는 필요 없습니다. 시리얼 도구 / Windows용 UartAssist 다운로드는 03 페이지 3.3절에 있습니다.

    네 줄짜리 디스플레이가 제자리에서 갱신됩니다:

    Up/Dn=BigArm  L/R=SmallArm  Sh:fast
    z=SetCenter  k=Read  n=Home  q=Quit
    SmallArm: +0.000 rad (  +0 deg)
    BigArm:   +0.000 rad (  +0 deg)
  2. 화살표 키로 조그하세요: ↑/↓ = 큰 암 ±0.05 rad, ←/→ = 작은 암 ±0.05 rad (Shift = ±0.20), 암이 수직으로 정렬되어 보일 때까지;

  3. z를 누르면 펌웨어가 출력합니다:

    text
    zero set: shoulder XXXX us, elbow XXXX us (current pose is now q = 0)
  4. 정상 동작 확인: n(홈)을 누르고, 조금 조그한 뒤 다시 홈으로 - 암이 방금 정의한 눈으로 확인한 중심으로 돌아와야 합니다.

5.3 굽기 (만족하면 필수) ​

z는 RAM만 건드립니다; 재부팅하면 예전 영점이 복원됩니다. 만족스러우면:

  1. 두 펄스 값을 config.h에 기록하세요 (SERVO_SHOULDER_CENTER_US / SERVO_CENTER_US);
  2. EXEC_REF*의 모든 웨이포인트와 training/b_line/getup_reference_b39.py를 같은 오프셋만큼 이동시키세요(숄더/엘보 각각 −Δ rad);
  3. 다시 플래싱하고 네 방향을 모두 재테스트하세요(07 페이지).

잘못 눌러도 무해합니다: 다시 영점을 잡으면 덮어씁니다.

5.4 관련 명령 ​

명령기능
z현재 자세가 두 관절 모두 q=0이 됨; 새 센터 펄스 폭 출력(RAM에만 적용)
k현재 센터 펄스 폭 읽기(숄더/엘보, µs)
o / p숄더 센터 ±10 µs 실시간 트림(재부팅 시 초기화)

← 튜토리얼 목차로 돌아가기