Table des matières
1. Introduction
1.1. La fonction du changement de voie
1.2. Machine d'état de changement de voie
2. Analyse du code
2.2. 安全检查
2.3. 更新 Reference Line
2.3 Mettre à jour la ligne de référence
Maison Périphériques technologiques IA Une analyse approfondie de la stratégie de changement de voie d'Apollo et de son application pratique

Une analyse approfondie de la stratégie de changement de voie d'Apollo et de son application pratique

Nov 07, 2023 am 11:37 AM
技术 自动驾驶

1. Introduction

1.1. La fonction du changement de voie

En termes simples, la fonction du changement de voie est de sélectionner l'une des lignes de référence parmi les lignes de référence à sélectionner pour être utilisée par les modules de planification suivants.

Une analyse approfondie de la stratégie de changement de voie dApollo et de son application pratique

Il est à noter que le code de changement de voie open source d'Apollo a été fortement réduit, ne laissant qu'un simple cadre. De nombreuses fonctions, telles que le changement de voie actif, le changement de voie passif (en raison d'obstacles), la machine d'état relativement complète, la fenêtre de changement de voie et la sélection d'écart, etc., manquent. Cet article technique affiche uniquement le contenu du framework existant. Concernant le contenu des autres fonctions de changement de voie, veuillez attendre avec impatience les articles suivants

1.2. Machine d'état de changement de voie

La machine d'état de changement de voie actuelle d'Apollo est la suivante :

Une analyse approfondie de la stratégie de changement de voie dApollo et de son application pratique

Il y a quelques points à noter à propos la machine d'état :

  • Le IN_CHANGE_LANE comprend ici à la fois les étapes d'exécution du changement de voie et de préparation du changement de voie. Dans des circonstances normales, Apollo adopte d'abord la méthode de commutation de ligne de référence, puis d'exécution de l'action de changement de voie. adoptera également la méthode d'exécution du changement de voie en premier. L'action réside dans la méthode de changement de ligne de référence (l'avantage est qu'au moment où la ligne de référence est changée, la distance latérale de votre propre voiture est proche de 0).
  • Le code actuel ne reflète pas le moment où le changement de voie échouera. Il y a également des raisons de croire que cela est dû à la suppression du code concerné.
  • L'état complet du changement de voie doit au moins inclure : la préparation du changement de voie, la voie. exécution du changement, maintenance du changement de voie, annulation du changement de voie, achèvement du changement de voie et autres statuts.

2. Analyse du code

2.1.Processus global

Chemin de code pertinent : modules/planification/tâches/décideurs/lane_change_decider. /http://lane_change_decider.cc

  1. Processingreference_line_info est une exception vide.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

Si le changement de voie forcé est configuréreckless_change_lane est true, puis mettez directement à jour la ligne de référence.
  1. Obtenez la voie du cadre précédent change stateprev_status, lorsque vous entrez dans le programme pour la première fois, il peut s'agir de prev_status n'a aucune information d'état (!prev_status->has_status()), à ce moment-là, c'est directement considéré que le changement de voie est terminé
  2. Si reference_line_info est 1 (c'est-à-dire has_change_lane est false), indiquant que le véhicule est en état de patrouille, et la voie où se trouve actuellement le véhicule a la seule ligne de voie, il n'y a pas de voies variables autour, il suffit donc de mettre à jour directement l'état de changement de voie
Changer la machine d'état de changement de voie

Une analyse approfondie de la stratégie de changement de voie dApollo et de son application pratique

    Le cadre précédent était dans le. état de changement de voieChangeLaneStatus::IN_CHANGE_LANE : Si ci-dessus Si la voie où le véhicule se trouve dans un cadre est la même que la voie où il se trouve dans ce cadre, cela signifie que le véhicule continue de marcher vers le voie cible. Au contraire, si la voie où se trouve le véhicule dans le cadre précédent est différente de la voie où se trouve le véhicule dans ce cadre, cela signifie que le véhicule s'est déjà déplacé sur la voie cible, le commutateur s'est déplacé. été terminé. 🎜🎜L'image précédente était dans un état d'échec de changement de voieChangeLaneStatus::CHANGE_LANE_FAILED : si le changement de voie échoue, l'état sera gelé pendant un certain temps, puis passera à l'état de changement de voie . Préparez-vous pour le prochain changement de voie. 🎜🎜L'image précédente est dans l'état d'achèvement du changement de voieChangeLaneStatus::CHANGE_LANE_FINISHED : une fois le changement de voie réussi, il se bloquera également pendant un certain temps, puis changera à l'état de changement de voie pour le prochain changement de voie. Préparez-vous aux changements de voie ici pour éviter les changements de voie fréquents 🎜

2.2. p>IsClearToChangeLane détermine si le changement de voie est de sécurité.🎜🎜🎜Cette méthode de jugement de sécurité ne prend pas en compte les obstacles virtuels (Virtual Obstacles) et les obstacles statiques (Static Obstacles).🎜🎜Calculez la projection des obstacles dynamiques sur le Ligne de référence. La signification géométrique de la projection est celle indiquée dans la figure ci-dessous :🎜 🎜🎜🎜🎜
  1. Si votre voiture change de voieIsChangeLanePath, utilisez la relation de projection calculée ci-dessus pour ignorer en dehors de la voie de la ligne de référence cible obstacles.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. Déterminez si l'obstacle se déplace dans la même direction que le véhiculesame_direction. Calculer séparément en fonction de la relation entre l'obstacle et la direction et la vitesse de conduite du véhicule Distance de sécurité avant et distance de sécurité arrière.

Si la distance entre le véhicule et l'obstacle est supérieure à la distance de sécurité calculée ci-dessus, il est considéré comme sécuritaire de changez de taoïste. HysteresisFilter est une sorte de logique Open Close, le but est d'augmenter la stabilité du résultat du jugement de sécurité (le résultat du jugement de la trame précédente est considéré comme sûr, alors ceci frame sera plus enclin à donner un jugement sûr, et vice versa).Une analyse approfondie de la stratégie de changement de voie dApollo et de son application pratique

2.3 Mettre à jour la ligne de référence

Le contenu qui doit être réécrit est : LaneChangeDecider : :PrioritizeChangeLane

🎜🎜Input :<span> </span>is_prioritize_change_lane. Ifis_prioritize_change_lane est true, puis recherchez la ligne de référence cible à changer. Sinon, si is_prioritize_change_lane est false, puis recherchez la ligne de référence de la voie où se trouve la position actuelle de la voiture.🎜🎜reference_line_info->splice(reference_line_info->begin(),* reference_line_info, iter) ; Modifiez le iterLa ligne de référence pointée est placée au début de la liste chaînée. Depuis la planification des modules suivants, utilisez reference_line_info().front(), donc le devant de la liste chaînée Cela signifie que le cadre est la ligne de référence utilisée.<span> </span><code style="background-color: rgb(231, 243, 237); padding: 1px 3px ; border-radius : 4px ; overflow-wrap : break-word ; text-indent : 0px ; display : inline-block;">splice Pour des instructions détaillées, voir les bases de C++.🎜🎜Sortie : ReferenceLineInfo liste chaînée. 🎜🎜🎜🎜🎜🎜Lien original : https://mp.weixin.qq.com/s/IQkBV8iadaU4Qy70F3Xs3Q🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi le Gaussian Splatting est-il si populaire dans la conduite autonome que le NeRF commence à être abandonné ? Pourquoi le Gaussian Splatting est-il si populaire dans la conduite autonome que le NeRF commence à être abandonné ? Jan 17, 2024 pm 02:57 PM

Écrit ci-dessus et compréhension personnelle de l'auteur Le Gaussiansplatting tridimensionnel (3DGS) est une technologie transformatrice qui a émergé dans les domaines des champs de rayonnement explicites et de l'infographie ces dernières années. Cette méthode innovante se caractérise par l’utilisation de millions de gaussiennes 3D, ce qui est très différent de la méthode du champ de rayonnement neuronal (NeRF), qui utilise principalement un modèle implicite basé sur les coordonnées pour mapper les coordonnées spatiales aux valeurs des pixels. Avec sa représentation explicite de scènes et ses algorithmes de rendu différenciables, 3DGS garantit non seulement des capacités de rendu en temps réel, mais introduit également un niveau de contrôle et d'édition de scène sans précédent. Cela positionne 3DGS comme un révolutionnaire potentiel pour la reconstruction et la représentation 3D de nouvelle génération. À cette fin, nous fournissons pour la première fois un aperçu systématique des derniers développements et préoccupations dans le domaine du 3DGS.

Comment résoudre le problème de la longue traîne dans les scénarios de conduite autonome ? Comment résoudre le problème de la longue traîne dans les scénarios de conduite autonome ? Jun 02, 2024 pm 02:44 PM

Hier, lors de l'entretien, on m'a demandé si j'avais posé des questions à longue traîne, j'ai donc pensé faire un bref résumé. Le problème à longue traîne de la conduite autonome fait référence aux cas extrêmes dans les véhicules autonomes, c'est-à-dire à des scénarios possibles avec une faible probabilité d'occurrence. Le problème perçu de la longue traîne est l’une des principales raisons limitant actuellement le domaine de conception opérationnelle des véhicules autonomes intelligents à véhicule unique. L'architecture sous-jacente et la plupart des problèmes techniques de la conduite autonome ont été résolus, et les 5 % restants des problèmes à longue traîne sont progressivement devenus la clé pour restreindre le développement de la conduite autonome. Ces problèmes incluent une variété de scénarios fragmentés, de situations extrêmes et de comportements humains imprévisibles. La « longue traîne » des scénarios limites dans la conduite autonome fait référence aux cas limites dans les véhicules autonomes (VA). Les cas limites sont des scénarios possibles avec une faible probabilité d'occurrence. ces événements rares

Choisir une caméra ou un lidar ? Une étude récente sur la détection robuste d'objets 3D Choisir une caméra ou un lidar ? Une étude récente sur la détection robuste d'objets 3D Jan 26, 2024 am 11:18 AM

0. Écrit à l'avant&& Compréhension personnelle que les systèmes de conduite autonome s'appuient sur des technologies avancées de perception, de prise de décision et de contrôle, en utilisant divers capteurs (tels que caméras, lidar, radar, etc.) pour percevoir l'environnement et en utilisant des algorithmes et des modèles pour une analyse et une prise de décision en temps réel. Cela permet aux véhicules de reconnaître les panneaux de signalisation, de détecter et de suivre d'autres véhicules, de prédire le comportement des piétons, etc., permettant ainsi de fonctionner en toute sécurité et de s'adapter à des environnements de circulation complexes. Cette technologie attire actuellement une grande attention et est considérée comme un domaine de développement important pour l'avenir des transports. . un. Mais ce qui rend la conduite autonome difficile, c'est de trouver comment faire comprendre à la voiture ce qui se passe autour d'elle. Cela nécessite que l'algorithme de détection d'objets tridimensionnels du système de conduite autonome puisse percevoir et décrire avec précision les objets dans l'environnement, y compris leur emplacement,

Le papier Stable Diffusion 3 est enfin publié, et les détails architecturaux sont révélés. Cela aidera-t-il à reproduire Sora ? Le papier Stable Diffusion 3 est enfin publié, et les détails architecturaux sont révélés. Cela aidera-t-il à reproduire Sora ? Mar 06, 2024 pm 05:34 PM

L'article de StableDiffusion3 est enfin là ! Ce modèle est sorti il ​​y a deux semaines et utilise la même architecture DiT (DiffusionTransformer) que Sora. Il a fait beaucoup de bruit dès sa sortie. Par rapport à la version précédente, la qualité des images générées par StableDiffusion3 a été considérablement améliorée. Il prend désormais en charge les invites multithèmes, et l'effet d'écriture de texte a également été amélioré et les caractères tronqués n'apparaissent plus. StabilityAI a souligné que StableDiffusion3 est une série de modèles avec des tailles de paramètres allant de 800M à 8B. Cette plage de paramètres signifie que le modèle peut être exécuté directement sur de nombreux appareils portables, réduisant ainsi considérablement l'utilisation de l'IA.

Cet article vous suffit pour en savoir plus sur la conduite autonome et la prédiction de trajectoire ! Cet article vous suffit pour en savoir plus sur la conduite autonome et la prédiction de trajectoire ! Feb 28, 2024 pm 07:20 PM

La prédiction de trajectoire joue un rôle important dans la conduite autonome. La prédiction de trajectoire de conduite autonome fait référence à la prédiction de la trajectoire de conduite future du véhicule en analysant diverses données pendant le processus de conduite du véhicule. En tant que module central de la conduite autonome, la qualité de la prédiction de trajectoire est cruciale pour le contrôle de la planification en aval. La tâche de prédiction de trajectoire dispose d'une riche pile technologique et nécessite une connaissance de la perception dynamique/statique de la conduite autonome, des cartes de haute précision, des lignes de voie, des compétences en architecture de réseau neuronal (CNN&GNN&Transformer), etc. Il est très difficile de démarrer ! De nombreux fans espèrent se lancer dans la prédiction de trajectoire le plus tôt possible et éviter les pièges. Aujourd'hui, je vais faire le point sur quelques problèmes courants et des méthodes d'apprentissage introductives pour la prédiction de trajectoire ! Connaissances introductives 1. Existe-t-il un ordre d'entrée pour les épreuves de prévisualisation ? R : Regardez d’abord l’enquête, p

SIMPL : un benchmark de prédiction de mouvement multi-agents simple et efficace pour la conduite autonome SIMPL : un benchmark de prédiction de mouvement multi-agents simple et efficace pour la conduite autonome Feb 20, 2024 am 11:48 AM

Titre original : SIMPL : ASimpleandEfficientMulti-agentMotionPredictionBaselineforAutonomousDriving Lien article : https://arxiv.org/pdf/2402.02519.pdf Lien code : https://github.com/HKUST-Aerial-Robotics/SIMPL Affiliation de l'auteur : Université des sciences de Hong Kong et technologie Idée DJI Paper : cet article propose une base de référence de prédiction de mouvement (SIMPL) simple et efficace pour les véhicules autonomes. Par rapport au cent agent traditionnel

NuScenes dernier SOTA SparseAD : les requêtes clairsemées contribuent à une conduite autonome efficace de bout en bout ! NuScenes dernier SOTA SparseAD : les requêtes clairsemées contribuent à une conduite autonome efficace de bout en bout ! Apr 17, 2024 pm 06:22 PM

Écrit à l'avant et point de départ Le paradigme de bout en bout utilise un cadre unifié pour réaliser plusieurs tâches dans les systèmes de conduite autonome. Malgré la simplicité et la clarté de ce paradigme, les performances des méthodes de conduite autonome de bout en bout sur les sous-tâches sont encore loin derrière les méthodes à tâche unique. Dans le même temps, les fonctionnalités de vue à vol d'oiseau (BEV) denses, largement utilisées dans les méthodes de bout en bout précédentes, rendent difficile l'adaptation à davantage de modalités ou de tâches. Un paradigme de conduite autonome de bout en bout (SparseAD) centré sur la recherche clairsemée est proposé ici, dans lequel la recherche clairsemée représente entièrement l'ensemble du scénario de conduite, y compris l'espace, le temps et les tâches, sans aucune représentation BEV dense. Plus précisément, une architecture clairsemée unifiée est conçue pour la connaissance des tâches, notamment la détection, le suivi et la cartographie en ligne. De plus, lourd

FisheyeDetNet : le premier algorithme de détection de cible basé sur une caméra fisheye FisheyeDetNet : le premier algorithme de détection de cible basé sur une caméra fisheye Apr 26, 2024 am 11:37 AM

La détection de cibles est un problème relativement mature dans les systèmes de conduite autonome, parmi lesquels la détection des piétons est l'un des premiers algorithmes à être déployés. Des recherches très complètes ont été menées dans la plupart des articles. Cependant, la perception de la distance à l’aide de caméras fisheye pour une vue panoramique est relativement moins étudiée. En raison de la distorsion radiale importante, la représentation standard du cadre de délimitation est difficile à mettre en œuvre dans les caméras fisheye. Pour alléger la description ci-dessus, nous explorons les conceptions étendues de boîtes englobantes, d'ellipses et de polygones généraux dans des représentations polaires/angulaires et définissons une métrique de segmentation d'instance mIOU pour analyser ces représentations. Le modèle fisheyeDetNet proposé avec une forme polygonale surpasse les autres modèles et atteint simultanément 49,5 % de mAP sur l'ensemble de données de la caméra fisheye Valeo pour la conduite autonome.

See all articles