apollo

apollo

docs/technical_tutorial/apollo_3.0_technical_tutorial_cn.md · ApolloAuto/apollo - Gitee.com

apollo17个功能包

其中每个模块的作用如下:

 

apollo/modules/calibration : 校准模块,使用前必须对系统进行校准和标定,包括激光雷达与摄像头、毫米波雷达与摄像头等。所谓校准就是要对齐激光雷达、摄像头以及毫米波雷达获得的信息,我们知道激光雷达可以获得详细的3D信息,但是不能获得颜色信息,摄像头可以获得颜色信息,但是无法获得深度等3D信息,毫米波雷达不能获得颜色信息,但是可以获得3D信息,三者获得的信息对齐后,就可以同时获得实际环境中的3D信息和颜色信息。

apollo/modules/canbus:汽车can总线控制模块。接收控制指令,同时给控制模块control发送车身状态信息。

apollo/modules/common:公共源码模块。包括如日志,工厂模式的实现,日志系统,监控模块,数学算法等。

apollo/modules/control:控制模块。基于决策规划的输出路径及车身的状态使用不同的控制算法来输出控制命令,如转向刹车,控制等。

apollo/modules/data:数据模块。收集、存储、处理收集到的各种数据的

apollo/modules/dreamview:可视化模块。查看规划的轨迹及实时的转向刹车油门信息

apollo/modules/drivers:驱动模块。各种传感器驱动。

apollo/modules/e2eend to end,端到端强化学习。

所谓e2e指的是由传感器的输入,直接决定车的行为,例如油门,刹车,方向等。也就是机器学习的算法直接学习人类司机的驾驶行为。这部分在代码中需要另外下载,学习的数据主要来源于传感器的原始数据,包括图像、激光雷达、雷达等。end-to-end输入以图像为主。 输出是车辆的控制决策指令,如方向盘角度、加速、刹车。 连接输入输出的是深度神经网络,即通过神经网络直接生成车辆控制指令对车辆进行横向控制和纵向控制,中间没有人工参与的逻辑程序。横向控制,主要是指通过方向盘控制车身横向移动,即方向盘角度。纵向控制,是指通过油门和刹车控制车身纵向的移动,即加速、刹车等。横向模型的输出没有采用方向盘角度,而是使用要行驶的曲率(即拐弯半径的倒数)

apollo/modules/elo:利用高精地图的自定位模块。这部分的代码也是另外下载。前向的摄像头会采集车道数据以实现更精确的定位,输出的位置信息包括车辆的x y z坐标,还有就是在百度高精度地图中的ID

apollo/modules/localization:定位模块。输入GPSIMU信息输出自车定位信息

apollo/modules/map:高精地图模块。输出结构化地图信息,如车道线,十字路口等。

apollo/modules/monitor:监控模块。监控硬件状态,同时把状态发给交互界面。

apollo/modules/perception:感知模块。输入激光点云,高精地图,变换坐标,输出3D障碍物包括速度大小和方向。

apollo/modules/planning局部决策规划模块。

apollo/modules/prediction:预测模块。输出感知的障碍物信息及自定位信息输出障碍物未来的轨迹。

apollo/modules/routing:全局规划模块。输入包括地图信息各起点终点地址,输出一个全局的导航信息。

apollo/modules/third_party_perception:第三方感知模块。

apollo/modules/tools:通用监控与可视化模块。

 

 

百度Apollo解析——3.common - 寒江小筑 - 博客园 (cnblogs.com)

 

 

greatmath库,代码示例

zyx欧拉角,aabbkdtree,kalman,线性插值,四次插值,三角函数表,向量

math polygon2d.h

判断点是否在多边形内部,点到多边形的距离,直线与多边形的交点,多边形与多边形相交;

line_segment2d.h线段相交,交点,判断线段相交

此外还有文件读写,tcpstream等基础功能;

 

 

 

 

posted @ 2023-02-08 18:37  tmjDD  阅读(20)  评论(0编辑  收藏  举报