Skip to content

HaiYangLib/ApolloAnnotation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  • 该项目基于百度Apollo对自动驾驶各个模块分别介绍:

    坐标转换,感知,预测,高精地图及导航,决策规划,运动控制,车辆动力学

    该项目的大多数资料来源于Apollo。大部分内容是对Apollo-v6.0.0各模块及 Cyber框架 的解析和注释,属于源码阅读笔记。


    作者邮箱:hanhy20@mai ls.jlu.edu.cn 欢迎交流

    项目地址 https://github.com/HaiYangLib/ApolloAnnotation

    • 在代码上传时,某些大文件(主要是某些模型文件)没有上传,下面给出了这些文件的详细路径,如果有需要的,可以去Apollo的github上下载,对应版本**apollo-v6.0.0**
    *.caffemodel
    *.model
    *.caffemodel.metadata
    *.onnx
    
    modules/planning/data/model/*.pt
    
    modules/perception/production/data/perception/camera/models/lane_detector/darkSCNN/params
    modules/perception/production/data/perception/camera/models/lane_detector/darkSCNN/params
    modules/perception/production/data/perception/camera/models/yolo_obstacle_detector/3d-r4-half/params
    modules/perception/production/data/perception/camera/models/yolo_obstacle_detector/3d-yolo/params
    modules/perception/production/data/perception/camera/models/lane_detector/darkSCNN/params

    模块关系

    image-20220112232738411

    橙色的部分是正在做的工作。与注释相关的文档,全部保存在doc文件夹中。

    各个模块订阅及发布的Topic

    Prediction模块的话题:

    输入

    话题名称 数据类型 说明
    /apollo/perception/obstacles PerceptionObstacles 感知模块输出的障碍物
    /apollo/planning ADCTrajectory 规划模块输出的轨迹
    /apollo/localization/pose localization::LocalizationEstimate 定位数据
    /apollo/storytelling storytelling::Stories

    输出

    话题名称 数据类型 说明
    /apollo/prediction PredictionObstacles 预测模块输出结果

    Routing模块的话题:

    输入

    成员变量 话题名称 消息类型
    配置Proc "/apollo/routing_request" RoutingRequest

    输出

    成员变量 话题名称 消息类型
    response_writer_ "/apollo/routing_response" RoutingResponse
    response_history_writer_ "/apollo/routing_response_history" RoutingResponse

    Planning模块的话题:

    输入

    成员变量 话题名称 消息类型
    配置Proc "/apollo/prediction" PredictionObstacles
    配置Proc "/apollo/canbus/chassis" Chassis
    配置Proc "/apollo/localization/pose" LocalizationEstimate
    routing_reader_ "/apollo/routing_response" RoutingResponse
    traffic_light_reader_ "/apollo/perception/traffic_light" TrafficLightDetection
    pad_msg_reader_ "/apollo/planning/pad" PadMessage
    story_telling_reader_ "/apollo/storytelling" Stories

    输出

    成员变量 话题名称 消息类型
    planning_writer_ "/apollo/planning" ADCTrajectory
    rerouting_writer_ "/apollo/routing_request" RoutingRequest
    planning_learning_data_writer_ "/apollo/planning/learning_data" PlanningLearningData

    实用工具篇概要

    介绍Cpp常用的一些开源库,如protobuf glog gflags poco boost ros 等, 主要涉及他们的安装及基础使用,更加具体的使用在Cyber篇的cyber_cmake源码中会体现。

    这些第三方库很多在apollo中会用到, 属于比较常用的实用工具。

    Cyber篇概要

    完成了Cyber的cmake版移植,详细代码见cyber_cmake

    提供了Cyber所需的第三方库的安装脚本,在thritd_party目录下

    Transform篇

    感知篇概要

    针对感知模块(Perception), ApolloAnnotation做了以下工作:

    • Radar子模块的注释工作主要涉及:Radar数据预处理IDMatch匈牙利匹配算法的讲解
    • Liadr子模块的注释工作主要涉及:Lidar数据预处理Pointpillars算法实现过程的分析与代码注释
    • Camera子模块的注释工作暂时未做

    预测篇概要

    导航篇概要

    导航篇包含两个模块:Map和Routing

    介绍了Apollo Map模块,主要包含高精地图类对高精地图的封装拓扑地图类对拓扑地图的封装基于高精地图创建拓扑地图

    介绍了Apollo Routing模块,主要包含Routing模块的具体实现,拓扑子图的生成基于拓扑子图A*搜索组装搜索结果并整合成RoutingResponse

    介绍了PncMap和ReferenceLineProvider,其中后者依赖前者, ReferenceLineProvider小节分析了参考线生成及平滑

    规划篇概要

    针对规划模块(Planning), ApolloAnnotation做了以下工作:

    • Frenet坐标系做了推导

    推到了笛卡尔坐标系和Frenet坐标系之间的转换关系

    • Lattice Planner做了介绍

    详细介绍了LatticPlanner的原理以及实现过程,其中包括计算障碍物的S-T图巡航模式下纵向4次多项式轨迹生成,存在障碍物停或止点时纵向5次多项式轨迹生成基于二次规划的横向轨迹生成。还介绍了对每组横纵向轨迹代价的计算。

    • OpenSpacePlanner做了介绍

    介绍了OpenSpaceROI区域的生成混合A*,ReedShepp轨迹生成

    • 对Scenario的执行流程做了介绍

    介绍了Scenario的切换原理Scenario--->Stage--->Task的执行流程

    汽车动力学篇概要

    主要讲解了Frenet坐标系,车辆运动学模型动力学模型PID,LQR, MPC控制方法

    控制篇概要

    介绍了纵向控制,主要涉及纵向串级PID横向LQR, 横纵向MPC

    传感器篇概要

    仿真及V2X篇概要

    向一些愿意分享自动驾驶经验的博主表示感谢:

About

Annotation for Apollo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published