DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

28 Apr 2020, 8:06

基于 Digilent Zybo Z7 的自动驾驶汽车

你应该听说过自动或自主驾驶汽车。这是什么汽车呢?自动驾驶汽车又称无人驾驶汽车,可在无人驾驶的情况下自主导航。自动驾驶技术涉及连接、传感器融合和深度学习。它还提出了最高级别的安全要求。现场可编程门阵列 (FPGA) 能够进行高性能计算,还具有高可靠性。FPGA 用作汽车相关算法的一部分,以决定汽车如何运行以及如何应对障碍物。

Xilinx 最近推出了汽车级 Zynq 7000 SoC。Zynq 7000 SoC 架构中的硬件和软件组合编程使开发人员可以集成完整的高级驾驶辅助系统 (ADAS) 成像流,包括从环境表征感应到单个设备的功能实施。 

罗马尼亚布加勒斯特大学的学生们使用 Digilent Zybo Z7 (164-3487) 来搭建自动驾驶汽车的原型。这辆自动驾驶汽车除搭载 OpenCV 和 Embedded Linux 以外,还具有以下主要功能:

  1. 在车道线之间行驶
  2. 遇到障碍物停止
  3. 探测道路交通标志
  4. 执行来自 RFID 卡的智能命令
  5. 在十字路口导航

让我们看看他们是如何开发这个令人惊叹的项目。

汽车由以下部件构成:  

  1. Digilent PCAM 5C 摄像头传感器 (174-1555)
  2. 由非汽车级 Xilinx Zynq 7000 SoC 驱动的 Digilent Zybo Z7 (164-3487)
  3. 声纳 
  4. RFID 扫描仪 
  5. 3 轴加速计
  6. USB WiFi 适配器
  7. 高速和高转扭金属齿轮伺服机构
  8. 双直流电动机驱动器
  9. 5V 稳压器
  10. 6V 稳压器
  11. 2200mAh 锂聚合物电池   

硬件平台以 2 层塑料汽车框架为基础,所有的附加安装硬件和支承件均在 CAD 中设计并用 PLA 塑料 3D 打印成型。汽车框架还包括 2 个有刷直流电动机,其转矩足以驱动汽车以较快的速度行驶。转向系统类似于卡丁车(阿克曼转向),伺服机构在推动一个轮毂的同时通过推杆将运动传导至第二个轮毂。转向系统完全采用 3D 打印,几乎无需组装。汽车框架本身需要按个人需求钻孔和设置安装点,具体取决于不同的组件/传感器如何安装。

前轮像普通汽车一样运动,从左向右转向。摄像头安装在车前。摄像头传感器的顶端增设一个鱼眼镜头,以扩展视野。RFID 扫描仪安装在汽车底部。声纳安装在前保险杆内,以防止撞车。加速计安装在汽车顶端。

系统设计

总体设计方框图如下所示。 

硬件设计

视频管线和视频处理 - 车道探测

Pcam 5C 探测到的 MIPI PHY 车道原始数据由 MIPI_D_PHY_RX 区块和 MIPI CSI-2 接收器进行解译和处理,接着 Bayer 格式流被传输到 AXI_Bayer_to_RGB 区块,并输出更有用的 AXI 流信号。所产生的 AXI 流被分为两个相同的数据流,用于相应的应用。其中一个 720p 60Hz 被保留下来,而另一个则经过一系列图像处理技术以获得适合车道探测的灰度图像

传感器数据采集和处理 - RFID、加速计和声纳

加速计和 RFID 读数器通过同一根总线由 I2C 启用,并直接连接至处理系统。传感器通过 PWM 输出信号连接至用于计算 PWM 占空比的区块,并通过 AXI4-Lite 链路向处理系统提供最终数据。

电机和转向控制

“电机和转向”控制器又称内部运动控制器,是用于管理双电动机驱动器的区块和直接控制前转向的伺服机构。主区块通过 AXI4-Lite 链路与处理系统通信,内部则由三个 PWM 发生器构成,并为分辨率和频率使用可自定义的合成-时间参数。可选数值包括:电动机 - 2x 16 位、100kHz 驱动器;伺服机构 - 1x 12 位、50 Hz 驱动器。伺服机构需要特定的频率和占空比才能正常运行。

软件设计

Petalinux 嵌入式 Linux 版本

该项目以 Xilinx Petalinux 2017.4 的 Embedded Linux 为中心。Linux OS 相当于硬件和软件之间的共同基础,可用于管理流程。改进后的内核通过改良版 USB 驱动器为摄像头、声纳、电动机和 WiFi 适配器伺服机构等物理设备提供支持。Xilinx 已包含 Zynq I2C 驱动器,可连接摄像头、加速计和 RFID 读数器。

主控制应用程序

  1. 车道组件:将汽车定位在正确的路线上,并根据道路调节速度。
  2. 标志组件:探测停车标志。
  3. RFID 组件:正确地探测和储存道路主要部位所放置的 RFID 卡。
  4. 显示组件:向用户显示相关图像。
  5. 配置/校准组件:使用户能够利用独立文件来设置重要参数,无需重新编译程序或覆盖配置文件便可匹配当前道路状况。

所有组件(除配置/校准以外)均循环运行。每次迭代对应一个框架。

项目详情

该项目为开源项目,源文件可在 Digilent Design Contest 大赛网站 下载。

 

Love learn engineering in hands-on approach. Interested in new technology. Work in Digilent as International Sales and Distribution Manager.

28 Apr 2020, 8:06