0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AGV小车自主视觉避障专用SOC设计方案

安芯教育科技 来源:安芯教育科技 作者:安芯教育科技 2022-04-22 09:16 次阅读

新一年的集创赛已如火如荼的展开~

为了让大家更多的了解该赛事,小编整理了2021年的优秀作品供学习分享

在每周一为大家分享获奖作品,记得来看连载哟 ~

团队介绍

参赛单位:上海电力大学

队伍名称:骇行队

总决赛奖项:二等奖

1.摘要

随着信息技术的发展,AGV(Automated Guided Vehicle,AGV)无人自动导航小车已被广泛应用于智能制造、智慧物流等场景。AGV搬运车的导航系统主要利用视觉、激光雷达等传感器,其主控系统大多使用多个芯片及其复杂嵌入式系统实现,成本高、功耗大、实时性差。为了解决这一问题,本设计在Xilinx FPGA平台上构建了ARM-M3软核,设计了加速双目视差图像计算的SOC及相关控制外设,验证了单个芯片引导AGV小车的基本功能。本设计主要工作体现在如下几个方面。

1) 在Xilinx Artix XC7A200T平台上构建了ARM-M3微处理器及相关外设。通过OV5640双目相机进行图像采集,经协处理器加速,ARM-M3微处理器分析周围的环境进行路径规划最终产生PWM信号驱动小车进行运动。

2)在硬件方面,本设计自制了OV5640双目相机及SiC780碳化硅电机驱动板。通过对双目视觉的原理进行分析,自制的双目相机选用了平行式双目立体视觉模式作为设计方案。得益于小车使用的麦克纳姆轮全向移动平台及自制的大电流碳化硅驱动板,小车可以自由灵活地进行各种运动。

3)在算法方面,本设计对传统的立体匹配算法进行了并行优化,使得算法的运行速度得到了极大地提升,最终实现了资源消耗、功耗、运行速度三者较好的平衡。为了消除图像的径向畸变、倾斜畸变及切向畸变,本设计采用了张正友标定法对双目相机进行标定和校正。利用Matlab的自动标定工具Stereo Camera Calibrator App得到了相机的内外参数并代入校正算法最终实现了图像的校正。

4)在测试方面,本文分析了传统立体匹配算法中存在的特征匹配耗时过长、匹配错误较多的问题,并在树莓派3B以及PC机进行了相关的对比实验。

5)在应用场景方面,采集视频数据自行构建二维码数据集,使用TensorFlow训练定点卷积神经网络,利用HLS构建CNN IP核,使之具备二维码检测能力。

2.系统功能介绍

2.1 总体介绍

本作品的目标是在ARM公司提供的ARM CortexM3 DesignStart RTL Eval处理器IP的基础上,设计AGV小车自主视觉避障专用SOC,开发出能够感知障碍物的双目深度视觉协处理器。

daba98a0-bed4-11ec-9e50-dac502259ad0.png

设计内容包括:

开发了基于BM(Block Maching)算法的双目立体匹配智能协处理器;

设计并制作了OV5640双目立体相机电路板 ,及双目相机视频采集Verilog驱动IP;

设计了用于显示参数和图像的LCD 驱动;

设计制作了运动控制模块驱动板,及相关PWM驱动;

控制具备全位移动能力的麦克纳姆车进行避障演示。

构建CNN IP核,使之具备二维码检测能力。

db10e1f6-bed4-11ec-9e50-dac502259ad0.png

2.2 系统流程

本系统在Xilinx FPGA Artix XC7A200T上构建ARM Cortex-M3处理器,搭配自行设计的OV5640双目相机采集视频并利用VDMA存入DDR中。深度加速模块根据相机标定参数进行畸变矫正和立体匹配,并将所得的视差图进行缓存。M3软核从DDR中读取视差图,计算与前方障碍的相对距离并进行路径规划。最后读取帧率数据,将相机图像,视差结果,运动方向和图像帧率在LCD上显示,并根据规划结果控制小车。

db41ec06-bed4-11ec-9e50-dac502259ad0.png

3.系统架构

3.1 架构简介

系统主要由视频采集、图像处理、实时显示和运动控制四个模块组成。

db5ecba0-bed4-11ec-9e50-dac502259ad0.png

A、视频采集模块由相机采集、寄存器配置、视频流转换三个子模块构成,实现对自行设计的双目相机分辨率和成像参数配置,并将采集数据传输到图像处理模块。

B、图像处理模块由配置为高性能模式的AXI连接器将VDMA、帧率计数器、深度加速核以及OSD结果呈现四个子模块互相连接,实现视差图计算和帧率计数功能,最后由结果呈现模块进行汇总传递给显示模块进行显示。

C、显示模块由视频流转换、视频时序控制器、动态时钟、和VGA显示四个子模块构成。根据高性能视频系统参考设计搭建视频显示模块的结构和参数配置。视频时序控制器产生1080p对应的行场同步信号交由视频流转换子模块输出到VGA显示模块,动态时钟可由用户自行配置来驱动VGA显示模块以适配不同的屏幕分辨率。在上述几个模块的协作下实现分辨率为1080p刷新率为60Hz的图像和运行参数显示。

D、运动控制模块主要由ARM-M3核、UART、GPIO、PWM子模块等模块构成。M3核读取DDR中深度加速模块的结果进行简单计算,实现对前方障碍物距离的估计,从而进行路径规划。最后读取视频采集模块和深度输出模块的帧率数据同小车运行方向一起输出到结果呈现模块和UART串口 ,实现实时运行参数的呈现。

3.2 软硬功能划分

相较于传统单片机串行采集相机数据,传输单个像素进行显示,根据定时器中断产生PWM,以及在PC机上都难以实现的稳定视差图计算输出在本系统中都由硬件实现,极大减轻了CPU负担。

软件部分主要在Keil中由C语言实现,主要用于初始化各个外设,配置相机寄存器。初始化完成后读取帧率计数模块数据和深度加速模块的结果,根据公式进行简单的四则运算完成对距离的估计。根据估计结果配置PWM模块和显示模块的寄存器实现运动控制和实时显示。

3.3 外设挂载

本系统的中央处理单元是由ARM公司提供的ARM CortexM3 DesignStart RTL Eval,整个系统及外设部署在Xilinx xc7a200tfbg484 FPGA平台上。本系统的主要由Cortex-M3软核,OV5640双目摄像头模块,深度加速模块,DDR3内存控制器,VGA显示器,AHB总线矩阵、AXI总线及APB低速外设等相关模块组成,详细框图如下图所示。

db8afe00-bed4-11ec-9e50-dac502259ad0.png

4.模块及系统功能仿真与测试

4.1 相机测试仿真

OV5640摄像头的寄存器配置由M3软核控制GPIO模拟SCCB实现,使用DSLogic逻辑分析仪捕获引脚电平,其配套软件DSView可以解析与SCCB兼容的IIC协议,显示不同电平组合对应的命令和数据。

db9f68c2-bed4-11ec-9e50-dac502259ad0.png

4.2 加速模块仿真

dbccb246-bed4-11ec-9e50-dac502259ad0.png

dbeb29b0-bed4-11ec-9e50-dac502259ad0.png

4.3 CNN二维码检测

二维码的图案相较于自然场景具有更简单的结构和纹理,本设计针对二维码图像的这一特点,构建了一个简单的CNN网络,该CNN网络包括三个卷积层、三个池化层和两个全连接层。

dc05147e-bed4-11ec-9e50-dac502259ad0.jpg

输入的图像通过不同的卷积核产生不同的特征图像用于提取目标不同的特征值。经过卷积操作,可以完成对输入图像的降维和特征提取。为了进一步降低特征图的维度并减少FPGA资源消耗,每一个卷积层后还需要加上一个池化层来减少数据的空间大小并控制过拟合。

全连接层是一个矩阵乘法,相当于一个特征空间变换,可以把有用的信息提取并整合。全连接的主要目标是维度变换,将高维的数据变成低维的数据。

经过上述运算之后,可以得到输入图像中含有二维码的概率。

4.4 模块和系统的整体测试结果

在室外放置两个纸箱作为路径障碍来进行系统的整体测试。下图节选自视频中小车对第二个障碍物进行避障操作参考图中两个障碍物的位置可知,在前进过程中前方物体距离太近时进行避障操作。当障碍物不再位于小车正前方时继续前进,达到避障的效果。

dc297aa8-bed4-11ec-9e50-dac502259ad0.png

5.参赛体会

通过本次比赛我们对基于ARM核的SOC设计有了一个初步的认识。通过ARM核+协处理器的方式使得整个系统在计算深度图像时的图像采集性能、功耗、成本优于常见的嵌入式系统及一般性能的PC机。相较于传统单片机串行采集相机数据,传输单个像素进行显示,根据定时器中断产生PWM,以及在PC机上都难以实现的稳定视差图计算输出在本系统中都由硬件实现,极大减轻了CPU负担。

本设计使用的FPGA芯片是Xilinx FPGA Artix XC7A200T。在参赛的过程中我们发现,当LUT的消耗大于10W,用量大于70%时,布线所用时长将成倍的增加,时序也将很难收敛。

关于安芯教育

安芯教育是聚焦AIoT(人工智能+物联网)的创新教育平台,提供从中小学到高等院校的贯通式AIoT教育解决方案。

安芯教育依托Arm技术,开发了ASC(Arm智能互联)课程及人才培养体系。已广泛应用于高等院校产学研合作及中小学STEM教育,致力于为学校和企业培养适应时代需求的智能互联领域人才。

原文标题:【2021集创赛作品分享】第五期 | 基于ARM-M3的双目立体视觉避障系统 SOC设计

文章出处:【微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    38

    文章

    3745

    浏览量

    215666
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119372
  • AGV小车
    +关注

    关注

    4

    文章

    121

    浏览量

    11003

原文标题:【2021集创赛作品分享】第五期 | 基于ARM-M3的双目立体视觉避障系统 SOC设计

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求教小车小车制作

    想参加学校的创新设计,准备做个小车,求教~~时间紧迫!!!
    发表于 03-24 08:59

    急求!!!小车方案与器件清单

    求教小车,我在写创新设计申请报告,但设计方案和元器件方面遇到些困难,求帮助!!!时间紧迫!!!
    发表于 03-27 00:48

    关于 小车设计方案

    请教下 小车设计方案 有几种选择? 超声波 如何?有没有其它
    发表于 08-31 11:54

    智能小车问题

    谁有小车的程序与仿真图,请发我邮箱,804902426@qq.com,谢谢了。
    发表于 04-30 08:07

    小车红外的编码

    谁有小车红外的编码,有的话麻烦发来给我,非常感谢!
    发表于 07-31 15:51

    智能小车

    求各位大神给个智能小车的protel电路图和pcb图,有的发到772478656@qq.com不胜感激。
    发表于 10-24 10:54

    循迹小车

    项目说明:使用红外线、超声波和无线模块在52单片机下控制小车,无线模块用于选择循迹模式、模式、无线遥控模式,模式时显示前方障碍物距离
    发表于 11-04 00:14

    智能小车

    那位大神能给我只能自制小车所用元件清单,本人新手大神帮忙。请发到邮箱1473923447@qq.com。或加我好友都行。谢谢
    发表于 05-23 10:50

    循迹小车

    大神,我想做个智能循迹小车,遇到东西会后退,能够走迷宫,有啥好想法没,求助,基于89C52
    发表于 11-15 00:45

    寻人小车

    想做一个自动寻人小车,人身上装有特定的信号源,小车捕捉信号源跟着人走,行走途中可以自动
    发表于 10-11 16:28

    循迹小车

    我是一名电子信息工程的大一新生,目前没有学习专业知识,想要自己做一个循迹小车,想要一个制作循迹
    发表于 10-02 00:09

    智能小车

    求教用51单片机做个小车想用摄像头采集,传到计算机处理,这两个模块学习什么内容
    发表于 02-06 15:01

    怎样去设计基于单片机的红外循迹小车

    设计简介:本设计是基于单片机的红外、循迹小车,主要实现以下功能:小车可通过手机控制实现红外
    发表于 11-26 08:25

    求一种基于stm32的机械臂循迹小车设计方案

    我目前正在做stm32小车,功能呢,比较一般,巡线,,使用ps2手柄控制小车,使用机械臂抓取小球。设计方案
    发表于 01-05 06:30

    基于STM32的循迹小车制作

    写在最前:最近由于需要制作了一个循迹小车,制作比较简单但是还是出现了很多bug,因此在博客中记录一下,希望对后期需要制作的能有所帮助,小车由PWM信号+L293D驱动。(二轮驱动,
    发表于 01-05 07:48