欢迎来到天天文库
浏览记录
ID:16477282
大小:753.00 KB
页数:13页
时间:2018-08-10
《基于fpga的嵌入式机器人视觉识别系统模块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于FPGA的嵌入式机器人视觉识别系统模块http://www.robotsky.com 来源:机器人天空原创 时间:2008-03-10 评论2条 (访问论坛) RobotSky恭候您的投稿>>美国西雅图机器人俱乐部KennethMaxon开发了这款强大的视觉识别模块,它能够对目标物体进行非常准确的识别和简单测距。作者公开了硬件和软件的所有源文件与大家分享。作者邮箱:kmaxon@uswest.net作者网站:http://www.users.qwest.net/~kmaxon/index.html本项目英文页面:http://www.seattlerobotics.o
2、rg/encoder/200601/article3/index.php所有源代码本站打包下载(注意,源代码均在网页文件中):http://www.robotsky.com/down/codes/2008-03-10/120511135790.html图一:彩色视觉系统的设计概述在图一中,箭头代表互连。粗线描绘的是视频数据的通道,包括模拟和数字。这些数据在图中不同功能块中以不同形式呈现。最简单的数据通道是摄像机到处理器(从右到左)的数据获取。在功能块VideoCamera和VIP之间,录像是模拟NTSC格式并通过电阻与75ohm同轴电缆进行匹配;在功能块VIP和FPGA之间,数
3、据以一个多线路的时间同步数字传输格式呈现;在功能块FPGA和SRAM之间,视频数据仅仅是实际的数据;最后,在功能块U-Processor和FPGA之间,视频数据是通过处理器地址和数据总线随机存储的。图二:电路板PCB焊点图彩色视觉系统的设计利用了六个基本功能模块——U型处理器,FPGA(现场可编程门阵列),视频输入处理器,NTSC系统彩色摄像机,SRAM数据缓冲区和彩色液晶显示器。在图一上可以看到这六个功能模块和它们之间的相互联系,其中粗线箭头代表视频路径。第一个功能模块是U型处理系统。由于这是一个通用的视觉系统,这里就不重点介绍U型处理器。第二个功能模块FPGA是整个视觉系统
4、的核心部分。可编程逻辑是用来实施一些状态机,记忆体映射寄存器和其他功能,进而剥离处理器的图像采集功能。彩色视觉系统实施全部功能所需要的逻辑元件数量远远超过了以往项目中CPLD(复杂可编程逻辑元件)的使用数量。在选择FPGA的时候,最重要的是找到一个与处理器兼容的电压等级。需要电压等级转换芯片是因为驱动电路板的尺寸和调试的复杂性。最适合彩色视觉系统的FPGA是XilinxSpartanII-E系列的XC2SE-300。第三个功能模块是模拟前端。在某种意义上,它代表一个模拟向数字转换的功能。因为输入这个系统的是NTSC视频,而输出是原始数字视频,所以它比标准的高速模拟数位转换器需要
5、更多的电路元件。如果目标是黑白的图像,简单的A/D转换就足够了,但是在彩色视频中捕捉相位关系就需要更多的能量。这种能量来源于视频输入处理器VIP(VideoInputProcessor)。第四个功能模块在某些情况下是可选的。该功能块是一个静态的RAM池。它直接连接到FPGA。数据的输入和输出由FPGA内部的状态机完成。在这种情况下,数据就是即将被采集的视频图像。这个模块可选是基于一部分设计上的限制的。现在,FPGA中都含有大量的RAM。而所包含RAM的具体数量取决于系统要采集的图像的尺寸(X-Y+色彩深度)。第五个功能模块是彩色视频摄像机。过去主要是围绕物理尺寸等参数来选择摄像
6、机以满足机器人所需空间。只要光学和CCD都是合理的,NTSC-CCIR/ITU601就能保证多数摄像机正常工作。第六个功能模块是彩色液晶显示器。这个跟我们平时所认识的液晶显示器作用相同,这里也不作详细介绍了。图三:摄像机应用一:有色的Blob跟踪图四:Blob颜色检测该视觉系统应用之一就是简单的Blob颜色检测。如图三所示,彩色LCD显示屏的右边的影像是一个数码快照曝光点。在这张图像上,系统正在识别绿心。在这个系统中颜色边界定义如下:red_bounds{8:2}green_bounds{31:10}blue_bounds{24:10}这些限界是针对该系统的。在顶层文件系统中分
7、别称为red_upper,red_lower,green_upper,greenlower,blue_upper和blue_lower。这六个5位的寄存器从U型处理器总线接口被写入(内存映射),它们的内容反过来被输出到blob检测模块与原始视频信号做比较。在每一个R,G,B中系统的色彩深度都是5位。这就导致了一个颜色跨度0~31,并且[31,31,31]代表白色。为了存储和加工,一开始这些都会被处理为一个单独的MSB格式的16位字即[0,R4,R3,R2,R1,R0,G4,G3,G2,G1,
此文档下载收益归作者所有