- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SOPC的魔方解算机器人设计与开发
【摘要】本文设计了基于fpga+niosii处理器的魔方解算机器人。通过对两个模拟摄像头的数据进行解码,得到魔方整体图像,把图像进行切割得到每个方块的采样点并通过中值滤波得到精确的颜色数据。fpga主要完成耗时大和重复率高的图像处理部分,niosii处理器完成魔方解算等单步运行且重复率不高的操作,使用avalon总线完成软硬件之间的数据传输,最终控制电机完成魔方的还原。sopc技术简化了硬件电路的设计,降低系统的功耗,提高系统运行的稳定性。
【关键词】fpga;niosii处理器;机器人;魔方解算
一、
引言
fpga克服了传统cpu处理数据能力弱的特点,具有并行计算和可编程的特性。fpga内部拥有庞大的乘法器和硬件浮点运算部件,其乘法运算性能是一般cpu所不能媲美的,非常适合进行密集型计算任务,如图像处理、矩阵计算、卷积神经网络等。
二、系统结构
系统工作流程及功能框图如图1所示。系统硬件结构框图如图2所示,系统硬件主要由cycloneii系列的fpga芯片、模拟摄像头、adv7180视频解码芯片、sdram存储器、adv7123高速视频dac芯片、光电开关、步进电机等组成。系统硬件结构框图如图2所示。
本系统工作流程是:通过两个模拟摄像头对魔方进行全方位采集图像,通过解码芯片得到数字化的图像数据然后传到fpga中进行处理。fpga首先把itu-rbt.656接口协议的图像数据解码成ycrcb格式缓存在sdram,然后再把每一帧图像从sdram中读出来进行切割图像,得到每个方块的像素点,紧接着进行中值滤波处理。然后把ycrcb格式转rgb格式,再从rgb格式转成hsv格式,即图像的明度、饱和度、色调。将解析完的颜色模型通过avalon总线传到niosii处理器中建造3阶魔方模型,通过魔方算法把魔方还原步骤下传到fpga中fifo里面,然后fifo数据依次读出控制步进电机转动。
niosii处理器与fpga分工合作,fpga主要完成一些耗时大和重复率高的图像处理部分,而niosii处理器则完成魔方解算这种单步运行且重复率不高的操作。这样的设计方法大大减少了cpu的负荷,通过fpga中流水线以及硬件复制等设计方法来进行硬件加速,极大地加快了整个魔方解算的时间。在步进电机控制中,由fpga搭建分频器产生pwm脉冲使得魔方转动,使得整个魔方转动更加的稳定,而且能准确转动某个角度。
三、魔方解算
魔方解算公式采用最普遍的层先法,先完成底层十字,再完成第一层的还原,然后完成第二层的还原,接着顶层十字还原,最后通过改变角块和色块的位置完成整个魔方的还原。
魔方方块的颜色识别是整个魔方设计最重要的环节,它主要包括图像切割模块、中值滤波模块、rgb转hsv模块以及颜色识别模块。图像的坐标信息以及像素数据输入到图像切割模块中,采样每个魔方方塊中心3x3的rgb数据,并储存在3x3的像素矩阵中。接着把每个3x3的像素矩阵输入到中值滤波模块中,提取出中间值作为该方块的颜色。由于只需对切割的图像进行中值滤波,而图像的刷新也仅仅达到每秒30帧的速度,所需要的数据带宽并不大,所以通过多路选择器对中值滤波模块进行分时复用,这样的做法同样可以对每个3x3的像素矩阵进行滤波,同时也减少了硬件复制所带来的硬件资源的浪费。同样以分时复用的设计方法把每个像素数据输入rgb转hsv模块以及颜色识别模块,接着得到所需要的hsv格式的颜色数据,最后把这些数据挂载在avalon总线上等待niosii处理器的访问。
四、实验结果及分析
由于颜色数据受光线的影响较大,白天与晚上的数值上下浮动比较大,并且不同地方的光线条件也相差甚远,因此采用hsv颜色模型来识别颜色,减少了误差。除此之外,面对光线反光的问题,在实验中需要添加挡光板来避免光线斜射导致的光滑平面的反光。这样做使得机器人不会因为反光而识别不出来颜色。在后期的调试中,在保证性能的前提下,可以通过改良算法来减少转动的步数。通过反复实验,在步进电机每秒转360度时,魔方转动稳定,并未出现丢步和失灵的现象,提高了魔方还原的效率。
通过改变魔方的地理位置以及转动魔方的方向,改变每一个魔方平面上每种颜色的占比,并在不同光照强度下统计该设计的魔方机器人对各个颜色的识别率,每种颜色采样次数为100次,在强光、中强光、弱光三种条件下分别进行实验,魔方还原准确率达99%以上。
五、结论
本设计的魔方解算机器人,采用niosii+fpga的设计方法,取代了传统的cpu嵌入式系统设计,使用avalon总
文档评论(0)