본문으로 건너뛰기

M14.03 · 여러 시간원·멀티레이트·보간·ApproximateTime

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

전체 커리큘럼

학습 안내

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

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

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

학습 목표

  • 취득/수신 시각과 시계의 offset·속도 차이를 구분하고 주어진 동시 사건으로 간단한 시계 변환을 계산한다.
  • 서로 다른 주기의 상태에서 선형 보간을 계산하고 온라인 미래 표본/대기와 각도 경계의 한계를 설명한다.
  • Jazzy ApproximateTime의 큐/허용 시차와 도착 순서 사례를 해석하고 제한된 운동 모형으로 시간 오차 예산을 계산한다.

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

권장 선수

M05.06의 시간원, M12.02의 핀홀과 M14.01의 프레임이 선수다. M13/Kalman/EKF는 필요하지 않다. 기본은 합성 시각/도착 순서의 종이 계산이며 실제 ROS나 센서 동기화를 실행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

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

숫자가 가깝다고 같은 시간이 아니다

취득 시각은 센서가 관측한 사건의 시각, 수신 시각은 프로그램이 메시지를 받은 시각이다. 전송/대기·처리 지연이 있으므로 같지 않을 수 있다. 시스템/시뮬레이션/장치 시계는 시작점과 진행 속도가 다를 수 있다. 타임스탬프를 모두 초 단위로 표시했다고 바로 빼지 않는다. 어떤 시계/기준 사건을 뜻하는지와 reset/정지/역행 정책을 확인한다.

단순 시계 모형을 c=a t+b라고 하자. t는 공통 기준 시각(s), c는 장치 시계 표시(s), a는 무차원 속도 비율, b는 offset(s)다. 같은 두 물리 사건이 기준 t=0/10 s에서 장치 c=2/12.01 s로 기록됐다고 정확히 주어지면 a=(12.01−2)/10=1.001, b=2다. c=12.01을 공통 시간으로 바꾸려면 t=(c−2)/1.001=10 s다. offset만 2를 빼면 10.01 s로 10 ms가 남는다.

이 예는 동시 사건 대응이 알려진 조건이다. 메시지를 받은 시각 차이만 보고 그 전부가 시계 offset이라고 추정하면 전송 지연이 섞인다. 실제 추정에는 대응 오차/지연 비대칭·드리프트 변화와 유효 구간을 기록한다. 시계가 reset되면 이전 a/b를 계속 쓰지 않는다. 어떤 자료가 시스템 시각이고 어떤 자료가 /clock 기반인지도 명시한다.

서로 다른 표본 사이의 상태를 구한다

카메라와 엔코더는 같은 주기로 취득하지 않을 수 있다. 카메라 30 Hz/상태 100 Hz라면 매 영상마다 같은 stamp의 상태가 있다는 보장이 없다. 관련 자료가 이미 같은 시간 기준으로 변환됐다는 전제 아래 가까운 표본을 고르거나 보간하는 정책을 정한다. 여기서는 원리 계산을 위해 별도 10 Hz 상태 두 점만 쓴다.

t₀=1.00 s의 q₀=0.2 rad, t₁=1.10 s의 q₁=0.4 rad에서 영상 시각 t*=1.04 s의 상태를 선형 보간하자. α는 구간 안에서의 시간 비율이다.

α=t∗−t0t1−t0,q(t∗)=(1−α)q0+αq1.\alpha=\frac{t^*-t_0}{t_1-t_0},\qquad q(t^*)=(1-\alpha)q_0+\alpha q_1.

α=0.4이므로 q=0.6×0.2+0.4×0.4=0.28 rad다. 구간 안에서 변화가 선형이라는 모형이며 급가속·이상치/센서 고장에서는 정확하지 않을 수 있다. t₁=t₀이면 분모가 0이므로 중복 시각 처리 정책이 필요하고, t*가 구간 밖이면 보간이 아닌 외삽이다. 비유한 값/역행과 너무 큰 빈 구간을 검사한다.

오프라인 파일에는 양쪽 표본이 있어도 온라인에서 t=1.045 s 현재에는 1.10 s의 미래 관측이 아직 없다. 이 경우 0.28을 이미 관측한 상태처럼 사용할 수 없다. 양쪽 표본을 기다리거나 이전 값을 유지/제한된 외삽·미응답으로 처리하는 정책을 선택하고 지연/불확실성을 기록한다. 전송 지연이 0이어도 1.10까지 기다리려면 현재부터 최소 55 ms가 더 필요하다. 미래 자료를 이용한 보간을 지연 없는 실시간 결과로 표시하지 않는다.

회전도 숫자를 그대로 평균하면 실패할 수 있다. 예를 들어 경계 설명용 degree에서+179→−179는 짧은 회전으로 2도 차이지만 단순 평균은 0이다. 먼저 179→181처럼 연속 표현으로 풀면 중간은 180도다. 실제 내부 계산 단위rad와 회전 경로를 명시하고, 일반 3차원 회전은 해당 공간에 맞는 보간을 써야 한다. quaternion 성분을 무조건 각각 선형 평균해 유효 회전이라고 보지 않는다.

ApproximateTime은 자료를 새로 측정하지 않는다

message_filters의 TimeSynchronizer는 header의 stamp가 맞는 메시지 묶음을 찾는다. ApproximateTimeSynchronizer는 큐에 들어온 자료를 정한 시차 범위로 묶는다. 이는 각 stamp가 공통 시간 기준에서 해당 관측의 취득 시점을 올바르게 나타낸다는 전제 아래의 자료 선택이다. 서로 다른 시계를 보정하거나 센서를 같은 순간에 작동시켜 주는 기능도, 상태를 자동 보간하는 기능도 아니다. Jazzy 공식 Python 구현을 기준으로 이 역할을 구분한다.

시각 짝짓기와 보간은 다르다: 시간원 정합 → 메시지 짝짓기 → 상태 보간 → 별도 검증.그림 원본 크기로 보기

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

queue_size는 입력별 보관 수, slop은 초 단위 허용 시차다. 이번에 확인한 Jazzy Python 구현의 최종 묶음 검사는 max stamp−min stamp<slop이므로 정확히 경계인 경우를 무조건 통과로 읽지 않는다. C++ 정책/다른 버전의 API나 내부 선택을 그대로 동일하다고 주장하지 않는다. 기본값은 False인 allow_headerless를 True로 켜서 header 없는 메시지에 수신 때 ROS 시각을 붙이면 원래 취득 시각을 되찾은 것이 아니며 지연이 섞일 수 있다.

합성 도착 순서를A stamp1.00→B stamp1.02→B stamp0.99, queue_size=2/slop=0.03 s로 두자. 처음A만 있을 때는 쌍이 없고 B1.02가 왔을 때 차이 0.02로 쌍을 만들어 두 메시지를 소비할 수 있다. 나중에 온B0.99가 A와 차이 0.01로 더 가까워도 이미 소비한 쌍을 전역 최적으로 다시 짜 주는 기능이라고 가정하지 않는다. 큐에 어떤 후보가 어느 시점에 있었는지와 도착 순서를 기록해야 한다.

큐를 늘리면 후보를 더 보관할 수 있지만 오래된 자료/대기·메모리도 고려한다. callback이 안 오면 시각만 아니라 입력별 실제 수신·QoS 호환/누락/큐 탈락을 조사한다. 정책이 한 세트의 자료를 소비하므로 서로 다른 빈도에서 모든 표본이 일대일로 쓰인다고도 가정하지 않는다. 같은 객체의 관측/프레임/시각과 선택 정책을 따로 남긴다.

허용 시차는 공간 오차와 연결한다

단순 optical 운동 모형에서 Z=1 m가 일정하고 점의 상대 X속도 v_x=0.2 m/s, f_x=400 pixel이라고 하자. 회전·Y/Z 변화·왜곡은 없고 두 자료는 같은 시계다. 사용한 상태가 영상보다 δt만큼 늦으면 위치 차이는 v_xδt, 투영의 가로 차이는 f_x v_xδt/Z다. δt=0.02 s면 0.004 m/1.6 pixel이다. +x 운동에서 늦은 상태를 쓰면 더 오른쪽으로 예측하는 부호도 확인한다.

이 모형에서 1 pixel 이하를 목표로 한다면 |δt|≤1×Z/(f_x|v_x|)=0.0125 s, 즉 12.5 ms가 필요하다. slop30 ms를 골랐다고 이 공간 예산을 만족하는 것은 아니다. 작은 시차여도 더 가까운 깊이/빠른 상대 운동에서 오차가 커질 수 있다. 실제 6자유도 운동/센서 노출과 다른 시계에서는 추가 모형과 불확실성이 필요하다.

기존 4.4 멀티레이트와 선택 투영/시간 개념 모형을 연결해 볼 수 있다. 위젯은 고정Z·정해진 상대속도·같은 시계의 단순 보충이며 실제 동기화/rolling shutter/필터 추정을 수행하지 않는다. 기본 활동은 아래 표만으로 끝낸다.

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

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

    4.4 멀티레이트 센서 시간 정합

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

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

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

    4.8 구현 예제

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

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

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

    멀티레이트 센서 시간 정합

    목표 일부 관련

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

학습 범위와 한계

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

실습 필수

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

입력은 두 동시 사건의 clock표, q 두 점과 영상 1.04/현재 1.045 s, 위 큐 도착 순서·0.03 s slop 및 제한된 운동 모형이다.

  1. a/b와 장치 12.01의 공통 시각을 구한다. offset만 뺀 오차와 취득/수신 차이를 설명한다.
  2. q(1.04)를 구하고 온라인에서 필요한 미래 표본/추가 대기를 판정한다. 각도 경계 변형의 중간값도 설명한다.
  3. 가능한 첫 쌍과 뒤늦은 더 가까운 후보를 해석한다. 0.02 s 시차의 공간/픽셀 오차와 1 pixel 시간 예산을 계산하고 정책 기록을 제안한다.

관찰은 시계·보간/온라인·큐/공간 예산으로 나눈다. 막히면 stamp의 시계와 도착 시각을 다른 열로 쓰고, 보간 대상이 실제로 현재 큐 안에 있는지 확인한다. ROS/센서를 실행할 필요는 없다.

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

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

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

학습 범위와 한계

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

평가·해설 필수

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

확인 문제 Q1

동시 사건 t=0/20 s에 장치 c=1/21.02 s가 대응한다. affine a/b와 c21.02의 기준 시각을 구하고 수신 지연을 offset과 같다고 해도 되는지 설명하라.

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

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

확인 문제 Q2

t=0/0.1 s의 위치 0/0.2 m를 t*=0.025 s에 선형 보간하라. 현재 시각 0.03 s이고 뒤 표본이 아직 없으면 이미 그 결과를 관측했다고 할 수 있는가?

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

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

확인 문제 Q3

같은 제한 운동 모형에서 δt=0.05 s면 위치/픽셀 차이는 얼마인가? slop이 이 시차를 허용하면 실제 동시 취득/1 pixel 예산을 보장하는가? 큐/도착 순서의 역할도 설명하라.

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

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

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

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

    30 fps 영상과 50 Hz 관절 상태에서 slop 5 ms와 50 ms의 trade-off를 비교하라.

    목표 일부 관련

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

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

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

    실시간 정책과 오프라인 데이터셋에서 보간 방식이 달라지는 이유를 설명하라.

    목표 일부 관련

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

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

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

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

    목표 일부 관련

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

    개별 모범답안은 미작성입니다. 기존 관련 개념에 근거한 AI 피드백이며 추론한 해설을 구분해야 합니다.

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

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

    목표 일부 관련

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

    개별 모범답안은 미작성입니다. 기존 관련 개념에 근거한 AI 피드백이며 추론한 해설을 구분해야 합니다.

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

    실시간에서 이미지 뒤의 관절 표본을 기다려 보간할 때 생기는 비용은?

    목표 일부 관련

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

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

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

    slop을 지나치게 크게 하면 왜 데이터 품질이 나빠질 수 있나요?

    목표 일부 관련

    단답은 키워드 포함 여부이며 의미 이해를 보장하지 않음

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

학습 범위와 한계

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

선택 보충 · 핀홀 투영과 시각 차이

optical 좌표의 x 오른쪽·y 아래·z 앞을 사용합니다. 점은 Z>0이며 상대 x속도가 일정하고 두 시각의 깊이는 같습니다. 같은 clock에서 Δt>0은 나중, Δt<0은 이전 시각입니다. 왜곡 없는 핀홀의 연속 이미지 좌표를 계산합니다.

640×480 가상 이미지 · 왼쪽 위 (0,0), 오른쪽 u+, 아래 v+. 파란 원: 기준 시각, 주황 마름모: t+Δt. 점이 겹치면 마름모 안에 원이 보입니다. 프레임 밖 점·선은 그림에서 잘리며 수치는 제한하지 않습니다.

기준 투영 (u,v) = (360.0000, 260.0000) px · 프레임 안

t+Δt 투영 (u,v) = (364.0000, 260.0000) px · 프레임 안

부호 있는 Δu = 4.0000 px, ΔX = 0.0100 m. v의 변화는 0 px입니다.

축 깊이 Z = 1.0000 m. 기준 유클리드 거리 = 1.0062 m, 비교 거리 = 1.0073 m. 광선 거리와 z축 깊이는 같은 양이 아닙니다.

식·단위·프레임 경계와 검증 한계
u = fx·X/Z + cx, v = fy·Y/Z + cy
X' = X + vx·Δt, Y' = Y, Z' = Z
Δu = fx·vx·Δt/Z (px)
ΔX = vx·Δt = (Z/fx)·Δu (m)
range = sqrt(X² + Y² + Z²) (m)

X,Y,Z는 m, v_x는 m/s, Δt는 s, f_x,f_y,c_x,c_y는 px 단위입니다. f_x/f_y와 Z는 양수입니다. 픽셀당 m 비율 Z/f_x는 현재 깊이의 수평 방향에만 적용됩니다. 깊이를 모르면 픽셀 차이만으로 m를 확정할 수 없습니다.

프레임 안 규칙은 0≤u<640, 0≤v<480입니다. u=640 또는 v=480은 밖입니다. 밖에서도 수학적 투영은 유효하지만 실제 영상 픽셀을 선택할 수 있다는 뜻은 아닙니다. 반올림한 표시가 경계와 같아 보여도 판정은 반올림 전 값을 사용합니다.

두 clock의 오프셋 추정, 깊이 변화·6DoF 운동, 렌즈 왜곡·rolling shutter·가림·검출 오차는 포함하지 않습니다. 실제 CV·카메라·센서 실행이나 보정 결과가 아니며 관측의 타당성을 증명하지 않습니다.

이 선택 보충은 본문·실습·세 문항과 별도입니다. 조작은 답안·진도·학습 완료를 자동 저장하거나 변경하지 않습니다.

참고 자료

학습 확인

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

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

학습 이동

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

전체 목차로 돌아가기 →

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