본문으로 건너뛰기

M30.04 · Watchdog·중단·상태 승격·Shadow/제한 실행

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • watchdog/heartbeat·관측/명령 만료와 replay/shadow/제한 실행·감독 상태를 구분한다.
  • 합성 동일 clock 기록에서 세 종류 나이/임계값과 보류·중단/미상 상태를 판정한다.
  • 승격/중단·복구의 증거와 독립 감독/물리 상태 확인·감사 기록을 설계한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M05의 lifecycle/시간, M22의 실행 감독과 M27의 큐/버전·M30.03의 제한을 사용한다. watchdog/TTL·shadow/상태 승격을 본문에서 보충한다. 기본은 종이 상태표이며 실제 ROS/장비 명령이나 안전 인증은 수행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

살아 있다는 신호와 유효한 행동은 다르다

watchdog은 정한 사건/신호가 필요한 시간 안에 갱신되는지 관찰하고, 조건을 벗어나면 정해 둔 대응을 시작하는 감독 수단이다. heartbeat는 구성요소가 주기적으로 보내는 생존/진행 신호다. 신호가 새로 왔다고 센서 관측/정책 결과·물리 상태가 모두 정상이라는 뜻은 아니다. heartbeat 생성 경로가 실제 작업 진행과 어떻게 연결되는지도 정해야 한다.

정책 추론은 멈췄는데 별도 timer가 heartbeat만 계속 낼 수 있다. 반대로 관측은 도착하지만 명령/구동 피드백이 끊길 수 있다. 그러므로 heartbeat 나이, 근거 관측의 나이, 명령의 발행/적용·유효기간과 작업 진행을 다른 열로 검사한다. 메시지에 신선한 봉투를 씌웠다는 사실로 오래된 관측이 새로워지지 않는다. M27의 ID/clock·task/모델 버전과 출력 제한을 함께 사용한다.

감독의 입력은 유효해야 한다. 같은 clock에서 나이를 차분하고 음수/역전·재시작/단절은 별도 오류/미상으로 처리한다. 실제 경과 timeout을 정지할 수 있는 simulation clock에 그대로 맡기면 시뮬레이션 정지 중에도 경과 조건이 변하지 않을 수 있다. ROS 시간 설계를 연결해 관측의 ROS stamp와 내부 경과 감독의 시계/정합을 구분한다.

세 나이를 각각 계산한다

합성 감독 표의 시각은 모두 같은 단조 시계의 초 단위다. 마지막 heartbeat=1.000 s, 허용 나이는 0.150 s 이하로 정한다. 현재 1.120 s이면 나이는 0.120 s/여유 0.030 s다. 현재 1.180 s이면 나이는 0.180 s로 0.030 s 초과한다. 경계 0.150 s는 통과하도록 과제 규칙을 정했으며 실제 시스템 임계값을 권고한 것이 아니다.

감독기의 세 종류 나이: 관측 나이 → 명령 나이/lease → heartbeat 나이 → 별도 상태/재개.그림 원본 크기로 보기

그림 M30.04-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

현재 1.180 s에 새 heartbeat 1.170 s를 받았다고 하자. heartbeat 나이는 0.010 s로 통과하지만 근거 관측이 0.950 s면 관측 나이는 0.230 s다. 최대 관측 나이 0.100 s 조건은 0.130 s 초과다. 명령 발행이 1.150 s/입구 TTL이 0.050 s라면 명령 나이 0.030 s는 통과한다. 이때 heartbeat/명령 입구는 통과하나 관측 조건은 실패다.

TTL(time to live)은 이번 표에서 명령을 새로 받아들일 수 있는 발행 뒤 기간이다. 실행 시작 뒤 그 시간이 지나면 자동으로 실제 축이 정지한다는 뜻은 아니다. 동작 중 lease/갱신·실행 deadline과 장애 시 대응이 필요하면 별도 계약으로 정한다. 과제는 관측 실패이면 새 동작을 보류하고 실행 중인 동작의 상태를 확인/중단 정책으로 넘기는 것으로 정한다. 새 동작 보류와 이미 실행 중인 명령의 실제 정지는 다른 사건이다.

실행 전에 증거의 단계를 나눈다

오프라인 replay는 저장한 입력을 정책/검사 경로로 재생해 계산/거부 결과를 확인하는 단계다. 출력이 구동 경로로 전달되지 않는지 명시하고 실제 상황의 피드백이 새 행동 때문에 바뀌지 않는다는 한계를 남긴다. 고정 기록 재생만으로 실제 폐루프 성공을 측정할 수 없다. 데이터를 읽는 장치가 실제 로봇 옆에 있더라도 출력 연결이 없다면 실물 운전과 구분한다.

shadow는 이 단위에서 현재 관측으로 후보를 계산/비교하되 제어 명령으로 전달하지 않는 구성으로 정의한다. 계산/시간·계약/한계 위반을 관찰할 수 있지만 실제 행동의 결과를 입증하지 않는다. 기존 제어기가 따로 장비를 움직이는 shadow라면 그 동작의 명령 주체도 분리한다. 'shadow 성공'이라는 말 대신 어떤 관문을 통과했는지 기록한다.

제한 실행은 별도 권한/장비 절차가 갖춰진 경우 정의된 속도/공간·과업/시간 범위로 실제 동작을 허용하는 단계다. 이 교재의 기본 과제는 제한 실행을 하지 않고 필요한 입력/판정만 설계한다. 시뮬레이션·replay/shadow의 통과를 실제 실행 허가로 자동 승격하지 않는다. 승격에는 담당 주체·현재 상태/관측, 버전/인터페이스와 출력 제한·중단 경로/복구 절차, 조건별 시험 근거가 필요하다.

교육용 감독 상태는 ROS lifecycle 상태와 구분한다

이 과제의 상태를 준비, 비실행 검증, shadow, 제한 실행, 중단 처리, 상태 미상, 복구 검토로 정한다. 이는 설명을 위한 응용 상태이며 ROS lifecycle에 새 primary state를 추가한 API가 아니다. ROS managed nodes 설계의 Unconfigured/Inactive/Active 같은 상태는 구성/활성화 관리의 기반이고, 여기의 과업/운영 상태는 그 위에서 따로 관리한다.

ros2_control Jazzy 하드웨어 lifecycle 문서도 하드웨어 상태/인터페이스 처리를 설명하며 구현/현재 제약을 확인해야 한다. 따라서 lifecycle deactivate 요청/응답이나 소프트웨어의 중단 flag 하나를 장치 전원 차단·브레이크/물리 정지의 증거로 쓰지 않는다. 실제 driver/장비의 명령/상태와 해당 절차를 확인해야 한다.

합성 로그가 '제한 실행 중→heartbeat 초과→중단 요청→요청 수락'까지만 있고 최종 결과/현재 속도·물체 상태가 없다면 중단 요청/수락은 확인되었고 실제 결과는 미상이다. 상태표에서 바로 준비/성공으로 돌리지 않는다. 이미 전달한 명령의 큐/driver 행동과 결과·복구 전제를 추적한다. watchdog 사건이 있었다는 기록과 실제 대응 완료의 시각/근거도 나누어 남긴다.

감독기가 실패할 때의 경로와 재개를 설계한다

감독이 감시 대상과 같은 thread/프로세스·전원/통신 경로에 의존하면 그 공통 실패 때 함께 멈출 수 있다. 독립적인 관찰/차단 경로를 고려하더라도 모든 고장을 막는다고 단정하지 않고, 무엇을 관찰하고 어떤 경로로 대응하며 그 결과를 어떻게 확인하는지 적는다. 소프트웨어 watchdog은 인증된 안전 기능/물리 비상 정지나 장비 위험 평가를 대신하지 않는다.

재개에는 새 heartbeat 한 번보다 많은 조건이 필요하다. 실제 장치/goal·파지/장면/관측의 현재 상태, 원인 조치/버전·권한, 큐/필터/ensemble의 초기화·재검증과 중단 수단을 확인한다. 정의된 복구 절차에서 이전 단계로 돌아가며 다음 tick에 무조건 재실행하지 않는다. 기존 6.4 안전 배포 감독기의 교육 모형을 이 상태표와 비교하자. 아래 과제는 실제 정지/승격을 수행하지 않는다.

관련 기존 자료 · 보충해서 읽기

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    6.4 안전 배포 감독기

    설명 범위 충족 · 전체 단위 검수와 별개

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    6.5 End-to-End Pick & Place 배포

    설명 범위 충족 · 전체 단위 검수와 별개

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

  • 기존 요약 레슨 · 관련 기존 자료 · 보충 참고

    안전한 Leader-Follower 루프

    목표 일부 관련

    핵심 요약 레슨입니다. 자세한 유도·수식·코드는 연결된 상세 본문을 함께 읽으세요.

  • 기존 요약 레슨 · 관련 기존 자료 · 보충 참고

    단계적 승격과 안전 감독기

    목표 일부 관련

    핵심 요약 레슨입니다. 자세한 유도·수식·코드는 연결된 상세 본문을 함께 읽으세요.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

입력은 본문 동일 clock 표다. 첫 heartbeat 1.000 s를 현재 1.120/1.180 s에 검사하고, 별도 현재 1.180 s에서 heartbeat 1.170/관측 0.950/명령 1.150 s를 각 한계 0.150/0.100/0.050 s로 검사한다. 실행 로그는 중단 요청 수락 뒤 실제 결과 미상이다.

  1. heartbeat/관측/TTL과 replay/shadow/제한 실행·응용 상태/ROS lifecycle을 구분한다.
  2. 각 나이/여유·초과를 계산하고 어떤 관문이 실패하는지/새 동작·기존 실행의 상태를 판정한다.
  3. 비실행 단계에서 승격에 필요한 증거와 중단/미상·공통 실패·복구/감사 기록을 설계한다.

관찰은 정의/단계, 계산/판정, 결과/복구로 나눈다. 막히면 세 stamp를 다른 칸에 적고 요청/수락/실제 결과를 따로 표시한다. 실제 ROS/장비는 필요하지 않다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

관련 기존 자료 · 보충해서 읽기

  • 기존 실습 원고 · 관련 기존 자료 · 보충 참고

    [SIM] [SAFETY] 실습 3-2: Leader-Follower 안전 필터

    목표 일부 관련

    실습 원고 참조. 로컬/ROS/Isaac/GPU/실물 실행과 장비 없는 기본 경로의 목표 검수는 미실시. 연결된 원고의 환경·절차를 확인하세요. 원고 열람은 실습 수행을 뜻하지 않습니다.

  • 기존 실습 원고 · 관련 기존 자료 · 보충 참고

    [SIM→HW] [SAFETY] 실습 3-3: ROS 2 JointState 안전 브리지

    목표 일부 관련

    실습 원고 참조. 로컬/ROS/Isaac/GPU/실물 실행과 장비 없는 기본 경로의 목표 검수는 미실시. 연결된 원고의 환경·절차를 확인하세요. 원고 열람은 실습 수행을 뜻하지 않습니다.

  • 기존 실습 원고 · 관련 기존 자료 · 보충 참고

    실습 6-2: Temporal Filter와 안전 승격 감독기

    목표 일부 관련

    실습 원고 참조. 로컬/ROS/Isaac/GPU/실물 실행과 장비 없는 기본 경로의 목표 검수는 미실시. 연결된 원고의 환경·절차를 확인하세요. 원고 열람은 실습 수행을 뜻하지 않습니다.

  • 기존 실습 원고 · 관련 기존 자료 · 보충 참고

    실습 6-3: ROS 2 Cartesian Workspace Guard

    목표 일부 관련

    실습 원고 참조. 로컬/ROS/Isaac/GPU/실물 실행과 장비 없는 기본 경로의 목표 검수는 미실시. 연결된 원고의 환경·절차를 확인하세요. 원고 열람은 실습 수행을 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    01_physical_ai_isaac_ros2/code/ros2_jazzy/safety_gate_cpp/CMakeLists.txt

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    01_physical_ai_isaac_ros2/code/ros2_jazzy/safety_gate_cpp/package.xml

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    01_physical_ai_isaac_ros2/code/ros2_jazzy/safety_gate_cpp/src/safety_gate.cpp

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    03_so101_kinematics_teleop/code/ros2_ws/src/so101_training_bridge/CMakeLists.txt

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    03_so101_kinematics_teleop/code/ros2_ws/src/so101_training_bridge/package.xml

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    03_so101_kinematics_teleop/code/ros2_ws/src/so101_training_bridge/scripts/safe_joint_bridge.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    03_so101_kinematics_teleop/code/ros2_ws/src/so101_training_bridge/src/joint_state_monitor.cpp

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    03_so101_kinematics_teleop/code/safe_teleop_core.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/package.xml

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/resource/sim2real_safety

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/setup.cfg

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/setup.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/sim2real_safety/__init__.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/sim2real_safety/stamped_pose_publisher.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/ros2_ws/src/sim2real_safety/sim2real_safety/workspace_guard.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    06_sim2real_deployment/code/safety_supervisor.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

  • 브라우저 계산 모형 · 관련 기존 자료 · 보충 참고

    TTL·속도 상한·E-stop·수동 재승인

    목표 일부 관련

    전체 supervisor·충돌·실물 안전 검증 아님 브라우저 근사 계산이며 ROS·물리 엔진·GPU·실물 실행 결과가 아닙니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

heartbeat가 새로 왔고 shadow에서 후보가 나왔다. 관측/명령도 유효하고 실제 작업 성공이 검증되었다고 할 수 있는가? 단계/감독의 역할을 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

같은 clock에서 현재 5.200 s/마지막 heartbeat 5.050 s이고 허용 나이는 0.150 s 이하다. 관측은 5.000 s/한계 0.100 s, 명령은 5.180 s/TTL 0.050 s다. 각 나이와 관문을 계산하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

watchdog이 중단 요청을 보냈지만 최종 결과가 없고 감독 thread도 같은 프로세스에 있다. 물리 정지/자동 재개를 승인할 수 있는가? 공통 실패·필요 결과/복구 근거를 적어라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

관련 기존 자료 · 보충해서 읽기

  • 기존 보고서 · 관련 기존 자료 · 보충 참고

    실습 보고서 · 기존 원고와 평가 안내

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 보고서 · 관련 기존 자료 · 보충 참고

    실습 보고서 · 기존 원고와 평가 안내

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 서술 문항 · 관련 기존 자료 · 보충 참고

    Cartesian target의 큰 workspace 위반을 clamp보다 거부해야 하는 이유를 제시하라.

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 서술 문항 · 관련 기존 자료 · 보충 참고

    E-stop 해제 후 자동으로 NOMINAL 상태로 돌아가면 안 되는 이유는 무엇인가?

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 보고서 · 관련 기존 자료 · 보충 참고

    실습 보고서 · 기존 원고와 평가 안내

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 보고서 · 관련 기존 자료 · 보충 참고

    실습 보고서 · 기존 원고와 평가 안내

    목표 일부 관련

    개별 해설/루브릭의 목표별 충분성은 후속 단위 검수. AI 평가·코드 실행 통과를 의미하지 않음.

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 요약 점검 · 관련 기존 자료 · 보충 참고

    Leader 메시지가 timeout을 넘겼을 때 적절한 동작은?

    목표 일부 관련

    선택 정답만으로 독립 수행을 보장하지 않음

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 요약 점검 · 관련 기존 자료 · 보충 참고

    목표가 작업공간을 크게 벗어났을 때 권장 동작은?

    목표 일부 관련

    선택 정답만으로 독립 수행을 보장하지 않음

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

  • 기존 요약 점검 · 관련 기존 자료 · 보충 참고

    calibration hash가 바뀌면 기존 승격 상태는?

    목표 일부 관련

    선택 정답만으로 독립 수행을 보장하지 않음

    기존 교재 해설·평가 기준을 참고할 수 있습니다. 답안 평가 후 화면의 비교 항목도 확인하세요.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.