Claude Code로 계단 밑에서 탈출하는 로보락 만들기
Claude Code taught my Roborock to escape from under the stairs
핵심 요약
Claude Code를 활용해 계단 밑 좁은 공간에서 스스로 탈출하는 로봇 청소기 자동화 스크립트를 구현했습니다.
- 자동화 구현 — Claude Code를 사용해 로봇 청소기의 숨겨진 원격 제어 명령을 활용함
- 문제 해결 — 라즈베리 파이와 Home Assistant를 연동해 좁은 틈새 탈출 경로를 최적화함
- 기술적 접근 — 센서 위치를 실시간으로 측정하며 충돌 시 각도를 수정하는 방식으로 동작함
- 제조사 한계 — 로봇 청소기의 안전 마진 정책 때문에 좁은 공간을 벽으로 인식하는 문제를 해결함
우리 집 로보락 쓴 지 좀 됐는데, 새 아파트로 이사 가면서 계단 밑 공간이 딱 좋아 보이더라고. 사람들 발에 치이지도 않고, 그냥 두면 버려지는 공간이니까. 근데 막상 써보니까 이 새끼가 혼자서는 거길 못 나오는 거야. 나가는 길 폭이 로봇보다 겨우 몇 cm 더 넓은 수준이라, 청소 돌릴 때마다 앱으로 일일이 수동 조종해서 밖으로 빼줘야 했음.
저녁 시간 딱 한 번 투자해서 Claude Code로 이 문제를 해결했다. 나는 그냥 눈 역할("왼쪽 박았어")만 하고, 코드는 Claude가 다 짜고 로그 읽고 테스트까지 다 돌림.
**알아낸 것들:**
- 로봇에 숨겨진 원격 제어 명령어가 있는데(앱 조이스틱이 쓰는 거), 문서화가 안 돼 있어서 그냥 시행착오로 다 찾아냄.
- 원격 제어 시작하고 첫 5초 정도는 명령을 그냥 씹어버림.
- 도크에서 나올 때 로봇이 알아서 180도 회전을 하는데 **이게 지 맘대로임**. 한동안은 회전할 때마다 오버슈트가 너무 심해서 골치 아팠음.
- 지도상 위치가 실시간으로 업데이트되니까, 눈 감고 운전하는 게 아니라 움직일 때마다 스크립트로 위치를 잴 수 있음.
**세팅:** 라즈베리 파이로 Home Assistant 돌리고 Google Home 브리지 연결함. "로보락 거실" 누르면 알아서 틈새 뚫고 나와서 청소 시작함. 뭐 하나라도 꼬이면 그냥 포기하고 도크로 복귀함.
**솔직히 말하자면:** 처음엔 "막히면 오른쪽으로 피해" 정도로 짰거든? 그랬더니 로봇이 계단 기둥에 그대로 꼬라박더라. 로봇 위치 인식 오차가 틈새 여유 공간만큼이나 커서, 완벽하게 고정된 경로라는 건 애초에 없음.
**해결책:** 막히면 뒤로 몇 cm 뺐다가, 양쪽 방향으로 각도 바꿔가면서 시도함. 가까운 각도부터 먼저 찔러보는 방식임. 테스트 결과: 10번 연속으로 나갔다 도크 복귀하기: **10/10 성공**.


