关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 一种智能机器人系统设计和实现

一种智能机器人系统设计和实现

作者:时间:2011-07-05来源:网络收藏

本文引用地址:http://www.amcfsurvey.com/article/161868.htm

  3.1 控制总体软件结构

  软件主要由应用软件、内核、服务、驱动程序等组成。其构成示意图如图2.


  图2中硬件平台是指核心控制模块及其外围扩展模块,如视频采集模块、语音采集模块等;驱动程序是指系统对LCD、直流电机、摄像头模块、语音采集模块等程序;内核是指嵌入式操作系统,本系统采用的是μC/OS-Ⅱ操作系统;系统服务是指图形界面μC/GUI和文件系统等;应用程序是指为完成控制系统所规划的任务等程序。

  3.2 基于μC/GUI的界面

  μC/GUI是嵌入式应用中通用的图形软件,是为带LCD的图形应用系统提供高效的图形用户接口而的,它不依赖于处理器和LCD控制器。μC/GUI在多任务环境下工作与在单任务环境下工作性能同样卓越,任何尺寸大小的显示设备,不管是物理的或是虚拟的,只要具备LCD控制器和处理器,都可以运用μC/GUI.μC/GUI产品包中包含有所有的源代码。实际上,在所有的嵌入式图形用户接口中,μC/GUI提供的源代码是最整洁最统一的。μC/GUI提供的所有服务都以该模块相关的前缀开始(如:GUI,WM),这将易于理解应用程序中与μC/GUI相关的函数。同时,μC/GUI所有的服务都有很明晰的分类:GUI表示二维图形,GUI_AA表示反锯齿等。

  中间件μC/GUI界面应用程序向用户提供了丰富的API接口函数,为窗口提供了方便。在设计中,为了绘制一幅背景图片,首先使用位图转换工具把bmp格式的位图转换成μC/GUI支持的C文件,供μC/GUI函数调用。然后根据μC/GUI提供的API函数设计系统界面。用到的API函数主要有位图显示函数、窗口创建函数、窗口客户区句柄获取函数、按钮创建函数、文本框创建函数和滑动进度条创建函数等。设计的界面最终在8英寸LCD液晶屏上显示。本系统设计的窗口主要由两个子窗口组成:上方窗口主要用于视频显示,可以通过触摸屏点击开始或结束,视频数据将自动存入规划好的内存图像存储区,以便进一步处理利用,并可选择机所处环境的特定算法程序,且运行相应的程序;下方的窗口工具条主要完成机现场音频数据的收集、播放及停止采集,录制的音频信息将自动存入规划好的内存音频数据存储区Sound_Buffer中,而播放的音频数据放在内存Play_Buffer中,它们采用的都是内存映射技术。

  3.3 用户任务设计

  基于μC/OS-Ⅱ的任务管理机制,根据系统的功能要求,划分为6个系统任务,并设置每个任务的优先级,如表1所示。

  (1)Motor_Drive_Task——定时中断节拍进行计时,在任务循环块中,接收图像处理控制算法中形成的电机驱动参数,即Image_Analyze_Task任务中产生的电机驱动参数,更新PWM输出,完成机所需运动轨迹姿态的调整,随后挂起自身。

  (2)Image_Analyze_Task——获取在内存循环队列中的图像数据,在任务循环块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;若有则对获取内存循坏队列中的图像数据进行分析处理,得出电机驱动参数并发送该信息至消息队列中,然后释放图像信号量,再挂起自身。

  (3)Sound_Record_Task——用于采集、存储机器人周围环境声音信息数据到声音队列中。

  (4)Sound_Play_Task——定时从内存声音播放存储处,即Play_Buffer中提取数据放到队列中进行播放。

  (5)Image_Collect_Task——建立窗口界面,在任务循坏块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;如果检测到图像信号量,则采集一幅图像到图像存储循坏队列中,采集完成,再释放图像信号量,挂起自身。

  (6)GUI_Update_Task——按照μC/GUI手册规定,当其使用窗口回调机制,建议把它设为最低优先级别的任务,用来更新回调信息,并且该任务必须,且要定期调用。



评论


相关推荐

技术专区

关闭