引言
目前,便携式移动机器人全自主控制方式尚不成熟,其监控系统普遍采用人在环半自主控制方式设计。为满足携带、系统小型化、嵌进式的结构特点,故设计便携式移动机器人手持监控系统,并将其用于履带结构便携式移动机器人实验平台。
功能设计
手持监控系统对便携式移动机器人起到监视与控制的全局性作用。手持监控系统可划分为视频图像监视模块、状态信息监测模块、远控指令模块、无线通讯模块、数字与图交互模块、全局路径规划模块六大功能模块(见图1)。
视频图像监视模块对便携式移动机器人所处环境进行视频监视;状态信息监测模块对机器人自身状态信息的监测;远控指令模块实现基本的运动指令编码以及发送;无线通讯模块实现运动指令、状态信息、视频信号等数据的无线传输;数字舆图交互模块实现环境地理信息的数字化显示及人机交互功能;全局路径规划模块实现点到点的最优路径搜索功能。
硬件系统
手持监控系统的硬件系统可划分为若干模块,各个模块实现自身相对独立的功能。
硬件结构与接口
手持监控系统硬件系统采用基于嵌进式系统的PCI 总线的PC/104plus 总线结构,分为无线通讯、嵌进式图像采集、中心处理、远控器、液晶显示等五大模块。无线通讯模块又划分为无线数据传输和无线视频传输模块。无线数据传输模块实现运动指令、状态信息等窄带数据无线传输;无线视频传输模块实现视频图像信号等宽带数据无线传输。
硬件系统各模块通过接口实现信息交换与数据共享。中心处理模块通过PC/104plus 总线与嵌进式图像采集模块接口,实现模块之间视频图像数据的传输。中心处理模块与无线数据传输模块及远控器模块通过串口连接。中心处理模块通过TTL接口与液晶显示模块连接。嵌进式图像采集模块与无线视频传输模块通过RCA 接口实现复合视频信号的传输(见图2)。
硬件模块实现
无线数据传输模块采用微功率无线数据传送单元实现。嵌进式图像采集模块采用PC/104plus总线结构的嵌进式图像采集卡实现。中心处理模块采用PC/104plus总线结构的单板机实现。远控器模块通过自行设计电路板实现按键扫描、指令编码以及串口发送等功能。液晶显示模块采用小型彩色液晶屏实现。以上各硬件模块实现符合手持设备小型化、便携式的硬件要求。
软件系统
手持监控系统的软件系统选用Windows CE(WinCE)作为嵌进式操纵系统平台,监控系统软件包括:操纵系统定制、设备驱动程序开发、应用程序。应用程序又分为:键盘扫描模块、串口通讯模块、视频处理模块、数字舆图模块、路径规划模块五大模块(见图3)。
操纵系统定制
操纵系统定制主要根据系统需要建立操纵系统平台并对其进行相应的配置。通过平台裁剪工具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。用户界面分为三部分:机器人自身状态信息显示、视频图像数据显示、数字舆图显示。
结论
便携式移动机器人手持监控系统在履带结构便携式移动机器人实验平台上通过测试。嵌进式硬件结构和嵌进式操纵系统的引进符合移动智能终端设备体积小、重量轻、实时性强、可靠性高的设计要求。
随着高技术武器装备研究的发展,便携式移动机器人将越来越多地应用在军事领域。手持监控系统作为便携式移动机器人的子系统,逐步成为军用机器人研究领域的重要课题之一。
|