首页 > 其他分享 >Apollo动态障碍物绕行

Apollo动态障碍物绕行

时间:2024-06-21 20:32:29浏览次数:9  
标签:std 障碍物 bound label 绕行 regular back path Apollo

Apollo动态障碍物绕行

附赠自动驾驶最全的学习资料和量产经验:链接

1、动态障碍物绕行分析:

image

2、PathLaneBorrowDecider分析

需要进入借道场景才可以触发绕行功能。

3、PathBoundsDecider分析:

可以看到经过PathBoundsDecider计算后,总共形成3个pathBoundary,分别是fallback、regular、right-forward

image

相关代码如下:

// Update the path boundary into the reference_line_info.
    std::vector<std::pair<double, double>> regular_path_bound_pair;
    for (size_t i = 0; i < regular_path_bound.size(); ++i) {
      regular_path_bound_pair.emplace_back(std::get<1>(regular_path_bound[i]),
                                           std::get<2>(regular_path_bound[i]));
    }
    candidate_path_boundaries.emplace_back(std::get<0>(regular_path_bound[0]),
                                           kPathBoundsDeciderResolution,
                                           regular_path_bound_pair);
    std::string path_label = "";
    switch (lane_borrow_info) {
      case LaneBorrowInfo::LEFT_BORROW:
        path_label = "left";
        break;
      case LaneBorrowInfo::RIGHT_BORROW:
        path_label = "right";
        break;
      default:
        path_label = "self";
        // exist_self_path_bound = true;
        // regular_self_path_bound = regular_path_bound;
        break;
    }
    // RecordDebugInfo(regular_path_bound, "", reference_line_info);
    candidate_path_boundaries.back().set_label(
        absl::StrCat("regular/", path_label, "/", borrow_lane_type));
    candidate_path_boundaries.back().set_blocking_obstacle_id(
        blocking_obstacle_id);
  }

4、PathAssessmentDecider分析

PathAssessmentDecider中进行路径选择,排序前:

image

排序后:

image

5、最终选择的路径

可以看到,最终选择的路径是向右借道的路径。

路径如下:

image

6、最终结果如下:

image

标签:std,障碍物,bound,label,绕行,regular,back,path,Apollo
From: https://blog.csdn.net/adas_l5/article/details/139869246

相关文章

  • CMU最新论文:机器人智慧流畅的躲避障碍物论文详细讲解
    CMU华人博士生TairanHe最新论文:AgileButSafe:LearningCollision-FreeHigh-SpeedLeggedLocomotion代码开源:Code:https://github.com/LeCAR-Lab/ABSB站实际效果展示视频地址:bilibili效果地址我会详细解读论文的内容,让我们开始吧。敏捷且安全:学习无碰撞的高速腿......
  • Apollo 决策规划代码详细解析 :Stage逻辑详解
    Apollo 决策规划代码详细解析 :Stage逻辑详解附赠自动驾驶最全的学习资料和量产经验:链接在本文你将学到下面这些内容:Stage中如何对task进行注册;Stage中如何调用task执行规划任务;LaneFollowStage 包含哪些task;LaneFollowStage 的详细运行逻辑;PlanOnReferenc......
  • 自动驾驶 Apollo 源码分析:ProcessMonitor
    自动驾驶 Apollo 源码分析:ProcessMonitor本篇文章分析 Apollo 中监控模块中监控进程状态的相关代码。附赠自动驾驶最全的学习资料和量产经验:链接1. ProcessMonitorProcessMonitor 是一个普通的定时器组件,内部函数也只是常规的 RunOnce 和 UpdateStatus,所以,......
  • Apollo(配置管理工具)
    介绍Python读取配置参数通常使用处理yaml,conf配置文件和env环境变量,这种配置方式比较方便本地加载,在微服务分布式部署时对这些配置需要集中管理,并支持热更新则引入了Apollo Apollo(阿波罗) 是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不......
  • 服务发现全流程解析-APOLLO7.0
    cyber服务发现完全依赖于fastDDS,下面从底层一步一步看下服务发现的整个过程。topology_manager.cc首先从这个类看起,这个类是和dds接壤的,dds发现后,完全由这个类接管,然后整体开始通信。TopologyManager::TopologyManager():init_(false),node_manager_(nullptr),......
  • apollo高精度地图标注
    apollo高精度地图标注附赠自动驾驶最全的学习资料和量产经验:链接上一篇文章已经介绍点云地图的制作方法,完成之后就可以得到城市或园区的三维地图了,之后需要标注语义信息,提供给自动驾驶车辆使用。目前暂时没有找到非常好用的开源语义标注工具,本文采用RoadRunner[1],它是商......
  • 常春藤算法(Ivy algorithm,LVYA)的复杂城市地形下无人机避障三维航迹规划,可以修改障碍物
    一、部分代码常春藤算法(Ivyalgorithm,LVYA)是MojtabaGhasemi等人于2024年提出智能优化算法。该算法模拟了常春藤植物的生长模式,通过协调有序的种群增长以及常春藤植物的扩散和演化来实现。常春藤植物的生长速率是通过微分方程和数据密集型实验过程建模的。该算法利用附近常春......
  • 蛇鹫优化算法(Secretary bird optimization algorithm,SBOA)的复杂城市地形下无人机避障
    一、部分代码蛇鹫优化算法(Secretarybirdoptimizationalgorithm,SBOA)由FuYoufa等人于2024年提出,该算法的灵感来自于蛇鹫在自然环境中的生存行为。参考文献:[1]FuY,LiuD,ChenJ,etal.Secretarybirdoptimizationalgorithm:anewmetaheuristicforsolvinggloba......
  • NodeJs + GraphQl 基于Apollo Server (2)
     基于上一篇的项目继续深入学习和介绍项目中如何使用GraphQl.本篇更侧重于实际项目中使用GraphQL.如果还没有了解基本的GraphQl知识和没用想要新建项目开始演练的可从上一篇开始如何在NodeJs搭建GraphQLserviceApolloServer(1).1.重构app.js和service.mjs 1.1修改s......
  • Apollo 计算几何算法
    Apollo 计算几何算法1. 介绍Planning 模块中, 路径和速度曲线都被抽象成 Polyline, 障碍物被抽象成 Polygon. 在碰撞检测、投影计算距离、平滑曲线等方面都大量运用到了几何算法. 在本文中, 将介绍 Apollo 所用到的计算几何相关的基础库, 包括LineSegment2d......