한 문장 미션을 검증할 계약으로 바꾼다
'상자를 보관실로 배달하라'는 지시에는 대상 상자/목적지, 탑재/이동·정지/인계와 완료 확인이 들어 있다. 같은 이름의 보관실이 둘이면 고유 장소 ID/별칭 조건을 확인한다. 좌표가 없는 문장을 임의 map pose로 바꾸지 않는다. 물체/장면 버전·관측 시각과 권한, 이동 범위/중단·시간 한계를 연결한다. 언어 응답 '완료'는 물체가 실제 도착/유지되었다는 관측이 아니다.
이 단위의 프로젝트 산출물은 요구/인터페이스 표, 경로/시간 계산, 실패/미상 판정과 평가 리포트다. 입력은 모두 합성 자료라 실제 배달 성과를 주장하지 않는다. 지도/계획 알고리즘을 아직 배우지 않았어도 아래 작은 그래프와 관측/명령 경계를 이해해 완결할 수 있다. 장비/설치·서비스 사용은 요구하지 않는다.
지도·경로·궤적과 제어의 역할을 보충한다
지도는 장애물/연결·장소의 공간 정보이고 위치 추정은 현재 로봇 pose를 지도 좌표에 연결하는 과정이다. pose는 위치와 방향이다. 같은 map 이름이라도 버전/축·원점과 위치 추정의 오차/최신성이 필요하다. 센서가 장애물을 보았다는 것과 그 좌표가 map에서 정확히 정해졌다는 것은 다르다.
그림 M32.01-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
경로는 공간에서 지나갈 점/구간의 순서이고 궤적은 시간에 따른 위치/속도 등을 지정한다. 경로가 기하적으로 비어 있어도 이동 중 다른 물체가 들어오면 충돌할 수 있다. planner는 출발/도착과 제약에 맞는 경로를 만들고 controller는 현재 상태와 경로를 받아 명령을 만드는 역할이다. Nav2 Jazzy planner와 controller의 공식 설명도 이 책임을 나눈다. 실제 plugin/API를 실행한 것은 아니다.
작은 그래프에서는 모든 후보를 열거해 조건을 확인하면 된다. 본문 S는 출발, G는 도킹 목적지, A/B는 통로다. edge는 양방향이고 연결은 S–A 2 m/A–G 2 m/S–B 3 m/B–G 3 m뿐이다. A 경로의 통로 폭은 0.8 m, B 경로는 1.2 m이고 처음에는 문이 열려 있다고 입력한다. 비용은 거리 합이며 회전/가속·정체 비용은 포함하지 않는다.
유효한 연결부터 남기고 거리 합을 구한다
비운반 검사 폭 0.5 m/좌우 여유 각각 0.1 m면 필요한 폭은 0.7 m다. 두 경로 모두 폭 조건을 통과하며 S–A–G는 4 m/S–B–G는 6 m라 거리 최소는 4 m다. 탑재 후 검사 폭이 0.7 m가 되면 필요 폭은 0.9 m다. A의 0.8 m는 부족하므로 B의 6 m만 남는다. payload가 로봇의 footprint/회전 형상에 미치는 영향을 빠뜨리지 않는다.
A 통로의 문이 새 관측에서 닫혔다면 비운반 때도 그 edge를 더는 쓸 수 없다. 과거 지도/경로가 남았다는 이유로 통과시키지 않는다. 현재 위치/정지·새 관측/지도 버전과 재계획 여부를 검사한다. 폭/여유 표는 실제 통과 인증이 아니며 회전 중 형상·위치 오차/동적 장애물을 포함한 별도 검토가 필요하다.
움직이는 장애물은 같은 시간축에서 비교한다
별도의 평면 구간에서 robot은 t=0 s에 (0,0) m에서 출발해 x 방향 0.5 m/s로 일정하게 움직인다고 하자. 장애물은 (2,−1) m에서 y 방향 0.25 m/s로 움직인다. 위치 식은 robot (0.5t,0), 장애물 (2,−1+0.25t)다. 두 물체를 점으로 둔 단순 가정이며 같은 clock/프레임의 상대 운동 입력이다.
robot이 x=2에 도달하는 시각은 2/0.5=4 s이고 장애물도 y=0에 도달하는 시각이 1/0.25=4 s다. 그때 둘 다 (2,0)이므로 명목 경로가 공간상 비어 보였어도 이 시간표는 충돌한다. 실제 몸체 크기/불확실성이 있으면 중심이 정확히 같은 시각보다 앞서 간격 조건을 위반할 수 있다.
2 s 기다린 뒤 출발하면 교차점 도착은 6 s이고 그때 장애물 y=0.5 m다. 이 한 시각의 차이만으로 전체 경로가 충돌 없이 통과한다고 승인할 수는 없다. 물체가 같은 속도를 유지하는지·다른 장애물과 최소 간격/회전·현재 관측을 다시 검증한다. 기본 프로젝트의 결론은 즉시 진행을 보류하고 재관측/시간 계획·감독을 설계하는 것이다.
정지 명령 뒤에도 이동 거리가 남는다
순수 반응 지연 τ초 동안 속도 v m/s를 유지하고 그 뒤 일정한 감속 크기 a m/s²로 직선 정지하는 이상 모형을 두자. v≥0/a>0이고 기울기/미끄러짐·구동 포화/변동은 제외한다. 반응 이동은 vτ, 감속 시간은 v/a이고 그 구간 평균 속도는 v/2이므로 감속 거리는 v²/(2a)다.
v=0.5/τ=0.2/a=1이면 반응 0.1 m·감속 0.125 m, 합 0.225 m다. 중단 요청을 보낸 시각을 즉시 정지로 처리할 수 없는 이유다. 실제 제동 거리/장애물 예측/안전 여유는 장치/환경과 검증에 따르며 이 모형만으로 사람 주변 주행을 승인하지 않는다. 명령 0과 실제 속도/정지·물체 유지의 관측도 구분한다.
Nav2 Collision Monitor 공식 README는 센서 기반 속도 필터/정지·감속 동작을 설명하며 hard real-time 안전 인증을 제공하지 않는다고 밝힌다. 이를 설치했다는 사실만으로 물리 정지/충돌 회피가 보장된다고 하지 않는다. 본 프로젝트는 해당 node도 실제 실행하지 않는다.
끝점 도착과 배달 성공을 다르게 기록한다
미션 상태는 대상/목적지 확정→탑재 확인→현재 위치/경로·관측 확인→이동→도착/정지→인계/물체 결과 확인으로 나눌 수 있다. 주행 goal 수락/도착 결과가 탑재 물체/인계 성공까지 입증하지 않는다. 위치/문·관측 만료나 피드백 누락이면 미상/보류·중단/재계획 조건을 기록한다. 맹목적 전체 미션 반복은 현재 탑재/위치 상태를 바꿀 수 있다.
평가 표에는 정적/문 변경·동적 교차/언어 모호성·만료/중단의 변형을 넣고 요구별 판정/원본·예상/관측/미확인을 남긴다. 합성 정상 사례만 통과했다면 그 범위의 설계 검증으로 보고한다. 기존 4.3 TF와 6.5 End-to-End 배포를 연결해 시간/프레임·단계별 결과를 추적하자.
선택 과제·공통 산출물/기본 평가 안내 열기: 세 과제 중 하나를 선택하고 M32.05/.06에 연결한다. 장비 없는 기본 기준과 선택 실물 확장 기준을 구분한다.