인지 결과 기반 판단 전략
- 1. 판단 단계 개요
- 2. 인지 결과의 활용: 판단의 ‘입력’
- 3. 판단 전략의 핵심 구성 요소
- 4. 판단 전략의 출력
- 5. 실제 주행 시나리오별 판단 전략 예시
- 6. 도전 과제 및 고려 사항
- 이전 강의에서 다룬 인지 모델을 통해 주변 환경을 이해했다면,
- 이제는 이 정보를 바탕으로 차량이 어떻게 주행할지 ‘생각’하고 ‘결정’하는 단계
1. 판단 단계 개요
- 판단 단계(Decision-making)란?
- 인지(Perception) 모듈로부터 얻은 주변 환경 정보(차선, 객체, 신호등 등)를 바탕으로,
- 현재 상황을 분석하고
자율주행 차량이 다음에 취해야 할 최적의 경로(Path)와 행동(Behavior)을 결정하는 과정
- 자율주행차의 두뇌
- 인지 모듈이 ‘눈’ 역할을 한다면,
- 판단 모듈은
- 이 시각 정보를 해석하고
- 과거의 경험(학습된 지식)을 바탕으로 미래를 예측하며,
- 목표를 달성하기 위한 최선의 방법을 ‘생각’하고 ‘결정’하는
- ‘두뇌’ 역할을 수행
- 판단 단계의 중요성
- 안전성 확보
- 주변 환경의 불확실성 속에서 안전을 최우선으로 고려하여 최악의 상황에 대비하는 결정 수립
- 불확실성 예시: 예측 불가능한 보행자, 갑작스러운 장애물 등
- 주변 환경의 불확실성 속에서 안전을 최우선으로 고려하여 최악의 상황에 대비하는 결정 수립
- 효율적인 주행
- 교통 흐름을 원활하게 하고,
- 최적의 경로로 주행하며,
- 에너지 효율을 고려한 결정을 통해
- 이동의 효율성을 극대화
- 사용자 경험
- 탑승자가 편안하고 부드러운 주행을 경험할 수 있도록
- 예측 가능한 방식으로 움직임
- 법규 준수
- 교통 법규 및 신호 체계를 정확히 이해하고 준수하는 결정을 통해
- 안전하고 합법적인 주행을 보장
- 안전성 확보
2. 인지 결과의 활용: 판단의 ‘입력’
- 판단 모듈은 이전 차시에서 구현했던 인지 모듈의 다양한 출력들을 입력으로 받음
- 인지 결과들은 단일 이미지 프레임 단위로 제공될 뿐만 아니라,
연속된 프레임 간의 변화를 통해 객체의 움직임(Trajectory) 정보까지 포함하여 판단 모듈로 전달됨
- 인지 모듈의 주요 입력 (재활용)
- 차선 인식 결과
- 현재 차량이 위치한 차선 정보, 차선의 경계, 차선 변경 가능 여부 등
- 사용 기술: 이진 마스크, 차선 폴리라인 등
- 객체 탐지 및 분류 결과
- 주변 차량, 보행자, 자전거, 오토바이 등의 위치(바운딩 박스), 속도, 방향, 클래스 정보
- 시맨틱 세그멘테이션 결과
- 도로 영역, 보도, 건물, 표지판 등 이미지 픽셀 단위의 클래스 정보
- 교통 표지판 및 신호등 인식 결과
- 정지선, 속도 제한 표지판, 좌회전/우회전 표지판, 신호등의 현재 상태(빨간불/초록불)
- 차량의 현재 상태
- GPS를 통한 위치, IMU를 통한 속도, 가속도, yaw/pitch/roll 등
- HD Map (고정밀 지도) 정보
- 차선 정보, 교차로 구조, 건물, 도로 경계 등 정적(Static) 환경 정보
- 차선 인식 결과
3. 판단 전략의 핵심 구성 요소
- 인지된 정보를 바탕으로 차량의 주행을 결정하기 위해 판단 단계는 여러 하위 구성 요소로 이루어짐
3.1. 환경 이해 및 상황 분석
- 역할
- 인지 모듈에서 개별적으로 얻은 정보들을 종합하여
- 차량 주변의 전체적인 상황을 구축하고 해석함
- 수행 내용
- 센서 퓨전 (Sensor Fusion)
- 카메라, 라이다, 레이더 등 다양한 센서의 출력들을 통합하여
- 하나의 일관된 주변 환경 지도를 생성
- 이는 특히 불확실성을 줄이고 정확도를 높이는 데 중요함
- 객체 추적 및 ID 부여 (Object Tracking & ID Assignment)
- 연속된 프레임에서 동일한 객체를 추적하고
- 고유 ID를 부여하여
- 각 객체의 움직임 히스토리를 관리함
- 가상 환경 모델 구축 (Scene Representation)
- 주변 차량, 차선, 신호등 등의 2D/3D 위치 및 속도를 통합하여
- 자율주행 차량 입장에서의 ‘World’ 모델을 생성함
- 교통 흐름 분석
- 도로의 교통량, 속도 제한, 혼잡도 등을 분석하여
- 주행 전략에 반영함
- 센서 퓨전 (Sensor Fusion)
3.2. 예측
- 역할
- 주변 환경에서 움직이는 다른 차량, 보행자 등의 미래 행동을 예측
- 자율주행은 단순히 현재를 보는 것이 아니라 ‘미래’를 예측하고 대비해야 함
- 수행 내용:
- Trajectory Prediction (궤적 예측)
- 다른 차량이나 보행자의 현재 속도, 가속도, 방향, 과거 이동 패턴 등을 기반으로
- 1~5초 후의 미래 궤적을 예측함
- Intent Prediction (의도 예측)
- 주변 차량이 차선을 변경하려는지, 감속하려는지 등의 의도를 예측하여
- 의사결정에 반영함
- 딥러닝 기반 예측 모델
- RNN(Recurrent Neural Network), LSTM(Long Short-Term Memory) 등의 시계열 모델이나
- Transformer 기반 모델이 주로 사용됨
# 간략화된 예측 예시 (의사 코드) # def predict_agent_trajectory(agent_id, past_positions, past_velocities, road_info): # # 딥러닝 모델에 과거 데이터 및 환경 정보 입력 # future_trajectory = model.predict(past_positions, past_velocities, road_info) # return future_trajectory # [x, y, vx, vy] 시퀀스 - Trajectory Prediction (궤적 예측)
3.3. 경로 계획
- 역할
- 차량이 목적지까지 안전하고 효율적으로 이동할 수 있는 경로를 생성
- 수행 내용:
- 전역 경로 계획 (Global Path Planning)
- 출발지에서 목적지까지의 고수준의 ‘큰 그림’ 경로를 생성함(일반적인 내비게이션 기능과 유사)
- HD Map을 기반으로 최단 거리, 최단 시간, 연료 효율 등을 고려함
- 예: A*, Dijkstra 알고리즘 등
- 지역 경로 계획 (Local Path Planning)
- 현재 차량의 위치와 실시간으로 변화하는 주변 환경(객체, 차선, 장애물)을 바탕으로
전역 경로를 따르면서 안전한 단기적인 경로를 초 단위로 생성함
- 주요 고려 사항
- 차선 유지, 차선 변경, 장애물 회피, 추월, 교차로 통과, 차간 거리 유지 등
- 알고리즘 예시
- Spline 기반 경로 생성
- 샘플링 기반 알고리즘(RRT: Rapidly-exploring Random Tree)
- 최적화 기반 알고리즘(MPC: Model Predictive Control) 등
# 간략화된 지역 경로 계획 예시 (의사 코드) # def local_path_planner(current_pose, perceived_objects, lane_info, predicted_trajectories): # possible_paths = generate_candidate_paths(current_pose, lane_info) # 여러 가능한 경로 생성 # scores = evaluate_paths(possible_paths, perceived_objects, predicted_trajectories) # 안전성, 효율성 평가 # best_path = select_best_path(possible_paths, scores) # return best_path # 다음 몇 초간의 궤적 (위치, 속도, 가속도 시퀀스) - 전역 경로 계획 (Global Path Planning)
3.4. 행동 결정
- 역할
- 생성된 지역 경로를 따라가기 위해 차량이 어떤 종류의 주행 행동(Action)을 취할지 결정
- 이는 운전자가 “직진”, “정지”, “좌회전”, “차선 변경” 등의 의도를 갖는 것과 같음
- 수행 내용:
- 유한 상태 기계 (FSM: Finite State Machine) 기반
- 미리 정의된 주행 상태(예:
직진,차선 변경,교차로 진입,정지 대기)와 - 각 상태 간의 전환 규칙(트랜지션)에 따라 행동을 결정
- 간단하고 예측 가능하나,
- 복잡한 상황 대응에 한계가 있음
- 미리 정의된 주행 상태(예:
- 규칙 기반 (Rule-based)
IF (신호등 == 빨강 AND 정지선_거리 < 5m) THEN 정지,IF (앞차_거리 < 안전거리 AND 앞차_속도 < 내_속도) THEN 감속- 과 같은 명시적인 규칙 활용
- 강화 학습 (Reinforcement Learning) 기반
- 다양한 주행 시뮬레이션 환경에서
- 시행착오를 통해 최적의 행동 정책(Policy)을 학습
- 복잡하고 동적인 상황에 유연하게 대처할 수 있으나,
- 안전성 검증 및 해석의 어려움이 있음
# 간략화된 행동 결정 예시 (FSM 유사) # def decide_behavior(current_state, perceived_env, goal_reached): # if goal_reached: # return "정지" # elif perceived_env.traffic_light == "빨강" and perceived_env.distance_to_stop_line < 5: # return "정지" # elif perceived_env.has_obstacle_in_path: # return "장애물 회피" # elif perceived_env.can_change_lane_left and current_state.lane_offset > 0.5: # return "차선 변경 좌" # else: # return "차선 유지 직진" - 유한 상태 기계 (FSM: Finite State Machine) 기반
3.5. 위험 평가 및 충돌 회피
- 역할
- 생성된 경로와 결정된 행동이 안전한지 지속적으로 평가하고,
- 잠재적인 위험이 발생할 경우 즉각적으로 대응함
- 수행 내용:
- 충돌 시간(TTC: Time-To-Collision)
- 주변 객체와의 충돌까지 남은 시간을 계산하여 위험도를 평가
TTC = 상대 거리 / 상대 속도
- 최소 안전 거리 유지
- 앞차와의 최소 안전 거리를 지속적으로 모니터링
- 비상 제동/회피 기동
- 충돌 위험이 임박했을 경우,
- 인지된 정보를 바탕으로 가장 안전한 비상 조치(예: 비상 제동, 급회피)를 결정하고
- 제어 모듈로 명령을 전달
- 충돌 시간(TTC: Time-To-Collision)
4. 판단 전략의 출력
- 판단 단계의 최종 출력
- 제어(Control) 모듈이 직접 실행할 수 있는 형태의 상세한 지시
- 계획된 궤적 (Planned Trajectory)
- 차량이 따라야 할 미래의 시간-위치-속도-가속도 시퀀스
- 예: 다음 5초 동안의 X, Y, 속도, 조향각 값의 리스트
- 차량이 따라야 할 미래의 시간-위치-속도-가속도 시퀀스
- 다음 행동 지침 (Next Action Command)
- “속도 50km/h로 차선 유지”, “2초간 브레이크”, “좌회전 준비” 등 고수준 명령
- 계획된 궤적 (Planned Trajectory)
- 제어(Control) 모듈이 직접 실행할 수 있는 형태의 상세한 지시
5. 실제 주행 시나리오별 판단 전략 예시
5.1. 차선 유지 주행 시나리오
- 인지
- 차선 인식 모듈에서 현재 주행 차선의 좌/우 경계선을 인식
- 차량의 차선 중앙으로부터의 편차 계산
- 판단
- 상황 분석
- 현재 차선 내부이며,
- 차량이 약간 좌측으로 치우쳐 있음을 파악
- 예측
- 차선 내에서 안전하게 주행 중이므로
- 주변 차량의 급작스러운 움직임은 예측하지 않음
- 경로 계획
- 현재 차선의 중앙을 따라가는 부드러운 궤적 생성
- 행동 결정
- “차선 유지(Lane Keeping)” 명령을 내림
- 상황 분석
- 제어
- 생성된 궤적을 따라 조향각과 속도를 미세하게 조정하여 차량을 차선 중앙으로 유도
5.2. 앞차와의 간격 유지 시나리오
Adaptive Cruise Control(ACC)
- 인지
- 객체 탐지 모듈에서 전방의 차량을 인식하고
- 라이다/레이더로 앞차와의 정확한 거리와 상대 속도를 측정
- 판단:
- 상황 분석
- 앞차가 존재하며
- 현재 설정된 안전거리보다 가까워지고 있음을 파악
- 예측
- 앞차의 속도 변화(감속/가속) 예측
- 경로 계획
- 앞차와의 안전거리를 유지하면서 따라가는 궤적 생성
- 행동 결정
- “차간 거리 유지(Follow Lead Car)” 명령을 내림
- 앞차와의 간격이 줄어들면 감속, 늘어나면 가속 명령을 추가
- 상황 분석
- 제어
- 계산된 목표 속도에 따라 가속/감속 페달 조절
5.3. 신호등 교차로 정지/진입 시나리오
- 인지
- 신호등 인식 모듈에서 전방 신호등의 위치와 색상(빨간불)을 인식
- 동시에 객체 탐지로 교차로 내 차량/보행자 유무를 파악
- 판단
- 상황 분석
- 전방 신호등이 ‘빨간불’이고,
- 차량이 ‘정지선’에 접근하고 있으며,
- 교차로 내에 다른 차량이나 보행자는 없음을 파악
- 예측
- 신호등이 곧 초록불로 바뀔 가능성은 낮으며,
- 주변 차량의 급정거는 없을 것으로 예측
- 경로 계획
- 정지선 직전에 안전하게 정지하는 궤적 생성
- 행동 결정
- “정지(Stop)” 명령을 내림
- 상황 분석
- 제어
- 생성된 궤적에 따라 브레이크를 조작하여 차량을 감속하고
- 정지선에 부드럽게 정차시킴
6. 도전 과제 및 고려 사항
- 불확실성 관리
- 센서 데이터의 노이즈, 예측 불가능한 사람의 행동, 날씨 변화 등 다양한 불확실성 속에서 견고한 결정을 내리는 것이 중요
- 안전성 및 신뢰성
- 모든 잠재적 위험 상황(예: 센서 고장, 소프트웨어 버그)에서도 차량이 안전을 최우선으로 확보할 수 있는 판단을 내려야 함
- Fail-safe, Fallback Plan
- 윤리적 딜레마
- 회피할 수 없는 사고 상황(예: 보행자 vs. 운전자 보호)에서 누구를 우선시할 것인가에 대한
- 윤리적, 사회적 합의 및 알고리즘 구현 문제 잔존
- 연산 효율성
- 실시간 주행 환경에서 방대한 인지 정보를 분석하고 복잡한 경로를 계획하며 행동을 결정하는
- 모든 과정이 수 밀리초(ms) 이내에 이루어져야 함
- 다양한 상황 대응
- 극단적인 날씨, 비포장 도로, 예기치 않은 교통상황 등 무한히 많은 상황에 대한 대응 전략 구축이 어려움
- “인지 결과 기반 판단 전략”은 자율주행차의 심장부와 같음
- 인지 모듈이 제공하는 원천 정보를 지능적으로 해석하고, 미래를 예측하며, 안전하고 효율적인 방식으로 목표를 달성하기 위한 최적의 행동과 경로를 결정함
- 이 판단 단계에서 결정된 계획된 궤적과 행동 명령은 곧바로 제어(Control) 모듈로 전달됨
- 제어 모듈은 이 명령들을 받아 차량의 실제 하드웨어(모터, 브레이크, 조향 장치)를 움직여 차량을 물리적으로 제어함