操纵系统定制
操纵系统定制主要根据系统需要建立操纵系统平台并对其进行相应的配置。通过平台裁剪工具Platform Builder(简称PB)完成。
设备驱动程序开发
WinCE的驱动程序分为:本机设备驱动程序和流接口驱动程序[5]。本机设备是指集成到目标平台的设备,其驱动程序由原设备制造商(OEM)提供。流接口驱动程序是指连接到WinCE平台的外部设备驱动程序,由用户自行开发。流接口驱动程序把外部设备看作文件系统的特殊文件,通过文件读取函数间接地访问外部设备。
嵌进式图像采集卡驱动程序分为三部分:
(1) 内核部分
实现中断服务例程(ISR)。内核函数实现了物理中断号与逻辑中断标识之间的映射关系,并调用中断服务例程,中断服务例程在中断发生后向内核返回中断逻辑标识。
(2) 驱动程序部分
实现WinCE 流接口驱动模型所需要的文件操纵接口函数,包括:采集卡初始化、数据读取和采集卡句柄封闭。
(3) 应用程序部分
通过调用设备注册函数将嵌进式图像采集卡中断驱动程序加载到系统内存,并根据采集卡初始化参数设置修改WinCE系统注册表文件。
应用程序设计
键盘扫描模块及串口通讯模块单片机程序在单片机集成开发环境uVision2下用C语言开发外,其余模块均在EVC(Windows CE Embedded VisualC++)下开发。
(1) 键盘扫描模块
键盘扫描模块主要实现单片机对薄膜键盘的按键识别及键值显示功能。薄膜键盘属于行列式非编码键盘,按键的识别通常采用逐行扫描查询法实现。程序采用软件延时的方法处理抖动。键值显示则通过单片机对液晶屏串行数据口编程实现。
(2) 串口通讯模块
串口通讯模块主要实现单板机与单片机之间的串行数据通讯功能。该模块包括单板机串口通讯程序、单片机串口通讯程序、串口通讯协议三部分。
① 单板机串口通讯程序。由于WinCE不支持串口通讯控件的使用,所以EVC下的单板机串口通讯程序开发只能通过调用文件操纵函数实现。
② 单片机串口通讯程序。单片机串口通讯程序设计必须根据通讯双方约定设置串口工作方式及串口通讯波特率。
③ 串口通讯协议。串口数据包括:双向通讯测试数据、下行指令数据、上行传感数据,而传感数据又划分为:速度、加速度、位置、倾角等状态信息。为了在串口通讯中正确分离和识别各种数据,通过对各种数据添加相应标志字节的方法编制串口通讯协议。
(3) 视频处理模块
视频处理模块通过在EVC 下调用嵌进式图像采集卡驱动函数实现视频显示与视频控制功能。视频显示作为监控系统子窗口嵌进到软件系统用户界面。视频显示主要实现便携式移动机器人平台所处环境信息的实时视频显示与更新。视频控制主要实现对视频采集过程的控制,其中包括:视频采集窗口尺寸设置、视频源制式设置、视频数据格式选择及视频数据存储等。
WinCE不支持任何视频加速驱动程序和底层函数,所以无法直接调用DirectX 函数,则WinCE设备上动态视频的显示与回放,必须开发新的设备无关位图(DIB)快速显示函数。采用从DGdiObject类派生的方法,使用CreateDIBSection函数创建DIB位图,可以直接使用图形设备接口(GDI)函数来操纵DIB 位图,以有效进步位图显示速度。
(4) 数字舆图模块
数字舆图是地理信息系统(GIS)中的概念。数字舆图模块实现便携式移动机器人平台所处地理环境信息的数字化显示,并在此基础上实现对数字舆图放大、缩小、周游、查找等交互操纵功能。
数字舆图模块通过在EVC下嵌进MapXMobile组件实现,并终极作为监控系统子窗口集成到软件系统用户界面。MapX Mobile是基于对象链接嵌进(OLE)技术的ActiveX控件,在EVC下设置该控件的属性、方法及响应事件即可实现舆图显示与操纵功能。
应用程序通过MapX Mobile组件实现舆图显示与操纵,同时治理舆图数据文件。并可以单独在嵌进式设备上运行,也能和WinCE操纵系统兼容。MapX Mobile答应用户把舆图数据带到自身所在的任何位置,实现了移动的GIS组件。
(5) 路径规划模块
路径规划模块实现基于数字舆图的点到点全局路径规划功能。该模块是在数字舆图模块查找交互操纵功能的基础上运用迪杰斯特拉(Dijkstra)算法实现最优路径搜索。操纵者在数字舆图上选取起始点和目标点,程序通过Dijkstra算法搜索得出两点之间可以通行的最优路径,并在数字舆图上标识该最优路径。
Dijkstra 算法是解决最短路径题目的理论基础。该算法适合于计算带权有向图中两节点之间的最短路径。将数字舆图上的道路和地点抽象为有向图的边与节点,道路的长度作为有向图边的权值,从而实现数字舆图到带权有向图的抽象(见图4)。
Dijkstra 算法步骤:
Step1:设集合S存放已求出最短路径的终节点,初始状态时,S集合只有源节点v0,即S={v0}。
Step2:令k=1,对于节点vk,计算v0到vk的间隔
代价函数:
Length(k)是v0和vk之间可达连接权值之和,假如v0和vk之间不可达,则间隔代价函数值无穷大。
Step3:取dist[k]值最小的节点序列保存在path[k]中,并添加vk到集合S中,即S={v0,vk}。且令k=k+1。
Step4:若vk即为目标节点,则算法结束;否则,跳转至Step2。
则path[k]中即为源节点与目标节之间的最短路径序列,最小dist[k]值即为源节点与目标节点之间的最短路径间隔。
设计实例
该手持监控系统已应用到履带结构便携式移动机器人实验平台。在室外实验场地测试取得较好的效果,测试过程中软件系统用户界面如图5。用户界面分为三部分:机器人自身状态信息显示、视频图像数据显示、数字舆图显示。
结论
便携式移动机器人手持监控系统在履带结构便携式移动机器人实验平台上通过测试。嵌进式硬件结构和嵌进式操纵系统的引进符合移动智能终端设备体积小、重量轻、实时性强、可靠性高的设计要求。
随着高技术武器装备研究的发展,便携式移动机器人将越来越多地应用在军事领域。手持监控系统作为便携式移动机器人的子系统,逐步成为军用机器人研究领域的重要课题之一。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |