본문으로 건너뛰기

M34.02 · 3D 장면과 로봇 상태의 좌표·시간·버전 동기화

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

전체 커리큘럼

학습 안내

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

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

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

학습 목표

  • 프레임·단위·변환 방향을 고정하고 동일한 점의 장면 좌표를 계산한다.
  • 관측과 변환의 시각·시계·대상/세대·버전이 맞는지 판정하고 최신 화면과 동일시각 장면을 구분한다.
  • 버전 변경·지연·누락 때 마지막 정합 장면과 현재 미확인을 분리하고 재동기화 근거를 기록한다.

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

권장 선수

M34.01의 관측/신선도, M06.01의 열벡터·프레임 변환, M14.03의 시계/시간 정합이 선수다. 종이 계산과 합성 기록표로 수행하며 실제 ROS/tf2·3D엔진·로봇을 실행하지 않는다. 코드·문법 입문은 제외한다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

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

잘 그려진 장면도 다른 시점의 로봇일 수 있다

관제에 로봇 외형이 매끄럽게 움직인다고 실제 위치를 정확하게 보여 준다고 할 수는 없다. 위치는 1000ms, 관절은 900ms, 지도는 이전 개정인데 한 화면에서 합쳤을 수 있다. 화면의 초당 갱신 횟수는 높아도 관측의 시간·좌표·버전은 서로 어긋날 수 있다. 먼저 어느 대상의 어느 시점·어느 계약을 그린 것인가에 답해야 한다.

여기서 장면(scene)은 모델·지도 자산과 로봇 상태를 함께 표시한 결과다. 정합은 그림을 눈대중으로 맞추는 일이 아니라 같은 물리적 의미로 조합할 조건을 확인하는 것이다. 실제로 검증된 물리 세계의 복제본이라는 뜻은 아니다. 이번 실습의 자료는 전부 합성 기록이다.

M34.01에서는 필드마다 관측 시각을 확인했다. 이번에는 여러 필드를 합칠 때 프레임·시각·버전까지 함께 맞춘다. 행렬 방향이 낯설면 M06.01, 다른 시계의 숫자 비교가 어렵다면 M14.03로 돌아간다.

프레임과 단위가 먼저 정해져야 한다

프레임은 원점과 축의 방향을 정한 좌표계다. map은 지도 기준, base는 로봇 몸체 기준이라고 하자. 같은 점의 base 좌표와 map 좌표는 다를 수 있다. 이번에는 길이 m, 오른손 좌표, 열벡터를 쓴다. T_map_base는 base 좌표를 map 좌표로 바꾸는 변환이며 반대 방향은 역변환이다.

회전 R_map_base와 map에서 표현한 base 원점 t_map_base가 있을 때 같은 점은 다음과 같다. 회전과 이동 모두 해당 시각에 맞아야 한다.

pmap(t)=Rmap,base(t)pbase(t)+tmap,base(t).p_{map}(t)=R_{map,base}(t)p_{base}(t)+t_{map,base}(t).

1000ms에 p_base=(1,0,0)m, z축 양의90도 회전, t_map_base=(2,1,0)m라고 하자. 회전하면 (0,1,0)m, 이동을 더하면 p_map=(2,2,0)m다. 이동만 더한 (3,1,0)m는 base축과 map축이 같다고 잘못 가정한 결과다. 역변환을 그대로 대입하는 것도 방향 오류다.

REP103은 ROS의 기본 단위와 오른손 좌표·몸체 x앞/y왼쪽/z위, 카메라 광학 z앞/x오른쪽/y아래를 설명한다. 렌더 엔진의 축·단위는 이 계약과 다를 수 있다. 표시용 어댑터에서 축/단위를 한 번 명시적으로 변환하고 모델·카메라·표시 점에 같은 계약을 적용한다. 엔진이 z위인지 y위인지 이름만으로 추측하지 않는다. 원본이 cm인데 m로 읽으면 길이가100배가 된다.

보기 좋게 회전/이동시킨 장면 루트는 물리 센서 보정을 새로 수행한 근거가 아니다. 시각화축 변환, 지도 원점 개정, 센서 교정은 별도 변경이다. 두 번 축을 바꾸거나 외형만 이동해 오차를 숨기지 않는다.

‘최신 변환’보다 ‘관측 시각의 변환’이 필요하다

ROS2 Jazzy tf2 개념은 시간에 따른 프레임 관계를 추적하고 원하는 시각의 좌표 변환을 다룬다. tf2를 쓴다는 사실만으로 지도/모델의 자체 버전 계약이나 시계 일치까지 자동 보장되지는 않는다. 아래는 API 호출 실습이 아니라 기록을 해석하는 교육용 계약이다.

3D 장면의 한 스냅샷: 상태/측정 묶음 → 관측 시각의 TF → 자산/계약 revision → 일괄 표시 전환.그림 원본 크기로 보기

그림 M34.02-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

모든 시간은 동일 ClockA의 ms이고 대상 r1/bootA, map-v7, model-v3, calibration-c2를 공유한다고 하자. 첫 두 행의 점은 같은1000ms 관측이다. 원점은1200ms에 (3,1,0)m가 되었으며 회전은 같은90도다.

자료/조합점과 변환계산/판정
A: 동일시각점@1000 + 변환@1000(2,2,0)m, 해당시각 표현 가능
B: 최신 변환 혼합점@1000 + 변환@1200숫자는(3,2,0)m,1000ms 위치로 보고 불가
C: 시계 불명점 RobotClock@1000 + 변환 ClockA@1000숫자가 같아도 시간 정합 미확인
D: 지도 개정 혼합map-v7 상태 + map-v8 장면원점/관계 변경 확인 전 현재 장면 조합 보류

B는 A와1m 차이지만 이것을 그 사이의 실제 점 이동량이라고 단정할 수 없다. 같은 관측에 서로 다른 시각의 변환을 적용한 결과이기 때문이다. 단순히 모든 필드에서 가장 큰 stamp만 골라 조합하는 규칙은 틀린 장면을 만들 수 있다.

화면 평가시점1100ms에서 A의 나이는100ms다. 이번 표시용 TTL은200ms를 포함하므로 A를1000ms의 관측 장면으로 표시할 수 있다. 관측이100ms 오래됐다는 표시 지연과 조합 자료의 시각 불일치는 다르다. A는 과거의 정합 장면이고 B는 서로 다른 시각을 섞은 장면이다. 이 TTL은 교육용 표시 기준이며 실제 제어·안전 기준이 아니다.

보간과 예측을 측정으로 바꾸어 부르지 않는다

필요 시각을 양쪽 표본이 감싸고 버전·대상·시계가 같으며 모델 가정을 만족하면 보간을 검토할 수 있다. 예를 들어 원점이1100ms에(2.5,1,0)m,1200ms에(3,1,0)m이고 그 구간 정속 직선 이동을 가정하면1150ms의 추정 원점은(2.75,1,0)m다. 이 값은 실제1150ms 측정값이 아니다. 사용한 두 표본·가정·추정 표시를 함께 남긴다.

1200ms 이후 자료가 없는데1300ms를 구하는 것은 이 구간의 보간이 아니라 외삽/예측이다. 허용 정책/불확실성을 정하지 않았다면 현재 위치를 추정해 확정 표시하지 않는다. 서로 다른 지도 개정이나 재시작 세대를 사이에 두고 보간하지도 않는다. 회전·관절에는 표현/연속성·관절 제한 등 별도 조건이 필요하므로 위 위치의 선형 보간을 그대로 일반화하지 않는다.

버전은 파일 이름만이 아니라 조합의 계약이다

장면에는 지도 원점, 모델 링크·관절 이름/순서, 센서 교정, 단위/축 어댑터가 함께 들어간다. 지도 v8에서 원점이 바뀌었는데 v7 위치를 그대로 사용하면 숫자가 정상 범위여도 다른 위치를 뜻한다. model-v4에서 관절 순서가 달라졌는데 이름 확인 없이 배열만 넘기면 다른 링크가 움직일 수 있다. 구체적 변경을 확인하고 호환 또는 명시적 이행을 증명해야 한다.

여기서 원자적 스냅샷은 필요한 자산/상태/계약의 한 묶음을 완전하게 확인한 뒤 표시 기준을 함께 전환하는 규칙이다. 여러 수신을 실제로 동시에 만들었다는 뜻은 아니다. 대기 중인 새 자산 하나만 먼저 적용해 기존 상태와 섞지 않는다. 정합되지 않은 새 개정은 보류하고 마지막 정합 장면의 시각/버전을 표시한다. 현재가 미확인임도 따로 적어 과거 그림을 현재처럼 보이지 않게 한다.

최소 기록은 대상ID/재시작세대, map/model/calibration/표시어댑터 개정, 원본 프레임/단위/시계/시각, 사용한 변환의 방향/시각, 수신/렌더시각, 측정/추정 구분과 표시 판정이다. 모든 필드가 같은 stamp를 갖도록 덮어쓰는 것은 정합이 아니다. 부품별 원본 출처를 보존해야 원인을 추적할 수 있다.

지연과 재시작 뒤에는 기준 묶음을 다시 확인한다

늦게 도착한 이전 개정의 상태는 이력으로 남길 수 있지만 현재 장면을 되돌리면 안 된다. bootB/seq1은 bootA/seq99보다 작다는 이유로 버릴 자료가 아니라 새 세대의 기준을 확인할 자료다. 새 지도/모델과 기준 snapshot·변환을 다시 확인한 뒤 현재 표시를 재개한다. 필요한 변환 경로가 없거나 시각 범위 밖이면 변환 실패/미확인을 보여 준다. 0위치나 마지막 정상 색으로 대신하지 않는다.

이 단원에서 확인한 것은 합성 기록의 정합 판단이다. 렌더가 성공했다는 이유로 실제 충돌/정지·명령 성공·안전이 검증된 것은 아니다. 다음 M34.03에서는 이 관측 화면에서 요청·승인·실제 실행을 어떻게 분리할지 다룬다. 기존 6.6 평가 설계의 동일조건 비교에서도 장면/로그의 좌표·시각·버전을 함께 남긴다.

학습 범위와 한계

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

실습 필수

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

종이 또는 메모에 원본/변환/판정 열을 만든다. 장비·3D엔진 설치는 필요하지 않다.

  1. 1000ms의(1,0,0)m를90도 회전·(2,1,0)m이동으로 map에 표현한다. 회전을 생략했을 때와 비교한다.
  2. A~D 조합의 표시 가능 여부와 부족한 근거를 적는다. B의1m 차이를 실제 이동량이라 부를 수 있는지 설명한다.
  3. 평가시점1100ms/TTL200ms에서 A의 나이를 구하고 시간 정합과 신선도를 별도 열로 쓴다. 양쪽 표본1100/1200ms에서1150ms의 원점도 계산하되 측정/추정을 구분한다.
  4. map-v8/model-v4와 bootB가 일부만 도착했다고 가정한다. 마지막 정합 장면·현재 미확인 표시, 새 기준 묶음의 확인 항목을 적는다.

막히면 행렬 계산 전에 ‘어느 좌표에서 어느 좌표로, 어느 시각에’라는 문장을 적는다. 시계가 다르면 먼저 매핑 근거를 찾고, 없으면 계산을 보류한다. 모든 질문은 관찰 근거와 이유를 답안에 직접 적는다.

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

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

학습 범위와 한계

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

평가·해설 필수

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

확인 문제 Q1

base의(1,0,0)m를 z양의90도·map의base원점(2,1,0)m로 바꾸면 무엇인가? 화면 외형을 눈대중으로1m 옮겼다는 사실은 어떤 정합/보정 근거를 대신하지 못하는가?

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

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

확인 문제 Q2

1000ms 관측에1200ms 최신 변환을 쓰고 화면 stamp를 렌더시각으로 덮었다. 둘 다 숫자가 정상이고 화면은 부드럽다. 잘못된 판단을 설명하고, 동일시각 관측의 나이100ms와 무엇이 다른지 적어라.

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

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

확인 문제 Q3

새 map-v8·model-v4와 bootB/seq1이 일부 도착했다. 이전 bootA/seq99를 유지하고 새 외형만 바로 적용해도 되는가?1150ms 위치를 보간하려면 어떤 조건과 표시가 필요한가?

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

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

학습 범위와 한계

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

참고 자료

학습 확인

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

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

학습 이동

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

전체 목차로 돌아가기 →

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