首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于嵌入式Linux的移动机器人控制系统

基于嵌入式Linux的移动机器人控制系统

关键字:嵌入式Linux   多任务   共享内存   语音控制   模糊控制  



随着科学技术的发展和社会的需要,移动机器人技术得到了迅速发展,正在渗透到各行各业中,使人们的生活更加便利。现今以单片机为核心的移动机器人存在处理数据量有限、控制系统速度低、人机交互机制单一等缺点,不能满足机器人多任务的要求。系统中增加协处理器的系统结构也得到了广泛应用,虽然可以管理多种传感器,但这种结构却增加了硬件的冗余度和复杂度,见参考文献。为此,提出了以嵌入式处理器S3C2440为核心的多任务机器人控制系统。
1 控制系统硬件设计

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



图1 系统硬件组成



整个控制系统工作过程如下:语音识别芯片LD3320通过SPI总线接口接人ARM 处理器,处理器可以对识别的结果进行分析和汇总,并通过查表提取出操作人员的命令码;同时,处理器通过串口读取机器人当前的航向信息;超声波测距和红外线地面检测模块由处理器的GPIO 引脚控制;通过控制两自由度的云台,可以进行多方位的超声波障碍物检测,利用LD3320模块的MP3播放功能播放所检测到的障碍物距离和路况信息。控制系统根据传感器的数据和所识别的操作人员的命令码,利用信息融合技术提取环境特征,通过路径规划技术作出决策,控制电机状态,最终控制机器人的姿态。

2 控制系统软件设计

在软件设计中,将系统中所有要处理的任务划分为不同的、相互独立的任务模块。根据系统的性能指标和技术要求,可将任务划分为:语音识别、航向测量与计算、超声波测距、电机控制、信息处理等任务。

2.1 进程的创建与状态转换

移动机器人控制系统在初始化完成后,利用系统调用fock机制分别为语音识别、航向测量与计算和超声波测距等任务产生相应的子进程,实现方式如图2所示。进程创建成功后,操作系统会根据调度算法进行进程调度,这使系统在行驶过程中,能够及时响应语音命令。



图2 系统多进程设计的实现方式
4 实验测试

使用menuconfig命令为嵌入式Linux系统内核配置添加相应驱动程序后,进行make编译生产zImage文件。启动移动机器人系统并进入BIOS模式,将配置好的内核通过Supervivi工具烧写到NAND Flash。在系统启动后,配置Linux目录中的/etc/init.d文件,使系统启动后,自动运行所设计的程序。

如果系统初始化正常,将听到由语音模块发出的提示声:“校准完成”。此时,操作人员可以下达“前进”、“后退”或“测距”等设计好的语音指令,机器人将按照操作人员的指令完成相应的动作,还可以通过语音模块播放出测量到的距离。

结语

系统利用了Linux系统支持多任务和可裁剪的特点,结合处理器丰富的接口资源,实现了多方位超声波测距、电机控制等功能,通过对多传感器信息的融合和分析,为模糊逻辑法进行路径规划提供了判断依据。语音识别功能使得机器人和操作人员之间的人机交互变得更灵活方便。在此基础上,可以利用Linux操作系统强大的网络功能,为进一步研究服务机器人、机器人联网、机器人与机器人通信等提供了一种方案。
返回列表