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