목차
1. 소개
1.1. 차선 변경 기능
1.2. 차선 변경 상태 머신
2. 코드 분석
2.2. 安全检查
2.3. 更新 Reference Line
2.3. 업데이트 참조 라인
기술 주변기기 일체 포함 Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

Nov 07, 2023 am 11:37 AM
기술 자율주행

1. 소개

1.1. 차선 변경 기능

간단히 말하면, 차선 변경 기능은 계획 후속 모듈에서 사용할 기준선 중 하나를 선택하는 것입니다.

Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

Apollo에서 오픈소스로 제공하는 차선 변경 코드가 크게 줄어들어 간단한 프레임워크만 남았다는 점에 유의해야 합니다. 능동 차선 변경, 수동 차선 변경(장애물로 인해), 상대적으로 완전한 상태 기계, 차선 변경 창 및 간격 선택 등과 같은 많은 기능이 누락되었습니다. 이 기술 문서에서는 기존 프레임워크에 대한 내용만 보여줍니다. 다른 차선 변경 기능에 대한 내용은 다음 기사를 기대해 주세요

1.2. 차선 변경 상태 머신

Apollo의 현재 차선 변경 상태 머신은 다음과 같습니다.

Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

몇 가지 주목할 만한 사항이 있습니다. 상태 머신:

  • IN_CHANGE_LANE에는 차선 변경 실행과 차선 변경 준비 단계가 모두 포함됩니다. 일반적인 상황에서는 Apollo가 먼저 기준선을 전환한 다음 차선 변경 작업을 실행하는 방법을 채택합니다. 또한 차선 변경을 먼저 실행하는 방법을 채택합니다. 작업은 기준선을 전환하는 방법입니다(기준선이 전환되는 프레임에서 자차의 측면 거리가 0에 가깝다는 장점).
  • 현재 코드에는 차선변경이 실패할 때 반영되지 않습니다. 해당 코드 삭제로 인해 발생한다고 믿을 만한 이유도 있습니다.
  • 전체 차선 변경 상태에는 최소한 차선 변경 준비, 차선 변경이 포함되어야 합니다. 실행, 차선변경 유지, 차선변경 취소, 차선변경 완료 및 기타 상태

2. 코드 분석

2.1. 전체 프로세스

해당 코드가 위치한 경로 : 모듈/계획/작업 /deciders/lane_change_decider/http://lane_change_decider.cc

  1. 처리reference_line_info는 빈 예외입니다.reference_line_info为空的异常情况.
  2. 如果配置了强制换道reckless_change_lanetrue, 则直接更新 Reference Line.
  3. 获取上一帧的换道状态prev_status, 刚进入程序时, 可能prev_status没有状态信息(!prev_status->has_status()), 此时直接认为处于换道完成状态.
  4. 如果reference_line_info的数量为 1(即has_change_lanefalse), 说明自车处在巡迹状态, 自车当前所在的车道拥有唯一的车道线, 周围没有可变车道, 所以直接更新换道状态即可.
  5. 切换换道的状态机
  • 上一帧处在换道状态ChangeLaneStatus::IN_CHANGE_LANE: 如果上一帧自车所在的 Lane 和这一帧所在的 Lane 相同, 说明自车还在往目标车道上走. 反之如果上一帧自车所在的 Lane 和这一帧所在的 Lane 不同, 说明自车已经在目标车道上了, 切换已经完成.
  • 上一帧处在换道失败状态ChangeLaneStatus::CHANGE_LANE_FAILED: 如果换道失败, 则冻结状态一段时间, 然后切换到正在换道状态, 为下一次换道做准备.
  • 上一帧处在换道完成状态ChangeLaneStatus::CHANGE_LANE_FINISHED: 换道成功后同样冻结一段时间, 然后切换到正在换道状态, 为下一次换道做准备. 这里冻结时间是为了避免频繁换道.

2.2. 安全检查

IsClearToChangeLane

강제 차선 변경이 구성된 경우reckless_change_lanetrue 그런 다음 참조선을 직접 업데이트하세요.
  1. 이전 프레임 레인 가져오기 상태 변경prev_status, 처음 프로그램에 들어가면 prev_status에는 상태 정보가 없습니다(!prev_status->has_status())
  2. reference_line_info는 1입니다(예: has_change_lanefalse), 차량이 순찰 상태임을 나타냅니다. 현재 차량이 위치한 차선은 차선만 있고, 주변에 가변차로가 없으므로 차선변경 상태를 직접 업데이트 해주세요.
차선변경 상태머신을 전환하세요

Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

    이전 프레임은 차선 변경 상태ChangeLaneStatus::IN_CHANGE_LANE: 위의 경우 한 프레임에서 차량이 위치한 차선이 이 프레임에서 위치한 차선과 동일하다면 차량이 여전히 해당 프레임을 향해 걷고 있음을 의미합니다. 반대로, 이전 프레임에서 차량이 위치한 차선이 이번 프레임에서 차량이 위치한 차선과 다른 경우에는 차량이 이미 대상 차선으로 이동했다는 의미입니다. 🎜🎜이전 프레임은 차선 변경 실패 상태였습니다ChangeLaneStatus::CHANGE_LANE_FAILED: 차선 변경에 실패하면 일정 시간 동안 상태가 정지된 후 차선 변경 상태로 전환됩니다. .다음 차선 변경을 준비합니다. 🎜🎜이전 프레임은 차선 변경 완료 상태입니다ChangeLaneStatus::CHANGE_LANE_FINISHED: 차선 변경이 성공한 후에도 일정 시간 동안 정지된 후 전환됩니다. 다음 차선 변경을 위해 차선 변경을 준비합니다. 잦은 차선 변경을 방지하기 위한 정지 시간입니다. 🎜

2.2. p>IsClearToChangeLane은 차선 변경이 안전인지 여부를 결정합니다.🎜🎜🎜이 안전 판단 방법은 가상 장애물(Virtual Obstacles)과 정적 장애물(Static Obstacles)을 고려하지 않습니다.🎜🎜차선 변경에 대한 동적 장애물의 투영을 계산합니다. 기준선은 아래 그림과 같습니다.🎜 🎜🎜🎜🎜
  1. 자동차가 차선을 변경하는 경우IsChangeLanePath, 위에서 계산된 투영 관계를 사용하여 대상 참조선 차선 외부를 무시합니다. 장애물.IsChangeLanePath, 利用上面计算的投影关系来忽略目标参考线的车道之外的障碍物.
  2. 判断障碍物的行驶方向是否和自车相同same_direction. 根据障碍物与自车的行驶方向的关系和速度关系分别计算前向安全距离和后向安全距离.
  3. 如果自车和障碍物之间的距离大于上面计算的安全距离, 则认为可以安全换道的. HysteresisFilter是一种 Open Close 逻辑, 目的是增加安全判断结果的稳定性(上一帧判断结果认为是安全的, 那么这一帧就更倾向于给出是安全的判断, 反之亦然).

2.3. 更新 Reference Line

需要重写的内容是:LaneChangeDecider::PrioritizeChangeLane

  1. 输入:<span> </span>is_prioritize_change_lane. 如果is_prioritize_change_lanetrue, 则找自车要切换的目标参考线. 反之如果is_prioritize_change_lanefalse, 则找自车当前位置所在的 Lane 所在的参考线.
  2. reference_line_info->splice(reference_line_info->begin(),*reference_line_info, iter);将步骤 1 找到的iter所指向的参考线放在链表的最前面. 由于 Planning 后续模块使用的都是reference_line_info().front(), 所以链表的最前面就表示当帧就是使用的参考线. splice的使用详细说明见C++ 基础.
  3. 输出: ReferenceLineInfo
  4. 장애물이 차량과 같은 방향으로 이동하는지 확인same_direction. 장애물과 차량의 주행 방향 및 속도 간의 관계에 따라 별도로 계산합니다. 전방 안전거리 및 후방 안전거리.

위에서 계산한 안전거리보다 차량과 장애물 사이의 거리가 멀면 안전한 것으로 간주됩니다. 도교를 변경하세요. HysteresisFilter는 Open Close 로직의 일종으로, 보안 판단 결과의 안정성을 높이는 것이 목적입니다(이전 프레임의 판단 결과는 안전한 것으로 간주됩니다. 프레임은 안전한 판단을 내리는 경향이 더 크며 그 반대도 마찬가지입니다.Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석

2.3. 업데이트 참조 라인

LaneChangeDecider: :PrioritizeChangeLane

🎜🎜Input:<span> </span>is_prioritize_change_lane. Ifis_prioritize_change_lanetrue, 전환할 대상 참조선을 찾습니다. 그렇지 않은 경우 is_prioritize_change_lane false, 현재 자동차 위치가 있는 차선의 기준선을 찾습니다.🎜🎜reference_line_info->begin(),* reference_line_info, iter) ;iter가리키는 참조선은 연결 목록의 앞에 배치됩니다. 계획 이후 모듈에서는 ReferenceLineInfo 링크된 목록. 🎜🎜🎜🎜🎜🎜원본 링크: https://mp.weixin.qq.com/s/IQkBV8iadaU4Qy70F3Xs3Q🎜

위 내용은 Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자율주행 분야에서 Gaussian Splatting이 인기를 끌면서 NeRF가 폐기되기 시작한 이유는 무엇입니까? 자율주행 분야에서 Gaussian Splatting이 인기를 끌면서 NeRF가 폐기되기 시작한 이유는 무엇입니까? Jan 17, 2024 pm 02:57 PM

위에 작성됨 및 저자의 개인적인 이해 3DGS(3차원 가우스플래팅)는 최근 몇 년간 명시적 방사선장 및 컴퓨터 그래픽 분야에서 등장한 혁신적인 기술입니다. 이 혁신적인 방법은 수백만 개의 3D 가우스를 사용하는 것이 특징이며, 이는 주로 암시적 좌표 기반 모델을 사용하여 공간 좌표를 픽셀 값에 매핑하는 NeRF(Neural Radiation Field) 방법과 매우 다릅니다. 명시적인 장면 표현과 미분 가능한 렌더링 알고리즘을 갖춘 3DGS는 실시간 렌더링 기능을 보장할 뿐만 아니라 전례 없는 수준의 제어 및 장면 편집 기능을 제공합니다. 이는 3DGS를 차세대 3D 재구성 및 표현을 위한 잠재적인 게임 체인저로 자리매김합니다. 이를 위해 우리는 처음으로 3DGS 분야의 최신 개발 및 관심사에 대한 체계적인 개요를 제공합니다.

자율주행 시나리오에서 롱테일 문제를 해결하는 방법은 무엇입니까? 자율주행 시나리오에서 롱테일 문제를 해결하는 방법은 무엇입니까? Jun 02, 2024 pm 02:44 PM

어제 인터뷰 도중 롱테일 관련 질문을 해본 적이 있느냐는 질문을 받아서 간략하게 요약해볼까 생각했습니다. 자율주행의 롱테일 문제는 자율주행차의 엣지 케이스, 즉 발생 확률이 낮은 가능한 시나리오를 말한다. 인지된 롱테일 문제는 현재 단일 차량 지능형 자율주행차의 운영 설계 영역을 제한하는 주요 이유 중 하나입니다. 자율주행의 기본 아키텍처와 대부분의 기술적인 문제는 해결되었으며, 나머지 5%의 롱테일 문제는 점차 자율주행 발전을 제한하는 핵심이 되었습니다. 이러한 문제에는 다양한 단편적인 시나리오, 극단적인 상황, 예측할 수 없는 인간 행동이 포함됩니다. 자율 주행에서 엣지 시나리오의 "롱테일"은 자율주행차(AV)의 엣지 케이스를 의미하며 발생 확률이 낮은 가능한 시나리오입니다. 이런 희귀한 사건

카메라 또는 LiDAR를 선택하시겠습니까? 강력한 3D 객체 감지 달성에 대한 최근 검토 카메라 또는 LiDAR를 선택하시겠습니까? 강력한 3D 객체 감지 달성에 대한 최근 검토 Jan 26, 2024 am 11:18 AM

0. 전면 작성&& 자율주행 시스템은 다양한 센서(예: 카메라, 라이더, 레이더 등)를 사용하여 주변 환경을 인식하고 알고리즘과 모델을 사용하는 고급 인식, 의사결정 및 제어 기술에 의존한다는 개인적인 이해 실시간 분석과 의사결정을 위해 이를 통해 차량은 도로 표지판을 인식하고, 다른 차량을 감지 및 추적하며, 보행자 행동을 예측하는 등 복잡한 교통 환경에 안전하게 작동하고 적응할 수 있게 되므로 현재 널리 주목받고 있으며 미래 교통의 중요한 발전 분야로 간주됩니다. . 하나. 하지만 자율주행을 어렵게 만드는 것은 자동차가 주변에서 일어나는 일을 어떻게 이해할 수 있는지 알아내는 것입니다. 이를 위해서는 자율주행 시스템의 3차원 객체 감지 알고리즘이 주변 환경의 객체의 위치를 ​​포함하여 정확하게 인지하고 묘사할 수 있어야 하며,

Stable Diffusion 3 논문이 드디어 공개되고, 아키텍처의 세부 사항이 공개되어 Sora를 재현하는 데 도움이 될까요? Stable Diffusion 3 논문이 드디어 공개되고, 아키텍처의 세부 사항이 공개되어 Sora를 재현하는 데 도움이 될까요? Mar 06, 2024 pm 05:34 PM

StableDiffusion3의 논문이 드디어 나왔습니다! 이 모델은 2주 전에 출시되었으며 Sora와 동일한 DiT(DiffusionTransformer) 아키텍처를 사용합니다. 출시되자마자 큰 화제를 불러일으켰습니다. 이전 버전과 비교하여 StableDiffusion3에서 생성된 이미지의 품질이 크게 향상되었습니다. 이제 다중 테마 프롬프트를 지원하고 텍스트 쓰기 효과도 향상되었으며 더 이상 잘못된 문자가 표시되지 않습니다. StabilityAI는 StableDiffusion3이 800M에서 8B 범위의 매개변수 크기를 가진 일련의 모델임을 지적했습니다. 이 매개변수 범위는 모델이 많은 휴대용 장치에서 직접 실행될 수 있어 AI 사용이 크게 줄어든다는 것을 의미합니다.

자율주행과 궤도예측에 관한 글은 이 글이면 충분합니다! 자율주행과 궤도예측에 관한 글은 이 글이면 충분합니다! Feb 28, 2024 pm 07:20 PM

자율주행 궤적 예측은 차량의 주행 과정에서 발생하는 다양한 데이터를 분석하여 차량의 향후 주행 궤적을 예측하는 것을 의미합니다. 자율주행의 핵심 모듈인 궤도 예측의 품질은 후속 계획 제어에 매우 중요합니다. 궤적 예측 작업은 풍부한 기술 스택을 보유하고 있으며 자율 주행 동적/정적 인식, 고정밀 지도, 차선, 신경망 아키텍처(CNN&GNN&Transformer) 기술 등에 대한 익숙함이 필요합니다. 시작하기가 매우 어렵습니다! 많은 팬들은 가능한 한 빨리 궤도 예측을 시작하여 함정을 피하기를 희망합니다. 오늘은 궤도 예측을 위한 몇 가지 일반적인 문제와 입문 학습 방법을 살펴보겠습니다. 관련 지식 입문 1. 미리보기 논문이 순서대로 되어 있나요? A: 먼저 설문조사를 보세요, p

SIMPL: 자율 주행을 위한 간단하고 효율적인 다중 에이전트 동작 예측 벤치마크 SIMPL: 자율 주행을 위한 간단하고 효율적인 다중 에이전트 동작 예측 벤치마크 Feb 20, 2024 am 11:48 AM

원제목: SIMPL: ASimpleandEfficientMulti-agentMotionPredictionBaselineforAutonomousDriving 논문 링크: https://arxiv.org/pdf/2402.02519.pdf 코드 링크: https://github.com/HKUST-Aerial-Robotics/SIMPL 저자 단위: Hong Kong University of Science 및 기술 DJI 논문 아이디어: 이 논문은 자율주행차를 위한 간단하고 효율적인 모션 예측 기준선(SIMPL)을 제안합니다. 기존 에이전트 센트와 비교

nuScenes의 최신 SOTA | SparseAD: Sparse 쿼리는 효율적인 엔드투엔드 자율주행을 지원합니다! nuScenes의 최신 SOTA | SparseAD: Sparse 쿼리는 효율적인 엔드투엔드 자율주행을 지원합니다! Apr 17, 2024 pm 06:22 PM

전면 및 시작점 작성 엔드 투 엔드 패러다임은 통합 프레임워크를 사용하여 자율 주행 시스템에서 멀티 태스킹을 달성합니다. 이 패러다임의 단순성과 명확성에도 불구하고 하위 작업에 대한 엔드투엔드 자율 주행 방법의 성능은 여전히 ​​단일 작업 방법보다 훨씬 뒤떨어져 있습니다. 동시에 이전 엔드투엔드 방법에서 널리 사용된 조밀한 조감도(BEV) 기능으로 인해 더 많은 양식이나 작업으로 확장하기가 어렵습니다. 여기서는 희소 검색 중심의 엔드 투 엔드 자율 주행 패러다임(SparseAD)이 제안됩니다. 여기서 희소 검색은 밀집된 BEV 표현 없이 공간, 시간 및 작업을 포함한 전체 운전 시나리오를 완전히 나타냅니다. 특히 통합 스파스 아키텍처는 탐지, 추적, 온라인 매핑을 포함한 작업 인식을 위해 설계되었습니다. 게다가 무겁다.

엔드투엔드(End-to-End)와 차세대 자율주행 시스템, 그리고 엔드투엔드 자율주행에 대한 몇 가지 오해에 대해 이야기해볼까요? 엔드투엔드(End-to-End)와 차세대 자율주행 시스템, 그리고 엔드투엔드 자율주행에 대한 몇 가지 오해에 대해 이야기해볼까요? Apr 15, 2024 pm 04:13 PM

지난 달에는 몇 가지 잘 알려진 이유로 업계의 다양한 교사 및 급우들과 매우 집중적인 교류를 가졌습니다. 교환에서 피할 수 없는 주제는 자연스럽게 엔드투엔드와 인기 있는 Tesla FSDV12입니다. 저는 이 기회를 빌어 여러분의 참고와 토론을 위해 지금 이 순간 제 생각과 의견을 정리하고 싶습니다. End-to-End 자율주행 시스템을 어떻게 정의하고, End-to-End 해결을 위해 어떤 문제가 예상되나요? 가장 전통적인 정의에 따르면, 엔드 투 엔드 시스템은 센서로부터 원시 정보를 입력하고 작업과 관련된 변수를 직접 출력하는 시스템을 의미합니다. 예를 들어 이미지 인식에서 CNN은 기존의 특징 추출 + 분류기 방식에 비해 end-to-end 방식으로 호출할 수 있습니다. 자율주행 작업에서는 다양한 센서(카메라/LiDAR)로부터 데이터를 입력받아

See all articles