嵌入式系统课程设计
题 目 基于ARM9 嵌入式系统的拟人机器人控制器的设计
学院名称
指导教师
班 级
学 号
学生姓名
20##年12月25日
目 录
1.设计简介·······································4
1. 1 嵌入式系统简介····························4
1. 2 拟人机器人简介····························5
1. 3 嵌入式系统设计简介························7
2.拟人机器人系统架构····························10
2. 1 拟人机器人机械结构设计···················10
2. 2拟人机器人控制器硬件设计··················11
2. 3 拟人机器人控制器软件设计·················13
3 拟人机器人步行控制方案·······················14
4 应用实例·····································16
5 心得与体会···································16
6 参考文献 ··································17
1 设计简介
1.1嵌入式简介
根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”,原文为devices used to control,monitor,or assist the operation of equipment,machinery or plants.
目前,国内普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。北京航空航天大学何利民教授给出这样的定义:“嵌入式系统是嵌入到对象体系中的专用计算机系统。”可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。嵌入式系统一般有嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。嵌入式系统无处不在,在移动电话、数码相机、MP4、数字电视机顶盒、微波炉等设备中都使用了嵌入式系统。嵌入式计算机系统是整个嵌入式的核心,可以分为硬件层、中间层、系统软件层和应用软件层。
1.2拟人机器人简介
拟人机器人是机器人研究的一个重要分支, 是由仿生学、机械工程学和控制理论等多种学科相互融合而形成的一门综合学科。研究人员除了通过软件进行仿真, 还制作了各种类型的机器人实体。比较著名的国外有本田公司的Asimo、sony 公司的Qrio、开放机器人项目OpenPINO 等, 国内有北京理工大学牵头研制的“汇童”拟人机器人、哈工大的“H IT ”足球机器人、清华大学的THB IP2I 等。不过这些机器人体积庞大, 成本高昂。目前也开发了很多简易的小型机器人 , 但其中大部分采用简单的单片机进行控制, 可实现的动作和功能非常有限, 或者需要连接上位机来对它进行控制, 自主性不足。
基于现有的条件, 综合考虑系统的性能和成本,研制了一种基于ARM 9 处理器, 采用嵌入式Linux 的小型拟人机器人, 可以实行静步行走, 同时可扩展视觉、无线网络和音频输入输出功能, 是一种可完全独立自主化的拟人机器人, 为相关学科的研究提供了一个验证平台, 还可以作为大学和中专院校机电专业、自动化专业、计算机专业、仪表与检测专业的试验平台, 进一步完善后, 也是机器人舞蹈和机器人足球等项目的良好载体.机器人技术作为20世纪人类最伟大的发明之一,它的研究开始于20世纪中期。第一代遥控机械手1948年诞生于美国原子能委员会的阿尔贡研究所,当时用来对放射性材料进行远距离操作,以保护原子能工作者免受放射线照射。第一台工业机器人产生于1956年,是英格尔博格(Engelberger)将数字控制技术与机械臂结合的产物。当时主要是为了克服串联机构累积的系统误差,以便达到较高的空间定位精度,提出了示教再现的编程方式,从而使重复定位精度差不多比绝对定位精度提高了一个数量级。1968年,日本川崎重工引进美国IMATION公司的UNIMATE机器人制造技术,开始了日本机器人时代。1970年,在美国召开了第一届国际工业机器人学术会议。此后,机器人的研究得到迅速广泛的普及。1979年IMATION公司推出了PUMA系列工业机器人,它的关节由电动机驱动,可配备视觉、触觉、力觉传感器。到1990年己有30万台机器人在全世界使用。其中高性能的机器人所占比例不断增加,特别是各种装配机器人的产量增加较快,和机器人配套使用的的机器视觉技术和装备也得到迅速发展。进入20世纪90年代后,装配机器人及柔性装配技术进入了大发展时期。日本一直拥有全世界机器人总数的60%左右。到1998年,美国拥有机器人8万台,德国为7万多台,分别占世界机器人总数的15%和13%左右。到20##年,全世界的机器人总数约100万台。
自50年代第一台机器人装置在美国诞生以来,机器人的发展经历了一个从低级到高级的发展过程。
第一代机器人是示教再现型工业机器人,它们装有记忆存储器,由人将作业的各种要求示范给机器人,使之记住操作的程序和要领。当它接到再现命令时,则自主地模仿示范的动作作业。
第二代机器人是装有小型计算机和传感器的离散编程的工业机器人,它能感知外界信息并进行“思维”,它比第一代机器人更灵活、更能适应环境变化的需求。
第三代机器人是智能机器人,它不但有第二代机器人的感觉功能和简单的自适应能力,而且能充分识别工作对象和工作环境,并能根据人给的指令和它自身的判断结果自动确定与之相适应的动作,是人工智能发展到高级阶段的产物,也是当今机器人发展的重点和热点。
随着机器人技术的发展,机器人的用途越来越广,开始从传统的工业领域,向军事、公安、医疗、服务等领域渗透。与此同时,机器人的概念也越来越宽,己从狭义的机器人,开始向机器人技术扩展。世界上一些发达国家,都非常重视机器人技术的研究,都将机器人作为一个战略高技术给予支持。这是因为机器人不仅将形成一个大产业,而且将对国家的综合国力,对国家的可持续发展有着巨大而深远的影响。
1.3嵌入式系统的设计简介
嵌入式系统设计是一个很复杂的过程,在设计嵌入式的过程中,不仅要对设计嵌入式系统的软硬件有很广泛的了解,同时还要熟悉行业的内容。下面是设计过程中必须考虑的一些问题:
(l)需要硬件的数量。
在系统设计中,不仅要选择使用何种微处理器,还要选择存储器的数量、所使用的外设及其它的内容。因为在满足性能要求的同时也要考虑制造费用的约束,硬件设备的选择是十分重要的,硬件太少,将不能达到性能的要求,硬件设备过多又会使产品变得过于昂贵。
(2)时限要求。
通过提高CPU的时钟频率的方法来提高程序运行速度以解决时间约束的方法显得十分笨拙,因为程序的速度有可能受存储系统的限制,因此必须从整个系统的观点来考虑这个问题。
(3)系统的功耗。
对于电池供电的电器而言,功耗是一个十分重要的问题;对于非电池供电的电器而言,高功耗也会带来高的散热量。降低系统功耗的一种方法就是降低它的运算速度,但是单纯的降低运算速度显然会导致不能满足性能需求。所以必须从全局的角度进行设计,以便通过降低系统非关键部分的速度来降低系统功耗,而同时又能满足系统整体性能的要求。
(4)系统的可升级性。
系统的硬件平台可能使用几代,或者使用在同一代的不同级别的产品中,而这些仅仅需要一些简单的改变就应实现,所以我们必须能够通过改变软件来改变系统的特性。这就要求我们在软件设计中必须考虑系统的升级问题。进行嵌入式系统设计有两种最基本的方法。一种是自顶向下的方法,从对系统最抽象的描述开始,一步一步地推进到细节内容。另外一种方法是自底向上的方法,这种方法从构成系统的每一个构件开始向上。图1.1汇总了嵌入式系统设计的主要步骤。从自顶向下的角度来看,先从系统的需求开始分析,然后是规格说明,在这一步对整个系统进行更加细致的描述,但是规格说明只是对系统如何工作进行了描述,并不涉及它的组成。系统内部的详细构造要在开发系统的体系结构时才能展现出来,这一阶段以大的构件为单位给出了系统的结构。一旦知道了需要的构件,就可以开始设计这些构件,包括软件模块和所需要的专用硬件模块。在这些构件的基础上,就可以构造出所需要的完整的系统。上述设计过程中的这些步骤只是嵌入式系统的全貌的一个轴线,同时还需要考虑其它一些相关因素。
图1.1设计过程的主要抽象层次
具体的说,第一步“需求”就是要清楚要设计什么,从用户那里收集系统的非形式描述,然后对这些要求进行提炼,以得到系统的规格说明。第二步“规格说明”更精确一些,它起到客户和生产者之间合同的作用。第三步“体系结构,’是系统整体结构的一个计划,而后用于设计搭建整个体系结构的构件。结构设计的创建也是许多设计者认为的设计的第一阶段,形象化的话就是把系统用功能框图来表示,然后可以再细分成硬件框图和软件框图。第四步“软硬件构件,,使得构件与体系结构和规格说明达到一致,一些构件可能是现成的,比如CPU、存储芯片或者各种模块等,同样软件也有标准的模块可以利用,比如现有的操作系统、TCP/IP协议等,但也要自己设计一些构件,硬件方面如一些电路等,软件方面如定制一些文件系统或者网络协议以满足特别的要求。第五步“系统集成,,是将构件集成到一个能运转的系统。
2拟人机器人系统架构
2. 1 拟人机器人机械结构设计
在机械结构和自由度分配上, 设计的拟人机器人采用双轴输出伺服电机(也称为“舵机”)个活动关节, 其中2 条下肢各6 个关节, 2 条上肢各4个关节, 头部1 个关节, 共需使用21 个舵机。
舵机是一种位置伺服的驱动器, 适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是: 控制信号进入舵机内部的信号调制芯片, 获得直流偏置电压; 内部还有一个基准电路, 产生周期为20m s、宽度为1. 5m s 的基准信号, 将获得的直流偏置电压与电位器的电压比较, 获得电压差输出;最后, 电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时, 通过级联减速齿轮带动电位器旋转, 使得电压差为0, 电机停止转动。舵机的控制信号是脉宽调制(PWM ) 信号, 利用占空比的变化改变舵机的位置, 通常控制周期T = 20m s,高电平脉宽0. 5~ 2. 5m s, 对应于- 90°~ + 90°的转角。
2. 2 拟人机器人控制器硬件设计
控制器平台的处理器选用了三星公司基于ARM 9 内核的S3C2410 嵌入式处理器。S3C2410 被广泛应用于PDA、移动通讯、路由器、工业控制等领域, 芯片中集成了下列模块: 16kB 指令Cache、16kB 数据Cache、MMU、外部存储器控制器、LCD控制器、NAND F lash 控制器、4个DMA 通道、3通道UART、1 个I2C 总线控制器、1 个IIS 总线控制器, 以及4 通道PWM 定时器和一个内部定时器、通用IöO 口、实时时钟、8 通道10 b it AD 和触摸屏接口、U SB Ho st 和U SB Device 控制器、SDöMMC卡接口等。
从可调试、可重用、可扩展等方面考虑 , 整个控制系统硬件采用模块化设计, 由核心板和扩展板2部分构成, 系统结构如图1所示。
图1 拟人机器人控制平台硬件结构图
核心板使用了SO2D IMM 的接口方式, 6 层板设计, 长宽分别为76mm和52mm , 实物照片如图2 所示。核心板提供了一个最小系统, 包括了S3C2410 嵌入式处理器、2 片HY57V 561620 并联构成32 b it 的64MB SDRAM 内存空间, 一片K9F1208U 0 构成64MB 的NANDF lash 空间。扩展板上设计了电源模块、2 个U SBHO ST 接口、1 个串口、音频输入输出模块和舵机接口模块。设计电源模块时, 为了防止舵机对控制系统产生干扰, 分别对舵机和控制系统供电, 二者不共地, 通过光藕来隔离。USB 接口用来连接摄像头、USB无线网卡、U盘等设备,串口用来输出调试信息。音频输入输出模块则用来和外界做语音交流。舵机接口模块主要由电平驱动芯片、光耦、斯密特反相器构成。电平驱动芯片用来提高驱动能力,光耦用来传输控制信号。控制信号经过光耦后会反相和畸变,需要反相器对它经行反相和整形后再输出给舵机。考虑到机器人的移动性,没有加入以太网模块。核心板上的操作系统和应用程序下载通过专门的调试接口板完成,然后再安装到扩展板上,机器人运行过程中的软件实时调试信息由串口输出。
图2实物图
2. 3 拟人机器人控制器软件设计
拟人机器人的软件系统除了要协调控制各个关节, 还需要进行视觉图像处理、语音识别、数据传输等, 作者选用了RT 2Linux 操作系统[ 6 ]。普通的Linux是一个典型的分时多任务操作系统, 因为分时调度机制和核心的不可抢占性, 其实时性有所欠缺。但由于Linux 具备开放源代码的优势, 目前已经出现了不少实时Linux 操作系统, 如RT 2Linux、RTA I、LXRT 和KU RT 等。使用RT2Linux 系统可以保证机器人控制的实时性。
3 拟人机器人步行控制方案
机器人学专家、日本早稻田大学的加藤一郎教授说过: “机器人应当具有的最大特征之一是步行功能”。步行分为“静态步行”和“动态步行”2 种。静步行是重心移动少、速度慢的步行方式, 动步行则是自身破坏平衡、向前倾斜似的行走[ 7 ]。限于机器人的机械设计, 我们只实现了拟人机器人的静态步行。
S3C2410 处理器有5 个16 b it 定时器, 其中定时器0,1,2,3具有PWM 脉冲输出功能。PWM 波形的周期, 也是定时器的计时周期, 可以由寄存器TCNTBn 来设置, 占空比由寄存器TCMPBn 来设置(n= 0, 1, 2, 3)。在每次PWM 周期结束时, 对应的定时器都会产生一个中断。假如使用定时器直接输出PWM 信号来控制舵机, 由于每个定时器输出PWM 信号的引脚都是固定的, 因此只能是一个定时器控制一个舵机, 这显然无法满足我们的要求。经过分析, 作者考虑使用定时器的中断在多个I/O 引脚上模拟输出PWM 控制信号, 这样就能实现用一个定时器控制多个舵机。在这个过程中, 定时器状态和I/O 引脚电平的变化关系可以使用Pet ri 网进行建模。
图3 舵机PWM 控制Petri 网模型
图中P1、P2 分别表示IöO 引脚输出高电平和低电平的状态, P3—P7 分别表示定时器的各个工作状态。舵机的PWM 控制脉冲周期为20m s, 假定使用定时器1 来控制8个舵机, 这8 个舵机分别连接到S3C2410 的8 个I/O 引脚1—8, 在某段时间内这8 个舵机的PWM 控制信号中高电平所占的时间分别为T 1—T 8。首先I/O 1—8 引脚上都输出低电平, 然后在I/O 1 引脚上输出高电平, 同时将定时器1 计时周期设置为T 1 并启动定时器; 定时器在经过时间T 1 后产生中断, 在中断服务程序中将I/O 1 引脚输出电平改为低电平, 计时器1 计时周期改为2. 5m s2T 1, 重新启动定时器; 经过2. 5m s2T 1 后产生中断, 在中断服务程序中将I/O 2 输出电平改为高电平, 将定时器1 计时周期改为T 2, 重新启动定时器; 经T 2 后定时器产生中断, 在中断服务程序中将I/O 2 引脚输出电平改为低电平, 将定时器1 计时周期设置为2. 5m s2T 2。这样依次进行操作, 就能在8 个IöO 引脚上模拟出8 路符合要求的舵机控制PWM 信号, 如图4 所示。
图4 多路舵机PWM控制信号示意图
根据上面方案对S3C2410 的定时器0、1 编写了Linux 系统下的驱动程序[ 8 ] , 由这2 个定时器来控制双足机器人的下肢动作。驱动程序由以下函数组成:
1) 在timer- in it 函数中, 注册定时器设备。
2) 在timer- open 函数中, 设置了I/O 引脚功能, 注册定时器中断, 设置定时器的工作模式和输入时钟频率。
3) 在timer- write 函数中, 由外部读入关节的控制信息, 打开定时器中断, 并启动定时器。
4) 在timer- handler 函数中, 改变对应的I/O 输出引脚的电平, 并重新设置定时器, 开始下一个定时器周期。
中断服务程序流程如图5 所示。
图5 多路舵机控制信号模拟程序流程图
对于舵机的控制, 主要的可变参数就是PWM信号中高电平持续时间。系统可以事先设置一些行走动作对应的参数数组, 也可以由应用程序实时生成这些参数数组, 然后在调用定时器设备的时候, 将参数数组传递给定时器驱动程序。
一般的舵机需要CPU 持续为它发出PWM 控制信号, 因此会占用大量CPU 资源, 影响系统的整体性能。我们选用具有电子锁位功能的舵机。这种舵机在收到一组PWM 控制信号后会自动执行至目标位置, 此时如果CPU 停止为它发送控制信号, 舵机会保持该位置。这样就大大减少了CPU 中断发生的次数, 提高了系统的性能。如果使用硬件如CPLD实现舵机控制信号的产生, CPU 只需要将舵机控制参数发送给该硬件即可, 同样也可减轻CPU 负担。
4 应用实例
为了检验控制器的实际工作效果, 设计了机器人避障实验。在机器人的头部安装一个小型U SB 摄像头, Linux 操作系统对于U SB 设备的支持较好,并且内置了部分摄像头的驱动程序, 可以方便地调用摄像头设备并进行图像识别应用程序的编写和调试。为拟人机器人视觉系统搭建了一个实际的应用场景: 障碍物(方形纸盒) 放置在机器人的正前方,机器人在直线步行过程中可以识别障碍物, 并在一定距离时控制双足做转身动作, 绕开障碍物。经过实验, 机器人控制器可以对摄像头获取的图像进行处理, 识别静止障碍物并调用步行程序进行避让。
5心得与体会
此次设计,本文实现了一种基于ARM 嵌入式系统的拟人机器人控制器的设计, 相比单片机控制, 封装了底层的硬件驱动, 模块化和易用性更好, 功能扩展更方便。相比上位机控制, 系统的独立性和自主性得到加强。这种方案在成本和性能上做到了较好的折衷, 改善了开发过程, 同时也为其他类型机器人如轮式机器人的设计提供了一个参考。在设计中让我对嵌入式系统有了更充分的理解。对它的设计有了实践的机会。通过本次课程设计,了解了嵌入式linux系统以及它的一些应用,还清楚了视频监控网络的一些设计方案和基本原理。
参考文献 (References)
[ 1 ] ARM9嵌入式系统设计基础教程 黄智伟 邓月明 王彦编著 北京航空航天大学出版社
[ 2 ]刘莉, 汪劲松, 陈恳, 等. THB IP2I 拟人机器人研究进展
[J ]. 机器人, 2002, 24 (3) : 262 - 267.
LIU Li, WANG Jinsong, CHEN Ken, et al. The research on the biped humanoid robot THB IP2I [J ]. Robot, 2002,
24 (3) : 262 - 267. ( in Chinese)
[ 3 ] 郑嫦娥, 钱桦. 仿人机器人国内外研究动态[J ]. 机床与液压, 20## (3) : 1 - 4.ZHENG Chang’e, Q IAN Hua. The domestic and international research situation of humano id robot [J ].Machine Tool & H y draulics, 20## (3) : 1 - 4. ( in Chinese)
[ 4 ] 陈全福, 朱齐丹, 严勇杰. 基于MSP430 的足球机器人的运动控制系统设计[J ]. 自动化技术与应用, 2006, 25 (1) :32 - 37.
CHEN Quanfu, ZHU Qidan, YAN Yongjie. A control system for rob cup robot based on M SP430 [J ]. Industry Control and Applications, 2006, 25 (1) : 32 - 37.
( in Chinese)
[ 5 ] 慕春棣. 嵌入式系统的构建[M ]. 北京: 清华大学出版社,
2004.
MU Chundi. Building Embedded System [M ]. Beijing: Tsinghua University Press, 2004. ( in Ch inese)
[ 6 ] 施华, 薛广涛. 机器人控制系统实时性的研究[J ]. 计算机工程, 2003, 29 (1) : 91 - 92, 125.