摘 要:多机器人的编队问题是多机器人协作中的一个典型问题。针对多机器人的编队控制问题,本文采用了有效的通讯机制和界面搭建方法将多机器人协作、仿真和监控有机地结合起来,实现了面向机器人编队协作任务的仿真与监控操作。
关键词:编队控制;监控系统;多机器人
1 仿真与监控系统的功能结构
多机器人系统从整体上可以视为一个局域网系统,其中每个机器人对应于局域网中的一个节点,都具有唯一的IP标号。而仿真与监控是多机器人构成的动态网络实现协调控制的重要组成部分,本文中的仿真与监控系统主要用于完成以下基本功能:
(1) 实现机器人协作控制算法仿真,实时动态地显示仿真结果:
(2)数据存储和精确机器人位姿输出功能:
(3)上位机与下位机的双向通信功能:
(4)在通信基础上实现实时监视功能和半自主控制功能;
(5)仿真验证后的控制算法传送到机器人上进行实际平台运动控制。
为完成以上基本功能,系统通常可以被划分为三个组成部分:上层监控界面、通信接口和底层机器人可执行的功能模块。其中上层监控界面的后台程序与SQL数据库相连接,从而实现数据存储和调用等功能。系统上层监控界面是采用Java语言工具开发的,而底层机器入功能模块由Oberon语言编写,并运行在嵌入式XO/2操作系统上。系统主要功能模块包括:通信模块(包括上层部分和底层部分),机器人运动模块,编队算法模块,算法仿真演示模块,实时监控模块,数据存储模块等。其中监控、通信模块和机器人运动模块是系统的核心部分。每个机器人是通过局部通信模块和上层的仿真与监控系统以及其他机器人进行信息交互的,监控界面既能够反映底层机器人运动状态信息,同时也能够将仿真验证的运动控制命令传递给底层机器人,从而驱动机器人运动模块来实现协作运动控制。
2 仿真与监控系统的模块化实现
2.1监控界面设计
鉴于Java语言在网络编程方面的优势,它被用来作为本文多机器人监控界面主要开发工具。Java API提供了两套组件用于支持编写GUI程序,即AWT和Swing。二者相比,Swing组件具有更好的平台无关性,使得UI外观可以在不同的平台和不同的操作统上被动念地改变。因此,本文选用Swing实现监控界面的设计。
监控界面包括以下几个部分:菜单区、快捷按钮区、演示区和参数调节区。菜单区位于界面顶端,它是由各功能菜单组成的,例如命令管理、编队演示等。而一些常用的功能操作可以通过快捷按钮来实现,例如编队初始化和编队启停控制等。此外界面还包括参数调节面板,它被用来设定编队算法的循环周期数、周期大小以及参与编队机器人的数量等。
2.2通信模块设计
上层监控界面与各机器人之间的通信是采用TCP/UDP协议实现的,通过Socket网络接口信息管理方法可以完成编队系统内部的信息交互功能。Socket编程的基本模式是Client/Server模式,它支持在一台主机上运行的单个服务程序为多个不同的客户程序同时提供服务。在多机器人编队控制系统中,上位机作为服务器,其服务程序在收到某一客户程序的连接请求后,另外分配一个新的端口号来建立与客户程序的连接,原端口号仍用于监听其他客户程序的连接请求。这样每台机器人开通了一个独立的通信端口,同时每台机器人占用了一个独立工作线程。
底层机器人之间的通信采用SOAP通讯协议实现,遵循SOAP信息传输机制,由Oberon系统下开发的SOAP消息包来实现相互无线通信连接。底层机器人的客户通信模块实现打开连接、接收和发送数据等任务。
2.3运动模块设计
机器人运动控制主要有分为两种方式:位置控制方式和速度控制方式。位置控制方式只关心机器人当前位置和下一个目标位置,其路径可以预先设置;而速度控制方式属于离散化的控制形式,它只关心特定序列周期内机器人的速度(包括线速度和角速度)大小。对应于上面两种控制方式,SmartRob.2机器人的Oberon软件系统具有对应的运动控制模块:一个是通过指定机器人要到达的目标位置,让机器人按一定路径到达该目标点的SRPosCtrl模块;另一个是通过循环设定机器人线速度v和角速度u来控制机器人运动路径的SRSpeedlCtrl模块。这样,通过这两个运动控制模块可以完成特定任务中的机器人运动模块设计,从而实现机器人的运动控制。
3 编队机器人位姿遥操作
建立初始机器人编队队形以及在出现编队故障时,机器人位姿都需要借助人工的干预和调整。而在具备了机器人通信模块和运动模块基础上,多机器人监控系统既能够对底层机器人的运动状态进行实时监视,同时也可以实现机器人的位姿遥操作。其中,机器人的位姿遥操作是通过远端控制命令来实现的,例如远端控制台的鼠标键盘控制操作等,它可以调用机器人相应的运动模块。以鼠标控制机器人位姿为例来说明机器人遥操作的实现过程如下。
(1)建立上层机器人监控界面,并与实际机器人工作环境相对应;
(2)初始化机器人位姿,同时在上层界面上实时显示机器人状态;
(3)鼠标拖动机器人到目标位置,将获得的目标点通过通信模块传递给底层机器人;
(4)底层机器人调用运动模块,驱动机器人向目标位置运动。
在机器人遥操作控制系统中,机器人获得的控制信息是一系列离散的目标点。而机器人从一个目标点到下一个目标点的运动控制方法有多种,本文采用点镇定的运动控制模式。因此,机器人当获得目标位置后,既可以直接调用SRPosCtrl位置控制模块实现目标位姿跟踪,也可以采用先转动机器人自身方向角,使得机器人朝向下一相邻目标点,并沿直线运动到目标位置的运动控制方法。具体运动路径选择是与动态环境和路径规划方法相关的。
4 结语
本文采用了有效的通讯机制和界面搭建方法将多机器人协作、仿真和监控有机地结合起来,实现了面向机器人编队协作任务的仿真与监控操作,为多移动机器人协作的研究及应用提供了有效的分析与开发工具。