DEV Community

Richard Minsoo Go
Richard Minsoo Go

Posted on

Calibration Engineering — Ch.02: Vehicle Level Calibration [KR]

STATERA Library · Series 07 · Volume 10 · Chapter 02 · KR
Source: https://github.com/Statera-Library/07_Vol_10_Calibration_Engineering/blob/main/Chapter_02_Vehicle_Level_Calibration/Chapter_02_Vehicle_Level_Calibration_KR.md

Volume 10 Calibration Engineering

Chapter 02. Vehicle Level Calibration

02.01. Vehicle Coordinate System

차량 좌표계(Vehicle Coordinate System)는 이동 플랫폼(Mobile Platform)에 설치된 모든 구성요소(Component)의 위치(Position), 자세(Orientation), 운동(Motion), 정렬(Alignment)을 표현하기 위한 기하학적 기준(Geometric Reference)을 제공한다. 캘리브레이션 엔지니어링(Calibration Engineering)에서 이 기준 프레임(Reference Frame)은 센서 측정값(Sensor Measurement)과 액추에이터 기하구조(Actuator Geometry)가 변환되는 공통 기반(Common Foundation)으로 기능한다. 명확하게 정의된 차량 프레임(Vehicle Frame)이 없으면 독립적으로 캘리브레이션된 장치들을 차량 수준(Vehicle Level)에서 일관성 있게 결합할 수 없다.

차량 좌표계(Vehicle Coordinate System)는 일반적으로 차량 차체(Vehicle Body)에 강체적으로(Rigidly) 고정되어 좌표축이 섀시(Chassis)와 함께 움직이도록 정의된다. 일반적으로 서로 직교하는 세 개의 축으로 종방향(Longitudinal), 횡방향(Lateral), 수직방향(Vertical)을 나타내는 오른손 직교 좌표계(Right-Handed Cartesian Coordinate System)를 사용한다. 자동차(Automotive), 로보틱스(Robotics), 항공우주(Aerospace), 소프트웨어(Software) 분야마다 축의 방향을 다르게 정의할 수 있으므로 정확한 축의 부호(Axis Sign)와 원점 위치(Origin Location)를 명시해야 한다.

일반적인 지상 차량(Ground Vehicle) 좌표계에서는 종방향 x축(Longitudinal x-axis)이 차량 전방을 향하고, 횡방향 y축(Lateral y-axis)이 차량의 왼쪽을 향하며, 수직방향 z축(Vertical z-axis)이 위쪽을 향한다. 이 축들은 x × y = z 관계를 만족하는 오른손 좌표계(Right-Handed Coordinate System)를 형성한다. 따라서 위치(Position)는 p = [x, y, z]ᵀ 벡터(Vector)로 표현할 수 있으며, 각 축을 중심으로 하는 회전(Rotation)은 일반적으로 롤(Roll), 피치(Pitch), 요(Yaw) 자세 변수와 연관된다.

차량 좌표계(Vehicle Coordinate System)의 원점(Origin)은 기계적으로 의미가 있고 반복적으로 재현 가능한 기준점(Reference Point)이어야 한다. 차량 아키텍처(Vehicle Architecture)에 따라 원점은 섀시의 기하학적 중심(Geometric Center), 차축의 중간점(Axle Midpoint), 휠베이스 중심(Center of Wheelbase) 또는 별도로 정의된 데이터 기준점(Datum)에 위치할 수 있다. 생산 캘리브레이션(Production Calibration)에서는 원점이 대략적인 시각적 위치가 아니라 기계 도면(Mechanical Drawing) 및 측정 가능한 물리적 데이터(Physical Datum)와 추적 가능하게 연결되어야 한다.

좌표계(Coordinate System)의 정의가 특히 중요한 이유는 모든 센서(Sensor)가 고유한 로컬 좌표 프레임(Local Coordinate Frame)을 가지고 있기 때문이다. 카메라(Camera)는 광학 프레임(Optical Frame)을 기준으로 영상 기하구조(Image Geometry)를 표현하고, 라이다(LiDAR)는 스캐닝 프레임(Scanning Frame)을 기준으로 포인트(Point)를 생성한다. 관성 측정 장치(IMU)는 센싱 축(Sensing Axis)을 따라 가속도(Acceleration)와 각속도(Angular Velocity)를 측정하며, 레이더(Radar)는 안테나 프레임(Antenna Frame)을 기준으로 표적(Target)을 표현한다. 차량 수준 캘리브레이션(Vehicle-Level Calibration)은 이러한 개별 프레임과 공통 차량 기준(Common Vehicle Reference)의 관계를 결정한다.

센서 프레임(Sensor Frame)과 차량 프레임(Vehicle Frame)의 관계는 외부 캘리브레이션 파라미터(Extrinsic Calibration Parameters)로 표현된다. 이러한 파라미터에는 센서가 어디에 장착되어 있으며 센서 축이 어떤 방향을 향하는지를 나타내는 병진(Translation) 및 회전(Rotation) 성분이 포함된다. 이 관계가 결정되면 센서 좌표계(Sensor Coordinate System)에서 생성된 측정값을 차량 좌표계(Vehicle Coordinate System)로 변환할 수 있으며, 물리적으로 서로 떨어진 센서의 정보를 하나의 일관된 기하학적 표현(Geometric Representation)으로 통합할 수 있다.

병진(Translation)은 좌표 프레임 원점(Coordinate-Frame Origin) 사이의 변위(Displacement)를 나타낸다. 예를 들어 라이다(LiDAR)가 차량 원점(Vehicle Origin)을 기준으로 전방, 좌측, 상부에 설치되어 있다면 이러한 오프셋(Offset)이 병진 외부 파라미터(Translational Extrinsic Parameters)가 된다. 회전(Rotation)은 라이다 축과 차량 축 사이의 각도 차이(Angular Difference)를 나타낸다. 장착 브래킷(Mounting Bracket)이 육안으로 섀시와 평행하게 보이더라도 작은 롤(Roll), 피치(Pitch), 요(Yaw) 편차가 장거리 측정에서 상당한 공간 오차(Spatial Error)를 발생시킬 수 있다.

차량 자세(Vehicle Orientation)는 흔히 롤(Roll), 피치(Pitch), 요(Yaw)를 통해 표현된다. 선택한 차량 좌표계 규약(Vehicle Coordinate Convention)에서 롤은 종축(Longitudinal Axis)을 중심으로 한 회전, 피치는 횡축(Lateral Axis)을 중심으로 한 회전, 요는 수직축(Vertical Axis)을 중심으로 한 회전을 의미한다. 이러한 값은 엔지니어링 관점에서 직관적이지만, 캘리브레이션 소프트웨어(Calibration Software)에서는 오일러 각(Euler Angle) 표현에서 발생할 수 있는 모호성과 수치적 문제를 방지하기 위해 내부적으로 회전 행렬(Rotation Matrix)이나 쿼터니언(Quaternion)을 사용할 수 있다.

차량 좌표계(Vehicle Coordinate System)는 월드 프레임(World Frame), 맵 프레임(Map Frame), 오도메트리 프레임(Odometry Frame), 내비게이션 프레임(Navigation Frame)과도 구분해야 한다. 차량 프레임(Vehicle Frame)은 플랫폼과 함께 이동하지만 월드 프레임이나 맵 프레임은 일반적으로 운용 환경(Operating Environment)에 대해 고정되어 있다. 위치추정(Localization)은 이러한 외부 프레임(External Frame)을 기준으로 차량 자세(Pose)를 결정한다. 반면 센서 캘리브레이션(Sensor Calibration)은 강체 가정(Rigid-Body Assumption)에 따라 센서와 차량 차체 사이의 고정된 기하학적 관계를 주로 결정한다.

이러한 구분은 변환 계층(Transformation Hierarchy)을 형성한다. 측정값은 카메라(Camera), 라이다(LiDAR), 레이더(Radar), 관성 측정 장치(IMU) 프레임에서 생성되어 차량 프레임(Vehicle Frame)으로 변환되고, 이후 추정된 차량 자세(Vehicle Pose)를 사용하여 다시 오도메트리 프레임(Odometry Frame) 또는 맵 프레임(Map Frame)으로 변환될 수 있다. 모든 변환의 방향(Direction)과 의미를 일관되게 유지하는 것이 중요하다. 센서-차량 변환(Sensor-to-Vehicle Transformation)을 역변환(Inverse Transformation)과 혼동하면 외형상 그럴듯하지만 기하학적으로 잘못된 캘리브레이션 결과가 발생할 수 있다.

기계적 차량 기하구조(Mechanical Vehicle Geometry)는 좌표계 내부에서 추가적인 기준을 제공한다. 휠 중심(Wheel Center), 차축 중심선(Axle Centerline), 조향 피벗(Steering Pivot), 서스펜션 장착점(Suspension Mounting Point), 안테나 위치(Antenna Location), 센서 브래킷(Sensor Bracket), 차체 데이터(Body Datum) 등을 모두 차량 원점(Vehicle Origin)을 기준으로 표현할 수 있다. 따라서 휠베이스(Wheelbase), 윤거(Track Width), 최저지상고(Ground Clearance), 센서 장착 높이(Sensor Mounting Height)는 서로 독립적인 치수가 아니라 공통 프레임(Common Frame)에 연결된 기하학적 물리량이 된다.

조향 및 운동 캘리브레이션(Steering and Motion Calibration)에서는 좌표 프레임(Coordinate Frame)과 실제 차량 진행 방향(Actual Direction of Vehicle Travel)의 관계가 특히 중요하다. 제조 공차(Manufacturing Tolerance), 서스펜션 정렬(Suspension Alignment), 타이어 변형(Tire Deformation), 조향 오프셋(Steering Offset), 섀시 조립 오차(Chassis Assembly Error) 때문에 실제 운동 방향은 공칭 종축(Nominal Longitudinal Axis)과 약간 다를 수 있다. 따라서 캘리브레이션에서는 설계된 기하학적 프레임(Designed Geometric Frame)과 실제 차량 운동학적 거동(Kinematic Behavior)에 영향을 주는 측정 가능한 편차를 구분해야 한다.

관성 측정 장치(IMU)는 측정값이 자세 추정(Attitude Estimation)과 위치추정(Localization)에 직접적인 영향을 주기 때문에 특히 중요한 정렬 문제(Alignment Problem)를 가진다. 가속도계(Accelerometer)와 자이로스코프(Gyroscope)의 출력은 처음에는 IMU의 물리적인 센싱 축(Physical Sensing Axes)을 기준으로 표현된다. 이러한 축이 차량 좌표계와 완벽하게 정렬되어 있지 않으면 가속도와 각속도 성분 사이에 교차 결합(Cross-Coupling)이 발생한다. IMU-차체 정렬 캘리브레이션(IMU-to-Body Alignment Calibration)은 이러한 회전 관계를 추정하여 차량 운동을 일관되게 해석할 수 있도록 한다.

다중 센서 인지(Multi-Sensor Perception) 역시 동일한 원리에 의존한다. 라이다(LiDAR)가 검출한 3차원 포인트(Three-Dimensional Point)를 카메라 영상(Camera Image)에 정확하게 투영하려면 라이다, 카메라, 차량 좌표계 사이의 관계를 정확하게 알고 있어야 한다. 레이더 표적(Radar Target) 역시 카메라 또는 라이다 검출 결과와 비교하기 전에 동일한 기하학적 기준(Geometric Reference)으로 변환되어야 한다. 따라서 차량 프레임 일관성(Vehicle-Frame Consistency)은 단순한 문서화 규약이 아니라 센서 융합(Sensor Fusion)의 기하학적 기반(Geometric Backbone)을 형성한다.

차량 좌표계(Vehicle Coordinate System)의 캘리브레이션 오차(Calibration Error)는 전체 인지 및 제어 아키텍처(Perception and Control Architecture)로 전파된다. 잘못된 원점은 체계적인 병진 오프셋(Systematic Translation Offset)을 발생시키며, 잘못된 축 정의나 각도 정렬은 자세에 따라 달라지는 오차(Orientation-Dependent Error)를 만든다. 작은 요 오차(Yaw Error)는 거리가 증가할수록 큰 횡방향 변위(Lateral Displacement)를 만들 수 있으며, 피치 오차(Pitch Error)는 추정된 지면 기하구조(Ground Geometry)를 왜곡할 수 있다. 이러한 오차는 개별 센서가 정상적으로 작동하더라도 하위 시스템에서 인지, 위치추정 또는 경로계획 문제로 나타날 수 있다.

견고한 엔지니어링 구현(Robust Engineering Implementation)에서는 좌표 프레임 정의(Coordinate-Frame Definition)를 관리되는 구성 데이터(Controlled Configuration Data)로 취급해야 한다. 각 프레임에는 고유 식별자(Unique Identifier), 문서화된 원점(Documented Origin), 축 방향(Axis Direction), 부모-자식 관계(Parent-Child Relationship), 단위(Unit), 변환 규약(Transformation Convention)이 정의되어야 한다. 또한 캘리브레이션 파라미터는 차량 구성(Vehicle Configuration) 및 센서 식별 정보(Sensor Identity)와 연결하여 서로 다른 기계적 구성, 센서 설치 상태 또는 캘리브레이션 버전에서 생성된 변환값이 소프트웨어에서 잘못 결합되지 않도록 해야 한다.

차량 수준 캘리브레이션(Vehicle-Level Calibration)은 궁극적으로 전체 로봇 플랫폼(Robotic Platform)을 위한 일관된 기하학적 언어(Geometric Language)를 확립한다. 차량 프레임(Vehicle Frame)은 기계 설계(Mechanical Design), 센서(Sensor), 위치추정(Localization), 조향(Steering), 운동 추정(Motion Estimation), 인지(Perception), 제어(Control)를 하나의 공통 공간 기준(Shared Spatial Reference)으로 연결한다. 이 좌표계가 정밀하게 정의되면 이후의 강체 변환(Rigid-Body Transformation), 캘리브레이션 소프트웨어(Calibration Software), 생산 캘리브레이션(Production Calibration), 현장 재캘리브레이션(Field Recalibration)을 안정적이고 추적 가능한 기하학적 기반 위에서 수행할 수 있다.

02.02. Rigid Body Transformation

강체 변환(Rigid-Body Transformation)은 강체(Rigid Body)의 상대적인 기하구조(Relative Geometry)가 변하지 않는다고 가정하면서 동일한 물리적 점(Physical Point), 벡터(Vector), 또는 기하학적 객체(Geometric Object)를 서로 다른 좌표 프레임(Coordinate Frame)에서 표현하기 위한 수학적 메커니즘(Mathematical Mechanism)을 제공한다. 차량 수준 캘리브레이션(Vehicle-Level Calibration)에서는 회전(Rotation)과 병진(Translation)의 조합을 통해 센서 프레임(Sensor Frame), 액추에이터 프레임(Actuator Frame), 차량 차체 프레임(Vehicle Body Frame), 외부 기준 프레임(External Reference Frame)을 연결한다.

강체(Rigid Body)는 강체에 부착된 모든 점 사이의 거리(Distance)와 각도(Angle)를 보존한다고 가정한다. 카메라(Camera), 라이다(LiDAR), 레이더(Radar), 관성 측정 장치(IMU)가 차량 섀시(Vehicle Chassis)에 기계적으로 고정되어 있다면 해당 센서의 좌표 프레임은 차량 프레임(Vehicle Frame)과 일정한 기하학적 관계(Constant Geometric Relationship)를 갖는 것으로 간주한다. 캘리브레이션(Calibration)은 이러한 관계를 추정하며, 강체 변환은 운용 중 생성되는 측정값에 추정된 관계를 적용한다.

두 개의 3차원 좌표 프레임(Three-Dimensional Coordinate Frames) 사이의 변환은 회전 행렬(Rotation Matrix) R과 병진 벡터(Translation Vector) t로 구성된다. 프레임 A(Frame A)에서 p_A로 표현된 점은 p_B = R_BA p_A + t_BA와 같은 식을 사용하여 프레임 B(Frame B)에서 표현할 수 있다. 회전은 좌표축의 방향(Coordinate-Axis Orientation)을 변경하고, 병진은 두 좌표 프레임의 원점(Origin) 사이에 존재하는 변위(Displacement)를 반영한다.

3차원 공간(Three-Dimensional Space)의 회전 행렬(Rotation Matrix)은 한 프레임이 다른 프레임에 대해 갖는 자세(Orientation)를 표현하는 3 × 3 행렬(Matrix)이다. 유효한 회전 행렬은 직교 행렬(Orthogonal Matrix)이며 행렬식(Determinant)이 +1이므로 RᵀR = I와 det(R) = 1을 만족한다. 이러한 특성은 벡터 길이(Vector Length)와 각도(Angle)를 보존하며, R⁻¹ = Rᵀ 관계도 제공하므로 강체 변환의 역변환(Inverse Transformation)을 단순화할 수 있다.

회전(Rotation)은 롤(Roll), 피치(Pitch), 요(Yaw) 각도, 축-각 표현(Axis-Angle Representation), 회전 벡터(Rotation Vector), 쿼터니언(Quaternion) 등을 사용하여 파라미터화(Parameterization)할 수 있다. 오일러 각(Euler Angle) 형태는 엔지니어가 차량 축을 중심으로 하는 회전을 직접 해석할 수 있어 직관적이지만, 결과가 회전 순서(Rotation Order)에 따라 달라지고 특이점(Singularity)이 발생할 수 있다. 쿼터니언은 오일러 각의 특이점 없이 회전을 간결하게 표현할 수 있어 상태 추정(Estimation)과 로보틱스 소프트웨어(Robotics Software)에서 널리 사용된다.

병진(Translation)은 3차원 벡터 t = [t_x, t_y, t_z]ᵀ로 표현된다. 차량 캘리브레이션(Vehicle Calibration)에서 이러한 성분은 센서 원점(Sensor Origin)과 차량 원점(Vehicle Origin) 사이의 종방향(Longitudinal), 횡방향(Lateral), 수직방향(Vertical) 변위를 나타낼 수 있다. 동일한 수치라도 서로 다른 좌표 규약(Coordinate Convention)에서는 다른 물리적 방향을 나타낼 수 있으므로 병진은 반드시 어떤 프레임을 기준으로 표현되었는지와 함께 해석해야 한다.

회전(Rotation)과 병진(Translation)은 일반적으로 4 × 4 동차 변환 행렬(Homogeneous Transformation Matrix)로 결합된다. 동차 좌표(Homogeneous Coordinates)를 사용하면 변환을 T = [R t; 0 1]로 표현할 수 있으며, 점 p는 [x, y, z, 1]ᵀ 형태로 확장된다. 이후 하나의 행렬 곱셈(Matrix Multiplication)을 통해 변환된 점을 계산할 수 있으므로 동차 변환은 여러 좌표 관계를 연속적으로 연결하는 데 편리하다.

동차 변환 행렬(Homogeneous Transformation Matrix)은 여러 프레임 관계(Frame Relationship)를 결합해야 하는 차량 캘리브레이션에서 특히 유용하다. 라이다 포인트(LiDAR Point)는 먼저 라이다 프레임(LiDAR Frame)에서 차량 프레임(Vehicle Frame)으로 변환되고, 이후 차량 프레임에서 맵 프레임(Map Frame)으로 변환될 수 있다. 행렬 곱셈은 회전과 병진 성분을 하나의 통합된 표현(Unified Representation)으로 유지하면서 이러한 변환 체인(Transformation Chain)을 체계적으로 구성할 수 있게 한다.

강체 변환(Rigid-Body Transformation)은 일반적으로 교환법칙(Commutative Property)이 성립하지 않기 때문에 변환 순서(Transformation Order)가 매우 중요하다. T_AB 변환을 적용한 후 T_BC를 적용하는 과정에서 행렬 순서를 임의로 바꿀 수 없다. 각 행렬은 명확하게 정의된 출발 프레임(Source Frame)과 목적 프레임(Destination Frame)을 기준으로 해석해야 한다. 많은 캘리브레이션 오류는 부정확한 파라미터보다 일관되지 않은 프레임 표기(Frame Notation), 행렬 곱셈 순서(Matrix Multiplication Order), 능동 변환(Active Transformation)과 수동 변환(Passive Transformation)에 대한 잘못된 가정에서 발생한다.

역변환(Inverse Transformation)은 반대 방향으로 좌표를 변환한다. T_BA가 프레임 A에서 프레임 B로 점을 변환한다면 T_AB = T_BA⁻¹은 그 반대 방향의 변환을 수행한다. R과 t를 포함하는 강체 변환에서 역변환은 회전 Rᵀ와 병진 −Rᵀt를 포함한다. 이러한 구조를 사용하면 캘리브레이션된 센서-차량 관계(Sensor-to-Vehicle Relationship)를 필요에 따라 차량-센서 관계(Vehicle-to-Sensor Relationship)로 효율적으로 변환할 수 있다.

변환 합성(Transformation Composition)은 동일한 원리를 여러 장치에 걸쳐 확장한다. 카메라-차량 변환(Camera-to-Vehicle Transformation)과 라이다-차량 변환(LiDAR-to-Vehicle Transformation)을 알고 있다면 하나의 변환과 다른 변환의 역변환을 적절하게 조합하여 라이다와 카메라 사이의 상대 변환(Relative Transformation)을 계산할 수 있다. 이를 통해 모든 센서 쌍(Sensor Pair)을 독립적으로 캘리브레이션하지 않고도 서로 독립적으로 장착된 센서들의 측정값을 기하학적으로 연관시킬 수 있다.

강체 변환(Rigid-Body Transformation)은 센서 외부 캘리브레이션(Extrinsic Sensor Calibration)의 기반을 형성한다. 외부 파라미터(Extrinsic Parameters)는 센서의 좌표 프레임이 다른 기준 프레임에 대해 어떤 위치(Position)와 자세(Orientation)를 갖는지를 설명한다. 카메라의 경우 이러한 파라미터는 초점거리(Focal Length), 주점(Principal Point)과 같은 내부 파라미터(Intrinsic Parameters)를 보완한다. 라이다, 레이더, IMU 시스템에서는 차량 수준 통합(Vehicle-Level Integration)에 필요한 공간적 장착 관계(Spatial Mounting Relationship)를 정의한다.

기계적 설치 오차(Mechanical Installation Error)는 강체 변환 파라미터의 오차로 직접 나타난다. 작은 장착 위치 편차(Mounting Displacement)는 병진 오차(Translation Error)를 발생시키며, 브래킷 기울기(Bracket Tilt) 또는 센서 오정렬(Sensor Misalignment)은 회전 오차(Rotational Error)를 발생시킨다. 특히 회전 오차는 관측 거리(Observation Distance)가 증가할수록 중요해질 수 있는데, 작은 각도 편차라도 충분히 작은 각도 범위에서는 거리에 거의 비례하여 증가하는 공간 변위(Spatial Displacement)를 만들기 때문이다.

강체 가정(Rigid-Body Assumption)에도 실제적인 한계가 존재한다. 차량 프레임(Vehicle Frame), 브래킷(Bracket), 서스펜션 구조(Suspension Structure), 센서 마운트(Sensor Mount)는 완벽한 강체가 아니라 물리적으로 변형될 수 있는 구조물이다. 온도 변화(Temperature Variation), 진동(Vibration), 기계적 하중(Mechanical Loading), 충격(Impact), 체결부 이완(Fastener Relaxation), 구조적 굽힘(Structural Bending)은 공칭 변환(Nominal Transformation)을 변화시킬 수 있다. 따라서 캘리브레이션 엔지니어링에서는 강체 변환을 실제 환경 및 기계적 조건에서 안정성이 검증되어야 하는 운용 모델(Operational Model)로 취급한다.

차량 운동(Vehicle Motion)은 고정 외부 변환(Fixed Extrinsic Transformation)과 시간에 따라 변화하는 자세 변환(Time-Varying Pose Transformation)을 구분해야 하는 또 다른 중요한 이유가 된다. 강체적으로 장착된 센서와 차량 차체 사이의 변환은 일반적으로 캘리브레이션 이후 일정한 것으로 간주하지만, 차량 프레임에서 오도메트리 프레임(Odometry Frame)이나 맵 프레임(Map Frame)으로의 변환은 차량이 움직임에 따라 지속적으로 변화한다. 두 경우 모두 동일한 강체 변환 수학을 사용하지만 물리적 의미와 업데이트 주기(Update Rate)는 서로 다르다.

움직이는 좌표 프레임(Moving Coordinate Frame)이 변환에 포함되는 경우 시간 동기화(Time Synchronization)가 중요해진다. 특정 시점에 촬영된 카메라 영상(Camera Image)과 다른 시점에 획득된 라이다 스캔(LiDAR Scan)은 정적 외부 캘리브레이션(Static Extrinsic Calibration)이 완벽하더라도 서로 다른 차량 자세(Vehicle Pose)에 대응할 수 있다. 따라서 정확한 다중 센서 융합(Multi-Sensor Fusion)을 위해서는 공간 변환(Spatial Transformation)뿐만 아니라 측정값이 해당 획득 시점에 대응하는 자세를 사용하여 변환되도록 시간 정렬(Temporal Alignment)도 필요하다.

캘리브레이션 소프트웨어(Calibration Software)는 문맥 없이 저장된 행렬(Matrix)에만 의존하기보다 명시적인 프레임 이름(Frame Name)과 변환 방향(Transformation Direction)을 관리해야 한다. 하나의 변환에는 출발 프레임(Source Frame), 목적 프레임(Destination Frame), 단위(Unit), 좌표 규약(Coordinate Convention), 캘리브레이션 버전(Calibration Version), 관련 하드웨어 구성(Hardware Configuration)이 식별되어야 한다. 이를 통해 캘리브레이션 데이터를 서로 다른 도구나 차량 구성 사이에서 전달할 때 수학적으로 유효한 행렬이 잘못된 의미로 적용되는 것을 방지할 수 있다.

강체 변환(Rigid-Body Transformation)의 검증(Validation)에서는 수치적인 파라미터 값뿐만 아니라 기하학적 일관성(Geometric Consistency)도 확인해야 한다. 회전 행렬은 직교성(Orthogonality)과 행렬식 조건(Determinant Constraint)을 만족해야 하며, 변환된 기준 타깃(Reference Target)은 서로 다른 센서 사이에서 정렬되어야 한다. 또한 정방향 변환(Forward Transformation)과 역변환(Inverse Transformation)을 연속 적용했을 때 수치 허용오차(Numerical Tolerance) 내에서 원래 점을 복원해야 한다. 독립적으로 추정된 여러 프레임 관계가 존재한다면 변환 체인의 폐쇄 일관성(Closure Consistency)도 추가로 검증할 수 있다.

차량 수준(Vehicle Level)에서 강체 변환(Rigid-Body Transformation)은 좌표계 정의(Coordinate-System Definition)를 실제 캘리브레이션 작업(Practical Calibration Operation)과 연결하는 수학적 다리(Mathematical Bridge)이다. 센서 측정값은 공간적 관계가 일관되게 표현된 이후에야 인지(Perception), 위치추정(Localization), 경로계획(Planning), 제어(Control)에 효과적으로 활용될 수 있다. 따라서 신뢰성 있는 변환 관리(Transformation Management)는 이후의 캘리브레이션 소프트웨어 툴체인(Calibration Software Toolchain), 생산 캘리브레이션 흐름(Production Calibration Flow), 현장 재캘리브레이션 절차(Field Recalibration Procedure)를 위한 핵심 기반을 제공한다.

02.03. Calibration Software Toolchain

캘리브레이션 소프트웨어 툴체인(Calibration Software Toolchain)은 측정값을 획득하고, 캘리브레이션 파라미터(Calibration Parameter)를 추정하며, 결과를 검증하고, 구성 데이터(Configuration Data)를 저장한 후 승인된 파라미터를 차량 또는 로봇 플랫폼(Robotic Platform)에 배포하기 위한 디지털 워크플로(Digital Workflow)를 제공한다. 차량 수준(Vehicle Level)에서 툴체인은 원시 측정 데이터(Raw Measurement Data), 캘리브레이션 알고리즘(Calibration Algorithm), 하드웨어 구성(Hardware Configuration), 최종 생산 파라미터(Production Parameter)의 관계를 유지하면서 여러 센서와 좌표 프레임(Coordinate Frame)을 통합적으로 관리해야 한다.

툴체인은 하드웨어 및 시스템 구성 관리(Hardware and System Configuration Management)에서 시작한다. 캘리브레이션 소프트웨어는 어떤 차량, 센서, 컨트롤러(Controller), 펌웨어 버전(Firmware Version), 기계적 구성(Mechanical Configuration), 좌표 프레임 정의(Coordinate-Frame Definition)를 대상으로 캘리브레이션을 수행하는지 알아야 한다. 센서 일련번호(Sensor Serial Number)와 설치 위치(Installation Position)를 캘리브레이션 세션(Calibration Session)에 연결하여 한 하드웨어 구성에서 생성된 파라미터가 다른 구성에 잘못 배포되는 것을 방지해야 한다.

데이터 획득(Data Acquisition)은 캘리브레이션 워크플로의 측정 계층(Measurement Layer)을 형성한다. 카메라(Camera)는 영상(Image), 라이다(LiDAR)는 포인트 클라우드(Point Cloud), 레이더(Radar)는 거리 및 각도 관측값(Range and Angular Observation), 관성 측정 장치(IMU)는 가속도(Acceleration)와 각속도(Angular-Rate) 측정값을 제공한다. 휠 속도(Wheel Speed), 조향각(Steering Angle), 액추에이터 위치(Actuator Position), 위치추정 정보(Localization Information)와 같은 차량 신호도 기록할 수 있다. 획득 소프트웨어는 타임스탬프(Timestamp), 단위(Unit), 좌표 프레임 식별자(Coordinate-Frame Identifier), 센서 운용 상태(Sensor Operating State)를 보존해야 한다.

시간 동기화(Time Synchronization)는 시간적 오정렬(Temporal Misalignment)이 공간 캘리브레이션(Spatial Calibration)을 왜곡할 수 있기 때문에 데이터 획득과 밀접하게 연계된다. 서로 다른 센서의 측정값은 공통 시간 기준(Common Time Reference) 또는 충분히 정확한 타임스탬프 관계(Timestamp Relationship)를 가져야 한다. 차량이나 캘리브레이션 타깃(Calibration Target)이 움직이는 경우 측정 시점이 서로 다르면 강체 변환(Rigid-Body Transformation)이 정확하더라도 잘못된 것처럼 나타날 수 있다.

전처리 단계(Preprocessing Stage)는 원시 측정값을 캘리브레이션 알고리즘에 적합한 형태로 변환한다. 카메라 영상에는 특징점(Feature) 또는 캘리브레이션 타깃 검출(Calibration-Target Detection)을 적용할 수 있으며, 라이다 데이터는 필터링(Filtering), 분할(Segmentation), 관련 기하학적 구조(Geometric Structure)의 추출 과정을 거칠 수 있다. 레이더 검출값은 알려진 반사체(Reflector)와 연계할 수 있고, IMU 신호는 필터링하거나 정지 및 동적 구간(Stationary and Dynamic Interval)으로 구분할 수 있다. 캘리브레이션을 재현할 수 있도록 원본 데이터(Original Data)는 보존해야 한다.

좌표 프레임 관리(Coordinate-Frame Management)는 차량 수준 캘리브레이션 소프트웨어의 핵심 기능이다. 모든 측정값은 정의된 출발 프레임(Source Frame)과 연결되어야 하며, 변환(Transformation)은 출발 프레임과 목적 프레임(Destination Frame)을 명확하게 식별해야 한다. 소프트웨어는 모호한 행렬 이름(Matrix Name)이나 문서화되지 않은 축 규약(Axis Convention)에 의존하지 않고 차량 프레임(Vehicle Frame)과 카메라, 라이다, 레이더, IMU, 액추에이터, 오도메트리(Odometry), 맵 프레임(Map Frame)을 함께 관리해야 한다.

초기 파라미터 생성(Initial Parameter Generation)은 수치적 캘리브레이션(Numerical Calibration)을 위한 시작값을 제공한다. 병진값(Translation Value)은 CAD 기하구조(CAD Geometry), 기계 도면(Mechanical Drawing), 설치 측정값(Installation Measurement), 또는 이전에 승인된 캘리브레이션 데이터에서 얻을 수 있다. 초기 회전값(Initial Rotation)은 공칭 브래킷 방향(Nominal Bracket Orientation)이나 제조 사양(Manufacturing Specification)으로부터 얻을 수 있다. 적절한 초기화(Initialization)는 수렴 문제(Convergence Problem)를 줄이고 최적화 알고리즘이 실제적인 장착 편차와 수학적으로 가능하지만 물리적으로 잘못된 해를 구분하는 데 도움을 준다.

추정 계층(Estimation Layer)은 수집된 관측값을 가장 잘 설명하는 파라미터를 계산한다. 캘리브레이션 문제에 따라 최소제곱 추정(Least-Squares Estimation), 비선형 최적화(Nonlinear Optimization), 기하학적 정합(Geometric Registration), 특징점 대응(Feature Correspondence), 재투영 오차 최소화(Reprojection-Error Minimization), 통계적 추정(Statistical Estimation) 등을 사용할 수 있다. 소프트웨어는 센서 관측값을 잔차(Residual)로 변환하고 선택된 캘리브레이션 모델을 만족하면서 목적 함수(Objective Function)를 최소화하도록 내부 또는 외부 파라미터를 조정한다.

목적 함수(Objective Function)가 최소값에 도달했다는 이유만으로 최적화(Optimization)가 성공했다고 판단해서는 안 된다. 캘리브레이션 소프트웨어는 수렴 거동(Convergence Behavior), 잔차 분포(Residual Distribution), 파라미터 경계(Parameter Bound), 관측 가능성(Observability), 초기값에 대한 민감도(Sensitivity to Initialization)를 확인해야 한다. 데이터셋(Dataset)에 충분한 기하학적 다양성이 없거나 여러 파라미터 조합이 측정값을 유사하게 설명할 수 있다면 수치적으로 최적화된 해도 물리적으로 잘못될 수 있다.

강체 변환(Rigid-Body Transformation)은 추정 단계(Estimation Stage)와 차량 좌표계(Vehicle Coordinate System)를 연결하는 수학적 기반을 제공한다. 회전 및 병진 파라미터는 일반적으로 변환 행렬(Transformation Matrix), 회전 벡터(Rotation Vector), 오일러 각(Euler Angle), 쿼터니언(Quaternion)을 이용해 표현된다. 잘못된 행렬 순서(Matrix Order), 프레임 방향(Frame Direction), 회전 순서(Rotation Order), 단위 해석(Unit Interpretation)은 올바른 캘리브레이션 파라미터도 무효화할 수 있으므로 소프트웨어 인터페이스(Software Interface)에서 이러한 규약을 명확하게 정의해야 한다.

검증(Validation)은 파라미터 추정 이후 독립적인 의사결정 계층(Decision Layer)을 형성한다. 추정된 파라미터는 최적화 결과를 단순히 정당화하기 위한 것이 아니라 실제 측정값에 적용하여 평가해야 한다. 카메라 투영(Camera Projection), 라이다 오버레이(LiDAR Overlay), 레이더 정렬(Radar Alignment), IMU 자세(IMU Orientation), 차량 운동 일관성(Vehicle Motion Consistency) 등을 기하학적 및 통계적 지표(Geometric and Statistical Metrics)를 이용해 평가할 수 있다. 검증은 단순히 계산이 완료되었는지가 아니라 캘리브레이션 결과가 엔지니어링 용도로 적합한지를 결정한다.

캘리브레이션 품질(Calibration Quality)은 정량적인 지표(Quantitative Metric)와 허용 기준(Acceptance Limit)을 통해 표현해야 한다. 대표적인 예로 재투영 오차(Reprojection Error), 점-평면 잔차(Point-to-Plane Residual), 각도 정렬 오차(Angular Alignment Error), 병진 불확도(Translation Uncertainty), 타깃 위치 오차(Target-Position Error), 반복성(Repeatability), 반복 캘리브레이션 결과 사이의 일관성(Consistency)이 있다. 구체적인 지표는 대상 서브시스템에 따라 달라지지만 소프트웨어는 추정 파라미터와 함께 해당 파라미터가 허용 기준을 만족한다는 근거도 보존해야 한다.

시각화 도구(Visualization Tool)는 많은 캘리브레이션 실패를 단일 수치 지표보다 기하학적으로 더 쉽게 식별할 수 있기 때문에 중요하다. 엔지니어는 카메라 영상에 투영된 라이다 포인트, 변환된 포인트 클라우드, 좌표축(Coordinate Axis), 타깃 위치(Target Location), 잔차 분포, 추정된 센서 자세(Sensor Pose)를 확인할 수 있다. 시각화는 수치적 검증을 대체하지 않지만 축 반전(Reversed Axis), 잘못된 변환, 이상치(Outlier), 물리적으로 타당하지 않은 해를 검출하기 위한 효과적인 진단 계층(Diagnostic Layer)을 제공한다.

캘리브레이션 데이터 관리(Calibration Data Management)는 개별 캘리브레이션 결과를 통제된 엔지니어링 자산(Controlled Engineering Asset)으로 변환한다. 승인된 파라미터는 차량 식별 정보(Vehicle Identity), 센서 식별 정보(Sensor Identity), 소프트웨어 버전(Software Version), 알고리즘 버전(Algorithm Version), 타임스탬프, 좌표 규약(Coordinate Convention), 캘리브레이션 조건(Calibration Condition), 품질 지표(Quality Metric), 승인 상태(Approval Status)와 함께 저장해야 한다. 이러한 메타데이터(Metadata)를 유지하면 실제 차량 구성과 운용 소프트웨어에 배포된 파라미터 세트(Parameter Set) 사이의 추적성(Traceability)을 확보할 수 있다.

버전 관리(Version Control)는 센서 교체(Sensor Replacement), 기계적 수리(Mechanical Repair), 소프트웨어 업데이트(Software Update), 브래킷 변경(Bracket Modification), 현장 재캘리브레이션(Field Recalibration) 이후 캘리브레이션 값이 변경될 수 있기 때문에 특히 중요하다. 툴체인은 공칭 엔지니어링 값(Nominal Engineering Value), 측정된 캘리브레이션 값(Measured Calibration Value), 이전 승인값(Previous Approved Value), 현재 배포값(Current Deployed Value)을 구분해야 한다. 롤백 기능(Rollback Capability)을 통해 새로운 캘리브레이션이 검증에 실패하거나 예상하지 못한 시스템 동작을 발생시키는 경우 기존의 검증된 파라미터 세트를 복원할 수 있다.

배포(Deployment)는 승인된 캘리브레이션 파라미터를 런타임 시스템(Runtime System)으로 전달하는 과정이다. 파라미터는 구성 파일(Configuration File), 캘리브레이션 데이터베이스(Calibration Database), ECU 메모리(ECU Memory), 센서 구성 저장소(Sensor Configuration Storage), 미들웨어 파라미터(Middleware Parameter), 또는 플랫폼별 저장 위치에 기록될 수 있다. 하나의 좌표 규약, 센서 리비전(Sensor Revision), 소프트웨어 인터페이스용으로 생성된 파라미터가 호환되지 않는 런타임 구성에서 조용히 사용되지 않도록 배포 과정에는 호환성 검사(Compatibility Check)가 포함되어야 한다.

런타임 소프트웨어(Runtime Software)는 인지(Perception), 위치추정(Localization), 운동 추정(Motion Estimation), 조향(Steering), 제어(Control) 과정에서 캘리브레이션 데이터를 사용한다. 라이다 포인트는 차량 프레임으로 변환될 수 있고, 카메라 관측값은 3차원 기하구조(Three-Dimensional Geometry)와 연결되며, IMU 측정값은 차량 축(Vehicle Axis)에 정렬될 수 있다. 따라서 캘리브레이션 툴체인의 어느 단계에서든 발생한 오류는 각각의 런타임 알고리즘이 정상적으로 동작하더라도 여러 하위 기능으로 전파될 수 있다.

캘리브레이션이 엔지니어링 프로토타입(Engineering Prototype)에서 생산 차량(Production Vehicle) 또는 플릿(Fleet)으로 확장되면 자동화(Automation)의 중요성이 증가한다. 하드웨어 식별(Hardware Identification), 데이터 수집(Data Collection), 타깃 검출(Target Detection), 파라미터 추정(Parameter Estimation), 검증, 보고서 생성(Report Generation), 데이터베이스 저장(Database Storage), 배포와 같은 반복 작업을 통제된 워크플로로 통합할 수 있다. 자동화는 수동 파라미터 편집과 작업자 개인의 해석에 대한 의존성을 줄이면서 반복성(Repeatability)을 향상시킨다.

툴체인은 캘리브레이션 실패 시에도 진단 정보(Diagnostic Information)를 보존해야 한다. 단순히 합격 또는 불합격(Pass or Fail) 결과만 반환하는 대신 불충분한 관측값(Insufficient Observation), 타깃 검출 실패(Target-Detection Failure), 과도한 잔차(Excessive Residual), 불안정한 최적화(Unstable Optimization), 누락된 타임스탬프(Missing Timestamp), 호환되지 않는 하드웨어 구성(Incompatible Hardware Configuration), 허용 범위를 벗어난 파라미터(Parameter Outside Permitted Range)와 같은 원인을 식별해야 한다. 이러한 진단 기능은 문제 해결 시간을 줄이고 소프트웨어 문제와 기계적 설치 문제를 구분하는 데 도움을 준다.

생산 환경(Production Environment)과 현장 환경(Field Environment)은 동일한 기본 툴체인에 서로 다른 요구사항을 부여한다. 생산 캘리브레이션(Production Calibration)은 반복성, 사이클 타임(Cycle Time), 자동 합격 판정(Automated Acceptance), 추적성, 제조 시스템(Manufacturing System)과의 통합을 중요하게 다룬다. 현장 재캘리브레이션(Field Recalibration)은 휴대성(Portability), 제한된 장비(Limited Equipment), 센서 교체, 기계적 변형(Mechanical Disturbance), 운용 기능 복구(Operational Capability Recovery)를 중시한다. 공통 데이터 모델(Common Data Model)을 사용하면 두 워크플로 모두 호환 가능한 캘리브레이션 기록과 파라미터 정의를 유지할 수 있다.

완전한 캘리브레이션 소프트웨어 툴체인(Calibration Software Toolchain)은 측정 데이터 획득(Measurement Acquisition), 시간 동기화(Time Synchronization), 전처리(Preprocessing), 좌표 프레임 관리(Coordinate-Frame Management), 파라미터 추정(Parameter Estimation), 검증(Validation), 시각화(Visualization), 구성 관리(Configuration Control), 배포(Deployment), 런타임 사용(Runtime Use)을 하나의 추적 가능한 프로세스(Traceable Process)로 연결한다. 캘리브레이션 엔지니어링(Calibration Engineering) 구조에서 이러한 툴체인은 차량 좌표계(Vehicle Coordinate System)와 강체 변환(Rigid-Body Transformation)을 이후의 생산 캘리브레이션 흐름(Production Calibration Flow) 및 현장 재캘리브레이션 절차(Field Recalibration Procedure)와 연결하는 소프트웨어 기반(Software Foundation)을 제공한다.

02.04. Production Calibration Flow

생산 캘리브레이션(Production Calibration)은 제조된 각 차량 또는 로봇 플랫폼(Robotic Platform)이 실제 운용을 위해 출고되기 전에 캘리브레이션 파라미터(Calibration Parameter)를 결정하고, 검증하고, 승인하고, 배포하기 위해 수행되는 통제된 프로세스(Controlled Process)이다. 광범위한 엔지니어링 작업이 수반될 수 있는 프로토타입 캘리브레이션(Prototype Calibration)과 달리, 생산 캘리브레이션은 차량 구성(Vehicle Configuration)과의 호환성, 추적성(Traceability), 반복성(Repeatability)을 유지하면서 정의된 사이클 타임(Cycle Time) 내에서 일관된 정확도를 확보해야 한다.

프로세스는 캘리브레이션 대상 유닛(Unit)을 식별하고 해당 유닛의 구성 기준선(Configuration Baseline)을 확립하는 것으로 시작한다. 차량 식별 정보(Vehicle Identification), 센서 일련번호(Sensor Serial Number), 컨트롤러 버전(Controller Version), 펌웨어 리비전(Firmware Revision), 기계적 사양(Mechanical Variant), 설치 옵션(Installed Option)을 캘리브레이션 세션(Calibration Session)과 연결해야 한다. 이를 통해 특정 하드웨어 조합에서 생성된 캘리브레이션 파라미터가 다른 차량이나 센서 구성에 잘못 할당되는 것을 방지할 수 있다.

측정을 시작하기 전에 캘리브레이션 스테이션(Calibration Station)은 필요한 장비와 환경 조건(Environmental Condition)이 준비되어 있는지 확인한다. 캘리브레이션 타깃(Calibration Target), 지그 및 고정장치(Fixture), 측정 장치(Measurement Device), 통신 인터페이스(Communication Interface), 기준 계측기(Reference Instrument)는 유효한 상태여야 한다. 필요한 경우 해당 장비 자체의 캘리브레이션 상태도 관리하여 생산 측정값이 검증되지 않은 장비가 아니라 알려진 기준(Known Reference)에 추적 가능하도록 해야 한다.

이후 차량은 정의된 준비 상태(Preparation State)로 설정된다. 서브시스템(Subsystem)에 따라 타이어 상태(Tire Condition), 서스펜션 상태(Suspension State), 페이로드(Payload), 조향 위치(Steering Position), 배터리 상태(Battery Condition), 센서 청결도(Sensor Cleanliness), 차량 자세(Vehicle Attitude)가 캘리브레이션에 영향을 줄 수 있다. 센서와 전자 제어기(Electronic Controller)는 요구되는 운용 상태에 도달해야 하며, 측정값을 승인하기 전에 기계 구성요소를 캘리브레이션 절차에서 지정한 위치로 설정해야 한다.

파라미터 추정(Parameter Estimation)을 수행하기 전에 통신 및 진단 검사(Communication and Diagnostic Check)를 수행한다. 캘리브레이션 시스템은 필요한 ECU, 센서, 액추에이터(Actuator), 네트워크 인터페이스(Network Interface)가 정상적으로 응답하고 있으며 절차를 무효화할 수 있는 고장 상태(Fault Condition)가 없는지 확인한다. 캘리브레이션 데이터를 수집하기 전에 펌웨어 호환성(Firmware Compatibility), 센서 식별 정보, 통신 상태(Communication Status), 타임스탬프 가용성(Timestamp Availability), 파라미터 접근 가능 여부(Parameter Access)를 확인해야 한다.

좌표 프레임 정의(Coordinate-Frame Definition)는 전체 생산 프로세스 동안 고정된 상태로 유지되어야 한다. 차량 원점(Vehicle Origin), 축 방향(Axis Direction), 센서 프레임(Sensor Frame), 액추에이터 프레임(Actuator Frame), 변환 규약(Transformation Convention)은 승인된 엔지니어링 정의(Engineering Definition)와 일치해야 한다. 생산 소프트웨어(Production Software)는 작업자가 개별 차량마다 좌표 규약(Coordinate Convention)을 수동으로 다시 정의하도록 허용하는 대신 통제된 구성 데이터(Controlled Configuration Data)에서 이러한 정의를 가져와야 한다.

데이터 획득(Data Acquisition)은 표준화된 측정 시퀀스(Standardized Measurement Sequence)를 사용하여 수행한다. 캘리브레이션 작업에 따라 차량을 정지 상태로 유지하거나 통제된 궤적(Controlled Trajectory)을 따라 이동시키고, 조향 또는 구동 시스템을 작동시키거나 알려진 캘리브레이션 타깃을 관측할 수 있다. 카메라 영상(Camera Image), 라이다 포인트 클라우드(LiDAR Point Cloud), 레이더 검출값(Radar Detection), IMU 측정값(IMU Measurement), 엔코더 값(Encoder Value), 조향 신호(Steering Signal) 등의 관련 데이터를 타임스탬프와 구성 정보(Configuration Information)와 함께 기록한다.

최적화(Optimization)를 시작하기 전에 자동화된 품질 검사(Automated Quality Check)를 통해 획득된 데이터를 평가해야 한다. 시스템은 타깃 가시성(Target Visibility), 특징점 개수(Feature Count), 측정 범위(Measurement Coverage), 신호 안정성(Signal Stability), 타임스탬프 일관성(Timestamp Consistency), 센서 상태(Sensor Health), 기하학적 다양성(Geometric Diversity)을 확인할 수 있다. 부적절한 데이터를 조기에 거부하면 캘리브레이션 문제를 충분히 구속하지 못하는 측정값으로부터 최적화 알고리즘이 외형상 유효한 파라미터를 생성하는 것을 방지할 수 있다.

전처리(Preprocessing)는 승인된 생산 측정값을 캘리브레이션 관측값(Calibration Observation)으로 변환한다. 카메라 영상에서 타깃 특징점(Target Feature)을 검출하고, 라이다 포인트 클라우드에서 기하학적 표면(Geometric Surface)을 추출하며, 레이더 반사체(Radar Reflector)를 예상 위치와 연계하고, IMU 데이터에서 정지 구간(Stationary Interval)을 식별할 수 있다. 자동 전처리는 작업자 의존성을 줄이지만 검출된 특징점과 데이터 연계 결과에는 신뢰도 지표(Confidence Measure)와 실패 진단 정보(Failure Diagnostic)가 함께 제공되어야 한다.

초기 파라미터 값(Initial Parameter Value)은 일반적으로 공칭 엔지니어링 기하구조(Nominal Engineering Geometry), CAD 데이터(CAD Data), 제조 사양(Manufacturing Specification), 또는 이전에 승인된 구성 템플릿(Configuration Template)으로부터 얻는다. 생산 하드웨어는 이미 정의된 기계적 공차(Mechanical Tolerance) 범위 내에 있어야 하므로 최적화는 임의의 센서 자세(Sensor Pose)를 찾기보다는 이러한 공칭값을 정밀하게 보정하는 역할을 수행하는 것이 일반적이다. 따라서 예상값과 크게 다른 결과는 설치 또는 조립 문제(Assembly Problem)를 나타낼 수 있다.

파라미터 추정(Parameter Estimation)은 준비된 관측값에 승인된 캘리브레이션 알고리즘(Calibration Algorithm)을 적용한다. 대상 서브시스템에 따라 알고리즘은 병진(Translation), 회전(Rotation), 센서 바이어스(Sensor Bias), 스케일 팩터(Scale Factor), 조향 오프셋(Steering Offset), 엔코더 영점 위치(Encoder Zero Position), 기타 캘리브레이션 변수를 추정할 수 있다. 생산 유닛 간 결과를 비교할 수 있도록 최적화 설정(Optimization Setting), 파라미터 제약조건(Parameter Constraint), 알고리즘 버전(Algorithm Version), 수렴 기준(Convergence Criterion)을 통제해야 한다.

추정된 파라미터에는 수치적 타당성 검사(Numerical Plausibility Check)를 수행한다. 병진 및 회전값은 공칭 기하구조와 허용된 제조 공차(Permitted Manufacturing Tolerance)와 비교할 수 있으며, 바이어스(Bias), 오프셋(Offset), 스케일 팩터는 엔지니어링 한계(Engineering Limit)와 비교할 수 있다. 수학적으로 수렴한 해(Mathematically Converged Solution)라 하더라도 파라미터 값이 비현실적인 기계적 구성(Mechanical Configuration)을 의미하거나 승인된 캘리브레이션 경계(Calibration Boundary)를 초과한다면 거부해야 한다.

검증(Validation)은 추정된 캘리브레이션이 실제로 기하학적 또는 기능적 일관성(Geometric or Functional Consistency)을 향상시키는지 평가한다. 센서 투영(Sensor Projection), 기준 타깃 위치(Reference-Target Position), 변환된 포인트 클라우드(Transformed Point Cloud), 조향 응답(Steering Response), IMU 정렬(IMU Alignment), 액추에이터 거동(Actuator Behavior)을 독립적인 기준 정보(Reference Information)와 비교할 수 있다. 생산 적용 전에 검증 지표(Validation Metric)를 정의하여 합격 여부가 작업자의 주관적 판단에 의존하지 않도록 해야 한다.

허용 기준(Acceptance Criteria)은 검증 결과를 통제된 합격 또는 불합격(Pass-or-Fail) 판정으로 변환한다. 기준에는 최대 재투영 오차(Maximum Reprojection Error), 각도 정렬 오차(Angular Alignment Error), 병진 오차(Translation Error), 잔차 크기(Residual Magnitude), 반복성(Repeatability), 서브시스템별 성능 지표(Subsystem-Specific Performance Metric)가 포함될 수 있다. 모든 필수 기준을 만족하고 관련 측정 및 검증 기록이 완전하게 확보된 경우에만 캘리브레이션 결과를 승인한다.

캘리브레이션이 실패하면 생산 흐름(Production Flow)은 복구 가능한 프로세스 문제(Recoverable Process Problem)와 하드웨어 관련 결함(Hardware-Related Defect)을 구분해야 한다. 불량한 타깃 검출(Poor Target Detection), 일시적인 통신 실패(Temporary Communication Failure), 불충분한 측정값(Insufficient Measurement), 불안정한 초기화(Unstable Initialization)는 절차 일부를 다시 수행하여 해결할 수 있다. 지속적인 파라미터 편차(Parameter Deviation), 기계적 오정렬(Mechanical Misalignment), 손상된 브래킷(Damaged Bracket), 센서 고장(Faulty Sensor), 과도한 액추에이터 오프셋(Excessive Actuator Offset)은 재캘리브레이션 전에 수리가 필요할 수 있다.

성공적인 캘리브레이션은 제조된 유닛과 고유하게 연결된 승인 파라미터 세트(Approved Parameter Set)를 생성한다. 기록에는 차량 및 센서 식별 정보, 파라미터 값(Parameter Value), 소프트웨어 및 알고리즘 버전, 캘리브레이션 스테이션 정보(Calibration Station Information), 타임스탬프, 품질 지표(Quality Metric), 합격 판정 결과(Acceptance Result), 관련 환경 및 구성 데이터가 포함되어야 한다. 이러한 정보는 생산 측정에서 실제 배포된 캘리브레이션까지의 추적성(Traceability)을 확립한다.

배포(Deployment)는 승인된 파라미터를 운용 시스템(Operational System)이 요구하는 위치에 기록한다. 아키텍처에 따라 ECU 비휘발성 메모리(ECU Nonvolatile Memory), 센서 구성 저장소(Sensor Configuration Storage), 차량 구성 파일(Vehicle Configuration File), 미들웨어 파라미터(Middleware Parameter), 캘리브레이션 데이터베이스(Calibration Database)에 저장할 수 있다. 생산 시스템은 기록 성공 여부를 확인하고 가능한 경우 값을 다시 읽어 배포된 파라미터가 승인된 데이터셋(Approved Dataset)과 일치하는지 검증해야 한다.

라인 종단 검증(End-of-Line Verification)은 배포 이후 캘리브레이션된 서브시스템이 올바르게 동작하는지 확인해야 한다. 이 검사는 파라미터 추정과 달리 런타임 시스템(Runtime System)이 실제로 사용할 파라미터를 적용한 통합 차량(Integrated Vehicle)을 평가한다. 센서 융합 일관성(Sensor Fusion Consistency), 조향 거동(Steering Behavior), 위치추정 안정성(Localization Stability), 진단 상태(Diagnostic Status) 등의 차량 수준 기능을 확인하면 파라미터 수준 검사만으로는 발견하기 어려운 배포 또는 통합 오류를 식별할 수 있다.

생산 캘리브레이션은 측정 품질(Measurement Quality)을 희생하지 않으면서 사이클 타임(Cycle Time)도 관리해야 한다. 자동화(Automation)를 통해 식별, 데이터 획득, 전처리, 최적화, 검증, 보고서 생성(Report Generation), 배포를 최소한의 수동 개입(Manual Intervention)으로 조정할 수 있다. 그러나 사이클 타임 단축은 신뢰성 있는 파라미터 추정에 필요한 관측 품질을 낮추는 방식이 아니라 불필요한 대기 시간과 작업자 개입을 제거하는 방향으로 이루어져야 한다.

다수의 생산 유닛에 대한 통계적 모니터링(Statistical Monitoring)은 개별 합격 또는 불합격 판정을 넘어서는 정보를 제공한다. 파라미터 분포(Parameter Distribution)와 검증 지표는 조립 공정(Assembly Process), 센서 장착(Sensor Mounting), 지그 및 고정장치, 캘리브레이션 장비의 점진적인 변화를 나타낼 수 있다. 따라서 통계적 공정 관리(Statistical Process Control)는 개별 차량이 허용 한계를 초과하기 전에 생산 드리프트(Production Drift)를 식별하여 캘리브레이션 엔지니어링과 제조 품질 관리(Manufacturing Quality Management)를 연결할 수 있다.

생산 캘리브레이션 흐름(Production Calibration Flow)은 궁극적으로 기계 조립(Mechanical Assembly), 전자 구성(Electronic Configuration), 캘리브레이션 소프트웨어(Calibration Software), 검증(Validation), 차량 출고(Vehicle Release)를 연결하는 폐쇄형 품질 루프(Closed Quality Loop)를 형성한다. 각 유닛은 식별 및 통제된 측정에서 시작하여 추정, 합격 판정, 배포, 라인 종단 검증을 거치며 전체 과정에서 완전한 추적성을 유지한다. 이러한 구조화된 프로세스는 일관된 공장 캘리브레이션(Factory Calibration)의 기반을 제공하고 이후 현장 재캘리브레이션(Field Recalibration)에 필요한 기준선(Baseline)을 확립한다.

02.05. Field Recalibration Procedure

현장 재캘리브레이션(Field Recalibration)은 차량 또는 로봇 플랫폼(Robotic Platform)이 실제 운용 서비스에 투입된 이후 캘리브레이션 상태를 복원하거나 검증하기 위해 사용하는 통제된 절차(Controlled Procedure)이다. 표준화된 공장 조건에서 수행되는 생산 캘리브레이션(Production Calibration)과 달리, 현장 재캘리브레이션은 제한된 장비(Limited Equipment), 다양한 환경 조건(Variable Environment), 유지보수 작업(Maintenance Activity), 운용 제약(Operational Constraint)에 대응하면서 생산 단계에서 확립된 좌표 규약(Coordinate Convention), 파라미터 정의(Parameter Definition), 허용 원칙(Acceptance Principle)을 유지해야 한다.

재캘리브레이션(Recalibration)은 센서 교체(Sensor Replacement), 브래킷 수리(Bracket Repair), 기계적 충격(Mechanical Impact), 서스펜션 변경(Suspension Modification), 조향 시스템 정비(Steering Service), 액추에이터 교체(Actuator Replacement), 펌웨어 변경(Firmware Change), 또는 캘리브레이션 성능 저하(Calibration Degradation)의 증거에 의해 시작될 수 있다. 진단 시스템(Diagnostic System)이 비정상적인 잔차(Abnormal Residual)나 센서 융합(Sensor Fusion)의 불일치를 검출한 경우에도 재캘리브레이션을 시작할 수 있다. 재캘리브레이션 결과를 캘리브레이션 상태에 의문을 발생시킨 물리적 또는 소프트웨어 이벤트와 연결할 수 있도록 트리거(Trigger)를 기록해야 한다.

절차는 차량을 식별하고 현재 하드웨어 및 소프트웨어 구성(Hardware and Software Configuration)을 확인하는 것으로 시작한다. 차량 식별 정보(Vehicle Identity), 센서 일련번호(Sensor Serial Number), 컨트롤러 버전(Controller Version), 펌웨어 리비전(Firmware Revision), 설치 옵션(Installed Option), 기존 캘리브레이션 파라미터 버전(Calibration Parameter Version)을 조회해야 한다. 기술자는 현재 구성이 현재 배포된 캘리브레이션과 연결된 기준선(Baseline)에 여전히 일치하는지 또는 하드웨어 변경으로 인해 새로운 파라미터 세트(Parameter Set)가 필요한지를 판단해야 한다.

어떠한 파라미터도 변경하기 전에 기존 캘리브레이션 상태(Existing Calibration State)를 보존해야 한다. 현재 배포값(Current Deployed Value), 이전 승인값(Previous Approved Value), 진단 정보(Diagnostic Information), 관련 구성 파일(Configuration File)을 백업하거나 기록해야 한다. 이를 통해 재캘리브레이션을 성공적으로 완료하지 못하는 경우 사용할 수 있는 롤백 지점(Rollback Point)을 확보할 수 있으며, 관측된 문제가 캘리브레이션 드리프트(Calibration Drift), 하드웨어 이동(Hardware Movement), 또는 다른 시스템 고장(System Fault)에서 발생했는지 판단하기 위한 중요한 근거도 확보할 수 있다.

예비 진단 검사(Preliminary Diagnostic Inspection)를 통해 재캘리브레이션이 실제로 적절한 조치인지 판단해야 한다. 느슨해진 브래킷(Loose Bracket), 손상된 센서(Damaged Sensor), 휘어진 구조물(Bent Structure), 오염된 광학 표면(Contaminated Optical Surface), 비정상적인 타이어 상태(Abnormal Tire Condition), 통신 오류(Communication Fault), 불안정한 전원(Unstable Power), 기계적 유격(Mechanical Play)을 단순히 소프트웨어 캘리브레이션으로 보상해서는 안 된다. 캘리브레이션 파라미터는 기계적 고장을 은폐하는 것이 아니라 정상적인 설치 편차(Normal Installation Variation)를 나타내야 하므로 물리적 결함(Physical Defect)을 먼저 수리해야 한다.

이후 현장 환경(Field Environment)이 캘리브레이션에 적합한지 평가해야 한다. 공장 캘리브레이션 스테이션(Factory Calibration Station)은 정밀하게 통제된 타깃(Target), 조명(Lighting), 바닥 기하구조(Floor Geometry), 측정 장비(Measurement Equipment)를 제공할 수 있지만, 현장 서비스(Field Service)에서는 휴대용 타깃(Portable Target)과 제한된 작업 공간만 사용할 수 있다. 따라서 절차에서는 타깃 가시성(Target Visibility), 사용 가능한 거리(Usable Distance), 안정적인 차량 배치(Stable Vehicle Placement), 적절한 조명(Adequate Illumination), 충분한 기하학적 관측 범위(Geometric Observation Coverage)와 같은 최소 환경 요구조건을 명시해야 한다.

데이터 획득(Data Acquisition) 전에 차량을 정의된 캘리브레이션 상태(Calibration State)로 설정한다. 조향 위치(Steering Position), 서스펜션 상태(Suspension Condition), 페이로드(Payload), 타이어 상태(Tire State), 차량 자세(Vehicle Attitude), 배터리 상태(Battery Condition), 센서 온도(Sensor Temperature), 액추에이터 상태(Actuator State)가 지정된 범위를 만족해야 할 수 있다. 목적은 모든 공장 조건을 완벽하게 재현하는 것이 아니라 환경이나 차량 상태의 변화가 추정되는 캘리브레이션 파라미터에 지배적인 영향을 미치지 않도록 하는 것이다.

좌표 프레임 정의(Coordinate-Frame Definition)는 승인된 차량 아키텍처(Vehicle Architecture)와 동일하게 유지되어야 한다. 현장 기술자가 지역적인 작업 절차를 단순화하기 위해 차량 원점(Vehicle Origin), 축 방향(Axis Direction), 센서 프레임 규약(Sensor-Frame Convention), 변환 방향(Transformation Direction)을 새롭게 정의해서는 안 된다. 재캘리브레이션은 확립된 기하학적 모델(Geometric Model) 내부의 파라미터 값을 변경하는 것이며, 생산 데이터나 런타임 소프트웨어(Runtime Software)와 호환되지 않는 별도의 좌표 규약을 생성하는 과정이 아니다.

캘리브레이션 관측값(Calibration Observation)을 수집하기 전에 통신 및 센서 상태 검사(Communication and Sensor-Health Check)를 수행한다. 필요한 센서, ECU, 액추에이터, 네트워크 인터페이스(Network Interface)가 정상적으로 응답해야 하며 다중 센서 측정(Multi-Sensor Measurement)이 포함되는 경우 타임스탬프(Timestamp)를 사용할 수 있어야 한다. 측정값을 무효화할 수 있는 진단 고장(Diagnostic Fault)은 먼저 해결해야 한다. 이를 통해 통신, 동기화(Synchronization), 센서 상태 문제가 공간 캘리브레이션 오차(Spatial Calibration Error)로 잘못 해석되는 것을 방지할 수 있다.

데이터 획득은 영향을 받은 서브시스템(Affected Subsystem)에 적합하도록 정의된 현장 시퀀스(Field Sequence)를 따라야 한다. 교체된 카메라는 휴대용 캘리브레이션 타깃을 관측할 수 있고, 라이다(LiDAR)는 알려진 평면이나 구조물을 캡처할 수 있으며, IMU는 정지 상태 및 통제된 운동 구간(Controlled-Motion Interval)을 필요로 할 수 있다. 조향 캘리브레이션(Steering Calibration)은 명령된 조향 위치(Commanded Position) 또는 직선 운동(Straight-Line Motion)을 사용할 수 있다. 보다 광범위한 시스템 검증이 필요하지 않다면 영향을 받은 캘리브레이션에 필요한 측정값만 수집해야 한다.

현장 데이터(Field Data)는 파라미터 추정을 수행하기 전에 품질 검사(Quality Check)를 거쳐야 한다. 타깃 검출 신뢰도(Target Detection Confidence), 측정 개수(Measurement Count), 기하학적 다양성(Geometric Diversity), 신호 안정성(Signal Stability), 타임스탬프 일관성(Timestamp Consistency), 센서 관측 범위(Sensor Coverage)를 가능한 경우 자동으로 평가해야 한다. 제한된 현장 공간은 관측 가능성(Observability)을 감소시킬 수 있으므로 소프트웨어는 불확실한 해를 강제로 계산하기보다 병진(Translation), 회전(Rotation), 바이어스(Bias), 기타 파라미터를 신뢰성 있게 구분할 수 없는 데이터셋을 거부해야 한다.

전처리(Preprocessing)는 승인된 관측값을 캘리브레이션 알고리즘에 필요한 기하학적 또는 신호 특징(Geometric or Signal Feature)으로 변환한다. 서브시스템에 따라 카메라 타깃 코너(Camera Target Corner), 라이다 평면(LiDAR Plane), 레이더 반사체 관측값(Radar Reflector Observation), IMU 정지 구간(IMU Stationary Interval), 엔코더 위치(Encoder Position), 조향 응답(Steering Response)을 추출할 수 있다. 실패하거나 논쟁의 여지가 있는 캘리브레이션 결과를 이후 재현하고 분석할 수 있도록 가능한 경우 원시 현장 데이터(Raw Field Data)를 보존해야 한다.

파라미터 추정(Parameter Estimation)은 일반적으로 마지막 승인값(Last Approved Value) 또는 공칭 엔지니어링 구성(Nominal Engineering Configuration)에서 시작해야 한다. 현장 재캘리브레이션은 완전히 알려지지 않은 기하구조를 새롭게 찾는 것이 아니라 알려진 설치 변경이나 성능 저하를 보정하는 것이므로 예상되는 파라미터 변화는 물리적으로 합리적인 범위 내에 있어야 한다. 큰 편차는 잘못된 타깃 설정(Incorrect Target Setup), 불충분한 관측값(Insufficient Observation), 잘못된 센서 식별(Wrong Sensor Identity), 또는 해결되지 않은 기계적 손상(Mechanical Damage)을 의미할 수 있다.

재캘리브레이션 알고리즘(Recalibration Algorithm)은 서비스 절차(Service Procedure)에서 허용된 파라미터만 추정해야 한다. 관련 없는 파라미터는 독립적으로 추정할 수 있을 정도로 충분한 관측값이 존재하지 않는 한 고정된 상태로 유지해야 한다. 최적화 범위(Optimization Scope)를 제한하면 불충분하게 구속된 현장 데이터셋(Underconstrained Field Dataset)이 하나의 물리적 오차를 여러 캘리브레이션 변수에 분산시켜 수치적으로는 타당하지만 물리적으로 오해를 유발하는 결과를 생성할 위험을 줄일 수 있다.

추정된 파라미터는 공칭 기하구조(Nominal Geometry), 이전 승인값(Previous Approved Value), 허용된 서비스 한계(Permitted Service Limit)와 비교한다. 센서 교체 이후의 작은 변화는 정상적으로 예상될 수 있지만, 큰 병진 또는 회전 변화는 잘못된 설치(Incorrect Installation)를 나타낼 수 있다. 따라서 파라미터 비교(Parameter Comparison)는 캘리브레이션 검사뿐만 아니라 유지보수 진단(Maintenance Diagnostic)의 역할도 수행하며, 소프트웨어 보상으로 승인하기보다 수정해야 하는 기계적 상태를 식별하는 데 도움을 준다.

검증(Validation)은 재캘리브레이션이 요구되는 시스템 일관성(System Consistency)을 복원했음을 입증해야 한다. 서브시스템에 따라 카메라 재투영(Camera Reprojection), 라이다 정렬(LiDAR Alignment), 레이더 타깃 위치(Radar Target Position), IMU 자세(IMU Orientation), 조향 응답(Steering Response), 다중 센서 융합 일관성(Multi-Sensor Fusion Consistency)을 확인할 수 있다. 가능한 경우 검증 관측값(Validation Observation)은 파라미터 추정에 직접 사용된 데이터와 다르게 구성하여 단순한 최적화 적합도(Optimization Fit)가 아니라 실제 캘리브레이션 성능을 평가해야 한다.

결과는 정의된 현장 허용 기준(Field Acceptance Criteria)을 만족하는 경우에만 승인한다. 현장 기준은 휴대용 장비(Portable Equipment)와 환경적 불확도(Environmental Uncertainty)를 고려할 수 있지만 운용 차량(Operational Vehicle)에 필요한 성능과 호환되어야 한다. 이전 상태보다 개선되었다는 이유만으로 캘리브레이션을 승인해서는 안 되며, 해당 캘리브레이션에 의존하는 인지(Perception), 위치추정(Localization), 운동(Motion), 제어(Control) 기능에 필요한 충분한 정확도를 달성해야 한다.

재캘리브레이션에 실패하면 절차는 통제된 에스컬레이션 경로(Controlled Escalation Path)를 제공해야 한다. 관측값이 부족한 경우 데이터 획득을 다시 수행할 수 있지만 합격 결과를 얻기 위해 최적화를 무한히 반복해서는 안 된다. 지속적인 실패는 센서 장착(Sensor Mounting), 배선(Wiring), 동기화(Synchronization), 기계적 기하구조(Mechanical Geometry), 소프트웨어 호환성(Software Compatibility), 캘리브레이션 장비(Calibration Equipment)에 대한 검사를 유발해야 하며, 전용 서비스 또는 생산 스테이션(Dedicated Service or Production Station)으로 차량을 이동해야 할 수도 있다.

검증이 성공적으로 완료되면 승인된 현장 파라미터(Approved Field Parameter)를 필요한 런타임 구성(Runtime Configuration)에 배포한다. 소프트웨어는 ECU 메모리(ECU Memory), 센서 저장소(Sensor Storage), 구성 파일(Configuration File), 미들웨어 파라미터(Middleware Parameter), 캘리브레이션 데이터베이스(Calibration Database)에 값을 기록하기 전에 올바른 차량과 센서가 선택되었는지 확인해야 한다. 읽기 검증(Read-Back Verification) 또는 이에 상응하는 검사를 통해 운용 시스템에 검증을 통과한 파라미터 세트가 정확하게 저장되었는지 확인해야 한다.

배포 후 기능 검사(Post-Deployment Functional Check)는 새로운 파라미터를 적용한 전체 차량이 올바르게 작동하는지 확인한다. 재캘리브레이션된 서브시스템에 따라 센서 융합(Sensor Fusion), 위치추정 안정성(Localization Stability), 조향 거동(Steering Behavior), 액추에이터 응답(Actuator Response), 진단 기능(Diagnostics), 기타 영향을 받는 기능을 평가할 수 있다. 유효한 캘리브레이션 파일이라도 배포, 구성 선택(Configuration Selection), 소프트웨어 통합(Software Integration)이 잘못되면 실제 운용에서 실패할 수 있으므로 이 단계가 중요하다.

현장 재캘리브레이션 기록(Field Recalibration Record)에는 서비스 사유(Service Reason), 이전 및 새로운 파라미터 값, 차량 및 센서 식별 정보, 소프트웨어 버전(Software Version), 캘리브레이션 방법(Calibration Method), 검증 지표(Validation Metric), 환경 조건(Environmental Condition), 타임스탬프, 승인 상태(Approval Status)를 보존해야 한다. 이러한 이력을 유지하면 엔지니어가 개별적인 서비스 이벤트와 반복적으로 발생하는 캘리브레이션 성능 저하를 구분할 수 있으며, 공장 구성(Factory Configuration), 유지보수 작업, 실제 운용 캘리브레이션 사이의 추적성을 확보할 수 있다.

전체 현장 재캘리브레이션 절차(Field Recalibration Procedure)는 고장 검출(Fault Detection) 또는 유지보수에서 시작하여 검사(Inspection), 측정(Measurement), 추정(Estimation), 검증(Validation), 배포(Deployment), 기능 확인(Functional Verification)으로 이어지는 통제된 복구 루프(Controlled Recovery Loop)를 형성한다. 생산 단계에서 사용된 것과 동일한 좌표 프레임 체계(Coordinate Framework), 변환 규약(Transformation Convention), 데이터 관리 원칙(Data Management Principle), 허용 논리(Acceptance Logic)를 유지함으로써 현장 서비스는 구성 추적성(Configuration Traceability)이나 차량 수준 기하학적 일관성(Vehicle-Level Geometric Consistency)을 훼손하지 않고 캘리브레이션 상태를 복원할 수 있다.


저자: Richard Minsoo Go

LinkedIn: Richard Minsoo Go

Top comments (0)