如何使用Digilent Zybo Z7来搭建自动驾驶汽车的原型?

描述

自2020年以来,汽车行业开启了新纪元,应用于汽车上的智能技术也逐渐进入人们的视野,其中就有高级驾驶辅助系统(ADAS)。有了它,汽车可以预先察觉路面可能发生的危险,司机根据系统运行、计算后的结果,进行加速、减速、转弯、避让......ADAS系统功能越强大,汽车就能够应付越复杂的路况。

首先为了安全性,需要考虑的是驾驶过程中连接器、传感器的深度融合。安全性能之外,可编程门阵列(FPGA)作为汽车算法的一部分则为自动驾驶提供了“大脑”,对行驶状况进行实时计算,通过计算结果决定汽车的运行方向以及如何应对障碍物。

明白了基础原理之后,罗马尼亚布加勒斯特大学的学生们尝试了动手实践,他们通过Zynq 7000 SoC的硬件、软件组合编程,集成完整的高级驾驶辅助系统(ADAS),并且装载到了模型上,接下来就一起来看看他们是怎么做到的吧~

功能设计

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

在车道线之间行驶

遇到障碍物停止

探测道路交通标志

执行来自 RFID 卡的智能命令

在十字路口导航

零件构成

汽车由以下部件构成:

Digilent PCAM 5C 摄像头传感器

由非汽车级 Xilinx Zynq 7000 SoC 驱动的 Digilent Zybo Z7

声纳

RFID 扫描仪

3轴加速计

USB WiFi 适配器

高速和高转扭金属齿轮伺服机构

双直流电动机驱动器

5V 稳压器

6V 稳压器

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. 配置/校准组件:使用户能够利用独立文件来设置重要参数,无需重新编译程序或覆盖配置文件便可匹配当前道路状况。

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

原文标题:欧时课堂 | 如何“自制”智能汽车

文章出处:【微信公众号:欧时电子RS】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分