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 모듈에서 경로 생성 및 회피 판단에 직접 사용된다.

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

댓글 남기기