본문으로 건너뛰기

M34.01 · 관제 텔레메트리·상태/이벤트·읽기 전용 대시보드

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

전체 커리큘럼

학습 안내

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

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

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

학습 목표

  • 연결 신호·관측 상태·이벤트와 원발생/수집시각을 구분해 필드별 신선도와 미확인을 표시한다.
  • 동일 로봇/재시작 세대의 이벤트 순서 역전·중복을 진단하고 현재 미션과 원로그를 분리한다.
  • 합성 읽기 전용 대시보드의 네 상황을 비교하고 현재/마지막값·수집/실행 근거의 범위를 기록한다.

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

권장 선수

M05.01/.02의 노드·메시지가 선수다. 시계는 M14.03, 명령/관측은 M25.06과 M31.06으로 보충한다. 합성 기록표 또는 이 페이지의 읽기 전용 모형을 사용한다. 실제 ROS/서버·로봇 수집이나 명령 전송을 구현/실행하지 않으며 UI언어·문법 입문은 다루지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

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

화면에 값이 있다는 사실보다 출처와 시각이 먼저다

로봇의 현재 미션과 배터리를 관제 화면에서 본다고 하자. 값이80%이고 연결 표시가 켜져 있어도 그 값이 언제 관측됐는지 없으면 현재 배터리 상태로 판단하기 어렵다. 서버가 마지막 값을 다시 그렸을 뿐일 수도 있다. 관제의 첫 목표는 보기 좋은 숫자를 늘리는 것보다 무엇을 어느 시각에 관찰했는지 드러내는 것이다.

텔레메트리(telemetry)는 원격 대상에서 수집하는 관측/상태 정보다. 읽기 전용 대시보드는 이를 해석/표시하는 경로이며, 그 자체가 로봇의 실행 허가나 실제 제어 성과를 만들지는 않는다. 이 단위는 단일 가상 대상 r1/bootA의 데이터를 읽는다. 화면의 모형도 실제 로봇과 연결되지 않는다.

상태 snapshot과 사건 event는 다르게 기록한다

snapshot은 어떤 시각의 상태 묶음이다. 예를 들어 배터리80%@900ms는 해당 시점에 제공된 값이다. event는 특정 시각에 일어난 사건/변경의 기록이다. 미션이 RUNNING에서 ERROR로 바뀌었다면 사건ID와 발생/수집 시각·대상/세대를 남긴다. 모든 event가 전체 상태를 담는 것은 아니다.

이 단위의 mission event는 미션 전체 값을 담는다. 따라서 최신 event의 미션 값은 알 수 있어도 별도 snapshot에만 있는 배터리/위치가 함께 갱신된 것은 아니다. 증분(delta)만 담는 사건이라면 빠진 사건 없이 기준 snapshot부터 재구성할 수 있는지도 확인해야 한다. 두 형식을 같은 합치기 규칙으로 처리하지 않는다.

정보답할 수 있는 질문추가로 필요한 근거
snapshot의 배터리80%@900ms그 시점의 제공 값은 무엇인가현재 시각/TTL·센서 출처·단위/유효성
mission ERROR seq12@1140ms어느 대상/세대의 어떤 미션 값이 왔는가앞뒤 사건/최신성·현재 원인/실제 정지
수신 heartbeat@1195ms수신 경로의 신호가 갱신됐는가로봇 필드별 취득시각·동작/물리 관측
수신4건·고유3건얼마나 도착/중복됐는가집계 구간/분모·누락/재전송 원인

원발생 시각과 화면 수신 시각을 분리한다

OpenTelemetry Logs Data Model은 원발생 Timestamp와 수집 계통이 관측한 ObservedTimestamp를 구분한다. 여기의 합성 표는 같은 ClockA의 ms를 쓰며 공식 OTel wire/schema나 UNIX ns 형식이 아니다. 실제 시스템은 시계 ID/단위·동기화/매핑과 원본 stamp를 확인해야 한다.

서버가995ms에 데이터를 받았어도 로봇이 그 값을900ms에 취득했다면 화면의 수신 나이와 로봇 관측 나이는 다르다. UI갱신 시각으로 원본 stamp를 덮으면 오래된 관측을 새 값처럼 보이게 한다. 다른 시계의 숫자를 바로 빼서 지연이라고 쓰지도 않는다.

heartbeat는 수신 경로가 주기적으로 보내는 생존 신호다. TTL(time to live)은 현재 판단에 사용할 수 있는 나이 범위다. 이번 계약은 heartbeat나이≤100ms, 상태/필드나이≤200ms이며 경계를 포함한다. 교육용 값으로, 모든 장비/관제의 안전·실시간 성능 기준은 아니다.

연결 신호와 로봇 관측을 필드별로 읽는다

가상 snapshot은 배터리80%@900ms이고 초기 mission은 RUNNING seq10@900ms다. 다음 세 상황을 비교한다. 나이는 같은 ClockA의 now−stamp로 계산한다.

상황now / heartbeat연결 신호 나이배터리/미션 관측 나이와 현재 표시
정상1000 / 995ms5ms, 유효100ms, 현재80%/RUNNING
로봇 관측 지연1150 / 1145ms5ms, 유효250ms, 현재는미상·마지막80%/RUNNING@900ms별도
연결 신호 만료1400 / 1145ms255ms, 만료500ms, 현재미상·마지막값/시각별도

두 번째의 수신 신호가 유효하다고 오래된 배터리/미션까지 현재 정상으로 표시하면 안 된다. 마지막80%를 보존하는 것과 현재80%라고 표시하는 것은 다르다. 미확인 값을0%나 정상 상태로 채우면 운영자가 다른 의미로 받아들일 수 있다. 값·시각·유효/만료·미상이라는 문자 근거를 함께 제공하고 색만으로 구분하지 않는다.

원본이 미래 시각이거나 잘못된 시계/대상, 범위 밖 배터리/잘못된 순서 값이라면 유효한 현재 관측으로 쓰지 않는다. 기본 모형은 정해진 단일 r1/bootA/ClockA 자료만 받으며 형식/시각/식별자 오류를 거부한다. 이는 인증/운영 보안 시스템을 구현한 것이 아니다.

늦게 온 사건이 최신 상태를 되돌리지 않게 한다

사건 키를 (robot_id,boot_id,seq)로 정한다. boot_id는 재시작 등으로 새 수집 세대가 됐음을 구별하는 값이다. 같은 세대의 seq는 원본 순서를 나타내고, 도착 순서는 네트워크/큐의 지연으로 달라질 수 있다.

도착 순서원본 seq/시각미션 전체 값수신 때 처리
110 / 900msRUNNING기준 이력
212 / 1140msERROR최신 미션 갱신
311 / 1100msRUNNING늦은 원로그 보존, seq12를 되돌리지 않음
412 / 1140msERROR동일 사건 중복, 새 고유 사건으로 세지 않음

수신은4건, 고유는3건, 같은 중복은1건이다. 최종 최신 seq는12·ERROR다. seq11이 늦게 왔다는 이유로 도착 순서의 마지막 RUNNING을 현재 상태로 붙이지 않는다. 같은 키인데 내용/시각이 다르면 단순 재전송으로 무시하지 말고 데이터 충돌로 처리한다.

seq12가 먼저 왔을 때11의 공백을 표시하고 필요하면 원로그/최신 snapshot으로 재동기화한다. 이 예의 seq12는 미션 전체 값이라 현재 미션을 제공하지만, 그 사건 하나가 다른 필드나 빠진 증분까지 복원한 것은 아니다. 재시작해bootB/seq1이 오면 bootA의 큰 seq와 단순 비교하지 않는다. 새 기준 상태/세대와 과거 이력을 분리해야 한다. 기본 모형의 자동 boot전환은 범위 밖이다.

최신 미션과 오래된 배터리는 동시에 존재할 수 있다

순서 역전/중복 상황의 현재는1200ms, heartbeat1195ms다. 최신 mission event는1140ms이므로 나이60ms로 유효하고 ERROR를 표시한다. 배터리는 여전히900ms 관측이라 나이300ms로 만료됐으므로 현재 미상이다. 미션이 갱신됐다고 배터리 stamp까지1140ms로 올리면 안 된다.

관제 기록에는 대상/세대·필드 출처/단위·원발생/수신시각·최신 seq/누락/중복·표시 판정과 원본 참조를 남긴다. 이벤트/필드가 같은 과업·로봇을 가리키는지도 확인한다. 실제 정지/물체 상태나 명령 진행은 필요한 별도 관측과 요청ID에 연결한다. ERROR라는 문자열 하나를 전체 물리 상태로 확대하지 않는다.

읽기 전용 표시를 실제 실행 권한과 구분한다

읽기 전용 모형에서 네 상황을 골라 위 계산을 비교할 수 있다. 선택은 고정 합성 기록만 바꾸며 실제 수집/명령/진도를 변경하지 않는다. 표 분석만으로 기본 실습을 수행할 수도 있다. 브라우저 모형은 실제 ROS·네트워크 장애·시간 동기화 성능을 측정하지 않는다.

실제 관제에서는 명령 버튼을 숨기는 것만으로 서버 권한이 읽기 전용이 됐다고 할 수 없다. 수집/읽기 권한과 요청/실행 권한, 변경/감사 기록은 별도로 설계한다. M34.03에서 다룬다. 먼저 관측을 정확히 표시한 다음 M34.02에서 3D장면과 좌표·시간·버전이 어떻게 맞아야 하는지 확인한다.

기존 6.6 평가 설계와 함께 읽는다. 관제의 유효/미상 표시와 실제 실행/안전 성과의 근거를 분리하는 것이 이 단위의 완료 기준이다.

학습 범위와 한계

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

실습 필수

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

위 표를 계산하거나 아래 모형의 네 상황을 선택해 관찰한다. 실제 로봇/서버에 연결하지 않는다.

  1. 정상/지연/단절에서 heartbeat와 상태 나이를 각각 계산하고 현재/마지막값·시각을 적는다. 지연 상황의 현재미션/배터리를0이나RUNNING으로 채우지 않는다.
  2. 이벤트 도착10→12→11→12의 수신/고유/중복 수와 최종미션·seq를 구한다. 늦은11과같은12중복을 서로 다른 이유로 처리한다.
  3. 이벤트 상황의 now1200ms에서 미션/배터리 나이와 표시를 계산하고 한 필드의 갱신이 다른 필드의 신선도를 바꾸지 않는 이유를 설명한다.
  4. bootB/seq1 또는 동일키/다른내용이 오면 필요한 다음 확인을 적고, 이 관제 화면이 아직 확인하지 않은 실행/물리 상태를 나눈다.

막히면 수신 시각과 로봇 원본 시각, 현재값과 마지막값을 다른 열로 쓴다. 조작은 학습 완료를 자동 기록하지 않는다. 계산·관찰 근거를 답안에 직접 적는다.

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

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

학습 범위와 한계

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

평가·해설 필수

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

확인 문제 Q1

heartbeat가 5ms 전이고 화면이 최근에 갱신됐다. 배터리80%와 RUNNING은 250ms 전 관측이다. 현재 상태를 어떻게 표시하며 왜 연결 신호만으로 현재 정상을 보고할 수 없는가?

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

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

확인 문제 Q2

seq12 ERROR 뒤 seq11 RUNNING과 같은 seq12 ERROR가 왔다. 도착한 마지막 문자열을 현재값으로 사용하고 수신 건수를 고유 사건 수로 보고해도 되는가?

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

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

확인 문제 Q3

mission event는 신선하나 배터리는 300ms 전이다. 또 bootB/seq1이 등장했다. 필드와 세대의 표시/재동기화 원칙을 설명하고 현재 관제에서 실제 미확인인 것을 적어라.

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

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

학습 범위와 한계

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

선택 보충 · 읽기 전용 텔레메트리 모형

고정된 합성 기록의 상황을 바꾸어 연결 신호·미션·배터리의 신선도를 따로 비교합니다. 실제 로봇이나 서버에서 수집한 데이터가 아닙니다. 명령을 전송하는 기능은 없습니다.

합성 대상 r1 / bootA · ClockA · 현재 1000ms · heartbeat TTL 100ms / 상태 TTL 200ms (경계 포함)

연결 신호
유효
신호 나이 5ms
현재 미션 상태
RUNNING
관측 나이 100ms · 마지막 제공값 RUNNING
현재 배터리
80%
관측 나이 100ms · 마지막 제공값 80% @ 900ms

수신 1건 / 고유 1건 / 동일 중복 0건 · 최신 seq 10

각 이벤트는 미션 전체 값입니다. 배터리는 별도 관측입니다.
도착seq발생 ms미션수신 시 처리
110900RUNNING상태 갱신 이력

미상은 현재 근거가 부족하다는 표시입니다. 마지막 관측값·시각과 현재 상태를 구분하세요. 연결 신호가 유효해도 다른 필드가 오래될 수 있습니다.

상황 선택은 합성 화면만 바꿉니다. 답안·진도·학습 완료를 자동 저장하거나 변경하지 않습니다.

참고 자료

학습 확인

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

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

학습 이동

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

전체 목차로 돌아가기 →

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