본문으로 건너뛰기

정지와 복구

보호정지가 걸렸을 때 화면이 어떻게 알리고 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서보 드라이브 오류
ECAT_LINK_ERROR · WKC_MISMATCHEtherCAT 링크 끊김 · 일부 장치 응답 누락
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 를 누르면 안전한 순서로 내려갑니다. 키 안내 줄에 진행 단계가 표시됩니다.

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

종료 (q)

q 를 한 번 누르면 스택을 정지한 뒤 종료합니다. 정지가 진행 중이면 끝나기를 기다리며, 그동안 키 안내 줄에 q twice: force quit 가 표시됩니다. 급하면 q 를 한 번 더 누르세요 — 브레이크를 짧게 시도한 뒤 프로세스를 강제로 끝냅니다.

스택이 스스로 죽었을 때

스택 프로세스가 예기치 않게 끝나면 벨과 함께 Launch crashed … 알림(문구는 상황에 따라 다릅니다)이 뜨고, 같이 띄운 로봇 전체에 브레이크 요청을 보낸 뒤 내려갑니다 — 위 정지 절차와 같이 실제로 멈췄는지는 직접 확인하세요. 로그의 마지막 줄을 확인하신 뒤 s 로 다시 기동하세요. 반복되면 문제 해결을 보세요.

TUI 자체가 비정상 종료돼 프로세스만 남았다면 터미널에서 plem kill 로 정리한 뒤 다시 실행하세요. 살아 있는 TUI 를 두고 쓰면 브레이크 순서 없이 프로세스가 끊깁니다 — 그때는 s·q 를 쓰세요.