自动驾驶Player
分享自动驾驶感知预测决策规划控制算法,分享Apollo决策规划控制算法代码解析,分享Apollo规控算法仿真调试分析,分析自动驾驶从业经验。
展开
-
Apollo Planning2.0决策规划算法代码详细解析 (2): vscode gdb单步调试环境搭建
apollo planning2.0 在新版本中在降低学习和二次开发成本上进行了一些重要的优化,重要的优化有接口优化、task插件化、配置参数改造等。GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端(Shell)中使用,发展至今,GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等多种编程语言提供了支持。实际场景中,GDB 更常用来调试 C 和 C++ 程序原创 2023-10-05 09:51:43 · 1694 阅读 · 0 评论 -
Apollo Planning规划算法仿真调试(15):使用Vscode断点调试apollo的方法更新版
Apollo作为成熟的自动驾驶系统被广泛使用,但是关于它调试代码的方法却介绍很少,相信大家也一定希望可以在apollo代码中打断点,来看程序执行过程中的变量以及逻辑,本文将介绍如何使用Vscode打断点调试apollo。Vscode 作为轻量化的调试工具深受广大开发者的青睐,虽然大家都用它来看新闻逛论坛炒股,但是用它开发算法确实方便。4、此时可以使用Vscode的 Remote-Containers 插件来连接docker。8、接下来在对应cpp文件中打断点,就可以使用Vscode 的debug功能了。原创 2023-02-16 20:51:25 · 2539 阅读 · 5 评论 -
Apollo Planning规划算法仿真调试(14):Apollo中添加离线LGSVL仿真环境的HdMap实现联合仿真
1、离线LGSVL仿真环境增加地图后,Apollo的dreamview中并没有这个地图的Hdmap以及仿真地图,所以并不能进行联合仿真,需要在Apollo中添加Hdmap以及仿真地图,以新增Shalun为例说明添加过程;3、将找到位置下的base_map.bin 文件拷贝到apollo文件夹下的指定位置。4、在apollo docker主目录下运行下面指令。6、打开dreamview与lgsvl仿真器。2、在以下位置搜索shalun。...原创 2022-08-12 08:00:00 · 1347 阅读 · 4 评论 -
Apollo Planning规划算法仿真调试(13):交通规则决策器TrafficDecider (一)
Apollo(阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。reference_line_info->reference_line().map_path()中存取了很多语义信息的frenet坐标系的起始位置以及参考线优化后的frenet坐标系。从reference_line_info->reference_line().map_path()这个变量中读取。然后对搜索到的人形横道进行决策。...原创 2022-07-24 21:09:35 · 901 阅读 · 0 评论 -
Apollo Planning规划算法仿真调试(12): ubuntu18.04安装LGSVL-Pythton API与使用
LGSVL是自动驾驶开发过程中常用的仿真工具,它提供了高精地图标注过的丰富的场景,包括城市道路、高速公路、乡村道路、停车场等;除了可视化的配置仿真环境,SVL模拟器在运行时可以使用LGSVL-PythtonAPI脚本进行调度,可以使用该API操纵加载场景中的对象放置和车辆移动,检索传感器配置和数据,控制天气、时间状态等。2、安装依赖包,这一步由于ubuntu18.04默认python包是3.6,而依赖包的安装最好使用python3.9,所以应下载python3.9,并配置系统环境为3.9版本。......原创 2022-07-17 21:33:25 · 1142 阅读 · 0 评论 -
Apollo Planning规划算法仿真调试(11):速度规划ComputeSTBoundary
前言:在Apollo决策规划算法进行速度规划时,一个被称为 “ST 图 ” 的工具可以帮助设计和选择速度曲线。在 ST 图中, “s” 表示⻋辆的纵向位移、 “t” 表示时间。 ST 图上的曲线是对⻋辆运动的描述,因为它说明了⻋辆在不同时间的位置。由于速度是位置变化的速率,所以可以通过查看曲线的斜率从 ST图上推断速度。斜坡越陡则表示在更短的时间段内有更大的移动,对应更快的速度。本文将介绍在Apollo的决策规划算法中,是如何进行ST图的构建。...原创 2022-06-26 22:07:41 · 1732 阅读 · 0 评论 -
Apollo Planning规划算法仿真调试(10):LGSVL与Apollo联合仿真配置方法
Apollo Planning规划算法仿真调试(10):LGSVL与Apollo联合仿真配置方法原创 2022-06-21 22:07:33 · 1199 阅读 · 2 评论 -
Apollo Planning规划算法仿真调试(9):路径规划PathBoundsDecider下
PathBoundsDecider 是第四个task,PathBoundsDecider根据lane borrow决策器的输出、本车道以及相邻车道的宽度、障碍物的左右边界,来计算path 的boundary,从而将path 搜索的边界缩小,将复杂问题转化为凸空间的搜索问题,方便后续使用QP算法求解。它的作用主要是:根据借道信息、道路宽度生成FallbackPathBound根据借道信息、道路宽度生成、障碍物边界生成PullOverPathBound、LaneChangePathBound、Regula原创 2022-05-30 17:46:31 · 1190 阅读 · 2 评论 -
Apollo Planning规划算法仿真调试(8):路径规划PathBoundsDecider上
前言:PathBoundsDecider 是Apollo Planning规划算法的第四个task,PathBoundsDecider根据lane borrow决策器的输出、本车道以及相邻车道的宽度、障碍物的左右边界,来计算path 的boundary,从而将path 搜索的边界缩小,将复杂问题转化为凸空间的搜索问题,方便后续使用QP算法求解。它的作用主要是:根据借道信息、道路宽度生成FallbackPathBound 根据借道信息、道路宽度生成、障碍物边界生成PullOverPathBound、原创 2022-05-24 23:21:02 · 2367 阅读 · 0 评论 -
Apollo规划决策算法仿真调试(7):pnc_map模块详解GetRouteSegments规划局部地图生成下篇
前言:pnc_map在Apollo的决策规划算法planning模块中,是一个很重要的概念;它被封装在ReferenceLineProvider类中,主要的接口是GetRouteSegments();GetRouteSegments()是规划算法初始化阶段,以及在参考线ReferenceLine生成过程当中的重要接口,可以认为RouteSegments 是规划模块planning与routing模块以及HDmap的桥梁;RouteSegments可以理解为routing中的passage信息,也原创 2022-05-22 00:17:57 · 1717 阅读 · 0 评论 -
Apollo规划决策算法仿真调试(6):pnc_map模块详解GetRouteSegments规划局部地图生成上篇
前言:pnc_map在Apollo的决策规划算法planning模块中,是一个很重要的概念;它被封装在ReferenceLineProvider类中,主要的接口是GetRouteSegments();GetRouteSegments()是规划算法初始化阶段,以及在参考线ReferenceLine生成过程当中的重要接口,可以认为RouteSegments 是规划模块planning与routing模块以及HDmap的桥梁;RouteSegments可以理解为routing中的passage信息,也原创 2022-05-17 00:18:33 · 1516 阅读 · 0 评论 -
Apollo规划决策算法仿真调试(5):动态障碍物绕行
前言:最近很多粉丝问在apollo规划算法planning模块中,如何才能对运动的障碍物进行绕行。动态障碍物的绕行在量产项目中是一个很大的话题,需要很复杂的逻辑与场景去解决。这里先不讨论量产解法,提供一种在apollo的仿真环境中动态障碍物绕行的解决思路。先上动态障碍物绕行视频:Apollo规划决策算法仿真调试(4):动态障碍物绕行如果对Apollo规划决策算法仿真调试感兴趣,想了解规划算法的实施细节,可以持续关注系列文章:Apollo规划决策算法仿真调试(1): 使用Vsco原创 2022-05-10 13:39:19 · 9017 阅读 · 7 评论 -
Apollo规划决策算法仿真调试(4):从dreamview中获取导航数据
1、自带的单元测试案例中没有换道场景,所以应该首先自己编辑一个换道的场景。在dreamiew中选择导航的起始点,且起点与终点在相邻的两条道路上。并且打开sim_control, 并且打开routing与planning,在导航设置窗口选择导航点并发送,routing模块便会自动计算routing的request与response。打开routing与planning:选择导航点并发送:2、获取dreamview中生成的导航信息:(1)首先docker中cyber_mon...原创 2022-05-09 09:59:10 · 1503 阅读 · 6 评论 -
Apollo规划决策算法仿真调试(2):使用bazel 编译自定义代码模块
前言Bazel是一个类似于Make的编译工具,是Google为其内部软件开发的特点量身定制的工具,现在Google内部大部分软件都用Bazel进行构建。Apollo 使用Bazel来编译代码文件,Apollo提供了apollo.sh 脚本来进行编译,但apollo.sh 编译最小单元是modules,而且按照已经写好的build文件进行编译,如果新加cpp文件,则不能编译到。本文将介绍如何修改Bazel 的build 文件,指定Apollo 编译具体的cpp文件。正文如下:一、Apollo原创 2022-05-09 00:43:23 · 1389 阅读 · 10 评论 -
Apollo规划决策算法仿真调试(3):ReferenceLineProvider参考线生成流程
前言:在Apollo规划决策算法中,即planning模块中,参考线ReferenceLine 的作用至关重要,ReferenceLine 是整个规划算法的基础,规划的目的就是使车辆按照ReferenceLine行驶。目前关于ReferenceLine 的平滑方法介绍很多,但很少介绍ReferenceLine 在整个apollo的planning模块中,是在哪一步进行生成,它的整个运行机制与流程是怎样的。本文将使用vscode与dreamview 联合调试的方法,来展示ReferenceLine原创 2022-05-09 00:25:42 · 2258 阅读 · 9 评论 -
Apollo规划决策算法仿真调试(1): 使用Vscode断点调试apollo的方法
前言Vscode 作为轻量化的调试工具深受广大开发者的青睐,虽然大家都用它来看新闻逛论坛炒股,但是用它开发算法确实方便。Apollo作为成熟的自动驾驶系统被广泛使用,但是关于它调试代码的方法却介绍很少,相信大家也一定希望可以在apollo代码中打断点,来看程序执行过程中的变量以及逻辑,本文将介绍如何使用Vscode打断点调试apollo。如果对自动驾驶规划、控制、apollo算法细节、感知融合算法感兴趣,可以关注我的专栏:Apollo决策规划模块代码详解最新文章推荐:LQR算法进原创 2022-04-27 23:09:05 · 5182 阅读 · 17 评论