HuangCongQing / apollo_note

百度Apollo代码注释笔记(重点感知笔记)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Apollo6.0-note

百度的自动驾驶平台Apollo项目-学习(主要感知)

  1. Apollo6.0:master当前分支
  2. Apollo3.0:hcq3.0分支

Apollo是百度的自动驾驶开源框架,根据自动驾驶的功能划分为不同的模块

主要分为6部分:

  • 高精度地图 HD Maps、

  • 定位 Localization

  • 感知 Perception

  • 预测 Prediction

  • 规划 Planning

  • 控制 Control

  • 1:高精度地图 HD Maps(High Definition Maps)

  • 2:定位 Localization: 汽车定位自己位置厘米级精度自定位

  • 3:感知 Perception:深度学习(CNN 分类 检测 分割)数据来源:摄像头 雷达 激光雷达

  • 4:预测 Prediction: 预测其他车辆或行人可能如何移动(RNN)

  • 5:规划 Planning: 将预测和路线相结合以生成车辆轨迹

  • 6:控制 Control: 如何使用转向,油门,制动(刹车)来执行规划轨迹

Apollo各部分架构


路由模块依赖于路由拓扑文件,通常称为Apollo中的routing_map.*。路由地图可以通过命令来生成。


无人驾驶车运作方式(Apollo 平台的无人驾驶结构)

Apollo 无人驾驶平台是以高精地图和定位模块作为核心。其他的模块都是以这两个模块为基础。我们会在整个课程中看到这样的结构。


Apollo团队和架构

pollo 技术框架包含 :

  • 参考车辆平台
  • 参考硬件平台
  • 开源软件平台
  • 云服务平台

1. 参考车辆与硬件平台

https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_hardware_system_installation_guide_v1.md

[Apollo Hardware and System Installation Guide] ─ Provides the instructions to install the hardware components and the system software for the vehicle:

  • Vehicle:
    • Industrial PC (IPC)
    • Global Positioning System (GPS):确定所处位置
    • Inertial Measurement Unit (IMU): 惯性测量装置:测量车辆的运动和位置
    • Controller Area Network (CAN) card 控制区域网络:车辆的内部通信网络
      • 发送加速,制动,转向信号
    • GPS Antenna
    • GPS Receiver
    • Light Detection and Ranging System (LiDAR):360度点云数据
    • Camera:捕获图像数据(计算机视觉处理)
    • Radar:分辨率低,但是经济实惠,适用于各种天气,照明条件,特别擅长测量其他车辆的速度

Hardware/ Vehicle Overview ** Hardware Connection Overview

** **

  • Software:
    • Ubuntu Linux
    • Apollo Linux Kernel
    • NVIDIA GPU Driver

Software Overview - Navigation Mode

2. 开源软件栈

  1. 实时操作系统(ROTS)
  2. 运行时框架
  3. 应用程序模块层

image.png

  • 实时操作系统(ROTS)
    • Ubuntu+Apollo
  • 运行时框架
    • 操作环境 ROS定制版(改进三块:共享内存,去中心化 数据兼容性
      1. 共享内存(一次写入,多次读取)
        • image.png
      2. 去中心化(ROS Master)(解决单点故障问题)
        • 将所有节点放在一个公共域中
      3. 数据兼容性 ROS Message
        • 使用protobuf的接口语言代替原生ROS消息
    • 在RTOS上运行的软件框架
  • 应用程序模块层
    • 各种模块:MAP引擎,定位,感知等等
    • image.png

3. 云服务

  • 不仅仅提供数据,也提供了很多应用程序

Cloud Services

  • HD Map
  • Simulation(仿真环境平台)
  • Data Platform:http://apolloscape.auto/scene.html
  • Security
  • OTA(over-the-air) update:无线更新
  • DuerOS: 智能语音系统

4. Apollo Github库

Technical Tutorials

---------------------------

Build Status Simulation Status


We choose to go to the moon in this decade and do the other things,

not because they are easy, but because they are hard.

-- John F. Kennedy, 1962

个人笔记:https://www.yuque.com/huangzhongqing/crvg1o/yggszk

Welcome to Apollo's GitHub page!

Apollo is a high performance, flexible architecture which accelerates the development, testing, and deployment of Autonomous Vehicles.

For business and partnership, please visit our website.

Table of Contents

Introduction

Apollo is loaded with new modules and features but needs to be calibrated and configured perfectly before you take it for a spin. Please review the prerequisites and installation steps in detail to ensure that you are well equipped to build and launch Apollo. You could also check out Apollo's architecture overview for a greater understanding of Apollo's core technology and platforms.

Prerequisites

  • The vehicle equipped with the by-wire system, including but not limited to brake-by-wire, steering-by-wire, throttle-by-wire and shift-by-wire (Apollo is currently tested on Lincoln MKZ)

  • A machine with a 8-core processor and 16GB memory minimum

  • NVIDIA Turing GPU is strongly recommended

  • Ubuntu 18.04

  • NVIDIA driver version 440.33.01 and above (Web link)

  • Docker-CE version 19.03 and above (Official doc)

  • NVIDIA Container Toolkit (Official doc)

Please note, it is recommended that you install the versions of Apollo in the following order: 1.0 -> whichever version you would like to test out. The reason behind this recommendation is that you need to confirm whether individual hardware components and modules are functioning correctly, and clear various version test cases before progressing to a higher and more capable version for your safety and the safety of those around you.

Individual Versions:

The following diagram highlights the scope and features of each Apollo release:

Apollo 1.0:

Apollo 1.0, also referred to as the Automatic GPS Waypoint Following, works in an enclosed venue such as a test track or parking lot. This installation is necessary to ensure that Apollo works perfectly with your vehicle. The diagram below lists the various modules in Apollo 1.0.

Apollo 1.5:

Apollo 1.5 is meant for fixed lane cruising. With the addition of LiDAR, vehicles with this version now have better perception of its surroundings and can better map its current position and plan its trajectory for safer maneuvering on its lane. Please note, the modules highlighted in Yellow are additions or upgrades for version 1.5.

Apollo 2.0:

Apollo 2.0 supports vehicles autonomously driving on simple urban roads. Vehicles are able to cruise on roads safely, avoid collisions with obstacles, stop at traffic lights, and change lanes if needed to reach their destination. Please note, the modules highlighted in Red are additions or upgrades for version 2.0.

Apollo 2.5:

Apollo 2.5 allows the vehicle to autonomously run on geo-fenced highways with a camera for obstacle detection. Vehicles are able to maintain lane control, cruise and avoid collisions with vehicles ahead of them.

Please note, if you need to test Apollo 2.5; for safety purposes, please seek the help of the
Apollo Engineering team. Your safety is our #1 priority,
and we want to ensure Apollo 2.5 was integrated correctly with your vehicle before you hit the road.

Apollo 3.0:

Apollo 3.0's primary focus is to provide a platform for developers to build upon in a closed venue low-speed environment. Vehicles are able to maintain lane control, cruise and avoid collisions with vehicles ahead of them.

Apollo 3.5:

Apollo 3.5 is capable of navigating through complex driving scenarios such as residential and downtown areas. The car now has 360-degree visibility, along with upgraded perception algorithms to handle the changing conditions of urban roads, making the car more secure and aware. Scenario-based planning can navigate through complex scenarios, including unprotected turns and narrow streets often found in residential areas and roads with stop signs.

Apollo 5.0:

Apollo 5.0 is an effort to support volume production for Geo-Fenced Autonomous Driving. The car now has 360-degree visibility, along with upgraded perception deep learning model to handle the changing conditions of complex road scenarios, making the car more secure and aware. Scenario-based planning has been enhanced to support additional scenarios like pull over and crossing bare intersections.

Apollo 5.5:

Apollo 5.5 enhances the complex urban road autonomous driving capabilities of previous Apollo releases, by introducing curb-to-curb driving support. With this new addition, Apollo is now a leap closer to fully autonomous urban road driving. The car has complete 360-degree visibility, along with upgraded perception deep learning model and a brand new prediction model to handle the changing conditions of complex road and junction scenarios, making the car more secure and aware.

Apollo 6.0:

Apollo 6.0 incorporates new deep learning models to enhance the capabilities for certain Apollo modules. This version works seamlessly with new additions of data pipeline services to better serve Apollo developers. Apollo 6.0 is also the first version to integrate certain features as a demonstration of our continuous exploration and experimentation efforts towards driverless technology.

Architecture

  • Hardware/ Vehicle Overview

  • Hardware Connection Overview

  • Software Overview

Installation

Congratulations! You have successfully built out Apollo without Hardware. If you do have a vehicle and hardware setup for a particular version, please pick the Quickstart guide most relevant to your setup:

Quick Starts:

Documents

  • Technical Tutorials: Everything you need to know about Apollo. Written as individual versions with links to every document related to that version.

  • How-To Guides: Brief technical solutions to common problems that developers face during the installation and use of the Apollo platform

  • Specs: A Deep dive into Apollo's Hardware and Software specifications (only recommended for expert level developers that have successfully installed and launched Apollo)

  • FAQs

Questions

You are welcome to submit questions and bug reports as GitHub Issues.

Copyright and License

Apollo is provided under the Apache-2.0 license.

Disclaimer

Apollo open source platform only has the source code for models, algorithms and processes, which will be integrated with cybersecurity defense strategy in the deployment for commercialization and productization.

Please refer to the Disclaimer of Apollo in Apollo's official website.

Connect with us

About

百度Apollo代码注释笔记(重点感知笔记)

License:Apache License 2.0


Languages

Language:C++ 84.5%Language:Python 4.9%Language:Starlark 3.9%Language:Shell 3.5%Language:JavaScript 1.7%Language:Cuda 0.8%Language:C 0.3%Language:SCSS 0.2%Language:Smarty 0.1%Language:HTML 0.0%Language:GLSL 0.0%Language:Makefile 0.0%Language:Dockerfile 0.0%Language:CMake 0.0%Language:Assembly 0.0%Language:Handlebars 0.0%Language:Batchfile 0.0%Language:Vim Script 0.0%