Prediction(예측) 기본 개념: 주변 차량·보행자의 미래 궤적을 예상하는 방법

대상: 자율주행 시스템에서 주변 객체의 미래 움직임(trajectory) 을 예측하는 과정을 이해하고 싶은 개발자
환경: ROS/ROS2 기반 자율주행 인식·예측 파이프라인 (Perception → Prediction → Planning)


1. 문제/주제 요약

자율주행 차량이 안전하게 주행하려면,
현재 주변의 객체(차량, 사람, 자전거 등)를 인식하는 것만으로는 부족합니다.

다음 몇 초 동안 이들이 어디로, 얼마나 빠르게 움직일지를 미리 알아야 합니다.
이 기능을 담당하는 것이 바로 Prediction(예측) 단계입니다.

Prediction은 인식 결과(위치, 속도, 방향 등)를 입력으로 받아,
“각 객체의 미래 궤적(trajectory)” 을 시간축으로 추정합니다.


2. Prediction 단계의 역할

자율주행 전체 파이프라인에서 Prediction은 다음 위치에 있습니다:

[Sensor Data]
     ↓
Perception (객체 인식)
     ↓
Prediction (미래 궤적 예측)
     ↓
Planning (경로 계획)
     ↓
Control (제어)
  • Perception: 지금 어떤 객체가 어디 있는가?
  • Prediction: 앞으로 어디로 갈 것인가?
  • Planning: 그럼 나는 어디로 가야 안전한가?

즉, Prediction은 미래 시뮬레이터(Future Simulator) 역할을 합니다.


3. 입력과 출력

구분설명예시
입력Perception 결과 (객체 위치, 속도, 방향, 클래스 등)/perception/tracked_objects
출력각 객체의 미래 궤적 (time-stamped position list)/prediction/objects

출력 예시:

object_id: 21
type: "car"
predicted_trajectories:
  - probability: 0.7
    trajectory: [[x: 20.1, y: 3.2, t:0.5], [x: 22.0, y: 3.4, t:1.0], [x: 25.0, y:3.8, t:2.0]]
  - probability: 0.3
    trajectory: [[x: 19.5, y: 4.5, t:0.5], [x: 20.0, y: 6.0, t:1.0]]

4. Prediction의 주요 접근 방식

Prediction에는 크게 물리 모델 기반과 행동 모델(Behavior) 기반 두 가지 접근이 있습니다.


(1) 물리 기반 모델 (Physics-based Prediction)

“현재 속도와 방향이 유지된다고 가정하고 미래 위치를 계산”

가장 단순하고 빠르며, 기본 예측에 사용됩니다.

  • Constant Velocity (CV) 모델 x(t+Δt) = x(t) + vx * Δt y(t+Δt) = y(t) + vy * Δt
  • Constant Acceleration (CA) 모델 x(t+Δt) = x(t) + vx * Δt + 0.5 * ax * Δt²
  • Motion with Yaw Rate (CTR / CTRV)
    차량의 회전(조향 각속도)을 고려한 모델

ROS2에서는 EKF/UKF 필터 내에서 내부적으로 이 모델을 사용합니다.

✅ 장점: 계산이 빠르고 안정적
⚠️ 단점: 차선 변경, 회전, 정지 등 행동 변화 예측 불가


(2) 행동(Behavior) 기반 모델

“객체가 현재 상황(차선, 신호, 주변 차량)을 고려해 어떤 행동을 할지 판단”

차량이나 보행자의 의도(intent) 를 추정한 뒤,
그 행동에 맞는 여러 궤적 후보를 생성합니다.

예시:

  • 차량: 직진 / 좌회전 / 우회전 / 정지
  • 보행자: 도로 진입 / 횡단 중단 / 대기

예시 구조

object_id: 42
possible_behaviors:
  - type: "straight"  (P=0.6)
  - type: "left_turn" (P=0.3)
  - type: "stop"      (P=0.1)

이후 각 행동별로 궤적을 생성하고,
최종적으로 확률(weighted trajectory)을 합산합니다.

예측 엔진 내부에서는 차로 구조(HD Map) 와 신호등 상태를 함께 고려합니다.


(3) 학습(Deep Learning) 기반 모델

최근에는 시계열 데이터 기반의 DNN 모델이 Prediction의 주류로 떠오르고 있습니다.

모델핵심 아이디어특징
LSTM / GRU과거 위치 시퀀스를 입력으로 미래 궤적 예측보행자 궤적 예측에 적합
Social-LSTM주변 객체 간 상호작용을 반영군집 보행 예측
Graph-based (GNN)객체 간 관계를 그래프로 표현차량 간 상호 영향 반영
Transformer / TrajectoryNetAttention 기반 멀티모달 예측여러 행동 후보를 동시에 추정
VectorNet / MotionNet도로 맵 + 궤적을 벡터화고정밀 경로 예측 (Autoware AI 적용 사례 있음)

이 모델들은 ROS2 상에서 TensorRT 또는 ONNX 런타임을 통해 실시간 동작 가능합니다.


5. 예측 결과의 활용 (Planning 단계로의 연결)

예측된 객체 궤적은 경로 계획(Planning) 모듈로 전달되어 다음과 같이 활용됩니다:

1️⃣ 충돌 예측 (Collision Check)

  • 내 차량의 예정 경로와 주변 객체의 예측 궤적이 겹치는가?
  • 겹친다면 TTC < 3초 → 감속 또는 정지 판단

2️⃣ Behavior Planning (행동 결정)

  • 앞차가 정지 예측 → 나도 감속 준비
  • 보행자 진입 예측 → 횡단보도 접근 속도 제한

3️⃣ 경로 재계획 (Replanning)

  • 예측된 궤적이 내 경로와 충돌 → 경로 우회 또는 차선 변경

6. ROS2 예시 흐름 (Autoware Universe 기준)

/perception/tracked_objects
        ↓
/prediction/obstacle_trajectory_predictor
        ↓
/prediction/objects
        ↓
/planning/behavior_path_planner
        ↓
/planning/trajectory
  • obstacle_trajectory_predictor: CV/CA/CTR 기반 예측 수행
  • behavior_path_planner: 예측 결과를 기반으로 경로 생성 및 회피 판단

7. 추가 팁 / 자주 하는 실수

  • 좌표계 불일치 → 예측 궤적이 실제 도로와 어긋남 (map vs base_link)
  • 속도 노이즈 미보정 → CV 모델에서 궤적이 심하게 흔들림
  • HD Map 연결 누락 → 차선 변경·회전 방향 예측 실패
  • 보행자 예측 과소평가 → 정지 상태에서 돌발 진입 못 잡는 문제

🔍 Tip: rviz2에서 /prediction/objects 토픽을 시각화하면
각 객체의 미래 궤적을 화살표나 점선으로 확인할 수 있습니다.


8. 정리

Prediction은 자율주행 시스템의 “미래 판단 뇌” 역할을 합니다.

핵심 개념은 다음과 같습니다:

  1. 현재 상태(State) 를 기반으로 미래 궤적을 추정한다.
  2. 물리 모델 + 행동 모델 + 학습 모델을 상황에 따라 조합한다.
  3. 예측 결과는 Planning 모듈에서 경로 생성 및 회피 판단에 직접 사용된다.

정확한 예측은 곧 안전한 주행 판단의 기반입니다.

댓글 남기기