/****************Apollo源码分析****************************

Copyright 2018 The File Authors & zouyu. All Rights Reserved.
Contact with: 1746430162@qq.com 181663309504
源码主要是c++实现的,也有少量python,git下载几百兆,其实代码不太多,主要是地图和数据了大量空间,主要程序
在apollo/modules目录中,
我们把它分成以下几部分(具体说明见各目录下的modules):
感知:感知当前位置,速度,障碍物等等
Apollo/modules/perception
预测:对场景下一步的变化做出预测
Apollo/modules/prediction
规划:
(1) 全局路径规划:通过起点终点计算行驶路径
Apollo/modules/routing
(2) 规划当前轨道:通过感知,预测,路径规划等信息计算轨道
Apollo/modules/planning
(3) 规划转换成命令:将轨道转换成控制汽车的命令(加速,制动,转向等)
Apollo/modules/control
其它
(1) 输入输出
i. Apollo/modules/drivers 设备驱动
ii. Apollo/modules/localization 位置信息
iii. Apollo/modules/monitor 监控模块
iv. Apollo/modules/canbus 与汽车硬件交互
v. Apollo/modules/map 地图数据
vi. Apollo/modules/third_party_perception 三方感知器支持
(2) 交互
i. Apollo/modules/dreamview 可视化模块
ii. Apollo/modules/hmi 把汽车当前状态显示给用户
(3) 工具
i. Apollo/modules/calibration 标注工具
ii. Apollo/modules/common 支持其它模块的公共工具
iii. Apollo/modules/data 数据工具
iv. Apollo/modules/tools 一些Python工具
(4) 其它
i. Apollo/modules/elo 高精度定位系统,无源码,但有文档
ii. Apollo/modules/e2e 收集传感器数据给PX2,ROS
  自动驾驶系统先通过起点终点规划出整体路径(routing);然后在行驶过程中感知(perception)当前环境
(识别车辆行人路况标志等),并预测下一步发展;然后把已知信息都传入规划模块(planning),规划出之后的轨道;
控制模块(control)将轨道数据转换成对车辆的控制信号,通过汽车交互模块(canbus)控制汽车.
我觉得这里面算法技术含量最高的是感知perception和规划planning,具体请见本博客中各模块的分析代码。
/****************************************************************************************

Apollo 2.0硬件和系统安装指南

#关于本指南

Apollo 2.0硬件和系统安装指南提供安装 Apollo Project 的所有硬件组件和系统软件的说明。包含的系统安装信息与下载和安装Apollo Linux内核的过程有关。

##文件惯例

下表列出了本文档中使用的约定:

| **图标** | **说明** |
| ----------------------------------- | ---------------------------------------- |
| ** Bold ** | 强调|
| `单色空间字体`| 代码,输入数据|
| _Italic_ | 文档,部分和标题的标题使用的术语|
| ![info](images / info_icon.png)| **信息**包含可能有用的信息。忽略信息图标没有负面影响。|
| ![tip](images / tip_icon.png)| 包含有用的提示或可帮助您完成任务的快捷方式。|
| ![online](images / online_icon.png)| 提供指向特定网站的链接,您可以从中获取更多信息。|
| ![警告](images / warning_icon.png)| **警告**。包含必须**不能被忽略的信息,否则当您执行特定任务或步骤时可能会失败。|

# 介绍

**阿波罗计划**是一项倡议,为汽车和自动驾驶行业的阿波罗合作伙伴提供了一个开放,完整和可靠的软件平台。这个项目的目的是使这些实体能够基于Apollo软件栈开发他们自己的自动驾驶系统。也就是大家一起来繁荣生态,群策群力。

##文档

以下一组文档描述了Apollo 2.0:

[Apollo硬件和系统安装指南] ─提供安装车辆硬件组件和系统软件的说明:

-  **车辆**:
      - 工业PC(IPC)
      - 全球定位系统(GPS)
      - 惯性测量单元(IMU)
      - 控制器区域网络(CAN)卡
      -  GPS天线
      -  GPS接收器
      - 光检测和测距系统(LiDAR)
      - 相机
      - 雷达

-  **软件**:
      -  Ubuntu Linux
      -  Apollo Linux内核
      -  NVIDIA GPU驱动程序

-  *** [Apollo快速入门指南] ***─提供全套端到端指令的组合教程和路线图。“快速入门指南”还提供了有关描述将普通汽车转换为自动驾驶汽车的其他文档的链接。

#关键硬件组件

要安装的关键硬件组件包括:

- 车载电脑系统─Neousys Nuvo-6108GC
- 控制器局域网(CAN)卡─ESD CAN-PCIe / 402-B4
- 通用定位系统(GPS)和惯性测量单元(IMU)─
  您可以选择以下选项之一:
  -  NovAtel SPAN-IGM-A1
  -  NovAtelSPAN®ProPak6™和NovAtel IMU-IGM-A1
- 光检测和测距系统(LiDAR)─Velodyne HDL-64E S3
- 相机 -  Leopard Imaging LI-USB30-AR023ZWDR,带USB 3.0外壳
- 雷达 - 大陆ARS408-21

##需要其他组件

您需要为所需的其他任务提供这些附加组件:

- 用于上网的4G路由器
- 额外USB端口的USB集线器
- 现场调试的显示器,键盘和鼠标
- 电缆:数字视频接口(DVI)电缆(可选),用于GPS-LiDAR时间同步的定制电缆
-  Apple iPad Pro:9.7英寸,Wi-Fi(可选)

关键硬件组件的功能在后面的章节中介绍。

##板载计算机系统 -  IPC

车载计算机系统是用于自动驾驶车辆的工业PC(IPC),并使用由第六代Intel Xeon E3 1275 V5 CPU供电的** NeousysNuvo-6108GC **。

Neousys Nuvo-6108GC是自动驾驶系统(ADS)的中央单元。

### IPC配置

如下配置IPC:

- 华硕GTX1080 GPU-A8G-游戏GPU卡
-  32GB DDR4内存
-  PO-280W-OW 280W AC / DC电源适配器
-  2.5“SATA硬盘1TB 7200rpm

### IPC正面和侧面视图

图中显示了IPC的前视图和后视图,图形处理单元(GPU)安装在以下图片中:

Nuvo-6108GC的前视图:

![ipc_front](图像/ IPC-6108GC-前side.jpg)

Nuvo-6108GC的侧视图:

![ipc_back](图像/ IPC-6108GC-左side.jpg)

有关Nuvo-6108GC的更多信息,请自行搜索网络。

##控制器区域网络(CAN)卡

与IPC一起使用的CAN卡是** ESD ** ** CAN-PCIe / 402-B4 **。

![can_card](图像/ CAN-B4.png)

##全球定位系统(GPS)和惯性测量单元(IMU)

有**两个** GPS-IMU **选项**可供选择,取决于最符合您需要的选项:

-  **选项1:NovAtel SPAN-IGM-A1 **
-  **选项2:NovAtelSPAN®ProPak6™和NovAtel IMU-IGM-A1 **

选项1:NovAtel SPAN-IGM-A1

NovAtel SPAN-IGM-A1是一款集成式单箱解决方案,提供紧密耦合的全球导航卫星系统(GNSS)定位和惯性导航功能,采用NovAtel OEM615接收器。

![novatel_imu](图像/ Novatel_imu.png)

选项2:NovAtel SPAN ProPak6和NovAtel IMU-IGM-A1

NovAtel ProPak6是一款独立的GNSS接收器。它与单独的NovAtel支持的IMU(在这种情况下,NovAtel IMU-IGM-A1)一起工作以提供本地化。

ProPak6提供NovAtel生产的最新和最先进的外壳产品。

IMU-IGM-A1是一个与支持SPAN的GNSS接收机(如SPAN ProPak6)配对的IMU。

![novatel_pp6](图像/ Novatel_pp6.png)

GPS接收机/天线

用于GPS-IMU组件的GPS接收器/天线是** NovAtel GPS-703-GGG-HV **。

**注意:** NovAtelGPS-703-GGG-HV可与上一节中介绍的两种GPS-IMU选项(全球定位系统(GPS)和惯性测量单元(IMU))中的任一种型号配合使用。

![gps_receiver](图像/ gps_receiver.png)

##光检测和测距系统(LiDAR)

64系列LiDAR系统** HDL-64E S3 **可从Velodyne LiDAR公司获得

![lidar_image](图像/ lidar_pic.png)

**主要特征:**

-  64个频道
-  120米范围内
- 每秒220万点
-  360°水平FOV
-  26.9°垂直视场
-  0.08°角分辨率(方位角)
-  <2cm的准确性
- 〜0.4°垂直分辨率
- 用户可选的帧速率
- 坚固的设计

![online](images / online_icon.png)Velodyne HDL-64E的页面S3:
[http://velodynelidar.com/hdl-64e.html](http://velodynelidar.com/hdl-64e.html)

##相机

所使用的相机是由Leopard Imaging Inc.制造的具有标准USB 3.0外壳的LI-USB30-AR023ZWDR。我们推荐使用分别具有6mm和25mm透镜的两个相机来实现所需的性能。

![camera_image](图像/ LI-camera.png)

![online](images / online_icon.png)您可以在Leopard Imaging Inc.网站上找到更多信息:

[https://www.leopardimaging.com/LI-USB30-AR230WDR.html](https://www.leopardimaging.com/LI-USB30-AR230WDR.html)

##雷达

雷达使用的是大陆集团制造的ARS408-21。

![radar_image](图像/ ARS-408-21.jpg)

![online](images / online_icon.png)您可以在产品页面找到更多信息:

[https://www.continental-automotive.com/Landing-Pages/Industrial-Sensors/Products/ARS-408-21](https://www.continental-automotive.com/Landing-Pages/Industrial-Sensors/产品/ ARS-408-21)

安装硬件和软件组件涉及以下任务:

1.在将卡插入插槽之前,首先重新定位CAN卡终端跳线,准备并安装控制器局域网(CAN)卡。

2.在IPC中安装硬盘驱动器(如果没有预安装)。

如果您愿意,您也可以选择更换预装硬盘。

**建议**:
    - 安装固态硬盘(SSD)以提高可靠性。
    - 如果您需要收集驾驶数据,请使用高容量驾驶。

3.准备IPC以启动:
    一个。将电源线连接到电源连接器(端子块)。
    湾 将监视器,以太网,键盘和鼠标连接到IPC。
    C。将IPC连接到电源。

4.在IPC上安装软件(需要一些Linux经验):
    安装Ubuntu Linux。
    安装Apollo Linux内核。

- 确保已完成“先决条件”部分中列出的车辆的所有修改。

- 安装主要组件(根据本文档中的插图和说明):
    -  GPS天线
    -  IPC
    -  GPS接收器和IMU
    -  LiDAR
    - 相机
    - 雷达

安装所有硬件和软件组件的实际步骤将在“安装任务的步骤”一节中详细介绍。

本节介绍要安装的步骤:

- 关键的硬件和软件组件
- 车辆中的硬件

执行以下任务:

- 准备IPC:
    - 安装CAN卡
    - 安装或更换硬盘
    - 准备启动IPC

- 安装IPC的软件:
    -  Ubuntu Linux
    - 阿波罗内核
    -  Nvidia GPU驱动程序

###准备IPC
按着这些次序:
1.准备并安装控制器区域网络(CAN)卡:     
  在Neousys Nuvo-6108GC上,华硕GTX-1080GPU-A8G-GAMING GPU卡预装在三个PCI插槽之一中。我们仍然需要将CAN卡安装到PCI插槽中。
  找到并拧下计算机侧面的八个螺丝(在棕色方块中显示或用棕色箭头指出):
  ![Positions_of_Screws](图像/ IPC-6108GC-螺丝Positions_labeled.png)湾 从IPC上取下盖子。3个PCI插槽(一个被显卡占用)位于底座上:

![封面](images / Removing_the_cover.JPG)

![安装CAN卡之前](images / Before_installing_the_can_card.png)

通过从其默认位置移除红色跳线帽(以黄色圆圈显示)并将其放置在其终止位置来设置CAN卡终端跳线:

![prepare_can_card](图像/ prepare_can_card2.png)

**![警告](images / warning_icon.png)警告**:如果终端跳线没有正确设置,CAN卡将不起作用。

将CAN卡插入IPC的插槽中:

![安装CAN](images / After_installing_the_CAN_Card.png)

即重新安装IPC的盖子

![IPC-6108GC-螺丝Positions.png](图像/ IPC-6108GC-螺丝Positions.png)

2.准备IPC以启动:

将电源线连接到IPC附带的电源连接器(接线盒)上:

!警告**:确保电源线的正极(标有** R **为红色)和负极(标有** B **为黑色)插入电源端子块上的正确孔中。

![ipc_power_RB](图像/ ipc_power_RB.png)

将监视器,以太网电缆,键盘和鼠标连接到IPC:

3. [IPC-6108GC-CableConnected-overexposed.png](图像/ IPC-6108GC-CableConnected-overexposed.png)

![warning](images / tip_icon.png)如果系统中添加了一个或多个插件卡,建议通过BIOS设置配置风扇速度

- 在启动电脑时,按F2进入BIOS设置菜单。
    - 转到[高级] => [智能风扇设置]
    - 设置[风扇最大。旅行温度]为50
    - 将[风扇启动行程温度]设置为20

![tip_icon](images / tip_icon.png)建议您在显示器的图形卡上使用数字视频接口(DVI)连接器。要将显示器设置到主板上的DVI端口,请按照以下步骤进行设置:

- 在启动电脑时,按F2进入BIOS设置菜单。
    - 进入[Advanced] => [System Agent(SA)Configuration] => [Graphics Configuration] => [Primary Display] =>设置为“PEG”
![tip_icon](images / tip_icon.png)建议将IPC配置为始终以最高性能模式运行:
     - 在启动电脑时,按F2进入BIOS设置菜单。
     - 转到[Power] => [SKU POWER CONFIG] =>设置为“MAX。TDP”

连接电源:

![IPC-6108GC-PowerCable.JPG](图像/ IPC-6108GC-PowerCable.JPG)

###安装IPC的软件

本节介绍要安装的步骤:

-  Ubuntu Linux
- 阿波罗内核
-  Nvidia GPU驱动程序

![tip_icon](images / tip_icon.png)假定您有与Linux成功执行软件安装的经验。

####安装Ubuntu Linux
按着这些次序:

1.创建可启动的Ubuntu Linux USB闪存驱动器:

下载Ubuntu(或Xubuntu等变种)并按照在线说明创建可启动的USB闪存驱动器。

![tip_icon](images / tip_icon.png)建议您使用** Ubuntu 14.04.3 **。

![tip_icon](images / tip_icon.png)您可以在系统启动过程中输入F2来输入BIOS设置。建议您在BIOS中禁用快速启动和安静启动,以便更容易地捕获启动过程中的任何问题。

有关Ubuntu的更多信息,请参阅:

![online_icon](images / online_icon.png)Ubuntu for Desktop网站:

[https://www.ubuntu.com/desktop](https://www.ubuntu.com/desktop)

2.安装Ubuntu Linux:

####安装Apollo Kernel

车辆中的Apollo运行时需要[Apollo Kernel](https://github.com/ApolloAuto/apollo-kernel)。强烈建议安装预建的内核。

#####使用预制的Apollo Kernel。

您可以使用以下命令访问并安装预建的内核。

1.从GitHub上的release部分下载发行包:
```
https://github.com/ApolloAuto/apollo-kernel/releases
```
2.下载发行包后安装内核:
```
tar zxvf linux-4.4.32-apollo-1.5.0.tar.gz
cd安装
sudo bash install_kernel.sh
```
3.使用`reboot`命令重新启动系统。

根据[ESDCAN-README.md](https://github.com/ApolloAuto/apollo-kernel/blob/master/linux/ESDCAN-README.md)构建ESD CAN驱动程序源代码。

#####建立你自己的内核。
如果修改了内核,或者预构建的内核不适合您的平台,则可以使用以下步骤构建自己的内核。

1.克隆存储库中的代码
```
git clone https://github.com/ApolloAuto/apollo-kernel.git
cd apollo-kernel
```
2.根据[ESDCAN-README.md](https://github.com/ApolloAuto/apollo-kernel/blob/master/linux/ESDCAN-README.md)添加ESD CAN驱动程序源代码。

3.使用以下命令构建内核。
```
bash build.sh
```
4.按照上一节所述的步骤安装预先制作的Apollo Kernel。

####安装NVIDIA GPU驱动程序

车辆中的Apollo运行时需要[NVIDIA GPU驱动程序](http://www.nvidia.com/download/driverResults.aspx/114708/en-us)。您必须安装具有特定选项的NVIDIA GPU驱动程序。

1.下载安装文件
```
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.39/NVIDIA-Linux-x86_64-375.39.run
```

2.开始安装
```
sudo bash ./NVIDIA-Linux-x86_64-375.39.run --no-x-check -a -s
```

#####可选:测试ESD CAN设备节点
用新内核重新启动IPC之后:

通过在终端中发出以下命令来创建CAN设备节点:

cd / dev
sudo mknod --mode = a + rw can0 c 52 0
sudo mknod --mode = a + rw can1 c 52 1
```
使用您从ESD Electronics获得的ESD CAN软件包的一部分的测试程序测试CAN设备节点。

IPC现在可以安装在车上了。

##在车辆中执行这些任务:

- 根据先决条件列表中的规定对车辆进行必要的修改
- 安装主要组件:
    -  GPS天线
    -  IPC
    -  GPS接收器和IMU
    -  LiDAR
    - 相机
    - 雷达

###先决条件

**![warning_icon](images / warning_icon.png)警告**:在将主要部件(GPS天线,IPC和GPS接收器)安装到车辆之前,请按照先决条件列表中的规定进行某些修改。在列表中进行强制性更改的说明超出了本文的范围。

先决条件列表如下:

- 专业服务公司必须对车辆进行“线控驱动”技术的修改。另外,必须在安装IPC的中继线中提供CAN接口连接。
- 中继线必须安装电源面板,以便为IPC和GPS-IMU供电。电源面板还可以为车辆中的其他设备(如4G LTE路由器)提供服务。电源面板应连接到车辆的电源系统。
- 必须安装定制机架才能将GPS-IMU天线,相机和激光雷达安装在车辆顶部。
- 必须安装定制机架以将GPS-IMU安装到行李箱中。
- 定制的机架必须安装在车辆前方以安装前置雷达。
- 必须将4G LTE路由器安装在中继线上,以便为IPC提供Internet访问。路由器必须具有内置Wi-Fi接入点(AP)功能才能连接到其他设备,如iPad,以便与自动驾驶(AD)系统连接。例如,用户将能够使用移动设备来启动AD模式或监视AD状态。

###主要组件安装图

以下两个图表显示了三种主要部件(GPS天线,IPC,GPS接收器和LiDAR)应安装在车辆上的位置:

[major_compoment_side_view](图像/ Car_Sideview.png)---具体图片请参考源码中的内容。

[major_component_rear_view](图像/ Car_Rearview.png)---具体图片请参考源码中的内容。

###安装GPS接收机和天线

本部分提供有关安装*选项的一般信息:

-  **选项1:** GPS-IMU:** NovAtel SPAN-IGM-A1 **
-  **选项2:** GPS-IMU:** NovAtelSPAN®ProPak6™和NovAtel IMU-IGM-A1 **

选项1:安装NovAtel SPAN-IGM-A1

安装说明介绍了安装,连接GPS-IMU NovAtel SPAN-IGM-A1的杠杆臂测量的步骤。

##### 安装

您可以将GPS-IMU NovAtel SPAN-IGM-A1放置在车辆的大部分地方,但建议您遵循以下建议:

- 将YA轴指向前方的NovAtel SPAN-IGM-A1放置在后备箱内并固定。
- 将NovAtel GPS-703-GGG-HV天线安装在车辆顶部的隐蔽位置。

#####接线

您必须连接两根电缆:

- 天线电缆将GNSS天线连接到SPAN-IGM-A1的天线端口
- 主电缆:
    - 将其15针端连接到SPAN-IGM-A1
    - 将其电源线连接到10至30V DC的电源
    - 将其串行端口连接到IPC。如果电源来自车辆电池,请添加辅助电池(推荐)。

[imu_main_cable_connection](图像/ imu_main_cable_connection.png)

主电缆连接

有关详细信息,请参阅* SPAN-IGM™快速启动指南*,第3页,获取详细图表:

[online_icon](images / online_icon.png)SPAN-IGM™快速入门指南

[http://www.novatel.com/assets/Documents/Manuals/GM-14915114.pdf](http://www.novatel.com/assets/Documents/Manuals/GM-14915114.pdf)

#####测量

当SPAN-IGM-A1和GPS天线就位时,必须测量从SPAN-IGM-A1到GPS天线的距离。距离应该测量为:X偏移量,Y偏移量和Z偏移量。

偏移误差必须在1厘米以内才能达到高精度。有关详细信息,请参阅第5页的* SPAN-IGM™快速入门指南*获取详细图表。

有关SPAN-IGM-A1的更多信息,请参阅:

(SPAN-IGM-A1一体式惯性组合导航系统)完成车辆中的硬件安装后,请参阅[Apollo快速入门](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_5_quick_start.md),了解完成软件安装的步骤。

[online_icon](images / online_icon.png)SPAN-IGM™用户手册:

[http://www.novatel.com/assets/Documents/Manuals/OM-20000141.pdf](http://www.novatel.com/assets/Documents/Manuals/OM-20000141.pdf)

选项2:安装NovAtelSPAN®ProPak6™和NovAtel IMU-IGM-A1

安装说明描述了安装,连接和进行GPS NovAtelSPAN®ProPak6™**和NovAtel IMU-IGM-A1的杠杆臂测量的步骤。

#####安装的组件

安装所需的组件包括:

-  NovAtel GPS SPAN ProPak6

-  NovAtel IMU-IGM-A1

-  NovAtel GPS-703-GGG-HV天线

-  NovAtel GPS-C006电缆(用于连接天线到GPS)

-  NovAtel 01019014主电缆(将GPS连接到IPC的串行端口)

- 数据传输单元(DTU) - 类似于4G路由器

- 磁性适配器(用于天线和DTU)

-  DB9直通电缆

##### 安装

您可以将两个设备ProPak6和IMU放置在车辆的大部分地方,但建议您遵循以下建议:

- 将ProPak6和IMU并排放置在后备箱内,Y轴指向前方。
- 将NovAtel GPS-703-GGG-HV天线安装在车辆顶部或行李箱盖顶部,如图所示:

[gps_receiver_on_car](图像/ gps_receiver_on_car.png)

- 使用磁性适配器将天线紧固在行李箱盖上。
- 通过打开后备箱并将电缆放入后备箱盖和车身之间的空间,将天线电缆安装到后备箱中。

#####接线

按照以下步骤将ProPak6 GNSS接收器和IMU连接到Apollo系统:

1.使用IMU-IGM-A1随附的分体电缆连接IMU主端口和ProPak6 COM3 / IMU端口。
2.使用USB-A-to-MicroUSB电缆连接IPC的USB端口和ProPak6的MicroUSB端口。
3.将IMU-IGM-A1分体电缆的另一端连接到车辆电源。
4.将GNSS天线连接到Propak6。
5.连接Propak6电源线。

![布线](图像/ wiring.png)

有关NovAtel SPAN ProPak6的更多信息,请参阅:

![online_icon](images / online_icon.png)NovAtel ProPak6安装和操作手册:

[https://www.novatel.com/assets/Documents/Manuals/OM-20000148.pdf](https://www.novatel.com/assets/Documents/Manuals/OM-20000148.pdf)

###安装光检测和测距系统(LiDAR)

本节介绍HDL-64E S3 LiDAR的安装步骤

需要定制的安装结构才能在车辆上成功安装HDL64E S3 LiDAR。这种结构必须为LiDAR系统提供刚性支撑,同时将LiDAR提高到地面以上的一定高度。这个高度避免了来自LiDAR的激光束被车辆的前部和/或后部阻挡。LiDAR所需的实际高度取决于车辆的设计和LiDAR相对于车辆的安装点。激光器的垂直倾角通常在相对于地平线的+ 2〜-24.8度范围内。为了充分利用角度范围进行检测,在林肯MKZ上,建议您将LiDAR安装在最低高度为1.8米(从地面到LiDAR底部)的位置。

####接线

每个HDL-64E S3 LiDAR包含一个电缆束,用于将LiDAR连接到电源,计算机(用于数据传输的以太网和用于LiDAR配置的串行端口)以及GPS时间同步源。

[LiDAR_Cable](图像/ HDL64_Cable_whitened_labeled.png)

1.连接到LiDAR

将电源线和信号线连接到LiDAR上的匹配端口

![HDL64_Cabling](图像/ HDL64_Cabling.JPG)

2.连接电源

两根AWG 16导线用于为HDL-64E S3 LiDAR供电。它在12V时需要大约3A。要连接电源,请充分接触电线并拧紧螺丝。

[HDL64_Power_Cable](图像/ HDL64_PowerCable.JPG)

3.与IPC的连接

与IPC的连接通过以太网电缆连接。将电缆束中的以太网连接器插入IPC上的以太网端口

4.连接到GPS:

HDL64E S3 LiDAR需要建议的最小特定GPS /传输数据(GPRMC)和每秒脉冲(PPS)信号与GPS时间同步。需要定制连接来建立GPS接收器和LiDAR之间的通信:

SPAN-IGM-A1

如果按照[配置GPS和IMU](#configurations-the-gps-and-imu)中的规定配置了SPAN-IGM-A1,则GPRMC信号通过用户端口电缆从GPS接收器从主接口发送。PPS信号通过辅助端口标记为“PPS”和“PPS dgnd”的电缆发送。下图中的虚线框显示了HDL64E S3 LiDAR和SPAN-IGM-A1 GPS接收器附带的可用连接。其余连接必须由用户完成。

[Wiring_Schematics_IGM_A1](图像/ LiDAR_A1_wiring.png)

如果按照[配置GPS和IMU](#configure-the-gps-and-imu)中的说明配置Propak 6,则GPRMC信号通过COM2端口从GPS接收器发送。PPS信号通过IO端口发送。下图中的虚线框是HDL-64E S3 LiDAR和Propak 6 GPS接收器的可用连接。其余连接需要由用户进行。

[Wiring_Schematics_PP6](图像/ LiDAR_PP6_wiring.png)

5.通过串行端口连接LiDAR配置

您可以通过串口配置一些低级参数。在Velodyne LiDAR,Inc.提供的电缆束内,有两对红/黑电缆,如下面的引脚分配表所示。较厚的一对(AWG 16)用于为LiDAR系统供电。较薄的一对用于串行连接。将黑线(串行输入)连接到RX,将红线连接到串行电缆的地线。将串行电缆与USB串行适配器连接到选定的计算机。

[pinout_table](图像/ pinout_table.png)

####配置

默认情况下,HDL-64E S3的网络IP地址设置为192.168.0.1。但是,当您设置Apollo时,请将网络IP地址更改为192.168.20.13。您可以使用带有Termite3.2的终端应用程序并输入网络设置命令。可以使用以下步骤配置HDL-64E S3的IP地址:

1.将串行电缆的一端连接到笔记本电脑

2.将串行电缆的另一端连接到HDL-64E S3的串行线

3.使用以下COM端口默认设置:

波特率:9600

平价:无

数据位:8

停止位:1

4.使用COM端口应用程序:

从下面的链接下载Termite3.2并将其安装到笔记本电脑上(Windows):

5.使用HDL-64E S3和笔记本电脑之间的COM端口的串行电缆连接:

串口线连接到laptop.png](图片/串口线连接到laptop.png)

6.从笔记本电脑启动串口调试助手

7.通过串口发出一个串行命令来设置HDL-64E S3的IP地址“\#HDLIPA192168020013192168020255”

8.设备必须重新启动以采用新的IP地址

![发出串行命令](images / Issuing_the_serial_command.png)

![online_icon](images / online_icon.png)HDL-64E S3手册可在此网页上找到:

[http://velodynelidar.com/hdl-64e.html](http://velodynelidar.com/hdl-64e.html)

###安装摄像机

本节提供相机安装步骤的指导。

Apollo参考设计建议使用两个不同焦距,6 mm和25 mm的相机。摄像机的安装可以根据系统的实际设计进行调整。

- 两台摄像机都应该朝向驾驶方向前进。视野(FOV)应尽可能避开障碍物。

- ![Cameras_lock_screw](./ images / LI-Camera-OnVehicle.png)

-  25毫米焦距的相机应该向上倾斜约2度。进行此调整后,25毫米摄像机应能够观察从交叉路口100米处到停车线的交通信号灯。

- 包装外的相机镜头不在最佳位置。通过调整镜头焦点设置正确的位置,以在远处形成目标物体的清晰图像。一个很好的成像对象是FOV内的交通标志或路牌。调整焦点后,使用锁定螺丝确保镜头的位置。

![Cameras_lock_screw(./图像/ LI-摄像机 -  LockScrew.png)

- 使用USB 3.0电缆连接相机(USB 3.0 Micro-B)和IPC(USB 3.0 A型),并使用螺丝固定连接。

###安装雷达

本节介绍了美国大陆航空雷达的安装程序。

雷达需要一个匹配的机械机架安装在前保险杠上。安装后,要求雷达朝向行驶方向,稍微向上倾斜不超过2度。

![雷达装置](./ images / Radar_OnVehicle.png)

雷达附带的电缆需要路由到汽车后部并连接到ESD CAN卡的CAN1通道。

###安装IPC

按着这些次序:

1.使用电压转换器/调节器将车辆的12 VDC输出转换为期望的电压,为IPC供电。

根据Neousys的建议,使用12 VDC至19 VDC转换器,最大输出电流为20 A.

[voltage_regulater_converter](图像/ voltage_converter2.jpg)

一个。将两条19 VDC输出线连接到IPC的电源连接器(如下所示为绿色)。

[ipc_power_RB](图像/ ipc_power_RB.png)

将两根12 VDC输入电缆连接到车辆的电源面板上。如果导线的尺寸过大,则应将导线分成几根导线并分别连接到相应的端口。

[警告](images / warning_icon.png)这一步是必需的。如果输入电压低于要求的限制,则可能导致系统故障。

2.将车载计算机系统6108GC放在后备箱内(推荐)。

例如,Apollo 2.0使用4x4自攻螺丝将6108GC固定在行李箱支架上。![IPC-bolt_down-936x720(图像/ Mount_ipc_on_carpet.JPG)

3.安装IPC,使其前后侧(所有端口所在的位置)朝向行李箱的右侧(乘客)或左侧(驾驶员)。

这种定位使连接所有电缆变得更容易。

有关更多信息,请参阅:

4.连接所有电缆,其中包括:

- 电源线

- 控制器区域网络(CAN)电缆

- 从4G路由器到IPC的以太网电缆

-  GPS接收器到IPC

- (可选)显示器,键盘,鼠标

[IPC-电源电缆(图像/ IPC-功率cable.jpg)

将DB9电缆连接到IPC与CAN通信(如图所示):

[DB9_cable](图像/ DB9_cable.png)

连接:

- 从4G路由器到IPC的以太网电缆

-  IPC的GPS接收器

- (可选)显示器:

[IPC-功率842x636(图像/ cable_connected_incar.JPG)

####Lever Arm测量

按着这些次序:

1.进行测量之前,打开IPC。

2.当IMU和GPS天线到位时,必须测量从IMU到GPS天线的距离。距离应该测量为:X偏移量,Y偏移量和Z偏移量。偏移误差必须在1厘米以内才能实现定位和定位的高精度。

有关其他信息,请参阅:

![online_icon](images / online_icon.png)NovAtel ProPak6安装和操作手册:

[https://www.novatel.com/assets/Documents/Manuals/OM-20000148.pdf](https://www.novatel.com/assets/Documents/Manuals/OM-20000148.pdf)

![online_icon](images / online_icon.png)NovAtel SPAN-IGM-A1产品页面:

[https://www.novatel.com/products/span-gnss-inertial-systems/span-combined-systems/span-igm-a1/](https://www.novatel.com/products/span-gnss -inertial系统/ SPAN-联合系统/跨越IgM抗体-A1 /)

###配置GPS和IMU

如图所示配置GPS和IMU:

WIFICONFIG STATE OFF
UNLOGALL THISPORT
INSCOMMAND ENABLE
SETIMUORIENTATION 5
ALIGNMENTMODE AUTOMATIC  
VEHICLEBODYROTATION 0 0 0
COM COM1 9600 N 8 1 N OFF OFF
COM COM2 9600 N 8 1 N OFF OFF
INTERFACEMODE COM1 NOVATEL NOVATEL ON
PPSCONTROL ENABLE POSITIVE 1.0 10000
MARKCONTROL MARK1 ENABLE POSITIVE
EVENTINCONTROL MARK1 ENABLE POSITIVE 0 2
interfacemode usb2 rtcmv3 none off
rtksource auto any
psrdiffsource auto any

SETIMUTOANTOFFSET 0.00 1.10866 1.14165 0.05 0.05 0.08
SETINSOFFSET 0 0 0
EVENTOUTCONTROLMARK2 ENABLE POSITIVE 999999990 10
EVENTOUTCONTROLMARK1 ENABLE POSITIVE 500000000 500000000

LOG COM2 GPRMC ONTIME 1.0 0.25
LOG GPGGA ONTIME 1.0

log bestgnssposb ontime 1
log bestgnssvelb ontime 1
log bestposb ontime 1
log INSPVAXB ontime 1
log INSPVASB ontime 0.01
log CORRIMUDATASB ontime 0.01
log RAWIMUSXB onnew 0 0
log mark1pvab onnew

log rangeb ontime 1
log bdsephemerisb
log gpsephemb
log gloephemerisb
log bdsephemerisb ontime 15
log gpsephemb ontime 15
log gloephemerisb ontime 15

log imutoantoffsetsb once
log vehiclebodyrotationb onchanged
 
SAVECONFIG

对于ProPak6:

```
WIFICONFIG STATE OFF
UNLOGALL THISPORT
CONNECTIMU COM3 IMU_ADIS16488
INSCOMMAND ENABLE
SETIMUORIENTATION 5
ALIGNMENTMODE AUTOMATIC  
VEHICLEBODYROTATION 0 0 0
COM COM1 9600 N 8 1 N OFF OFF
COM COM2 9600 N 8 1 N OFF OFF
INTERFACEMODE COM1 NOVATEL NOVATEL ON
PPSCONTROL ENABLE POSITIVE 1.0 10000
MARKCONTROL MARK1 ENABLE POSITIVE
EVENTINCONTROL MARK1 ENABLE POSITIVE 0 2
interfacemode usb2 rtcmv3 none off
rtksource auto any
psrdiffsource auto any
SETIMUTOANTOFFSET 0.00 1.10866 1.14165 0.05 0.05 0.08
SETINSOFFSET 0 0 0
EVENTOUTCONTROLMARK2 ENABLE POSITIVE 999999990 10
EVENTOUTCONTROLMARK1 ENABLE POSITIVE 500000000 500000000

LOG COM2 GPRMC ONTIME 1.0 0.25
LOG GPGGA ONTIME 1.0

log bestgnssposb ontime 1
log bestgnssvelb ontime 1
log bestposb ontime 1
log INSPVAXB ontime 1
log INSPVASB ontime 0.01
log CORRIMUDATASB ontime 0.01
log RAWIMUSXB onnew 0 0
log mark1pvab onnew

log rangeb ontime 1
log bdsephemerisb
log gpsephemb
log gloephemerisb
log bdsephemerisb ontime 15
log gpsephemb ontime 15
log gloephemerisb ontime 15

log imutoantoffsetsb once
log vehiclebodyrotationb onchanged
 
SAVECONFIG
```

**![warning_icon](images/warning_icon.png) WARNING:** Modify the **<u>SETIMUTOANTOFFSE</u>T** line based on the actual measurement (of the antenna and the IMU offset).

For example:

```
SETIMUTOANTOFFSET -0.05 0.5 0.8 0.05 0.05 0.08
```

#设置网络

本节提供有关设置网络的建议。

运行Apollo软件的IPC必须访问互联网以获取实时运动(RTK)数据以进行精确定位。移动设备也需要连接到IPC来运行Apollo软件。

##建议

建议您根据下图设置您的网络:

![4G_network_setup](图像/ 4G-LTE-设置-6108GC.png)

按着这些次序:

1.安装并配置具有Wi-Fi接入点(AP)功能和千兆以太网端口的4G LTE路由器。

2.使用以太网电缆将IPC连接到LTE路由器。

3.配置LTE路由器以使用LTE蜂窝网络访问Internet。

4.配置LTE路由器的AP功能,以便iPad Pro或其他移动设备可以连接到路由器,然后再连接到IPC。

![tip_icon](images / tip_icon.png)建议您在IPC上配置固定IP而不是使用DHCP,以便于从移动终端连接到它。

#需要附加任务

使用您需要提供的组件来执行以下任务:

1.使用DVI或HDMI电缆连接显示器,并连接键盘和鼠标以在车上现场执行调试任务。

2.在Apple iPad Pro上建立Wi-Fi连接以访问HMI并控制在IPC上运行的Apollo ADS。

备注:上述解释代码中存在一些中文字符,请参照原版代码来理解,如果有什么问题,欢迎留言讨论。

/home/zy/zouyu/deeping/apollo/docs/quickstar

Apollo2.0自动驾驶quickstart文件夹之apollo_2_0_hardware_system_installation_guide_v1.md相关推荐

  1. python做相册_《自拍教程73》Python 自动生成相册文件夹

    案例故事: 接Python mediainfo批量重命名图片文件,测试图片是批量重命名好了, 但是将测试图片放于一个文件夹相册,图库App并不能显示图片信息, 为了测试的方便性, 需要把图片放到对应的 ...

  2. python制作相册_《自拍教程73》Python 自动生成相册文件夹

    这里将告诉您<自拍教程73>Python 自动生成相册文件夹,具体操作过程:案例故事: 接Python mediainfo批量重命名图片文件,测试图片是批量重命名好了, 但是将测试图片放于 ...

  3. w7怎么备份服务器上的文件夹,教你在Windows7系统中自动备份指定文件夹

    在网络越来越发达的今天,电脑的应用已经渗入到我们生活的方方面面了,比如说现在选择网上购物已然是一种主流了,而浏览信息新闻等也主要是从网络上进行,而我们日常当中对资料的保存也都大多选择电子存档,很多人都 ...

  4. Unity自动清理空文件夹

    Unity 自动清理空文件夹 因为项目管控用的是Git,没法上传空文件夹.但是Unity又会对空文件夹生成相应的meta文件.导致Git提交的时候会提交这些meta文件.当项目中其他人拉下来的时候Un ...

  5. webpack打包的时候自动删除dist文件夹

    为了方便前端打包的时候需要重复删除dist文件夹,通过安装clean-webpack-plugin插件来解决这个问题.按照官网的步骤进行安装和配置:https://www.npmjs.com/pack ...

  6. 为什么自动驾驶使用linux,一旦用上,欲罢不能,为何ADiGO 3.0自动驾驶系统如此让人上瘾?...

    随着特斯拉汽车在国内的大卖,很多被忽视的问题也逐渐显现出来.比如对中国路况的"水土不服"的问题,特斯拉的Autopilot自动驾驶辅助系统是基于美国的实际交通情况所研发,而美国的地 ...

  7. Win7资源管理器自动展开左侧文件夹如何设置

    我们在使用资源管理器时,通常需要一步一步的展开文件夹.那么,有没有更加便捷的方法呢?其实是有的,快看看下面的设置方法吧. 设置方法: 1.在桌面按下"WIN+E"组合键启动资源管理 ...

  8. 自动导入指定文件夹内的文献到 Endnote 中

    简介 最近正着手写一篇综述文章,来整体把握下自己研究领域的历史.方法.最新进展与趋势.由于需要对相关文献进行搜集.阅读和分类.庄小编使用 EndNote 来进行管理文献. 在使用较长时间后,整理了几个 ...

  9. IP-Guard自动加解密文件夹支持多目录使用说明

    自动加解密文件夹支持多目录使用说明 一.功能介绍 在控制台客户端配置设置decrypt_files和encrypt_files这两条策略可以实现指定文件夹自动解密文件和自动加密文件的功能.策略设置时支 ...

最新文章

  1. 计算机二级第十七套真题,2012年计算机二级VB第十七套上机试题及解析.doc
  2. python基础知识资料-Python基础知识快速学习系列视频课程
  3. Glide-源码分析(一)
  4. redis的hGetAll函数的性能问题
  5. flutter分平台主题定制
  6. php课程实验总结报告_PHP课程总结20161125
  7. 深度剖析WinPcap之(二)——网络分析与嗅探的基础知识(4)
  8. Castle ActiveRecord学习笔记四:各种映射
  9. shell 分割字符串_谈一谈Shell中的贪婪匹配和非贪婪匹配
  10. ubuntu内网环境安装zabbix agent
  11. ie下使用frameset布局导致跨域cookie丢失问题解决
  12. 线程中yield的用法
  13. 钉钉人脸识别,戴个太阳帽就找不到人脸
  14. sonar 加载mysql_Sonar MySQL设置
  15. nn.Conv1d和nn.Conv2d理解
  16. Crate安装和配置
  17. 构建技术影响力 5.0
  18. UNR2 黎明前的巧克力
  19. sql joins图示
  20. 西门子S7-200 SMART控制步进电机(三)

热门文章

  1. 37.创建自定义的指令的限制使用 通过restrict 设置
  2. 点击欺诈木马利用单击鼠标左键逃避检测
  3. TF-IDF和word2vec原理
  4. c4droid编译java_C4droid 的多文件编译
  5. 全网封神最新最全:用最通俗易懂的方式来讲解http,WebService,Dubbo接口协议接口测试
  6. MaxCompute用量明细账单分析最佳实践
  7. Unit 5: Windows Acquisition 5.1 Windows Acquisition Windows Forensic Imaging of Drives
  8. 数字图像处理学习记录
  9. python处理PDF-通过关键词定位-截取PDF中的图表
  10. 简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)