Expires: Wed, 30 May 2012 03:27:55 GMT Date: Thu, 31 May 2012 03:27:55 GMT Content-Type: text/html; charset=UTF-8 Innovate Asia – Altera Design Contest 2012 - Contestants - CN212

Profile - CN212


CN212

基于图像处理的5阶魔方机器人

哈尔滨工业大学
电气工程及其自动化


Finals


[print]


Project

Name of Project:基于图像处理的5阶魔方机器人

Contact Information

Name:张传雨
E-Mail:zcypolaris@163.com
Telephone:0451-86402245
Mobile Phone:13644616672
Mailing Address:哈尔滨市西大直街92号哈尔滨工业大学逸夫楼204室

Contest Advisor

Name:杨春玲
E-Mail:yangcl1@hit.edu.cn
Telephone:86402245

Members

No.NameE-MailEnglish Name
1张传雨zcypolaris@163.comzhangchuanyu
2张振东nbawang10037@126.comzhangzhendong
3孟保禄509478407@qq.commengbaolu

Project Paper - view as Preliminary(2011/08/29), Final(2011/08/29), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

1.      设计意图
机器人的出现和发展是计算机技术进步和自动化研究不断深入的结果。工业机器人的产生提高了人类社会生产力,极大的改变了工业生产和人类生活样貌。但现有机器人一般系统较为复杂,并且成本昂贵。
本项目中我们设计出一种结构简单但功能强大的智能操作机器人。通过不同的算法配置,将其应用到各种工业现场,满足不同的工业加工要求。通过图像采集和识别可以确定目标初始状态,完全省略人工操作,通过产生和完成一系列操作指令,最终达到处理要求。根据参赛队员自身兴趣我们选取逻辑分析较为复杂的魔方作为操作对象,验证机器人的实际动作能力。
2.      适用范围
本产品主要适用于各种需要遵循一定复杂逻辑规则、操作重复性较高的工业操作现场。如工业流水线,各种生产流水线的的处理过程大多比较单一,只需要固定的几种重复性操作。人工完成存在固有的不足,如错误率较高、工作枯燥导致的效率下降和安全隐患。采用本产品可以完全避免这种情况的发生。
3. 本设计采用ALTERA器件的优势
1Nios II IDE开发环境集成了已经移植到Nios II处理器的RTOS ucosII操作系统,可以高效地完成各种运算和控制任务,另外总线上可扩展各种组件,如用Verilog HDL语言编写的图像处理模块、存储器、GPIO等。
2Nios II处理器提供的SOPC设计理念允许用户对软核系统的性能进行自主选择,以符合要求并节省资源,这是固定处理器所不具备的。丰富的IP核库,方便用户设计,有效的提高系统的运算能力。
3C2H编译器对设计进行有效支持。编译器能够将对性能要求较高的C语言程序自动转换为硬件加速器,集成到基于FPGANios II子系统中。分担了Nios II处理器的数据计算和存储器访问功能,使处理器能够更好的处理其他任务。
(Revision: 2 / 2011-08-28 20:13:29)

2. 功能描述 (Final Project Paper)

本设计采用DE2多媒体开发平台,充分利用NIOS软核特性,设计实现了一个基于数字图像识别的五阶智能魔方机器人。充分发挥uc/osII RTOS实时操作系统的实时控制功能。功能如下:

 

1.     数字图像采集和识别

1)本智能机器人通过I2C总线连接摄像头获取数字图像信息,并根据处理需要选择截取图像有效区域。

2)通过对区域内像素数值特征分析进行颜色识别,最终确定处理目标的初始状态。

3为便于观察演示,将数字图像识别过程通过VGA显示器进行显示。

2.     逻辑分析和处理

通过对五阶魔方初始状态的分析,通过软件方式产生解出魔方的物理动作组合,将这些动作进一步分解得出一系列基本机械动作,用于直接参与对魔方的处理。

3.     运动控制

上述基本动作通过有机器人本体的不同运动机构实现,主要动作有三个:升降、翻转和旋转。分别由步进电机带动的齿轮齿条结构、双舵机、步进电机带动的旋转框架完成。

 

目标识别模块、逻辑分析和运动控制模块是本设计的功能核心所在。利用NIOS处理器强大的运算能力,大部分算方法采用C语言实现,缩短了开发周期,并且对系统性能进行了优化。

 

(Draft / 2011-08-28 20:26:14)

3. 性能参数 (Final Project Paper)

3.2 FPGA和开发板板载资源使用情况

3.1各模块性能参数

     (1)图像采集和识别模块

     采集到图片初始尺寸 640*480。

     截取子图像尺寸 400*20。

     需要进行区分的颜色数量 6。

     (2)魔方算法部分

     解出魔方所需动作个数不大于 500。

     (3)机械部分

     设定电机转速、电机额定功率

              步进电机1 100r/min 5w

              步进电机2 150r/min 7w

              舵机 转角 89度 

     机器人总体重量 10kg。

     完成操作所需总时间  73分钟

 

3.2FPGA和开发板板载资源使用情况

 

图3.1 FPGA和开发板板载资源使用情况

(Revision: 3 / 2011-08-28 20:44:59)

4. 设计结构 (Preliminary Paper)

 

 

1.      系统框图:魔方机器人主要由图像信号前端采集和识别、逻辑分析和计算以及机械结构三大模块组成,系统结构如图:

2.      硬件平台:硬件平台采用DE2开发板,使用Altera公司的CycloneII FPGA EP2C35F672C6芯片,利用SOPC(片上可编程系统)技术将Nios II软核、存储器、功能IPI/O口等集成在一块FPGA芯片上,外围扩展图像数据采集模块、存储器等硬件来实现系统的硬件架构。

3.      系统软件流程图如下:

(Revision: 4 / 2011-05-27 10:36:26)

5. 设计方法 (Final Project Paper)

 

(一)系统硬件设计

    我们以NIOS软和处理器为核心,采用DE2开发平台,充分利用开发板上集成的多种外设接口,拓展外部功能模块构建SOPC硬件系统图下:

图5.1  系统硬件配置

             基于图像处理的五阶魔方机器人的控制系统采用的是在Nios II 11.0 IDE的基础上进行开发的。Nios Ⅱ嵌入式处理器是ALTERA公司推出的采用哈佛结构、具有32位指令集的第二代片上可编程的软核处理器, 其最大优势和特点是模块化的硬件结构, 以及由此带来的灵活性和可裁减性。相对于传统的处理器, Nios Ⅱ系统可以在设计阶段根据实际的需求来增减外设的数量和种类。设计者可以使用ALTERA 提供的开发工具SOPC Builder, PL D器件上创建软硬件开发的基础平台, 也即用SOPC Builder创建软核CPU和参数化的接口总线Avalon。在此基础上, 可以很快地将硬件系统(包括处理器、存储器、外设接口和用户逻辑电路)与常规软件集成在单一可编程芯片中。而且, SOPC Builder还提供了标准的接口方式,以便用户将自己的外围电路做成Nios Ⅱ软核可以添加的外设模块。这种设计方式, 更加方便了各类系统的调试。

基于图像处理的五阶魔方机器人的设计流程主要如下图所示:

图5.2  系统工作流程图

 

首先在系统上电以后,程序从EPCS配置到Flash,并且开始运行程序代码。然后,对定时器、外部中断等功能模块进行初始化。初始化定时器是为产生驱动舵机所使用的PWM波形,初始化外部中断是为了采集下层推杆的位置信息。其次,控制图像采集的IP核,分别采集魔方的每个面的图像信息,并且从SRAM从这些信息。通过魔方的算法,计算出需要的运动步骤。最后将这些运动步骤在机器人上实现出来。

系统中所应用到的IP核主要有:

a)       CPU

在本系统中,所采用的CPUNios II/s(标准型),这种CPU在占用逻辑和高性能优化方面的性能居中,占用12001400逻辑单元。并且将调试等级设置为Level 1

 

 

图5.3  NIOS CPU的配置

 

a)       Avalon 三态总线桥

Nios CPUSRAM等外部扩展器件相连接时需要Avalon三态总线桥。因此只要在“Bridge”选项卡中选择“Avalon Tri-State Bridge”,并且不需要做任何改动即可。

b)      加入片外SRAM

在本系统中,需要使用到SRAM,因为图像处理的IP将读取到的图像信息SRAM中,当IP核存储完毕以后,会产生一个外部中断,这时CPU会从SRAM空间中读取出图像信息。

c)       加入片外FLASH

本系统中用到的FLASH是用于存放程序代码的,在添加FLASH之前必须添加三态总线桥。并且将二者相连接。

d)      加入EPCS

本系统添加EPCS模块的主要目的是用来存放配置程序的。

e)       添加SDRAM

系统在运行过程中所产生的中间数据完全存放在SDRAM中,在配置SDRAM的时候,同时还需要配置其所对应的PLL模块。

 

a)       添加UART

系统需要将采集到的数据信息以及运动信息实时传输到上位机。因此需要添加UART模块,再添加过程中将波特率配置为9600,传输格式为8位数据帧,1位停止位。

(二)硬件实现步骤及实现方法

 

    整个设计采用自上而下的设计方法,搭建系统硬件模块。首先设计各子功能模块。之后在SOPC builder中将所需个功能模块通过avalon总线集成,在较短的时间内构建一个完整而稳定的系统,有效缩短了设计周期、提高了系统稳定性。

      1、图像采集模块设计

 

   本设计中,用于完成数字图像采集的是TRDB-DC2摄像头,

   安装摄像头时,要保证摄像头和五阶魔方的相对位置,保证摄像头能够采集到完整的颜色信息。

 

 

 

 

图5.4 摄像头TRDB-DC2  

    为节省显存,我们采用逐行扫描的方式,即每次只采集魔方一行中五个颜色块的图像用于后续的颜色识别。每一行的识别完成后在进行下一行的采集和分析。这一过程并不需要机械结构的运动,只需对摄像头获得的实时据进行选择即可完成,有效降低了机械部分的运动复杂度。

 

图5.5 图像采集模块

 

      2、  图像识别模块设计

   为保证判定结果的准确性,在图像有效区域选取一定数量的采样点,进行采样后分别对三种颜色的亮度值取平均值,用于代表整个有效区域的颜色特征。之后按照一定的逻辑关系对图像颜色进行判定。

图5.6 图像识别模块

 

 

 

 

 

    值得特别提出的是,为准确进行六种颜色的相互区分,克服光照条件变化对是被结果产生的影响,我们在对像素亮度之进行分析时,采用的量度并非绝对的数值,而是相对的,即充分分析三个像素值之间的相对数值关系。此外我们在机器人上装配照明设备,保证光照环境的稳定,进一步提高了颜色是别的准确性。

 

 

图5.7 图像识别判定流程

 

     3、 图像显示

    本作品采用普通PCVGA显示器作为图像采集和识别部分人机交互界面。VGA显示器设计方案主要区分于显存的使用,一方面为使用片外存储器如SDRAMSRAM,可以获得较高的颜色深度和图像分辨率,另一方面为采用片上存储器,节省资源操作方便。

    本作品的设计过程中需要显示和分析的只是数字图像的有效部分,对魔方进行逐行扫描只需占用十分有限的存储空间,因此我们选用片上双口RAM作为显存。我们设计了基于片上双口ramVGA显示IP核,方便地实现640*4801024色图像显示,完全满足设计需要。

5-1

配置选项

取值

Development and Education board

DE2

Vedio Out Device

VGA connector

Display Mode

Pixel Mode

Colour Setting

10-bits Mode

Resolution

640*480

 

     (三) 魔方算法软件设计

 

    首先,图像识别IP核将采集到的图像信息存入SRAM的制定存储空间中,当图像识别完全结束以后,Nios II的CPU从该区域中读出这些信息,并将其存放在数组中然后再启动魔方算法程序。
魔方算法首先解出形成五阶魔方的中心块中的十字形所需的步骤,然后再解出中心角所需要的步骤,这样就可以整体完成中心块的归位。
然后使用84归棱法将12条棱边还原。自此,五阶魔方就完成了降阶,实质上,这就已经变成了一个三阶魔方,因此接下来只需要完成解三阶魔方的工作即可。
    解三阶魔方的主要过程是,首先将三阶魔方的底面的十字形还原,然后将底面的角块进行归位,并且还原。其次是将魔方的第二层全部还原,这时魔方就仅剩下第三层没有还原了。接下来的步骤就是还原顶层的十字形,最后还原顶角。

 4、自制机器人本体

1)抬升机构

    抬升机构采用齿轮齿条结构,由步进电机驱动。负责控制魔方的上下运动。再齿条运动路径中加装红外对管作为行程标识,精确定位魔方各层所在位置,防止误操作。

2)旋转机构

    由步进电机提供旋转的动力,红外对管实现角度定位,即旋转90度,180度和270度,旋转方向为单向顺时针,逆时针操作可通过顺时针完成,有效降低运动复杂度,减小位置误差和软件编写难度。

3)翻转机构

    采用一对舵机实现对魔方的90度翻转动作,这一动作可与旋转机构相配合,完成对魔方任意位置的任意操作。

 

 

        SOPCAltera公司提出的一种灵活高效的SOC解决方案,可以实现软硬件协同设计。他将各子功能模块集成到一个可编程片上系统中,功能强大。

SOPC系统可进行硬件重构和重新配置,并且Nios CPU具有的可裁剪的特性允许我们方便地进行算法升级,不许过多考虑硬件配置的问题。

 

(四)SOPC概念在本设计中的应用
    魔方的算法主要是模仿人们玩5阶魔方的习惯进行编写的,该算法所采用的思想是降阶法,即首先将5阶魔方变成3阶魔方,然后再对3阶魔方进行操作。其主要步骤如下:

 

    

        

(Revision: 5 / 2011-08-28 21:50:21)

6. 设计特点 (Preliminary Paper)

本作品在以下几个方面都具有独到之处:

1.     强大的逻辑分析功能。NiosII处理器可进行复杂的逻辑分析运算,将繁琐的操作过程简化为若干重复性简单动作的组合,简化了机械部分,节约制造成本,也使系统具有更高的可靠性。
2.     高速图像处理。FPGA在合理利用硬件资源基础上,可充分挖掘图像处理算法中的并行性加快处理速度。利用图像识别技术获得目标初始状态的完备描述,为逻辑分析运算提供准确的初始化参数,简化工作过程,实现动作的连续性和高效性。
3.     硬件设计:图像处理模块采用Verilog HDL语言编写,NiosII处理器负责复杂的逻辑运算和动作控制。二者通过avalon总线相连接,使自身优点得到最大的体现和发挥。
4.     软件算法:软件部分完成了以下几项工作:操作对象模拟、动作模拟、逻辑分析、结果生成。采用这种方式,可以获得操作对象的即时状态,避免了对目标的多次检测和状态识别。NiosII处理器为这种软件设计方式提供了最终实现的平台。
5.     使用FPGASOPC功能设计而成的设备具可自主思考、灵活性高、可裁减、高性能等优点。同时提高了稳定性,使本设计能够适应各种工作环境。
(Draft / 2011-05-26 15:52:40)

7. 总结 (Final Project Paper)

1. 通过本次比赛,加深了对SOPC概念的理解,对使用Nios II CPU进行嵌入式开发有了许多新的心得体会。AlteraSOPC给我们提供功能强大的设计平台,硬件开发、驱动编写到应用程序的开发都有所涉及,使得系统级的开发能更加快速和高效。
2. 本次设计中,我们使用了DE2开发板上包含的绝大部分功能模块,对开发板的功能进行了深入的探索。并且分别采用SOPC技术及硬件描述语言完成复杂控制和数字图像处理,极大地突出ALTERA FPGA本身的优势。
3. NIOS与其他嵌入式系统的不同在于它设计过程的灵活和透明。我们能看到一个系统从最底层的实现到应用层的设计的整体过程,完全透明的设计过程,极大地加深系统整体设计功底,这是其他嵌入式系统所不能比拟的。
4. 目前为止,我们的作品许多功能还需要改进。比如改进机器人软件算法。更换大功率、大扭矩的步进电机。改进图像识别模块和NIOS CPU之间的数据交换方式等。这都需要我们继续努力。
5. 最后,感谢ALTERA公司为我们提供参加本次比赛的机会及开发系统所需的DE2开发平台,感谢给于我们关心和帮助的老师和同学。
(Draft / 2011-08-28 20:16:17)