kl800.com省心范文网

基于“创意之星”的颜色识别机器人课设论文






机器人是高级整合控制论、机械电子、计算机、材料和仿生学的产物。在工业 、 医学、农业、建筑业甚至军事等领域中均有重要用途。 现在,国际上对机器人的概念已经逐渐趋近一致。一般来说,人们都可以接受这种 说法,即机器人是靠自身动力和控制能力来实现各种功能的一种机器。联合国标准化组 织采纳了美国机器人协会给机器人下的定义:“一种可编程和多功能的的操作机;或是 为了执行不同的任务而具有可用电脑改变和可编程动作的专门系统 。 机器人一般由执行机构、驱动装置、检测装置和控制系统和复杂机械等组成。 机器人能力的评价标准包括:智能,指感觉和感知,包括记忆、运算、比较、鉴别、 判断、决策、学习和逻辑推理等;机能,指变通性、通用性或空间占有性等;物理能, 指力、速度、可靠性、联用性、寿命等。因此,可以说机器人就是具有生物功能的实际 空间运行工具。 本篇所介绍的颜色识别机器人是一个具有颜色识别和语音控制等简单功能的智能 机器人。它能够识别红蓝绿三种颜色,并且能够使用语音控制其运动。

关键字:机器人;颜色识别;语音控制;

1

Abstract
nowaday, the international concept of robots has been gradually approaching the same. In general, people can accept this view, that the robot is controlled by its own power and ability to achieve the various functions of a machine. The United Nations Organization for standardization adopted the United States to Robot Robot Association under the definition : "a programmable and multifunctional operation machine; or to perform different tasks with available computer and a special system programmable action.

robot by executing agencies, driving device, a detection device and a control system and a complex mechanical components.

robot ability evaluation criteria include: intelligent, and the perception that feeling, including memory, calculation, comparison, identification, judgment, decision-making, learning and logical reasoning; function, a flexible and universal or space occupied ; physical energy, finger strength, speed, reliability, the use of the lifetime. Therefore, the robot can be said is a biological function of real space running tools.

This article introduces color recognition robot is a color recognition and voice control such as a simple function of the intelligent robot. It can identify the red green blue three colors, and the ability to use voice to control its movement.

Keyword: robot;color identification;speech identification

2





引言:................................................................................................................................................................ 1 1 颜色识别机器人结构设计 .......................................................................... 错误!未定义书签。
1.1 颜色识别机器人的功能要求 ..........................................................................................................1 1.2 颜色识别机器人的组成与功能 ........................................................................错误!未定义书签。 错误!未定义书签。 1.2.1 颜色识别机器人的系统组成 .........................................................................错误!未定义书签。 错误!未定义书签。 1.2.2 颜色识别机器人的组成器件 .......................................................................................................... 2 1.3 颜色识别机器人的搭建 ........................................................................................................................ 3 1.3.1 运动系统的搭建 .................................................................................................................................. 3 1.3.2 视觉系统的搭建 .................................................................................................................................. 3 1.3.3 听觉系统的搭建 .................................................................................................................................. 4 1.4 CDS5500 舵机的设置 .............................................................................................................................. 3

2 颜色识别机器人的原理分析 .................................................................... 错误!未定义书签。
2.1 视觉系统的原理分析 ...........................................................................................错误!未定义书签。 错误!未定义书签。 2.2 听觉系统的原理分析 ...........................................................................................错误!未定义书签。 错误!未定义书签。

3 程序设计 .................................................................................................................................................. 6 程序设计
3.1 设计思路 .................................................................................................................................................... 7 3.1.1 系统功能模块划分 ............................................................................................................................. 7 3.1.2 系统流程图分析 .................................................................................................................................. 8 3.2 程序设计 .................................................................................................................................................... 9 3.2.1 编写程序 ................................................................................................................................................ 9 3.2.2 颜色阈值标定 ................................................................................................................................... 12 3.3 程序调试...................................................................................................................................... 14 3.3.1 程序运行出现的问题和解决办法.............................................................................................. 15

4 总结

................................................................................................................................................16

参考文献: .................................................................................................................................................... 17 附录:……………………………………………………………………………………………………18 附录:……………………………………………………………………………………………………18

3

桂林电子科技大学

第 1 页 共 44 页

引言:
随着科技的进步,机器人技术已经处于腾飞的时代。 我们从广泛意义上理解所谓的智能机器人, 它给人的最深刻的印象是一个独特的进 行自我控制的“活物”。其实,这个自控“活物”的主要器官并没有像真正的人那样微妙而 复杂。 智能机器人具备形形色色的内部信息传感器和外部信息传感器,如视觉、听觉、触 觉、嗅觉。除具有感受器外,它还有效应器,作为作用于周围环境的手段。这就是筋肉, 或称自整步电动机,它们使手、脚、长鼻子、触角等动起来。 颜色识别机器人就是一个是基于“创意之星”机器人技术基础,使用 NorthSTAR 开发环境设计的简单的智能机器人。 “创意之星”是一种模块化机器人组件,其特点是组成机器人的各种零件是通用、 可重组的,各个零件之间有统一的连接方式,零件之间可以自由组合,从而构建出各种 各样的机器人构型。 NorthSTAR 是一个图形化交互机器人控制程序开发工具。在 NorthSTAR 中,通过 鼠标的拖动类似逻辑框的控件和对控件做简单得属性设置, 就可以快捷的编写机器人控 制程序。程序编辑完后,可以编译并下载到机器人控制器中运行。

1 颜色识别机器人结构设计
颜色识别机器人是一个具有颜色识别和语音控制等简单功能的智能机器人,是使用 创意之星机器人部件搭建的全向运动机器人。 其特点是使用全向轮, 可以任意方向行进, 搭配摄像头可以进行颜色识别以及麦克风进行语音控制,并且结构小巧轻便。

1.1 颜色识别机器人功能要求
(1)基本功能:机器人可以识别红蓝两种颜色,识别到红色,则前进,识别到蓝色 则停止,识别到其他某一种颜色,能够做出相应的动作。 (2)扩展功能:当机器人在行进的过程中,输入语音信息,根据语音做出相应的动 作。如“暂停” “前进”

1.2 颜色识别机器人的组成及功能 颜色识别机器人的组成及功能 机器人的组成 1.2.1 颜色识别机器人的系统组成
颜色识别机器人由三部分系统组成,分别为: ·运动系统; 用于控制机器人进行任意方向的运动。
1

桂林电子科技大学

第 2 页 共 44 页

·视觉系统; 用于采集图像信息,对机器人运动进行颜色识别。 ·听觉系统; 用于采集语音信息,对机器人运动进行语音控制。 1.2.2 颜色识别机器人的组成器件 颜色识别机器人的主要组成器件以及功能如下所示: (1) MultiFLEXTN2-PXA270 控制器 1 个; MultiFLEXTN2-PXA270 控制器具有高运算能力、低功耗、体积小,控制以及数 据接口丰富,开发简单等特点,是专为智能机器人控制而设计的。 MultiFLEXTN2-PXA270 控制器的详细功能如下所示: 完全支持 MultiFLEXTN2-AVR 控制器全部功能 Marvell Xscale PXA270@533MHz,32 位处理器,16M NOR-FLASH,128M NAND-FLASH,64M SDRAM Linux 操作系统 4 个 USB Host,1 个 100bps 以太网端口、Wifi 模块插槽 1 个麦克风接口,1 个立体声音频输出接口 支持摄像头作为视觉传感器,麦克风作为听觉传感器 (2)

CDS550 舵机 4 个;
CDS550 属于一种集电机、伺服驱动、总线式通讯接口为一体的集成伺服单

元,主要用于微型机器人的关节、轮子、履带驱动,也可用于其它简单位置控制场合。 如图 1 所示。 CDS550 采用半双工串行异步总线进行控制,每个舵机都有自己单独的 ID 号,在机器人构型搭建时需要对 ID 号进行配置,以免机器人的某些关节的 ID 号重叠。 CDS550 有主用的调试环境 RobotServo Terminal,在这个环境下,可以设 置舵机 ID、皮特率、工作模式、速度哦限制、角度限制、电压限制等等。 (3)全向轮 4 个; (4)摄像头 1 个; (5)麦克风 1 个; (6)零件若干;

2

桂林电子科技大学

第 3 页 共 44 页

图1 1.3

颜色识别机器人的 颜色识别机器人的搭建 机器人
使用创意之星机器人的部件,可以轻易地搭建一个包含运动,视觉,听觉三个部

分的智能机器人。 1.3.1 运动系统的搭建 (1)将四个全向轮搭配四个舵机,用连接零件安装成一个可以任意方向运动的底 盘; (2)在底盘上安装控制器,固定好。 (3)将四个舵机串联起来接到控制器的机器人舵机接口。 1.3.2 视觉系统的搭建 (1)使用创意之星的 L2-1 部件搭建一个摄像头的头部; (2)将摄像头固定在搭建好的头部; (3)将摄像头的 USB 接到控制器的任意 USB 接口 1.3.2 听觉系统的搭建 将麦克风接口接到控制器的麦克风输入接口。 1.4 CDS5500 舵机的设置 CDS5500 的基础参数设置、 保护参数调节、 性能测试都可以通过 RobotSeco Terminal 软件来实现。步骤如下所示: (1)打开软件,将舵机与电脑连接; (2)查找舵机,设置舵机的参数以及配置 ID 号;

3

桂林电子科技大学

第 4 页 共 44 页

图2

图3
需要注意的是:每个 CDS5500 需要使用不用 ID;每串 CDS5500 的数量不能太多,最

4

桂林电子科技大学

第 5 页 共 44 页

好是 6 个以下。正常工作下单个 CDS5500 的电池可能达到 200mA~1A,堵转电流可达 到 2.5A, 单组 6 个 CDS5500 的工作电流可能达到 3-8A。 这样的电流会让舵机线发热, 并产生比较大的电压降,最后一个 CDS5500 可能因为沿途舵机线的分压而导致工作 电压过低,CDS5500 在电压过低时会出现复位、数据通讯不正常等状况。

2 颜色识别机器人的原理分析
2.1 视觉系统的原理分析 机器视觉系统主要由三部分组成:图像的获取、图像的处理和分析、输出或显示。 图像的获取实际上是将被测物体的可视化图像和内在特征转换成能被计算机处理的一 系列数据,它主要由三部分组成:照明,图像聚焦形成,图像确定和形成摄像机输出信 号。 视觉信息的处理技术主要依赖于图像处理方法, 它包括图像增强、 数据编码和传输、 平滑、边缘锐化、分割、特征抽取、图像识别与理解等内容。经过这些处理后,输出图 像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像进行分 析、处理和识别。 机器人视觉系统主要是利用颜色、形状等信息来识别环境目标。以机器人对颜色的 识别为例:当摄像头获得彩色图像以后,机器人上的嵌入计算机系统将模拟视频信号数 字化,将像素根据颜色分成两部分:感兴趣的像素(搜索的目标颜色)和不感兴趣的像 素(背景颜色)。然后,对这些感兴趣的像素进行 RGB 颜色分量的匹配。为了减少环境 光强度的影响,可把 RGB 颜色域空间转化到 HIS 颜色空间。 其中,线性色彩阈值法是用线性平面把色彩空间分割开来,其阈值的确定可采用直 接取阈值和通过自动训练来获取目标颜色范围等方法, 也可以采用神经网络和多参数决 策树方法来进行自学习,以获得合适的阈值;而用最近邻域分类法分割图像时,则利用 隶属度函数,即根据最大的隶属度来判断这个颜色属于哪个类;阈值向量法是先使用一 组事先确定的阈值向量来把色彩值在色彩空间中的位置来判断其属于哪种颜色。 在程序中, 获得的图像数据是一个一维的数组, 原始的图像数据通常是 RGB24 格式, 即每三个字节一个像素,三个字节分别是该像素红色、绿色、蓝色的颜色分量值。 在 RGB 颜色空间下一般很难排除光照的影响,因为在亮度突变的环境里,三个颜色 分量都会剧烈变化,所以 RGB 图像不适合用来做颜色区分。常规的做法是将这个图像数 组转换到 HSI 空间去。HSI 即色调(Hue)、色饱和度(Saturation)、和亮度(Intensity),

5

桂林电子科技大学

第 6 页 共 44 页

其中前两项受亮度的影响很小, 各种颜色在色度(Hue)分量的方向上是连续均匀分布的, 是极好的颜色标定坐标系。 对画面中所有像素进行转换后,依次对各点的 H 值进行检查,符合标定范围要求的 就作为有效点,否则为无效点。遍历完整幅图像的像素之后,就将所有有效点的 x 和 y 求和取平均值,这样可以得到该颜色区域在画面中的颜色质心的坐标。 利用得到的坐标即可设计控制机器人的运动。

2.2 听觉系统的原理分析 听觉系统运用的是语音识别技术。 语音识别是与机器进行语音交流,让机器明白您说什么,这是人们长期以来梦寐以 求的事情。语音识别技术就是让机器通过识别和理解过程,把语音信号转变为相应的文 本或命令的一种技术。语音识别是一门交叉学科,近二十年来,语音识别技术取得显著 进步,开始从实验室走向市场。人们预计,未来10 年内,语音识别术将进入工业、家 电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。 语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论发声机理 和听觉机理、人工智能等等。 根据识别的对象不同,语音识别任务大体可分为3 类,即孤立词识(isolated wordrecognition),关键词识别(或称关键词检出,keyword spotting)和连续语音 识别。其中,孤立词识别的任务是识别事先已知的孤立的词,如“开机”“关机”等; 连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话;连续语音流中的 关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词 在何处出现,如在一段话中只检测“计算机”、“世界”这两个词。根据是否针对特定 发音人,可以把语音识别技术分为特定人语音识别和非特定人语音识别,前者只能识别 一个或几个人的语音,而后者则可以被任何人使用。显然,非特定人语音识别系统更符 合实际需要,但它要比针对特定人的识别困难得多。 “创意之星”的语音识别引擎是孤立词识别(isolated word recognition) 。

3.程序设计 3.1 设计思路
6

桂林电子科技大学

第 7 页 共 44 页

3.1.1 系统功能模块划分
系统功能分为两个模块: (1)颜色控制模块 当摄像头采集到红色信息时,得出红色区域在画面中的坐标,利用这个坐标控 制机器人开始前进运动;当摄像头采集到蓝色信息时,得出蓝色区域在画面中的坐标, 利用这个坐标控制机器人做出相应的动作,即先后退 2 秒后,继续前进;当摄像头采集 到绿色信息时,得出绿色区域在画面中的坐标,利用这个坐标控制机器人停止运动。 (2)语音控制模块 当机器人在行进的过程中,通过麦克风输入语音,如果输入“暂停”则机器人 暂停运动;再输入“前进”则机器人继续前进。

3.1.2 系统流程图分析

颜色控制模块流程图

7

桂林电子科技大学

第 8 页 共 44 页

语音控制模块

8

桂林电子科技大学

第 9 页 共 44 页

3.2 程序设计
3.2.1 编写程序 (1)打开 NorthSTAR 开发软件,新建工程 (2)设置舵机 (3)添加控件,设置参数 (4)连线 (5)编译

9

桂林电子科技大学 页

第 10 页 共 44

完整程序如下图所示: 完整程序如下图所示:

颜色识别模块程序: 颜色识别模块程序:

10

桂林电子科技大学 页

第 11 页 共 44

语音识别模块: 语音识别模块:

11

桂林电子科技大学 页

第 12 页 共 44

3.2.2 颜色阈值标定 程序设计完成,在运行之前,我们需要对目标颜色阈值范围进行手动标定。颜色 标定的目的是为了将颜色标记出来,将背景中相近的颜色去除掉,实现机器人对目标颜 色的识别,如果这一步没做好,机器人在实际运行时可能出现误识别的情况。 将机器人与 PC 用网线连接起来,打开机器人开关,稍等 20 秒左右,待机器人控 制器的系统启动完毕,双击流程图里的 VISION 空间,在弹出的属性框里点击“Open camera”按钮,界面上会显示机器人看到的图像。勾选“二值化”选项框,图像中的有 效像素将会用红色标记出来, 拖动画面下方的阈值范围滑杆, 画面中的标记会实时变动。
12

桂林电子科技大学 页

第 13 页 共 44

改变 H 值范围,将改变标定的颜色阈值;改变 S 值范围,将改变对色饱和度的要求,通 常用于排除背景中相近颜色的干扰。 调整好的颜色阈值如下所示: (1)红色: Hmax Smax Imax 38 255 255 Hmin Smin Imin 0 122 108

(2)蓝色: Hmax Smax Imax 233 255 255 Hmin Smin Imin 172 68 16

13

桂林电子科技大学 页

第 14 页 共 44

(3)绿色: Hmax Smax Imax 150 255 255 Hmin Smin Imin 87 45 63

3.3 程序调试和运行
所有工作结束之后,就可以编译并下载到机器人上进行验证了。步骤如下所示:

(1)点击 NorthSTAR 工具栏上的编译按钮,查看 Output Window 里面的编译信息, 提示“Complile succeeded..."说明编译成功。

14

桂林电子科技大学 页

第 15 页 共 44

(2)点击工具栏上的下载按钮,查看 Output Window 里面的编译信息,提示 “downloading succeeded...”说明下载成功。

(3)将机器人放在地上,将目标颜色放在机器人面前 10 厘米出,点击工具栏上的 运行按钮,机器人便开始按照我们设计的逻辑运行起来。试着改变颜色,或输入语音, 查看机器人是否像预计那样运动。 3.3.1 程序运行出现的问题和解决办法 (1)由于变量设置以及连线的问题,使得编译失败。 解决方法:各个控件依次排查,将设置的变量设置好,未连接的线连接好。 (2)由于网络连接没有连接好,使得下载失败。 解决方法: 将网线连接好, 设置 IP 地址, 点击 NorthSTAR 软件的 “网络连接” , 显示“连接成功”即可。 (3)舵机运动不灵敏。造成原因有两个:电量不足或者舵机本身的启动需要时间 从而造成一定的迟滞。 解决方法:给机器人充足电并且在舵机控件后面加上合适的延时。 (4)由于光照等外部条件的影响,颜色检测不准确。 解决方法:重新标定颜色阈值,排除光照以及其他颜色的干扰。

15

桂林电子科技大学 页

第 16 页 共 44

4 总结
智能机器人是一门复杂高深却非常有趣学科,虽然我们学过了机器人相关的知识, 包括智能控制,人工神经网络等,但是我们的理解还不够全面和深刻。 这次的课程设计,给了我们一个很好的机会,加深我们对机器人的原理,发展等的 了解,让我们学到的关于机器人以及智能控制等知识得要了很好的实践应用,培养了我 们的逻辑思维能力,动手能力以及团队合作精神。 拿到题目分好组之后, 我们首先查阅了很多有关机器人控制和机器人颜色识别的资 料,接着讨论制定出了初步的功能规划和程序流程,然后编写程序,一次次地进行验证 改进。 在这个过程中,我们有独立思考也有团队合作,既锻炼了个人的能力也增强和与他 人合作的能力,不仅学到了许多的专业知识,也增进了同学之间的感情,受益匪浅。

16

桂林电子科技大学 页

第 17 页 共 44

参考文献
[1]《智能机器人》 华南理工大学出版社 肖南峰 编著 John Blankenship

[2]《机器人编程设计与实现》 科学出版社 [3]《创意之星机器人套件组装指南》 [4]《InnoSTAR 实验指导书》

17

桂林电子科技大学 页

第 18 页 共 44

附录 C 语言代码:
#include "background.h" int main(int argc, char * argv[]) { int RS_res = 0; int blue_x = 0; int red_x = 0; int red_y = 0; int blue_y = 0; int green_x = 0; int green_y = 0; int a = 0; int b = 0; int c = 0; MFCapOpen(); MFSRInsertText(0,(char*)&("唱歌"),5); MFSRInsertText(1,(char*)&("前进"),5); MFSRInsertText(2,(char*)&("暂停"),5); MFSRStart(); MFInit(); MFSetPortDirect(0x00000FFF); MFDigiInit(100); DelayMS(100); MFADInit(100); MFSetServoMode(1,1); MFSetServoMode(2,1); MFSetServoMode(3,1); MFSetServoMode(4,1); //初始化舵机 { MFSetServoRotaSpd(1,0); MFSetServoRotaSpd(2,0); MFSetServoRotaSpd(3,0); MFSetServoRotaSpd(4,0); MFServoAction(); } while (1) { //红色识别 MFCapSetH(20,0); MFCapSetS(255,122);
18

桂林电子科技大学 页

第 19 页 共 44

red_x = MFCapGetCenterX(); red_y = MFCapGetCenterY(); if (((red_x>50)&&(red_x<250))&&((red_y>50)&&(red_y<200))) { //红色运行 { MFSetServoRotaSpd(1,500); MFSetServoRotaSpd(2,500); MFSetServoRotaSpd(3,-500); MFSetServoRotaSpd(4,-500); MFServoAction(); } DelayMS(3000); //赋a值 a = 1; } else { while (a==1) { //蓝色识别 MFCapSetH(233,0); MFCapSetS(255,68); MFCapGetCenterX(); MFCapGetCenterY(); if (((blue_x>50)&&(blue_x<250))&&((blue_y>50)&&(blue_y<250))) { { MFSetServoRotaSpd(1,-500); MFSetServoRotaSpd(2,-500); MFSetServoRotaSpd(3,500); MFSetServoRotaSpd(4,500); MFServoAction(); } DelayMS(2000); { MFSetServoRotaSpd(1,500); MFSetServoRotaSpd(2,500); MFSetServoRotaSpd(3,-500); MFSetServoRotaSpd(4,-500); MFServoAction(); } DelayMS(2000);
19

桂林电子科技大学 页

第 20 页 共 44

c = 1; } else { while (c==1) { //绿色识别 MFCapSetH(150,87); MFCapSetS(255,45); green_x = MFCapGetCenterX(); green_y = MFCapGetCenterY(); if (((green_x>50)&&(green_x<250))&&((green_y>50)&&(green_y<200))) { //绿色停止 { MFSetServoRotaSpd(1,0); MFSetServoRotaSpd(2,0); MFSetServoRotaSpd(3,0); MFSetServoRotaSpd(4,0); MFServoAction(); } DelayMS(3000); //赋a值,跳出循环 c = 0; } else { //语音 RS_res = MFSRGetResIndex(); //语音判断 switch (RS_res) { case 0: //唱歌 MFMp3Play((char*)&("爱上你(清唱).mp3"),16); break ; case 2: //暂停 { MFSetServoRotaSpd(1,0); MFSetServoRotaSpd(2,0); MFSetServoRotaSpd(3,0); MFSetServoRotaSpd(4,0);
20

桂林电子科技大学 页

第 21 页 共 44

MFServoAction(); } DelayMS(2000); //赋b值 b = 1; while (b==1) { //等待“前进” RS_res = MFSRGetResIndex(); switch (RS_res) { case 1: //前进 { MFSetServoRotaSpd(1,500); MFSetServoRotaSpd(2,500); MFSetServoRotaSpd(3,-500); MFSetServoRotaSpd(4,-500); MFServoAction(); } DelayMS(2000); //赋b值,跳出循环 b = 0; break ; } } break ; } } } } } } } }

21


赞助商链接