정지와 복구
보호정지가 걸렸을 때 화면이 어떻게 알리고 R 이 무엇을 하는지, 그리고 스택을 정지·종료하는 순서를 다룹니다. 정지의 종류와 복구 계약 전체는 정지·안전에 있습니다.
보호정지 알림
보호정지가 걸리면 화면 여러 곳이 잇달아 바뀝니다 — 터미널 벨과 함께 빨간 알림이 뜨고, 상태 줄의 안전 칸이 P-STOP 으로, 로봇 행의 모드 자리가 P-STOP 으로 바뀌며, 키 안내 줄에 빨간 R Recover 가 나타납니다.
원인의 단서는 로그의 [RT] 줄에 있습니다. 자주 보는 이벤트입니다.
| 이벤트 | 뜻 |
|---|---|
PROTECTIVE_STOP | 보호정지 진입 |
WORKSPACE_LIMIT_EE · WORKSPACE_LIMIT_ELBOW | 툴 끝 또는 팔꿈치가 작업영역 경계를 넘음 |
DISTURBANCE_OVERLOAD | 외력이 한계를 넘음 — 팔이 무언가에 눌리거나 밀림 |
FOLLOWING_ERROR_STUCK | 추종 오차가 한계에 붙어 있음 — 외력·걸림·과부하 등 원인은 여럿 |
SERVO_FAULT | 서보 드라이브 오류 |
ECAT_LINK_ERROR · WKC_MISMATCH | EtherCAT 링크 끊김 · 일부 장치 응답 누락 |
DEADLINE_MISS | 제어 주기 초과 |
R — 복구
R Recover 가 보일 때 R 을 누르면 상황에 따라 다르게 동작합니다. 무엇을 했는지는 로그의 [RECOVER] 줄에 남습니다.
| 상황 | R 이 하는 일 |
|---|---|
| 보호정지가 아직 걸려 있음 | 오류 리셋만 보내고 끝납니다. 프리드라이브에는 들어가지 않습니다 |
| 보호정지는 풀렸지만 관절이 설계 범위 밖이거나 최근에 정지·서보 오류가 있었음 | 오류 리셋 뒤 프리드라이브로 전환합니다. 손으로 팔을 정상 범위 안으로 옮긴 뒤 r 로 브레이크를 거세요 |
| 복구할 것이 없음 | No recovery needed. |
원인에 따라 순서가 다릅니다.
- 물리 원인 (비상정지 버튼, 팔을 누르는 외력, 필드버스 이상) — 원인을 제거한 뒤
R을 누르세요. 안전 상태가NORMAL로 돌아오면f로 프리드라이브에 들어가거나r로 궤적 추종으로 돌아갑니다. - 관절·작업영역 한계 — 한계 밖에 있는 동안은 오류 리셋이 받아들여지지 않아
R만으로는 풀리지 않습니다. 보호정지 중에도 프리드라이브는 허용되므로f로 먼저 프리드라이브에 들어가 손으로 팔을 범위 안으로 옮기고(보호정지 중에는 화면 모드가 계속BRAKE로 보입니다), 그다음R로 해제하세요. 해제 뒤 화면 모드는 실제 상태와 다를 수 있으니f를 눌러 표시가FREE가 되는 것을 확인한 뒤 한 번 더f로 브레이크를 거세요 — 이 자리에서r은 쓰지 마세요(브레이크가 아니라 궤적 추종을 요청할 수 있습니다). 어느 관절이 범위 밖인지는 로그의[LIMIT]줄이 알려 줍니다.
Recovery attempt failed 는 복구 명령이 거부됐거나 응답을 확인하지 못했다(시간 초과 포함)는 뜻입니다. 상태 줄의 모드와 로봇 행의 연결 표시를 먼저 보고, 물리 원인을 다시 확인한 뒤 R 을 한 번 더 시도하세요. 그래도 안 되면 제조사 도구로 드라이브 상태를 확인하고, 컨트롤 박스 전원 재가동은 안전 절차에 따라 마지막 수단으로만 쓰세요.
스택 정지 (s)
기동 중에 s 를 누르면 안전한 순서로 내려갑니다. 키 안내 줄에 진행 단계가 표시됩니다.
Braking robots...— 모든 로봇에 먼저 브레이크 요청을 보내고 응답을 기다리지만, 실패해도 그대로 다음 단계로 넘어갑니다. TUI 는 물리 브레이크 체결을 확인하지 않습니다 — 로봇 행의BRAKE는 명령이 받아들여졌다는 표시이지 체결 확인이 아니고, 보호정지 중에는P-STOP이 먼저 보입니다. 로봇이 실제로 멈췄는지는 눈으로 확인하시고, 한 대라도 확실하지 않으면 물리 비상정지를 쓰세요.- ROS 2 연결을 닫습니다.
Stopping processes...— 스택 프로세스를 종료합니다. 카메라를 켠 기동이면 정상 종료를 최대 40초까지 기다린 뒤 강제 종료로 넘어가고, 그 뒤 남은 프로세스·ROS 자원 정리에 시간이 더 걸릴 수 있습니다 — 카메라 드라이버를 도중에 끊으면 다음 기동에서 카메라가 붙지 않을 수 있어 일부러 기다립니다.All robots stopped는 프로세스 정리가 끝났다는 뜻입니다. 로봇이 물리적으로 멈춘 것은 1단계에서 직접 확인하세요. RViz·PlotJuggler 도 함께 닫힙니다.
종료 (q)
q 를 한 번 누르면 스택을 정지한 뒤 종료합니다. 정지가 진행 중이면 끝나기를 기다리며, 그동안 키 안내 줄에 q twice: force quit 가 표시됩니다. 급하면 q 를 한 번 더 누르세요 — 브레이크를 짧게 시도한 뒤 프로세스를 강제로 끝냅니다.
스택이 스스로 죽었을 때
스택 프로세스가 예기치 않게 끝나면 벨과 함께 Launch crashed … 알림(문구는 상황에 따라 다릅니다)이 뜨고, 같이 띄운 로봇 전체에 브레이크 요청을 보낸 뒤 내려갑니다 — 위 정지 절차와 같이 실제로 멈췄는지는 직접 확인하세요. 로그의 마지막 줄을 확인하신 뒤 s 로 다시 기동하세요. 반복되면 문제 해결을 보세요.
TUI 자체가 비정상 종료돼 프로세스만 남았다면 터미널에서 plem kill 로 정리한 뒤 다시 실행하세요. 살아 있는 TUI 를 두고 쓰면 브레이크 순서 없이 프로세스가 끊깁니다 — 그때는 s·q 를 쓰세요.