高 飞,王新杰
(郑州轻工业学院 机电工程学院,郑州 450002)
机器人远程控制技术的研究开始于20世纪60年代,随着人类对自然界的认识和机器人应用领域的不断扩大,不可避免出现一些相对比较恶劣的工作环境,比如,火山探险、深海探密、空间探索,军事场地巡逻、侦察、监视,在生物、化学、核试验场地作业等。危险的环境,对操作人员的人身安全和身心健康造成极大危害,有时甚至导致死亡。因此很多在恶劣环境下对现场工作机器人的控制方式已从传统的现场控制方式发展到无线远程控制方式。
1980年出现了第一个基于互联网的控制设备“cambridgecoffeepot”“剑桥咖啡壶”。它由剑桥大学的科研人员开发的,“剑桥咖啡壶”的出现以及后来Internet的快速发展,使得操作机器人网站和基于互联网的可控设备在几年内大量涌现。在国内,中科院沈阳自动化研究所研制的主从异构的监控远程控制系统;哈尔滨工业大学开发的空间机器人共享系统;北京航空航天大学开发的基于Internet的远程控制系统等,都是机器人远程控制系统的典型范例。
当前远程控制系统模型基本都是基于互联网点对点单一控制,当机器人遇到复杂环境或者需要多机器人协作的时候,这种控制方式就显得力不从心。基于无线局域网的控制方式能够方便的把单一机器人扩展为机器人组并使之协调动作,同时保证数据传输的及时性和稳定性。因此本课题正是要在实验室现今所具有的软硬件条件的基础上,设计一套基于无线局域网的机器人控制系统,使之能半脱离主控端(PC),自主完成一些简单动作,通过TCP/IP协议中的Socket(套接字)编程,使上位机(PC)能对机器人进行简单控制指令的遥操作,利用人类的高级智能和机器人的低级智能,实现人监控下的移动机器人半自主运动。
整套硬件设备图如图1所示,
上位PC机通过无线网卡与下位机器人进行无线通讯,为了保证两个车间之间信号质量、实现对移动机器人的远程无线控制,在两个车间中间增加了无线路由器,从而加强了信号强度、扩展了信号无线传输距离。
车载PC采用威盛 EPIA-P700 系列 Pico-ITX 嵌入式主板,扩展接口多,尺寸小,功耗低,采用嵌入式主板一方面节省了开发时间,另一方面增加了系统的稳定性,在此主板上自行添加了视觉传感器和超声波传感器,丰富移动机器人各方面的功能。
整个机器人系统可分为无线通信模块,机身控制器模块,电机控制器及驱动模块,传感器及图像采集模块。各个模块结构关系图如图2所示。
从图中可以看出机身控制器模块是整个系统的核心,也就是机器人的大脑部分,一方面通过无线模块与上位机进行通讯,接受上面的指令,同时又通过自身的串口接口把收到的控制指令发送给下一层的控制器,从而对电机进行控制,另一方面接收图像采集模块传送过来的视频信息经过处理反馈给上位机,使主控端能时时刻刻了解移动机器人所处的环境。
采用这种模块化分布式控制的优点在于,控制系统的每一层,每一个控制模块几乎都是相互独立的,属于层层调用模式,当出现问题时,很容易就找出是哪一部分出错。同时也方便了系统移植,任何一个模块都可以移植到其他系统,只需改变与新系统相应的底层函数即可。
车载机身控制器采用小型嵌入式控制主板,通过一块无线网卡与无线路由及其上位控制PC机构成无线局域网环境。
由于实现移动机器人远程控制的任务主要是数据传输,所以在上位PC机与机身控制器无线通信采取Socket(套接字)通信方式,根据传输数据类型的不同,套接字可分为面向连接的数据流套接字(stream sockets)和无连接的数据报套接字(datagram sockets)两种类型。本系统中我们采取面向连接的数据流式套接字,其编程模型如图3所示。
在使用面向连接流式套接字通信时,应注意先打开服务器端,否则当客户端连接时将会出现错误。通信流程如图3所示,车载机身控制器作为通信服务器端,启动后首先调用socket()建立一个套接字,然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收PC客户机的连接。而远程PC机在启动建立套接字后就可调用connect()和服务器建立连接。连接一旦建立,机身控制器和远程用户PC机之间就可以通过调用系统定义的子功能函数send()和recv()来通过无线网络发送和接收数据了。
在机身控制器接收到远程上位机发来的指令(具体行走路线或步态)将其保存,当数据接收完毕后关闭Socket,将其转发给下位电机控制器,由电机控制器对其解释和执行,由机身控制器发送给电机控制器数据传输流程图如图4所示:
图4 机器人控制系统数据传输流程图
在进行机身控制器与电机控制器之间的串口通信之前,首先要对串口进行设置,在此我们调用电机控制器底层已有的函数库,
VCS_OpenDevice(...,...,...,...,...) 打开设备,初始化用户数据;
VCS_OpenDeviceDlg (…) 初始化RS232串口,并显示现有可用端口;
VCS_SetProtocolStackSettings (…,…,…) 初始化串口通信的波特率和超时;
VCS_ClearFault (…,…,…) 清除错误信息;
…
…
…
VCS_CloseAllDevices(…,…,…) 关 闭 所 有 端口,并解除对其的绑定;
当串口协议设置完成以后,机身控制器便可与电机控制器进行串口通信,传送控制指令使机器人移动或做其他动作。
基于无线局域网的移动机器人远程控制系统的应用,使机器人摆脱了对上位控制PC端在地域上的依赖,机器人在工作中,远程控制人员可时时刻刻观察机器人的工作状态,并对工作环境改变或突发事件对机器人进行实时控制及处理,提高了移动机器人的灵活性,与此同时本方案采取了小巧嵌入式主板,增强了机器人自处理信息的速度,提高了感知环境的能力。基于分布式模块化的思想增强了机器人各部件的可移植性。因此该方案具有广阔的应用前景。
本系统采用可重构分布式控制系统,使各个模块相互独立,有较好的移植性和扩展性,同时系统基于无线局域网保证了稳定快速的传输速度,实现了机器人在人的控制下半自主式移动。
[1] 汪晓平,钟军.Visual C++网络通信协议分析与实现[M].北京:人民邮电出版社,2003.
[2] 易君.Visual C++.NET网络编程[M].北京:中国铁道出版社,2003.
[3] Jim Geier.无线局域网(王群、李馥娟译)[M].北京:人民邮电出版社,2001.
[4] 孙波,李文锋,李斌,杨小铸.基于无线网络的嵌入式机器人控制系统[J].微计算机信息,2008,9.
[5] 付二寅.基于WLAN的移动机器人远程控制系统研究[D].西安:西安理工大学,2007.
[6] maxon EPOS控制器编程手册[Z] .2007,8.