
以嵌入式Linux开发系统为基础,根据模糊控制算法进行机器人模式规划,同时将两自由度云台和超声波测距组件相结合,扩大了障碍物监测范围。根据检测,移动机器人可以按照操作员工的语音指令,实现前进、后退、测量距离等动作,并借助MP3播放功能播放出所检测到的距离值和机器人当前的运行状况。在运行过程中,机器人可以手动测试方位并修正,实现无碰撞行驶。
随着科学科技的演进和社会的必须,移动机器人科技受到了快速演进,正在渗透到各行各业中,使他们的生活变得方便。现今以单片机为核心的移动机器人存在处理数据量有限、控制平台速度低、人机交互模式单一等特点,不能满足机器人多任务的规定。系统中提高协处理器的平台结构也受到了广泛应用,虽然可以管理多种传感器,但这些结构却降低了硬件的冗余度和复杂度
移动机器人属于无法手动执行工作任务的机器,不但无法根据事先编译的程序运行,同时人类还可对其指挥。当前主要被利用在制造业、及其航空航天领域,而该领域的演进情况直接关系到国家综合实力的提高速度,对此加大对移动机器人控制平台的演进情况,以及今后发展方向的研究势在必行。
中国外常用的移动机器人控制系统
相对于中国在移动机器人的研究现状,能够看出美国在该领域的研究是较早的,其中带有代表性的有Saphira、TeamBots以及ISR。而在中国方面,代表性的有OSMOR、ZJMR以及Agent。下面,便对较为常见的控制平台进行介绍:
1.1 国外移动机器人控制平台
1.1.1 Saphira控制系统
Saphira控制平台是移动机器人领域中最早的平台,是有SRI国际人工智能中心在1990年所开发的,此平台是基于本地认知空间的共享内存与黑板,来推动协调与通信进程。由于Saphira是运用C语言来进行研发的,同时支持Windows与Unix系统,因此具备文档资料相对完整、系统资源占用少等特点。但是需留意的是,由于Saphira系统在定位方面能够超过当前的实际需求,因此采用是相对较少的。
1.1.2 TeamBots控制系统
本平台是基于Java包与Java应用程序而形成的,经过20余年的发展后,此平台截至到现在终于被利用到多种类型的机器人系统当中。除此之是非常广泛的。
1.1.3 ISR控制系统
ISR是基于行为的控制方式,其中是有任务执行层、反映层或者推理层所组成的,是有CAS研究中心所开发的。其中,任务执行层的作用是执行推理层所存储的指令;反映层其中包括资源、控制器或者行为;推理层的用途是按照客户的指令来对决策进行建立。此外,ISR控制平台仅能够在Linux中进行操作,并且没有公开化使用。
1.2 中国移动机器人控制平台
OSMOR是我国首个机器人平台,此系统在传感器处理方备显著的劣势,并且为了还能避免发生数据处理的复杂性与传感器多样性的制约,本控制平台将传感器数据的处理划分为单独结构当中。但是需切记的是,OSMOR属于沈阳自动化探究所的试验室自主研发的机器人平台,因此被没有受到广泛的利用。
与此同时,我国各个高校也加强了对移动机器人的研究力度。其中移动机器人系统,浙江高校建立了ZJMR系统;中南学校研究了室外自主导航平台;南京理工学院经过研究后,提出了Agent系统。河海大学强调了集控式足球机器人平台;东北高校开发了基于自主式足球机器人的底层控制平台;清华学校是基于多机器人协作的层面为核心,并建立了平台框架,由于此框架不够成熟,因此并没有利用到市场中。
基于嵌入式Linux的移动机器人控制系统
1控制系统软件设计

控制平台采用两轮独立驱动汽车为移动式机器人系统,后轮为一个尼龙万向轮。处理器为三星公司的S3C2440,系统内存最高可达533MHz,外接512MB的NANDFlash和64MB的SDRAM,支持SPI、I2C、UART等接口,满足移动机器人控制平台的需求,如图1所示。

图1系统硬件组成
整个控制平台工作过程如下:语音识别芯片LD3320通过SPI总线接口接人ARM处理器,处理器可以对识别的结果进行探讨和汇总,并借助查表提取出操作人员的命令码;同时,处理器借助串口读入机器人当前的航向信息;超声波测距和红外线地面测试组件由处理器的GPIO引脚控制;通过控制两自由度的云台,可以进行多方位的超声波障碍物监测,利用LD3320模块的MP3播放功能播放所测量到的障碍物距离和路况信息。控制平台按照传感器的数据和所识别的操作人员的命令码,利用信息整合科技提取环境特点,通过模式规划科技做出决策,控制电机状态,最终控制机器人的姿态。
2控制系统工具设计
在硬件设计中,将平台中所有要处理的任务划分为不同的、相互独立的任务模块。根据平台的性能指标和科技要求,可将任务划分为:语音辨识、航向测量与推算、超声波测距、电机控制、信息处置等任务。
2.1进程的构建与状况转换
移动机器人控制平台在初始化完成后,利用平台读取fock机制分别为语音辨识、航向测量与推算和超声波测距等任务造成相应的子进程,实现方法如图2所示。进程建立失败后,操作平台会按照调度算法进行进程调度,这使平台在行驶过程中,能够迅速响应语音命令。

图2平台多进程设计的谋求方法
2.2进程间通信模式
在信息处理进程中,需要对不同任务返回的有效数据进行信息处理和整合。由于不同进程的数据段、堆栈段是互相隔离的,因此移动机器人系统,采用共享存储的进程间通信手段,在程序中可以使用shmget从系统中取出一块未使用的物理存储并映射到用户空间,如图3所示。

图3共享存储模式在两个进程之间搭建共享存储的详细推动方法如下:
①在调用fock()前,使用shmget创建新的共享存储,返回值为共享存储标识码:
shmid=shmget(IPC_PRIVATE,1,PERM)
//申请一个字节共享存储

②调用fock()变量,创建子进程,根据fock()的返回值区分父进程和子进程,并分别在两个进程中使用shmat映射一块共享存储,即允许当前进程访问建立的共享存储:
if(fock())p_addr=shmat(shmid,0,0);
//将共享内存映射到父进程
else{c_addr=shmat(shmid,0,0);}//将共享存储映射到子进程
其中,shmid为shmget()函数的返回值,即共享存储标识码。
从用户的视角看,在父进程中可以对p_addr进行读写操作,实际访问的是申请的共享存储。子进程则可以对c_addr进行读写,从而推动两个进程间的通信。共享存储的映射和进程之间的关系,如图4所示。

图4进程和共享内存映射关系
2.3系统控制流程
在程序初始化完成后,为每项任务建立了相应的进程,并制定了共享存储,如图5所示。在每个进程中运用循环执行方法,语音识别进程中运用select函数监控是否有甄别结果输出,并将识别结果读取到相应的共享存储区。

图5系统控制流程图
航向测量和推算进程循环加载陀螺仪的角度信息并传输。超声波测距进程在接收到信息处置进程的控制命令后进行测距并将数据返回至信息处理进程。信息处理进程融合了多传感器的数据,根据设置的模式规划细则,将控制信息存储到电机控制进程,实现机器人姿态的调整。
2.4语音识别
在平台运行过程中,语音识别进程独立完成对语音组件的初始化和调用识别结果的任务,因此,能够迅速响应操作人员发出的语音指令。程序中使用了select()变量监控read()是否可读。当语音辨别模块LD3320有辨识结果时,将在中断引脚输出高转矩以触发系统中断,结束驱动程序中的期待状态,同时应用程序可以借助read()变量调用LD332332O的识别结果,并读取到相应共享存储区M中。在没有中断时,read()变量将被阻塞,如图6所示。

图6语音识别进程流程图

使用select模式监控是否语音辨识结果,在超过期待时间后,会退出等待并再次初始化语音组件LD3320,释放公共资源,这样也促使平台才能尽快响应LD332332O的MP3播放功能,避免了在长时间没有语音识别结果时,系统处于卡死状态。
2.5航向测量
为了使移动机器人无法沿指定的方向行驶并能修正由外界干扰原因造成的航向误差,系统引入陀螺仪航向测量组件MPU-6050,该组件将其检测的模拟量转化为可输出的数字量,并借助串口发送到S3C2440.系统通过read(fd_uartl,bur,10)变量调用相应串El,得到航向数据并写人到共享内存区S中。
2.6超声波测距
本系统运用渡越时间法,超声波测距组件在收到发射控制讯号时,换能器将发出40kHz的连续脉冲讯号。的输出高电平时间和距离成正比,同时触发处理器的中止,上升沿中断启动定时器,下降沿关闭定时器,利用处理器外部的定时器1测量出输出信号的高电平的大幅时间△T,经过式(1)的计算,可得到测试距离S:S-V×△T/2(1)式中,V为超声波的传播速率,常温下超声波在空气中的传播速度是340m/s.程序中按照所编写的驱动程序,使用ioctl(fd_chao,SEND_BEGIN)、ioctl(fd_chao,SEND_STOP)控制GPIO以推动超声波的发射和中止。系统中对某个方向连续测量5次,进行中值滤波并将滤波后数据释放到信息处理进程。
2.7电机控制
移动系统中运用L298驱动直流减速电机,平台已经调试速度反馈单元,简化了控制方式。程序通过ioctl()控制L298以推动电机的正反转以及停止操作。
在电机驱动程序中定义了相应GPIO的输入/输出模式:ioctl(fd,TURN_LEFT)中,fd为驱动程序的文件表述符;TURN_LEFT是命令掩码CMD,驱动程序按照命令掩码CMD对相应的GPIO赋值以控制L298的状态。
3路径规划和避障算法
按照模糊逻辑法,移动系统无法在不确认环境中推动局部路径规划和避障。
3.1输入输出函数的模糊化
在路径规划过程中,信息预测模块的输入量为移动系统的行驶方向信息、与障碍物之间的相对位移信息;输出量为移动系统的翻转视角和平动位移信息。
①定义移动系统与右侧障碍物的距离为DL、与左侧障碍物的距离为DR、前方障碍物的距离为DF.模糊子集定义为{S,M,B},分别表示小、中、大,相应的距离隶属度函数如图7所示。

图7距离隶属度函数
②定义移动系统和目标点之间夹角为了,模糊子集定义为{LB,LS,Z,RS,RB},分别表示左大、左小、零、有小和右大。相应的角度隶属度函数如图8所示。
③移动系统的翻转视角φ的模糊子集定义为{TIB,TLS,TZ,TRS,TRB}。分别表示左转大、左转小、不旋转、右转小、右转大,相应的输出隶属度函数如图9所示。

3.2构建模糊控制规则
在移动机器人摆脱障碍物或不存在障碍物的状况下,依据移动系统的行驶轨迹,可以先对行驶方向进行微调。当测量到障碍物接近移动系统时,移动平台应改变行车轨迹,避免出现撞击。移动系统的个别模糊控制规则如表1所列。

图8角度隶属度函数

图9输出隶属度函数
表1模糊控制规则

3.3模糊推理和解模糊化
根据距离隶属度函数,将超声波检测受到的不同方位的距离数据转化为模糊逻辑状态,再查找模糊控制规则,查表得到相应的输出模糊量。
解模糊化是输出模糊量映射到动作行为的过程。模糊控制器对移动系统的动作进行了分解并编码,将复杂的动作分解为一系列简洁动作的叠加,使得每一个输出模糊量对应一套动作。
比如在测试到后方有障碍物并确认左转时,可以将机器人动作分解为:后退(左转,即先后退,再左转。这样可以减少机器人触碰到前方障碍物的概率。
4实验测试
使用menuconfig命令为内嵌式Linux系统内核配置添加相应驱动程序后,进行make编译生产zImage文件。启动移动机器人平台并开启BIOS模式,将配置好的内核通过Supervivi工具烧写到NANDFlash.在平台开启后,配置Linux目录中的/etc/init.d文件,使平台开启后,自动运行所设计的程序。
即使系统初始化正常,将看到由语音模块发出的提醒声:“校准完成”。此时,操作队员可以下达“前进”、“后退”或“测距”等设计好的语音指令,机器人将根据操作员工的指令完成相应的动作,还可以借助语音组件播放出检测到的距离。
结语
系统借助了Linux系统支持多任务和可裁剪的特征,结合处理器丰富的接口资源,实现了多方位超声波测距、电机控制等功能,通过对多传感器信息的整合和探讨,为模糊逻辑法进行模式规划提供了辨别根据。语音辨识功能并且机器人和操作人员之间的人机交互更加更灵活便捷。在此基础上,可以借助Linux操作平台强大的网络功能,为进一步研究服务机器人、机器人联网、机器人与机器人通信等提供了一种方案。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-130840-1.html
即使是后面一条
至甲午海战时