07 자기 기립 사용법과 모니터링
모든 완성품은 출하 전에 네 방향 모두 테스트됩니다. 첫 사용 시에도 7.2절에 따라 각 방향을 한 번씩 검증하여 운송 후 제품이 정상인지 확인하세요.
7.1 절차
- 로봇을 세운 상태로 전원을 켜고
autorun on: get-up waits for a fall을 기다리세요; - 로봇을 어느 방향으로든 넘어뜨리고, 놓은 뒤 약 0.5초간 정지 상태를 유지하세요;
getup start pose=<pose>가 나타나면 실행기가 자동으로 시작됩니다;- 성공하면 펌웨어가
standing -> executor done을 출력하고 대기 상태로 돌아갑니다; - 실행이 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가 기준 기록입니다.

