中图分类号:TP393 文献标识码:A 文章编号:1009-2552(2007)01-0001-03机器人无线远程控制系统的人机接口王晓亨,陆宇平(南京航空航天大学自动化学院,南京210016)摘 要:在无线局域网环境中,建立了一套以移动机器人为控制对象的、模拟Internet传输特征的远程控制技术研究平台。
通过可视化的人机接口界面,可以直接向远端机器人发送控制指令,并能看到反馈的状态数据;还可通过手柄控制,语音控制、命令集可编程接口等方式控制机器人。
最后的开发实例具有操作简便、界面友好、易于扩展等特点。
关键词:人机接口;Speec h API;机器人Man-machine interface of robot wirless remotedistance control systemWANG Xiao-heng,LU Yu-ping(College of Auto mation,Nanjing University of Aeronautics and Astronautics,Nanjing210016,C hina) Abstract:The research platform of remote distance control technology of simulating the characters of Internet communication is established in wireless local area network.The operators can directly send control instr uc-tions to the remote robot,and vie w the feedbacked state data through the visualized man-machine interface, also can control the r emote robot by handle c ontr ol,speech control,pr ogrammable command sets and so on.The instance has some advantages such as convenient operation,friendly interface,adapted extension.Key words:man-machine interface;Speech API;robot0 引言近年来,基于Internet的远程控制技术是一个研究热点,随着无线网络技术的发展和日益成熟,使得基于无线网络的远程控制技术的研究得到了极大的关注。
利用VC++设计了一套以移动机器人为复杂控制对象,在无线局域网环境下模拟广域网络的特征,用软件的方式人为再现不确定性时延,数据传输丢失等网络现象的远程技术研究平台。
并利用该开发平台建立一套面向无线网的机器人远程控制系统。
该平台通过可视化的人机接口界面可方便的进行操作和进一步的研究。
1 硬件环境如图1所示,在实验室内搭建了无线网络环境,无线路由器通过其广域连接端口连接到校园网,并能通过校园网访问Internet,从而构成了一个广域网系统。
机器人通过其车载计算机上的无线网卡与实验室内的无线局域网互联,可以实现从网络的任何节点来远程控制机器人。
图1 硬件结构被控的机器人采用了美国Activmedia Robotics 公司的P3-DX多功能智能移动机器人,它配备了车载计算机(装有无线网卡、视频采集卡)、带抓手的收稿日期:2006-08-08基金项目:国家863重点课题资助项目(2003AA755021)作者简介:王晓亨(1981-),男,硕士研究生。
主要从事网络与控制等方向的研究。
DOI:10.13274/ ki.hdzj.2007.01.0015自由度手臂、水平转动倾斜摄像头、4组共16个声纳。
2 人机接口的实现机器人远程控制系统中的人机接口技术从本质上来讲就是通过什么样的方式来发送控制指令和进行状态数据的反馈。
除了提供传统的图形化人机界面,还提出了一些新的人机接口技术,对人与移动机器人更自由灵活的合作进行了初步的探讨。
2.1 图形化人机界面目前在机器人远程控制系统的开发中采用的最多也是最基本的方法即提供一个简单、易操作的图形化人机界面。
该界面上提供各种控制按钮、控件,用户通过点击这些按钮发送命令给远端的机器人。
接口界面要提供足够的信息使问题容易理解,同时尽可能地传输最少的数据,以及拥有简单的接口界面布局。
同时还提供机器人状态数据的图像化显示。
对于本文的机器人无线远程控制系统,由于其是一个开发式的研究型环境,需要不断的扩展。
系统的功能也将不断增加,复杂性也同时在增高。
面对可能是对机器人控制没有经验的人员,在基于系统复杂性的前提下,如何使图形界面更具友好性就成为系统设计中重要的课题,它将影响用户的操作行为,甚至是系统的安全。
在设计机器人无线远程控制系统的远程控制端的图形化接口界面时,将考虑以下原则:(1)界面必须具有交互性和智能性。
良好的接口设计大多有一个交互式处理机制。
现有的网络远程机器人系统,如Xa vier的人机交互方式虽然简单易操作,但实现功能单一,没有充分体现机器人的自主性及与人的智能融合。
要使用户能远程控制机器人并完成一系列复杂动作,就需要使用更先进的技术来实现复杂而且友好的用户界面,以提高其交互性。
(2)界面应简单、清晰、易理解和易操作。
将机器人的动力学、异常性以及活动空间边界的复杂性对用户隐藏,同时,仍然允许灵活的操作封装。
并且尽量滤掉各种非常复杂的因素。
在不丢失任何有用功能的情况下,尽量简化对机器的控制。
(3)界面提供用户操作远程机器人的功能应尽可能详细和可靠。
功能的完整与界面的简洁是一个比较矛盾的东西,如何较好的协调这两个要求是图形化界面设计的一个难点。
2.2 手柄控制通过使用手柄来实现对机器人的远程控制突破了传统的使用鼠标点击图形界面的做法,有着比使用鼠标无法比拟的便捷和真实控制的感受。
通过使用手柄,就像驾驶着汽车一样,实现对机器人的远程控制,便于用户连续的调整机器人的位姿和行动,并更具远程控制的真实感。
要在机器人远程控制系统中实现手柄的控制,需要对手柄的接口(串口、并口、USB等)进行编程,还有一个比较容易实现的方法就是使用工具软件JoyToKey来实现。
JoyToKey可以实现将手柄上的按键和键盘上的按键相对应的功能,即按了手柄上的某个键相当于按了键盘上对应的一个或几个键。
因此在软件编程时只需在代码中加入对键盘按键的响应就可实现手柄控制的功能。
而键盘按键响应可以通过调用Win32API函数RegisterHotKey注册系统热键的方法实现。
2.3 移动式便携设备为了实现远程控制端的移动性,可以采用便携式设备作为远程控制端的硬件平台。
这些设备可以是安装了无线网卡的可编程的PDA,还可以是专门为机器人远程控制系统设计和开发的嵌入式设备。
这些设备具备的基本特征就是需要有无线网络接入接口、支持Socket编程、显示屏、嵌入式操作系统(支持多线程)。
只有具备了上述特征的设备才能实现具有移动性的远程控制平台的功能。
2.4 语音控制机器人的语音控制就是远程用户通过输入自然语言命令来控制机器人的功能。
目前语音控制技术在汽车电子、飞机控制系统、军事指挥系统、医疗系统已经有了一定的研究和应用。
利用语音进行远程控制,有效的利用了人类的语言能力,解放了人类的手,充分的调动了手、耳、口等器官,使人机交互更为自然、有效、方便和分工明确。
语音控制的核心就是语音识别技术。
语音识别以语音为研究对象,它是语音信号处理的一个重要研究方向,是模式识别的一个分支,涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,其最终目标是实现人与机器进行自然语言通信。
现在应用较为广泛的语音识别算法有动态时间规划、离散隐马尔可夫模型、连续隐马尔可夫模型、人工神经网等。
本文设计的机器人无线远程控制系统将采用微软公司推出的语音识别开发包Speech API(以下简写为SAPI)。
SAPI提供了语音识别与语音合成的接口。
图2是语音远程控制在系统中的结构图。
该结构位于远程控制端,虚线框内的即为语音控制模块。
语音识别引擎首先装载语法规则(XML 格式的语音和实际命令的匹配表)。
当用户输入语音命令时,引擎将根据语法规则识别出对应的字符指令然后发给指令发送模块进行发送,以下的流程和远程控制端的设计流程是一致的。
因此语音控制模块相当于在远程控制端加上了一个语音控制指令的接口。
对于利用SAPI 进行开发时具体步骤,可参考SAPI 帮助文档。
图2 语音控制功能结构图在进行语音控制时仍然有一些问题需要解决。
一个是识别率不高的问题。
对于本文设计的远程控制系统,由于指令属于短的词汇型,没有很长的句子,因此识别率相对很高。
如果今后开发纯语言的控制方法时,现有的语音识别技术识别率还达不到设计的要求。
因此语音识别的算法还有待继续研究和发展下去。
另一方面,语音控制受到噪音环境的影响很大,如果周围噪音很大将会严重干扰识别的结果,因此消噪技术也是一个重要的研究方向。
但是总的来说,语音控制技术作为一种人机接口是切实可行的,并有着良好的应用前景。
2.5 命令集可编程接口在远程控制端的图形化界面上提供可编程接口,使用户可自行规划命令集合,用以完成某项任务。
可编程接口提供基本远程控制指令并规定了命令集的文件格式。
用户通过图形化界面并可结合机器人模拟器离线进行命令集的编辑。
当要执行用户设计的命令集任务时,由远程控制端读取命令集文件,依次读取其中的指令以及参数并将其发送到现场控制端执行。
这一可编程接口可以帮助进行系统的功能提升,特别是增加系统完成重复性任务的能力。
它也使非专业用户也可简单编排机器人的运动,可应用于机器人娱乐与教学。
3 人机接口设计实例利用开发库CyLib ,快速的开发出了一套面向无线网的机器人远程控制系统。
图3所示的是远程控制端软件的界面。
该系统实现了机器人本体、机械臂和摄像头的控制、状态数据的显示、声纳罗盘数据图形化显示、以及视频监控等智能控制功能。
图4为手柄控制接口界面,用于启动关闭手柄控制,提示手柄各个按键对应的控制命令等。
图5为命令集控制界面。
提供命令集的编辑、查看与执行等功能。
图3 远程控制端界面图4 手柄控制界面图5 命令集编辑及控制界面在今后的功能扩展过程中,还可以继续在该界面上添加新的控制界面,比如各种智能控制任务的执行界面,也可以直接作为研究人员的试验平台。
研究人员只需将自己的研究成果比如算法嵌入到里面,从而快速验证研究人员的理论成果。
(下转第19页)拉电阻有效#pragma set node sd string“@0.”#include<netdbg.h>#include<snvt rq.h>设定I O对象int vswitch=1;const unsigned long brightness L=280;const unsigned long brightness H=64;network input long nvievalue;network input long nvigvalue;long evalue;network input sd string(“@01.”)SNVT obj request nvi00Request;network output sd string(“@02.”)SNVT obj status nvo00Status;声明triac对象I O4用于输出触发脉冲,I O4用于输入过零检测脉冲,选用6号内部时钟,脉冲上升沿有效;I O0output triac pulse sync(IO4)clock(6) clockedge(+)zeroin;开关打开时triac对象开始运行when(vswitch==1){io out(zeroin,evalue);}接受上层来的NV值when(nv update occurs(nvievalue)){evalue=nvievalue;io out(zeroin,evalue);}网络变量的更新when(nv update occurs(nvigvalue)){if(nvigvalue>brightness H){evalue=320;}else if(nvigvalue<brightness L){evalue=1;}else evalue=nvigvalue2;io out(zeroin,evalue)}reset事件when(reset){ io out(zeroin,327);}把智能调光节点的应用程序装载到Mini E VK 的评估板中,通过I SI(Interoperable Self-installation)协议连接,然后该应用程序就可以利用输入输出网络变量(NV)的更新来与评估板交换数据,并进行测试。