- 博客(19)
- 收藏
- 关注
原创 unordered_map的介绍与用法
介绍示例代码std::unordered_map 是 C++ STL 标准库中的一个关联容器,提供了一种将键映射到值的方法。它是使用哈希表实现的,可以在 O(1)O(1)(平均情况下)的时间复杂度内完成插入、查找和删除操作。使用 std::unordered_map 需要包含头文件 。insert(key, value):将 (key, value) 键值对插入到 unordered_map 中。at(key):返回键为 key 的值的引用。
2023-05-17 15:36:06 1780
原创 轨迹规划综述
轨迹规划(Trajectories Planning)主要指考虑实际临时或者移动障碍物,考虑速度,动力学约束的情况下,尽量按照规划路径进行轨迹规划。轨迹规划的核心就是要解决车辆该怎么走的问题。轨迹规划的输入包括拓扑地图,障碍物及障碍物的预测轨迹,交通信号灯的状态,还有定位导航(因为要知道目的地是哪才能规划路径)、车辆状态等其他信息。而轨迹规划的输出就是一个轨迹,轨迹是一个时间到位置的函数,就是在特定的时刻车辆在特定的位置上。轨迹规划综述轨迹规划的目标是计算出安全、舒适的轨迹供无人驾驶车辆完成预定的行驶
2021-09-04 10:29:36 8496
原创 ubuntu 安装protobuf
ubuntu 安装protobuf问题原因卸载之前的protobuf安装protobuf最近安装ros导致之前工程中使用protobuf版本不一致,出现“未定义的引用****google :: protobuf :: internal :: empty_string_ [abi:cxx11](Undefined reference to google::protobuf::internal::empty_string_[abi:cxx11])”这样的问题导致程序编译不过,搜索网上的解决办法,相互交流一下,
2021-06-15 12:48:00 1004
转载 无人车轨迹规划机制
无人车轨迹规划机制介绍完前面的模块和组件部分的具体技术,在最后一部分就综合介绍一下Planning规划模块的整体流程。整个流程主要分两部分:1. 参考线提供器独立子线程:参考线提供的功能已经在指引线提供器: ReferenceLineProvider中讲解完毕。他根据车辆当前的定位信息(来自Localization模块)和底盘信息(来自Chassis模块),构建规划与控制地图: Pnc Map。参考线提供器使用Pnc map完成其主要的功能:功能1:初级参考线vector生成(未经过平滑的Se
2021-02-25 20:26:00 1072
转载 EM规划器:EMPlanner
EM规划器:EMPlannerEM规划器,也是规划模块Planning的核心,主要的任务是根据:感知模块Perception和预测模块Prediction得到的障碍物以及未来时间(e.g. 5s内)的运动轨迹当前路况,禁停区、减速带、停车标志、人行横道等等来最终规划无人车的最优行驶路径。从参考线提供器ReferenceLineProvider可以看到,当无人车面临变道时,就会存在多条参考线(变道时间可随机扰动,变道早可能进入车道1,变道晚就可能进入车道2)。那么EM规划器就需要计算每条参考线上的
2021-02-25 20:21:11 10236 1
转载 障碍物&参考线&交通规则融合器:Frame类
障碍物&参考线&交通规则融合器:Frame类在Frame类中,主要的工作还是对障碍物预测轨迹(由Predition模块得到的未来5s内障碍物运动轨迹)、无人车参考线(ReferenceLineProvider类提供)以及当前路况(停车标志、人行横道、减速带等)信息进行融合。实际情况下,能影响无人车运动的不一定只有障碍物,同时还有各个路况,举个例子:a. 障碍物影响情况1:无人车车后的障碍物,对无人车没太大影响,可以忽略情况2:无人车前面存在障碍物,无人车就需要停车或者超车b. 路
2021-02-25 20:16:28 2552
转载 vehicle_state_provider
车辆状态提供器: VehicleStateProvider在这一小节,我们将介绍最简单的组件,车辆状态提供器。顾名思义,就是提供当前无人车的各类状态信息,车辆状态提供器的输入包括定位数据Localization以及底盘信息Chassis。首先我们可以看一下VehicleStateProvider成员,其实很简单,只有两个成员变量:车辆状态信息vehicle_state_定位信息original_localization_/// file in apollo/modules/common/veh
2021-02-25 20:10:44 857 1
转载 Apollo 2.0/2.5 规划模块代码层次结构说明
Apollo 2.0/2.5 规划模块代码层次结构说明本文档将从代码层面讲解Apollo Planning规划模块的工作,规划模块是一个相对比较复杂的模块,他可以接受来自定位Localization、高精地图HD Map、交通灯模块Traffic Light,路由模块Routing以及预测模块Prediction的信息,并且综合上述信息,给出无人驾驶汽车在当前环境下短期内的路径规划。注意这个规划仅仅是短期的。Apollo针对路径规划的思想是,利用Routing模块产生一条当前位置到终点的路径,这条路径是
2021-02-25 19:57:21 1313 2
转载 CMake使用介绍
CMake是一个跨平台的编译自动配置工具,它使用一个名为CMakeLists.txt的文件来描述构建过程,可以产生标准的构建文件。它可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用。CMa
2020-08-31 16:13:25 342
转载 reference_line_provider
参考线提供器: ReferenceLineProvider本小节主要介绍参考线提供器的功能,参考线提供器主要完成的工作是计算车辆在规划路径上的短期可行路径。在控制规划地图Pnc Map中,有一个功能是路径段RouteSegments生成最终路径Path,这个Path就是车辆在规划路径上的可行路径,但是路径是以std::vector<common::math::LineSegment2d> segments_和std::vector<MapPathPoint> path_points
2020-08-20 13:12:35 2640
转载 pnc_map模块(规划与控制地图)
pnc map其实和高精地图hd map没有关系,后者是专门为规划与控制模块设计的库函数,在hd map层次之上,负责一些地图相关信息的处理。例如查询车辆可能的形式路由段(list),然后对每个路由段合成一个路径Path,这是pnc map最重要的功能。pnc map目前被封装在指引线提供器ReferenceLineProvider中,但是由于其功能比较集中,我们单独将他拿出来讲解。规划控制地图pnc map主要的功能有三个:更新路由信息。这部分接受Routing模块的路径查询响应,将其响应信息处理
2020-08-12 20:00:37 11218 6
原创 Relative_map模块
Relative_map模块1.relative_map模块功能相对地图模块是在车身坐标系—前-左-天坐标(The Vehicle Frame —Front-Left-Up,FLU)下,相对地图模块是连接HDMap / Perception模块和计划模块的中间层。 该模块在身体坐标系(FLU)中生成实时相对地图和用于规划的参考线。 相对地图模块的输入包含两个部分:离线和在线。 离线部分是导航线(人类驾驶路径)以及导航线及其附近的HDMap信息。 在线部分是来自感知模块的交通标志相关信息,例如车道标记,人
2020-08-12 19:56:38 1812 1
原创 protobuf应用到vs2013中
由于项目需要用到protobuf——谷歌protobuf的是google的一个强大的网络传输协议,protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。考虑到很多人使用vs的编译工具,描述将protobuf添加到vs的项目中。1.准备工作在使用之前需要下载protobuf源码,以及编译工具,这里通常采用cmake来编译,...
2020-03-16 19:39:17 738 1
原创 vs2013 调试出现error LNK1104: 无法打开文件“libprotocd.lib”
在将谷歌的protobuf数据格式运用到vs2013中时,遇到error LNK1104: 无法打开文件“libprotocd.lib”文件,但之前添加过protobuf编译的文件到vs的附加文件目录中去了,分析原因应该是库文件的路径没有添加进去,整理网上的回答,希望可以减少踩坑。1.问题描述项目工程中需要用到谷歌的protobuf进行数据通信,在网上下载了protobuf源码,进行cmake...
2020-03-04 11:52:10 3619
原创 vs2013 调试出现error C1083无法打开包括的文件
最近帮忙调试工程项目的时候发现拿到别人工程项目时编译总是报C1083错误无法打开包括的文件,但是真实的项目中,这些头文件以及相应的依赖库都存在,分析原因,主要是包含的路径不对,整理网上的回答,希望不要继续踩坑。1. 问题描述在拿到别人工程项目的时候,编译一直报如下图这样的错误:但是实际上我的项目中确实有相应的头文件,而且在vs的项目文件.vcxproj如下图所示中相对路径却是正确的本工...
2020-03-03 21:32:54 6346 3
原创 Routing模块之A*搜索算法
Routing模块的结果是planning模块生成参考线的基础,也就是通常所说的全局路径规划,routing模块中除了对地图的抽象处理为可供搜索的topo地图,以及通过KDtree生成黑名单地图外核心算法是通过A*算法生成全局路径,本文这里主要介绍routing模块中如何同过A*算法在topo地图中搜索全局路径。
2020-01-19 19:28:07 1334 2
原创 Apollo环境下的调试
在安装完Apollo的环境之后如何使用Apollo系统进行调试运行是了解该系统的基础,网上以及官方说明文档也有,主要是下载Apollo提供的数据包,看看数据效果,本文主要是针对代码调试自己需要了解的模块,这里主要以规划控制模块为例,其他模块与之类似。本文主要对规划中的全局路径规划(Routing)模块、决策规划(Planning)模块的运行过程进行说明,并介绍了如何在planning中添加障碍物,以及planning中对障碍物的决策进行说明。
2020-01-19 19:02:27 2671 5
原创 Apollo无人驾驶平台的离线搭建与使用
Apollo无人驾驶平台的离线搭建与使用1.准备工作2.安装相关依赖环境2.1 安装ubuntu16.042.2 安装ROS环境2.3 安装docker2.4 加载docker的镜像3. 使用Apollo仿真平台3.1 启动并进入docker3.2 编译与运行对于学习无人驾驶的人来说,apollo是一个比较完整且系统的无人驾驶平台,比较适合入门。学习的第一步是安装并使用该平台,安装过程中网上有很...
2019-12-14 16:24:13 2092 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人