嵌入式机器人

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式机器人

以嵌入式计算机为核心的嵌入式系统(Embedded System)是继IT网络技术之后,又一个新的技术发展方向

机器人技术的发展从来就是与嵌入式系统的发展紧密联系在一起的,机器人技术的研究就是嵌入式技术的应用,而嵌入式技术的发展必定促进机器人智能化水平。机器人技术的发展从来就是与嵌入式系统的发展紧密联系在一起的,机器人技术的研究就是嵌入式技术的应用,而嵌入式技术的发展必定促进机器人智能化水平。

现有的大多数机器人,都采用单片机作为控制单元,以8位和16位最为常见,其处理速度较低,没有操作系统,无法实现丰富的多任务功能,系统的潜力没有得到充分的发掘和应用。基于ARM9的机器人视觉系统的目标是在选定好的S3C2410平台上移植并配置Linux操作系统,针对平台和应用的特点,制作合适的文件系统,为机器人视觉系统构建稳定的软硬件开发环境。其次编写应用程序,通过S3C2410平台,从USB摄像头实时采集图像,并利用这款嵌入式处理器的强大运算能力,对图像进行后期的处理,完成目标识别与定位,作为机器人动作单元的输入。最后针对机器人关节所使用的电机,编写特定的设备驱动程序,保证操作系统可准确地控制机器人动作,响应视觉处理的结果,开发一套完整的"机器人视觉系统"。

(1) 视觉系统

采用USB摄像头作为视觉采集器件。其优点是接口通用,驱动丰富,传输速率快。同时,Linux操作系统对于USB设备的支持较好,方便了应用程序的编写和调试。网眼(WebEye)v2000摄像头,采用了ov511芯片(Linux源代码中有相应的驱动程序),适合用于开发。

这里采用高端的32位嵌入式微处理器:基于ARM体系结构的S3C2410芯片(由三星公司生产),其主频为200MHz。它提供了丰富的内部设备:分开的16kB指令Cache 和16kB数据CacheMMU虚拟存储器管理、LCD控制器、支持NAND Flash系统引导、系统管理器、3通道UART、4通道DMA、4通道PWM定时器、I/O端口、RTC、8通道10位ADC和触摸屏接口、IIC-BUS接口、USB主机、USB设备、SD主卡和MMC 卡接口、2通道的SPI以及内部PLL时钟倍频器。S3C2410采用了ARM920T内核,0.18μm工艺的CMOS标准宏单元和存储器单元。

(2) 硬件平台组成

一块核心母板,配备CPU、16MB的NOR Flash、64MB的NAND Flash、32MB 的SDRAM,并设置系统从NAND Flash启动;一块外设电路板,负责系统和外设器件

的连接,布设有2个USB接口、1个UART口、24个3针插座(用于控制机器人的关节)以及电源接口等。核心母板与外设电路板通过内存插槽进行连接。

2. 软件平台的构建和配置

目前,越来越多的嵌入式系统采用了Linux作为操作系统。Linux功能强大,运

行稳定,驱动齐全,配置灵活,内核紧凑,从来就与嵌入式系统有密不可分的关系。Linux内核版本众多,其中2.4系列比较成熟,在嵌入式平台中应用广泛,资料齐全。这里使用Linux- 2.4.18-rmk7-pxa1版本。 a. 配置开发板软件环境

将系统引导程序烧写进入S3C2410核心母板。这里采用了三星公司推荐的vivi

程序。通过对vivi中参数的设置,完成对Flash的分区。

(1) 下载源代码,在PC端建立交叉编译环境;armv4l-unknown-linux-gcc可以将Linux内核编译为适用于ARM体系结构的二进制代码;

(2) 配置内核:使用make menu-config命令,将USB设备支持、USB摄像头驱动(针对OV511芯片)、NAND Flash驱动,以及挂载嵌入式文件系统所需要的驱动程序静态编译到内核中; (3) 编译内核:使用交叉编译工具,将源代码编译为可执行二进

制内核镜像,生成文件zImage;(4) 下载内核:将zImage通过串口线,利用vivi的

数据烧写功能,下载到Flash的内核分区中(kernel); c. 制作文件系统

嵌入式系统中常见的文件系统有CRAMFS、JFFS、JFFS2、YAFFS等。考虑到实

际的需求,这里采用了CRAMFS。在内核配置时对CRAMFS的驱动代码进行静态编译,并且利用mkcramfs工具制作经过仔细裁剪的文件系统映像,利用vivi的烧写指令下载到Flash的root分区。最终的文件系统映像小于3MB,这是由嵌入式系统较为紧张的

存储资源决定的。

启动系统,通过PC机的超级终端,可看到启动信息:包括内核的版本、Flash分区表、交叉编译器的版本,以及内核中静态编译的组件等。3. 驱动程序的编写和应用

程序的开发

视觉功能的最终实现,首先需要为机器人的关节电机编写驱动程序,使操作系统可完成对机器人动作的控制,作为对视觉结果的响应。视觉绝非最终目的,而是机器

人获取信息的一种途径,其根本目的在于为机器人的动作、行为提供策略或数据支持。单纯的视觉并没有意义。机器人全身的关节均为舵机。舵机结构简单,控制方便,外部只有3个引脚:电源、地、PWM信号。对舵机的控制实际上就是要产生频率、脉宽合适的PWM波。

S3C2410芯片内部集成4个PWM发生单元。驱动程序利用其中的一个作为机器人头部电机的控制信号源,通过改写寄存器的值,改变频率和占空比,产生期望的PWM波。

将驱动程序交叉编译为模块,在系统启动后动态地插入内核中。模块加载前独立于内核,方便了驱动程序的调试。编写简短的测试程序,确认关节电机可以正常工作。

这里为机器人视觉系统搭建了一个实际的应用场景:活动的目标小球在背景中运动,期望机器人可以识别目标并对其定位,最后控制头部跟随目标运动(好像机器人在盯着活动目标观察一样)。机器人视觉处理程序的主要功能为:

(1) 从USB摄像头实时读取视频数据,进行简单的预处理;

(2) 随后进行图像处理,主要完成空域的图像增强。通过对图像进行二值化,将目标小球从背景中提取出来;

(3) 计算目标的位置,进而计算出机器人头部的旋转角度,通过舵机驱动程序,控制机器人头部转动到目标所在角度,实现对目标物体的跟踪。

经过实验,机器人头部可较好地跟踪目标,实现了视觉原型系统。

机器人视觉系统的开发只是嵌入式系统在机器人领域中应用的一个方面。事实上,还有很多值得我们继续去实现的子系统,诸如语音系统(语音识别、语音输出)、行走控制(设计算法,实现平稳的行走)、网络系统(未来的机器人将不再会是独立的个体,多机器人的协同工作是必然的趋势;同时,机器人同其他设备的连接需求也越来越迫切)等等。应当承认,虽然目前的嵌入式处理器已经具备了比较强大的功能,但是受功耗、体积、成本因素的限制,在实时视频(音频) 处理、多媒体协同计算等方面,其速度仍然无法满足需求;所以,更强劲的嵌入式处理器也是将来在为机器人选择控制单元时的重要考虑因素。

相关文档
最新文档