본문으로 건너뛰기

정지와 복구

보호정지가 걸렸을 때 화면이 어떻게 알리고 R 이 무엇을 하는지, 그리고 스택을 정지·종료하는 순서를 다룹니다. 정지의 종류와 복구 계약 전체는 정지·안전에 있습니다.

보호정지 알림​

보호정지가 걸리면 화면 여러 곳이 잇달아 바뀝니다 — 터미널 벨과 함께 빨간 알림이 뜨고, 상태 줄의 안전 칸이 P-STOP 으로, 로봇 행의 모드 자리가 P-STOP 으로 바뀌며, 키 안내 줄에 빨간 R Recover 가 나타납니다.

보호정지 중인 Robot Control 화면. 상태 줄에 BRAKE 와 빨간 P-STOP, 로봇 행에 빨간 P-STOP, 로그에 [RT] PROTECTIVE_STOP severity=ERROR 와 [RT] BRAKE_ENGAGE severity=WARN, 키 안내 줄에 빨간 R Recover 가 있다.

원인의 단서는 로그의 [RT] 줄에 있습니다. 자주 보는 이벤트입니다.

이벤트뜻
PROTECTIVE_STOP보호정지 진입
WORKSPACE_LIMIT_EE · WORKSPACE_LIMIT_ELBOW툴 끝 또는 팔꿈치가 작업영역 경계를 넘음
DISTURBANCE_OVERLOAD외력이 한계를 넘음 — 팔이 무언가에 눌리거나 밀림
FOLLOWING_ERROR_STUCK추종 오차가 한계에 붙어 있음 — 외력·걸림·과부하 등 원인은 여럿
SERVO_FAULT서보 드라이브 오류
WKC_MISMATCHEtherCAT 장치 응답 누락
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 를 누르면 안전한 순서로 내려갑니다. 키 안내 줄에 진행 단계가 표시됩니다.

  1. Braking robots... — 모든 로봇에 먼저 브레이크 요청을 보내고 응답을 기다리지만, 실패해도 그대로 다음 단계로 넘어갑니다. TUI 는 물리 브레이크 체결을 확인하지 않습니다 — 로봇 행의 BRAKE 는 명령이 받아들여졌다는 표시이지 체결 확인이 아니고, 보호정지 중에는 P-STOP 이 먼저 보입니다. 로봇이 실제로 멈췄는지는 눈으로 확인하시고, 한 대라도 확실하지 않으면 물리 비상정지를 쓰세요.
  2. ROS 2 연결을 닫습니다.
  3. Stopping processes... — 스택 프로세스를 종료합니다. 카메라를 켠 기동이면 정상 종료를 최대 40초까지 기다린 뒤 강제 종료로 넘어가고, 그 뒤 남은 프로세스·ROS 자원 정리에 시간이 더 걸릴 수 있습니다 — 카메라 드라이버를 도중에 끊으면 다음 기동에서 카메라가 붙지 않을 수 있어 일부러 기다립니다.
  4. All robots stopped 는 프로세스 정리가 끝났다는 뜻입니다. 로봇이 물리적으로 멈춘 것은 1단계에서 직접 확인하세요. RViz·PlotJuggler 도 함께 닫힙니다.

Job 실행 중 세션 유지​

Job 이 도는 동안 TUI 와 터미널을 유지하세요

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 를 쓰세요.