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

07 자기 기립 사용법과 모니터링 ​

모든 완성품은 출하 전에 네 방향 모두 테스트됩니다. 첫 사용 시에도 7.2절에 따라 각 방향을 한 번씩 검증하여 운송 후 제품이 정상인지 확인하세요.

7.1 절차 ​

  1. 로봇을 세운 상태로 전원을 켜고 autorun on: get-up waits for a fall을 기다리세요;
  2. 로봇을 어느 방향으로든 넘어뜨리고, 놓은 뒤 약 0.5초간 정지 상태를 유지하세요;
  3. getup start pose=<pose>가 나타나면 실행기가 자동으로 시작됩니다;
  4. 성공하면 펌웨어가 standing -> executor done을 출력하고 대기 상태로 돌아갑니다;
  5. 실행이 14초를 넘으면 펌웨어가 executor timeout을 출력합니다; 1.5초 쿨다운 후 폴 게이트가 다시 트리거되어 재시도합니다.

7.2 방향별 예상 동작 ​

자세기구 동작실제 로봇 소요 시간
pitch_neg (상단 → −X)엘보를 짚고 숄더 스트로크로 몸체를 지레질해 세움약 3초
pitch_pos (상단 → +X)동일한 리프트; 수축 중 다시 넘어지면 자세 재계획이 pitch_pos를 다시 실행약 5–6초
roll_pos (상단 → −Y)긴 가동 범위 쪽을 이용한 직접 숄더 지레질약 3초
roll_neg (상단 → +Y)전체 가동 범위 직접 누름 → 엘보 웨지 펌프 ×2 → 필요 시 휩-슬램 재시도; 굴러 넘어가지 않음약 2–6초

이전 펌웨어는 roll_neg를 위쪽으로 굴려 넘긴 뒤 피치 리프트로 재계획했습니다(5–14초); 현재 빌드는 +Y 누름의 거울 동작을 사용하므로 네 방향 모두 대칭이며 속도도 비슷합니다. 간헐적으로 보이는 executor re-plan roll_neg -> ...는 그 누름이 실패해 폴백 재시도가 작동했다는 뜻일 뿐입니다 - 정상적인 안전망입니다.

7.3 실행기 로직 (펌웨어 내) ​

  • 레퍼런스 웨이포인트당 20틱(0.4초), 선형 보간; 출력 슬루 제한 0.08 rad/틱;
  • 웨이포인트가 끝나면 0.033 rad/틱으로 암을 중립으로 수축;
  • 목표가 0인 상태에서 up_z > 0.95가 50틱 지속되면 완료;
  • 몸체가 다른 눕힌 축으로 정착하면(up_z<0.6, |ω|<0.8이 15틱 지속) 중립으로 수축하고 새 자세의 레퍼런스로 전환(최대 5회 전환);
  • roll_neg 레퍼런스는 단계별 적응형 홀드를 사용합니다: 누름/펌프 단계는 up_z<0.92인 동안 단계별 틱 상한까지 유지(누름 40 / 펌프 30 / 펌프 30 / 휩 40 / 최종 90); 시퀀스 중간에 몸체가 일어서면 실행기가 곧바로 수축으로 넘어가므로 이후 단계가 서 있는 로봇을 넘어뜨릴 수 없습니다.

7.4 모니터링과 로그 ​

bash
python tools/hw_monitor.py COM27

(.venv를 활성화한 상태에서 SR-Support 폴더에서 실행하세요 - 02 페이지. 먼저 시리얼 어시스턴트/모니터를 모두 닫으세요; 시리얼 도구 / Windows용 UartAssist 다운로드는 03 페이지 3.3절에 있습니다.)

  • 이벤트와 5초 간격 텔레메트리 요약을 logs/hw_monitor.log에 추가;
  • getup start, executor re-plan, standing, executor timeout, IMU lost 등을 기록;
  • 서보 엔벨로프(숄더 [-1.85,+1.82], 엘보 ±1.55)를 검사하고 !! VIOLATION을 기록;
  • 실행기가 동작하는 동안 0.2초마다 트레이스를 출력:
text
executor pose=roll_neg ph=3 tick=9 tgt=(2.00,-0.80) up=(0.58,-0.24,-0.77) q=(2.00,-0.80) sw=0
필드의미
pose현재 레퍼런스 자세
ph / tick웨이포인트 단계 / 단계 내 틱
tgt목표 관절 각도
up현재 상향 벡터
q현재 관절 명령
sw지금까지의 자세 전환 횟수

모니터를 열면 ESP32가 리셋됩니다; 플래싱 전에 닫으세요.

7.5 기록 관리 ​

모든 테스트에 대해 자세, done으로 끝났는지 여부, 소요 시간, 전환 횟수, 위반 사항을 기록하세요. logs/hw_monitor.log가 기준 기록입니다.


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