1 前言
随着科学技术的发展,机器人将在太空探测、救灾防爆、海洋开发等领域有着广阔的应用前景,因而其发展正在成为国内外研究人员关注的焦点[1,2,3]。分析上述各种用途的机器人,其构成不外乎机构本题和控制系统两大部分。机构本体在体现机器人特色的同时,也决定了其必然是无人系统,在恶劣的
环境下,机器人要具备一定的自主能力。这就要求机器人有一定的“判断能力”和“想法”,需要复杂的算法,包括运动算法和模式识别算法。一般的微处理器是无法完成这项任务,而上述各种机器人又无法使用计算机控制作业,32位微处理器和嵌入式操作系统的出现解决了此问题。
嵌入式系统是指以应用为核心、以计算机技术为基础、软硬件可裁剪,以及适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统[4,5,6,7]。作为嵌入式系统的核心,嵌入式微处理器为8位、16位或32微处理器。但由于8位和16位微处理器的运行速度、寻址能力和功耗等问题,已较难满足相对复杂的嵌入式应用场合。在32位嵌入式应用领域内,ARM(Advanced RISC Machine)获得了巨大的成功[8,9,10,11]。 ARM微处理器一般具有体积小、低功耗、低成本、高性能的特点;例如,由于它有大量的使用寄存器,指令执行速度更快,于是大多数数据操作都在寄存器中完成;它的寻址方式灵活简单,执行效率高,指令长度固定等。在ARM中,可以嵌入嵌入式操作系统,在此系统上可完成复杂的算法,可以代替PC机完成各种任务。
本文首先介绍了嵌入式系统的结构,然后介绍如何利用嵌入式操作系统和ARM 、DSP构建机器人控制系统,最后说明使用此控制系统控制7自由度串联机器人[12]。
2 嵌入式系统的结构
嵌入式系统主要由嵌入式操作系统和承载操作系统的硬件组成。
2.1 嵌入式操作系统
嵌入式操作系统是嵌入式系统的控制中心,主要用于对系统的信息处理部件和用户交互界面加以控制。
2.1.1嵌入式操作系统的实时性
在嵌入式领域中,实时是一个非常重要的概念。实时系统是指在确定的时间内完成规定功能,并能对外部异步事件作出正确响应的计算机系统。
实时系统的核心是必须在确定的时间内执行完一项预先定义的操作,否则将引起性能下降甚至系统崩溃等严重后果。需要说明的是,实时系统并不是说系统的响应和处理速度非常快,实时系统的实时性的实现需要软硬件的配合来完成。首先应该保证硬件的处理速度满足实时性的要求,同时相对软件而言,实时性体现在组成软件系统的各个任务的执行时限。
在嵌入式系统中,评价一个实时系统的性能要从任务调度功能、内存管理功能、最小内存开销、任务切换时间、最大中断禁止时间等方面考虑。
2.1.2 嵌入式系统中的软件
嵌入式系统的软件部分,具有以下特点:
1) 嵌入式软件的开发与硬件紧密相关。由于嵌入式软件的开发式针对具体硬件平台进行的,它往往牵涉硬件驱动方面的一些软硬结合部分。
2) 软件代码要求高效率和高可靠性。嵌入式系统中软件运行空间有限,内存空间非常宝贵,在软件的编程过程中需时刻考虑软件的运行效率。在实时系统中,处理器必须严格处理异步发生的各种任务。此外,嵌入式软件系统还应有异常处理、快速复位等特点。
3) 软件一般固化在FLASH或ROM中。为了提高执行速度和系统的可靠性,同时缩短系统复位时间,一般在嵌入式软件调试完毕后,会下载固化到目标板中的FLASH或ROM中。
2.1.3 嵌入式系统的应用
嵌入式系统产品遍布人们的日常生活,从手机、PDA到家中的空调、冰箱,从小汽车到波音飞机,甚至武器库中的巡航导弹,都有它的踪迹。嵌入式产品已经在很多领域得到广泛的使用,如国防、工业控制、通信、办公自动化和消费电子领域等。
2.2 嵌入式系统的硬件系统
与普通的PC硬件相比,嵌入式系统的硬件系统具有以下特性:
1) 体积小,集成效率高。嵌入式系统去除了冗余,力争用最小的系统完成目标功能。
2) 面向特定应用。
3) 低功耗,电磁兼容性好,能在恶劣环境下工作,死机时能够快速重启。
嵌入式系统硬件在价格、功能、体积、重量、能耗等方面都有严格的限制。
3 系统功能与设计
3.1 系统功能
本着既能满足多种类型机器人的实际需 要,又尽量节约资源的原则,控制系统提供的功能如下:
1) 上位机监控.响应控制台发出的指令. 向下位机发送数据和命令;
2) 通讯总线. 现场总线,用于和其他控制器信息交互;
3) 传感器集成.直接集成姿态、位置、深度、高度、速度、加速度等传感器,或者预留接口;
4) 脉宽调制.用于调整电机的速度和位置,从而控制机器人的速度和姿态等;
5) A/D采集.监视工作电压、电流、压力等A/D量,用于系统控制或状态记录;
6) I/O控制.用于对外围开关量的监控;
7) 数据记录.用于设定参数的存储、运动路线的定制或相关监控数据的记录;
8) 通讯协议.便于控制器之间及机器人与上位机之间信息可靠、高效传递;
9) 信息处理.各种传感器输出数据的提取、处理及多传感器信息融合;
10) 控制算法.下位计算法主要是前馈算法和PID算法,上位机算法视具体的机器人而定。[page]
3.2 系统设计
此系统的设计主要是为了能够满足多种机器人控制需求,同时兼顾机器人对控制器体积、重量、功耗等敏感的特性。
上位机CPU选用Samsung公司的基于ARM920T[5,6]核(适用于实时环境)的低功耗、16/32 bit、高性能RISC微控制器S3C2410,它的主频为266MHz;操作系统选用源码公开、专为ARM设计的、可靠性高的实时、多任务内核arm- Linux;下位机选用Ti公司的具有低功耗、灵活指令集、内部操作灵活、高速的运算能力等性能的DSP-TMS320LF2407。
3.2.1 体系结构
基于ARM、DSP和arm-Linux的机器人控制系统硬件结构图如图1所示。
图1 机器人控制器硬件结构
上位机主要解决算法问题,处理各个传感器送回的信号,根据各个信号,向下位机发送控制命令,同时,上位机接收来自下位机的信号,判断下位机的状态,以便发送相应的数据和命令。下位机主要是对电机的控制,根据上位机发送过来的命令和数据,结合前馈算法和PID算法,对电机进行速度、位置等控制。
不同类型的机器人,其主要区别在于上位机的算法编写,上位机的算法与具体的机器人所要求完成的任务有关。在一个机器人系统中,只需一个上位机,作为机器人的“大脑”;下位机的个数则根据机器人需要而定。
3.2.2 硬件设计
硬件设计的原则是:部件模块化,接口标准化,互换性、扩展性好,可靠性高。
硬件可划分为CPU模块、外设模块。两个模块层可叠在一起,机械上可拆分,相互之间有接口相连,便于互换和维护。
1)CPU模块:上位机包括S3C2410、SDRAM、NAND FLASH、晶振等系统运行的基本要素;下位机包括TMS320LF2407、SDRAM、晶振等系统运行的基本要素。
2)外设模块:上位机包括电源接口、485总线接口、A/D接口、I/O接口、PWM接口、下位机通讯接口、USB HOST接口、USB SLAVE 接口、LCD接口等,同时它也是传感器模块和CPU模块连接的桥梁;下位机包括电源接口、485总线接口、I/O接口、PWM接口、光电编码器接口、上位机通讯接口、A/D接口,FLASH等。
S3C2410芯片本身集成了一些通用的外围器件,所以像A/D、USB、I/O等通道直接利用其资源。片内的2个UART分别用作485总线及与下位机通讯接口,这两个串口属于对外连接口,为了避免引入外界干扰,用高速光隔HCPL2630进行隔离。 TMS320LF2407芯片本身也集成了一些通用的外围器件,可直接利用PWM、A/D、I/O、光电编码器接口等资源。片内UART用作与上位机通讯接口,也用了光电隔离。
针对不同的机器人,硬件部分只需做简单的接口调整或传感器增删。
控制器集成尺寸:上位机模块为60mm×45mm×35mm,总功耗约为5V ×200mA,其中CPU模块功耗尽为3.3V×30mA;下位机模块尺寸60mm×40mm×30mm,功耗也是很低的,而一般的PC104总线CPU模块功耗约为5V×1000mA。
3.2.3 软件设计
软件设计的基本原则是:软件结构化,驱动标准化,系统可定制[13]。
软件设计的主要工作是操作系统的移植、驱动程序的设计、常用API函数的封装、多任务的分解与设计、上位机算法的编写和下位机驱动程序与算法的编写等。其中关键在于上下位机的同步性,当多个控制器一起工作时,同步问题更加重要了。上位机把数据传送给下位机,先把控制器的标号给传下去,只有与此号码相对应模块才能接收下面的数据,当下位机接收到信号后,需要向上位机发送一个确认信号。需要同步多个处理器,分别占用总线。为了使多机通讯同步,不发生信号冲突,在设计硬件时,每个微处理器使用了一个I/O口,并把每个处理器的I/O口用线连在一起。当一个控制器接收或发送数据时,向其它处理器发送一个高信号,来说明自己正在使用总线。接受到该信号的处理器得知总线正在忙,不再发送数据,可避免总线冲突。事实证明这种方法是可行的,不会发生总线冲突,多处理器工作时同步性很好。[page]
本软件中传感器数据的读取、校验、提取、处理均按照NMEA0183标准进行,便于系统升级。
系统可定制主要是考虑到针对不同机器人其上层软件不尽相同。
4 实验研究
应用于7自由度串联机器人
为了验证该机器人控制系统的性能,设计了场景试验:7自由度串联机器人首先抓取第一工件放在加工台上;把其它两个工件依次前移;最后把加工完的工件放在最后的位置上,整个过程如图6~图9所示。
机器人完成这个任务所要经过的过程:①机器人抓取第一个工件,并把它放在加工台上,如图2~图3所示;②机器人把第2个工件移到第一个位置,准备进行加工,如图4~图5所示;③把第三个工件移到第二个位置上,图6~图7所示;④机器人抓取加工好的工件,并把它放在第三个位置上,如图8~图9所示。
这样一个循环周期便完成了一个工件的加工,可使后面的工件依次得到加工。
在该控制系统内,上位机(S3C2410)首次算好1000个点,通过RS485总线传送给每个下位机控制器并把这些点存于下位机FLASH中。每个下位机运行各自的点,每当运行的点数超过500时,便向上位机要500个数据。这样节省了上下位机交互的时间,改善了串联机器人的同步性,提高了跟踪精度。另外,由于ARM9的存在,不需要计算机的控制。上述7自由度串联机器人的每个动作都是“自主”完成的,即没有计算机的控制。
通过实验证明,该控制系统稳定性好,实时性,可以在恶劣的环境下工作,通用性较强。
5 结论
本文中设计的嵌入式机器人控制系统在七自由度串联机器人上的应用取得了一定成效,实时性、可靠性、通用性均有良好的表现,其体积小、功耗低,实际情况比较令人满意;此控制系统在上位机(ARM)中写控制算法,通过总线方式对下位机(DSP)进行控制,而不需要计算机的控制,可独立自主的判断如何动作。目前,该嵌入式控制系统的性能上还存在着诸多不足,主要表现在控制器中的控制算法的设计和功能的完善上,这也是今后努力的方向。
本文的创新点是机器人的自主性质,即机器人有自己的“判断能力”,不须计算机控制。
参考文献
[1]Richard M.Murray, Li Zexiang, S.Shanker Sastry. A Mathematical Introduction to Robotic Manipulation[M]. America: CRC Press, 1994.
[2]Weihai Chen, Guilin Yang, Edwin Hui Leong Ho. Interactive-Motion Control of Modular Reconfigurable Manipulators[J]. Proceedings of the 2003 IEEE/RSJIntl. Conference on Intelligent Robots and SystemsLas Vegas, Nevada . October 2003.
[3]L. Romdhance. Design and analysis of a hybrid serial parallel manipulator[J]. Mechanism and Machine Theory.1999,34:1037-1055.
[4]Karim Yaghmour. Building Embedded Linux Systems[M]. America: O'Reilly, 2004.
[5] Michael Barr. Programming Embedded Systems in C and C++[M]. America: O'Reilly, 2001.
[6]John Catsoulis. Designing Embedded Hardware [M]. America: O'Reilly,2001.
[7]严丽平,曾辉,宋凯.嵌入式智能家庭网关的研究与设计[J]. 微计算机信息. 2005,2: 14~16.
[8] 孙天泽,袁文菊,张海峰. 嵌入式设计及LINUX驱动开发指南——基于ARM 9处理器[M].北京:电子工业出版社,2005.
[9] 陈渝,李明,杨晔. 源码开放的嵌入式系统软件分析与实践——基于SKYEYE和ARM开发平台[M].北京:北京航空航天大学出版社,2004.
[10] 周立功.ARM微控制器基础与实践[M]. 北京:北京航空航天大学出版社,2003.
[11] 李驹光,聂雪媛,江泽明.ARM应用系统开发详解.[M]北京:清华大学出版社,2003.
[12] 刘和平,王维俊,江渝.TMS320LF240xDSPC语言开发应用[M]. 北京:北京航空航天大学出版社.2003.
[13] 王松,李新军,梁建宏.微小型机器人嵌入式自驾仪设计[J]. 北京航空航天大学学报.2005,31(7):775-779.
上一篇:基于ARM的FPGA加载配置实现
下一篇:海思半导体获得一系列ARM Mali图形处理器授权
推荐阅读最新更新时间:2024-03-16 13:00