嵌入式机器人
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式机器人视觉系统的设计与实现
(南通大学电气工程学院电134)
[摘要]科技的飞速发展推动了工业生产的自动化,基于机器视觉的智能机器人在工业等各个领域中得到了广泛的应用。本文大胆提出了将机器视觉与嵌入式系统相结合的思想。针对嵌入式系统资源的有限性,提出了一种基于DSP的机器人视觉系统的嵌入式解决方案,包括设计系统的硬件平台、操作系统的移植、应用软件的开发等[1]。
[关键词] :嵌入式、机器人视觉、ARM、DSP
一、现状
人类正在进入信息时代,计算机将越来越广泛地进入几乎所有领域,一方面是更多未经计算机专业训练的人也需要应用计算机,而另一方面是计算机的功能越来越强,使用方法越来越复杂,这就使人在进行交谈和通讯时的灵活性与目前在使用计算机时所要求的严格和死板之间产生了尖锐的矛盾。人可通过视觉和听觉,语言与外界交换信息,并且可用不同的方式表示相同的含义,而目前的计算机却要求严格按照各种程序语言来编写程序,只有这样计算机才能运行。为使更多的人能使用复杂的计算机,必须改变过去的那种让人来适应计算机,来死记硬背计算机的使用规则的情况,而是反过来让计算机来适应人的习惯和要求,以人所习惯的方式与人进行信息交换,也就是让计算机具有视觉!听觉和说话等能力。这时计算机必须具有逻辑推理和决策的能力,具有上述能力的计算机就是智能计算机,智能计算机不但使计算机更便于为人们所使用,同时如果用这样的计算机来控制各种自动化装置特别是智能机器人,就可以使这些自动化系统和智能机器人具有适应环境和自主决策的能力。这就可以在各种场合取代人的繁重工作,或代替人到各种危险和恶劣环境中完成任务[2]。
(1)DSP技术的发展应用现状
现在DPS产品的应用已扩大到人们的学习工作和生活的各个方面,并逐渐成为电子产品更新换代的决定因素。随着DSP性能的不断改善,用DSP作实时处理已经成为当今和未来发展的一个新热点,随着生产技术的改进和产量的增大,其成本与价格则大幅度下降,使得它的应用范围不断扩大,成为当前产量和销售量增长幅度最大的电子产品之一。
(2)机器人视觉的发展
机器视觉系统按其发展可分为三代,第一代机器视觉的功能一般是按规定流程对图像进行处理并输出结果,这种系统一般由普通数字电路搭成,主要用于平板材料的缺陷检测。第二代机器视觉系统一般由一台计算机,一个图像输入设备和结果输出硬件构成,视觉信息在机内以串行方式流动,有一定学习能力以适应各种新情况。第三代机器视觉系统是目前国际上正在开发使用的系统以采用高速图像处理芯片,并行算法,具有高度的智能和普通方法的适应性,并以模拟人的高度视觉功能为目标[3]。
二、系统的硬件设计方案
基于 DAM6416P 图像处理平台的机器人视觉系统的硬件的组成部分:CCD 摄像头、视频解码器(高速 AD)、DSP 处理块和外部显示器等部分构成。其中视频解码器采用 BT835, 支持 PAL 制式的 4:2:2 的 YUV 视频格式输入 ;DSP 的主频600MHz, 包含两条外部总线 EMIFA 和 EMFB; SDRAMA 是256M的外部存储器, 它兼有两种功能, 图像采集时作为帧存贮器, 图像处理时作为 DSP 扩展内存;Flash 共 4MB, 用于存储DSP 的引导程序及主程序[4]。
三、系统的软件设计方案
本系统DSP端的程序在CCS2.20环境下进行开发,首先定义由视频解码器BT835采集PAL 制式的模拟视频输入和VGA视频输出格式,然后利用板级开发函数库IEKLIB中定义的VIDEO
模块来分配缓冲区的大小,并定义输出图像的VOUT模块中输出缓冲区的结构为乒乓结构,同时定义乒乓结构的索引标志和存放YUV分量的3个数组,通过main函数对DAM6416P板、 PCI 接口进行初始化,并在main中动态开辟了一个线程tsk_mian.在tsk_main中,首先对video 模块进行初始化,然后打开video模块,实现对图像的采集和输出,最后通过回调函数内的分支程序对PC送来的命令进行解释和执行.当DAM6416P板初始化完后,向主机发送消息MessageBuffer[0] = 0x11111111,表明DSP可以采集图像数据了, DSP以死循环的方式等待主机发开始图像采集的消息命令MessageBuffer[0]= 0x22222222,如下所示: MessageBuffer[0] = 0x11111111;
MessageBuffer[1] = status;
status = PCI_ sendMessage( 0, 2* sizeof
(Uint32), MessageBuffer);
while(1)
{
PCI_geMt essage(&msgFlag,&bytesRead, sizeof(MessageBuffer), MessageBuffer);
if(MessageBuffer[0] = = 0x22222222)
}
当DSP接收到该消息命令时,在main中开辟动态线程tsk_mian.在tsk_main中,首先对video模块进行初始化和启动video模块,打开VIN和VOUT模块并启动采集和输出模块,联接响应PCI接口消息的回调函数ProcessMsg(),如下所示:
Uint32 PCMessage[5];
memset(PCMessage, 0, sizeof(PCMessage));
PCI_ geMt essage(&msgFlag,&bytesRead, sizeof
(PCMessage), PCMessage);
通过该函数DSP接收主机发送的一系列控制命令.当主机回送消息MessageBuffer[ 0]= 0x33333333时,表明DSP开始采集图像.在采集图像数据的环形缓冲区中,通过无限循环查询的方式来读取未读取的图像数据,读取一帧图像后,把YUV进行格式转换为RGB,然后送至VGA 视频输出.同时在tsk_main另行开辟一个独立的线程,当每采集到一帧图像数据,通过PCI 消息MessageBuffer[0]= 0x44444444,向PC传送当前采集的图像序号.在响应PCI接口消息的回调函数体内,DSP通过PCI接口接收主机发来的一系列消息命令,进行解释并执行相应的功能模块:当DSP接收到主机的消息命令PCMessage[ 0]= 0x55555555时,DSP停止VIN模块对图像数据采集.
If (PCMessage [0] = = 0x55555555)
Status= VIN_stop (hVin);
当DSP接收到主机发来的对图像进行预处理的消息命令PCMessage[ 0] = 0x66666666时,DSP对采集的最后一帧图像数据进行预处理,对采集到的图像进行几何畸变校正;当DSP 接收到主机发来的对目标图像进行特征提取和识别的消息命令PCMessage[ 0] =0x77777777时, DSP在预处理后的图像数据中对目标物体进行特征提取和识别[7,8].识别结果通过PCI 以消息的形式传送给主机的VC+ +对话框界面.为机器人的轨迹规划提供目标物体的位置、倾斜度、面积等信息.主机发消息命令PCMessage[ 0]= 0x99999999给DSP,DSP结束程序的运行,DAM6416P板返回到未初始化状态[5]。
[1]付安新. 基于DSP的嵌入式机器人视觉系统的设计与实现[D]. 浙江:浙江大学,2006.
[2]王明亮. 基于嵌入式的机器人视觉系统的研究[D]. 东华:东华大学,2007.
[3]孙兴. DSP在机器人视觉系统的应用与研究[D]. 贵州:贵州大学,2006.