您的位置 首页 应用

根据嵌入式Linux的移动机器人控制系统

基于嵌入式Linux的移动机器人控制系统, 摘要:以嵌入式Linux开发平台为基础,根据模糊控制算法进行机器人路径规划,同时将两自由度云台和超声波测距模块相结合,扩大了障碍物检测范围。根据测试,移动机

摘要:以嵌入式Linux开发渠道为根底,依据含糊操控算法进行机器人途径规划,一起将两自由度云台和超声波测距模块相结合,扩展了障碍物检测规模。依据测验,移动机器人能够依据操作人员的语音指令,完成行进、撤退、丈量间隔等动作,并经过MP3播映功用播映出所丈量到的间隔值和机器人当时的运转状况。在运转进程中,机器人能够自动检测方位并批改,完成无磕碰行进。

导言

跟着科学技能的开展和社会的需求,移动机器人技能得到了迅速开展,正在渗透到各行各业中,使人们的日子愈加便当。如今以单片机为中心的移动机器人存在处理数据量有限、操控体系速度低、人机交互机制单一等缺陷,不能满意机器人多使命的要求。体系中添加协处理器的体系结构也得到了广泛应用,尽管能够办理多种传感器,但这种结构却添加了硬件的冗余度和复杂度,见参考文献。为此,提出了以嵌入式处理器S3C2440为中心的多使命机器人操控体系。

1 操控体系硬件规划

操控体系选用两轮独立驱动小车为移动式机器人渠道,后轮为一个尼龙万向轮。处理器为三星公司的S3C2440,体系主频最高可达533 MHz,外接512 MB的NAND Flash和64 MB的SDRAM,支撑SPI、I2C、UART等接口,满意移动机器人操控体系的需求,如图1所示。

依据嵌入式Linux的移动机器人操控体系

整个操控体系作业进程如下:语音辨认芯片LD3320经过SPI总线接口接入ARM处理器,处理器能够对辨认的成果进行剖析和汇总,并经过查表提取出操作人员的指令码;一起,处理器经过串口读取机器人当时的航向信息;超声波测距和红外线地上检测模块由处理器的GPIO引脚操控;经过操控两自由度的云台,能够进行多方位的超声波障碍物检测,运用LD3320模块的MP3播映功用播映所检测到的障碍物间隔和路况信息。操控体系依据传感器的数据和所辨认的操作人员的指令码,运用信息交融技能提取环境特征,经过途径规划技能作出决议计划,操控电机状况,终究操控机器人的姿势。

2 操控体系软件规划

在软件规划中,将体系中所有要处理的使命划分为不同的、彼此独立的使命模块。依据体系的性能指标和技能要求,可将使命划分为:语音辨认、航向丈量与核算、超声波测距、电机操控、信息处理等使命。

2.1 进程的创立与状况转化

移动机器人操控体系在初始化完成后,运用体系调用fock机制分别为语音辨认、航向丈量与核算和超声波测距等使命发生相应的子进程,完成方法如图2所示。进程创立成功后,操作体系会依据调度算法进行进程调度,这使体系内行进进程中,能够及时呼应语音指令。

依据嵌入式Linux的移动机器人操控体系

2.2 进程间通讯机制

在信息处理进程中,需求对不同使命回来的有用数据进行信息处理和交融。因为不同进程的数据段、仓库段是彼此阻隔的,因而,选用同享内存的进程间通讯方法,在程序中能够运用shmget从体系中取出一块未运用的物理内存并映射到用户空间,如图3所示。

依据嵌入式Linux的移动机器人操控体系

在两个进程之间树立同享内存的详细完成过程如下:

①在调用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所示。

依据嵌入式Linux的移动机器人操控体系

2.3 体系操控流程

在程序初始化完成后,为每项使命创立了相应的进程,并树立了同享内存,如图5所示。在每个进程中选用循环履行方法,语音辨认进程中运用select函数监控是否有辨认成果输出,并将辨认成果写入到相应的同享内存区。

依据嵌入式Linux的移动机器人操控体系

航向丈量和核算进程循环读取陀螺仪的视点信息并存储。超声波测距进程在接收到信息处理进程的操控指令后进行测距并将数据回来至信息处理进程。信息处理进程交融了多传感器的数据,依据设定的途径规划计划,将操控信息传输到电机操控进程,完成机器人姿势的调整。

2.4 语音辨认

在体系运转进程中,语音辨认进程独立完成对语音模块的初始化和读取辨认成果的使命,因而,能够及时呼应操作人员宣布的语音指令。程序中运用了select()函数监控read()是否可读。当语音辨认模块LD3320有辨认成果时,将在中止引脚输出高电平以触发体系中止,完毕驱动程序中的等候状况,一起应用程序能够经过read()函数读取LD3320的辨认成果,并写入到相应同享内存区M中。在没有中止时,read()函数将被堵塞,如图6所示。

依据嵌入式Linux的移动机器人操控体系

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/321890.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部