09 문제 해결
시리얼 명령은 시리얼 어시스턴트/모니터를 통해 전송합니다: 송신 상자에 입력하고 Enter를 누르세요(UartAssist에서는 "send newline"을 켜세요); 시리얼 도구 / Windows용 UartAssist 다운로드는 03 페이지 3.3절에 있습니다.
9.1 흔한 증상
| 증상 | 가능한 원인 | 해결 방법 |
|---|---|---|
waiting for IMU startup 5000 ms... 후 IMU not ready | IMU 전원 투입 지연, 배선 불량, 주소 오류 | 5–10초 기다리기; 3V3, SDA=GPIO6 / SCL=GPIO7, 주소 0x23 확인 |
IMU lost -> bus reset + re-init 반복 | I²C 배선이 길거나 접촉 불량 | 배선을 짧게, 접점 재장착 |
could not open port / Access is denied로 플래싱 실패 | 모니터/시리얼 모니터가 시리얼 포트 점유 | 먼저 hw_monitor.py나 시리얼 모니터를 닫기 |
| 놓은 뒤 로봇이 시작하지 않음 | 몸체가 정지하지 않았거나 손이 닿아 있음 | 놓고 ≥0.5초 정지 유지; getup start 확인 |
| 즉시 요동침 / 방향 오류 | 구르는 중 폴 게이트 트리거, 오분류 | 깨끗하게 놓고 놓아주기; 재시도 |
14초 후 실행이 멈추고 executor timeout 출력 | 레퍼런스가 완료되지 못함 | 정상 폴백; 1.5초 후 자동 재시도; 로그 보관 |
간헐적인 executor re-plan 이벤트 | roll_neg 누름 실패 후 정상 폴백 | done으로 끝나는지 확인 |
| 서보가 웅웅거림 / 발열 | 스톨 또는 목표 구속 | x 전송 또는 전원 차단; 제한과 기계적 여유 확인 |
| 자기 기립 중 암이 몸체에 부딪힘 | 큰 숄더 움직임 | Q_SHOULDER_MAX와 여유 확인; 베이스 높이 약 68 mm 유지 |
up이 실제 자세와 불일치(눕힌 상태에서 5°+ 기울기 지속) | 가속도 영점 오프셋 미캘리브레이션 | 로봇을 수평으로 세우고 c 전송(06 페이지 6.2절 참조) |
| 수축 후 암이 눈으로 확인한 중심에 놓이지 않음 | 영점 드리프트(재영점 없이 재인덱싱/재조립) | 05 페이지 도구로 재영점 후 굽기 |
| 기립 후 서보가 웅웅거리거나 떨림 | 큰 움직임/스톨 후 아날로그 서보의 일시적 자기 여진(출력은 일정) | 자연 감쇠됨; 고무 댐핑 와셔 추가 또는 디지털 서보 사용; 암을 살짝 잡으면 즉시 조용해짐 |
| 상태 페이지 / 프로비저닝에 접근 불가 | 브라우저 프록시 미우회 또는 핫스팟 꺼짐 | 프록시 예외에 192.168.4.1 추가; w를 보내 WiFi 켜기 |
9.2 안전 명령
| 상황 | 명령 |
|---|---|
| 즉시 동작 중지 | s(마지막 목표 유지) 또는 x(PWM 해제, 토크 해제) |
x 후 복구 | r이 PWM을 재초기화하고 센터로 이동 |
| 관절이 반대 방향으로 움직임 | v(숄더) / b(엘보) 부호 반전 |
9.3 실패 기록 확보
logs/hw_monitor.log의 해당 부분을 보관하세요. 핵심 줄은 다음과 같습니다:
text
<time> getup start pose=... up=(x,y,z)
<time> executor pose=... ph=... tick=... tgt=... up=... q=... sw=...
<time> executor re-plan A -> B up=(x,y,z)
<time> standing -> executor done | executor timeout
