机器人足球仿真比赛平台中网络通信问题研究

机器人足球仿真比赛平台中网络通信问题研究

2023年7月15日发(作者:)

机器人足球仿真比赛平台中网络通信问题研究

陈婷婷;张彦铎

【摘 要】为了满足机器人足球仿真比赛平台对多方通信的准确性、实时性、稳定性与安全性的特殊要求,集成了TCP和UDP两种传输协议,使用多线程编程技术,设计、实现了一种基于比赛服务器端、策略客户端、显示客户端三方通信的解决方案,并在实际的机器人足球仿真比赛平台的开发中得到验证.

【期刊名称】《武汉工程大学学报》

【年(卷),期】2009(031)003

【总页数】4页(P70-73)

【关键词】机器人足球;仿真;TCP/UDP;多线程

【作 者】陈婷婷;张彦铎

【作者单位】武汉工程大学计算机科学与工程学院,湖北,武汉,430074;武汉工程大学计算机科学与工程学院,湖北,武汉,430074

【正文语种】中 文

【中图分类】TP242

0 引 言

近年来,机器人足球比赛迅速成为国际性的高科技对抗活动,随着人工智能和机器人研究的不断深入,机器人足球比赛已经成为科研工作者的研究热点[1,2].由于真实的机器人足球比赛所需要的硬件设备比较昂贵[3,4],因此,国际上最具影响力的两个大赛组织FIRA和RoboCup相继提供了不需要硬件支持的仿真平台用以吸引更多的人来从事机器人足球的研究.其中,FIRA 11VS11仿真平台采用的是Client/Server结构,通过UDP/IP协议进行通信,实现数据交换[5];RoboCup仿真比赛提供了一个完全分布式控制、实时异步多智能体的环境,仿真平台采用Client/Server 方式在一个标准的计算机环境内运行.

考虑到仿真比赛平台的易用性和客户端开发平台的无关性,以及为了保证网络通信的准确性、实时性、稳定性与安全性,设计和实现了基于比赛服务器端、策略客户端、显示客户端三方通信的网络系统.

1 仿真比赛中网络通信的特殊性

机器人足球仿真比赛是对现实中半自主比赛的模拟,这对仿真比赛平台中网络系统提出了较高的要求.与一般的网络系统相比,仿真比赛中网络通信开端有其特殊性:(1)准确性.保证服务器和客户端之间准确无误地传输数据.(2)实时性.保证服务器和客户端之间实时地传输数据.(3)稳定性.在多线程编程时,要协调各线程同步的访问共享资源,保证网络通信的稳定.(4)安全性.包括数据安全性、I/O的安全操作.

基于以上提到的仿真比赛中网络通信的特殊性,提出一种新的网络系统架构,其主要特点有:(1)定义良好的数据结构,保证发送和解析数据的准确性.(2)集成TCP和UDP两种不同的传输方式,保证数据的实时性和安全性.(3)使用多线程的机制使服务器并发地处理请求,提高网络系统数据传输效率.(4)采用多路复用的I/O模型,实现服务器端对不同要求客户端的高效管理和高效响应.

2 仿真比赛平台网络系统结构设计

仿真比赛平台网络系统的构架图如图1所示,主要由三部分组成,分别是仿真服务器端、策略客户端、显示客户端.以上各部分可分别运行在局域网内的多台计算机中,也可以在同一台计算机上以多进程的方式运行.

图1 仿真平台网络系统结构图Fig.1 The structure diagram of network system for the simulation platform

2.1 通信数据的设计

仿真比赛平台网络系统服务器端与各个客户端之间互相发送的数据需要具备良好的数据结构,这样不仅会使得数据的发送和解析变得简单,同时还提高了整个平台运行的效率.鉴于此,本系统在服务器端和客户端分别定义了名为Environment_Serv和Environment的全局环境类,包括的数据成员有球的位置,小车机器人的位置、小车机器人左右马达命令值、比赛状态、定位球信息、比分、时间、球队信息,定义相应的数据结构主要有BallPose2D、RoboPose2D、Robot2D、StatusInfo等,如图2所示.

图2 通信数据的结构Fig.2 The structure of communication the data

2.2 网络协议

计算机网络传输层的协议主要有两个:TCP和UDP,本系统采用Windows套接字(socket)进行编程,TCP和UDP协议分别对应流式套接字(Stream Socket)和数据报套接字(Datagram Socket)[6].

本系统集成了TCP和UDP两种协议,对不同的数据利用不同的协议进行传输,既保证了数据的完整性又保证了整个网络系统数据的实时交换.表1列出了各种数据及其传输方式.

表1 网络系统中数据的不同传输方式Table 1 The different transmission

modes of data in the network system端到端TCP协议传输UDP协议传输服务器端到策略客户端N球的位置BallPose2D机器人位置Robo2D定位球信息策略客户端到服务器端球队信息TeamInfo定位球信息场地信息小车机器人左右马达命令值服务器端到显示客户端球队信息TeamInfo定位球信息比分比赛时间球的位置BallPose3D机器人位置Robo3D机器人左右轮转角

2.3 服务器端设计 仿真服务器端主要包括四个部分:自动裁判模块、物理仿真模块、显示模块和网络传输模块.自动裁判模块提供比赛时的判罚依据,物理仿真模块包括构建仿真平台的场景和物理模型,以及进行物理运动学、动力学仿真,并且将仿真计算结果提供给比赛客户端.显示模块为显示器提供比赛显示需要的数据,包括机器人的位置和方向、球的位置和方向等.网络传输模块负责服务器与客户端的正确连接以及数据的正确传输.

仿真服务器的工作过程为:接收到策略客户端发送来的小车机器人运动控制指令,根据动力学和运动学模型计算出小车机器人在一个时间周期后的速度、位置等,并将其结果发送至自动裁判模块裁定是否犯规,同时将结果发送给客户端和显示模块.

2.4 客户端设计

策略客户端的主要工作是策略DLL文件的装载和向服务器发送连接请求.策略客户端的工作过程为:接收到服务器发送来小车机器人的速度和位置信息,根据这些信息进行策略计算,产生对小车机器人左右轮的控制命令,然后将控制信息发送给服务器.

将计算策略封装成DLL文件的好处是:每支参赛队伍只需按照规定的数据结构编写自己的策略DLL文件,而无需关心客户端与服务器端是如何进行通信的;网络系统开发者不需要知道策略计算是如何实现的,使整个系统具有良好的封装性.

显示客户端主要通过网络接受服务器端传送过来的数据完成比赛中三维场景、时间、比分、球队信息以及判罚球信息的显示,同时显示客户端还能保存比赛录像,并可以慢放、回放录像.

3 仿真比赛平台网络系统的实现与测试

3.1 程序实现

在系统编程阶段,服务器端和客户端都需要调用网络和多线程中的相关API函数,所以在程序实现的时候,将相关的函数分别封装到网络传输模块和多线程编程模块. 3.1.1 网络传输模块各个类的实现 网络传输模块主要包括网络数据的解析、底层socket API的封装、网络服务端口的管理和实现.各个类之间的相互关系用UML的类图表示如图3所示.

图3 仿真平台网络系统结构图Fig.3 The UML class diagram of network

system for simalation platform

Ctransportsocket类:封装了一些最基本的socket API函数,包括套接字库的打开、绑定函数(bind)、关闭套接字、获取主机名和IP地址.

Ctcp类:封装了基于TCP协议的socket API函数,包括创建套接字、listen、accept、send/recv、客户端connect等函数.

Cudp类:封装了基于UDP协议的socket API函数,包括创建套接字、sendto、recvfrom等函数.

Csocket类:封装了以上两个socket的API函数以及线程函数,包含Ctcp、Cudp两个类.

Clistensocket和Mysocket类:封装了管理工作者线程等函数.

WaitServe、MatchServe和DisplayServe类管理等待、比赛、显示等服务.

CS_Interface和OGRE_Interface类定义了服务器与策略客户端和显示客户端的通信接口.

3.1.2 多线程编程实现 多线程编程的基本思想是:在一个工作线程中处理数据的接收和发送,在一个连接线程中处理客户端和服务器的连接,工作线程和连接线程都可以运行在后台,这样数据和套接字在工作线程中的阻塞不会影响主线程中的其他活动[7].在进行多线程编程时要注意多线程同步的问题,以便允许线程协调它们的执行次序和访问共享资源的次序.本系统使用临界区对象(CRITICAL_SECTION)对访问“共享资源”的代码中的关键段实施“串行访问”控制,还使用了Win32平台提供的WaitForSingleObject()等函数来实现线程同步机制. 由于仿真比赛中网络通信具有多路性,本系统采用多路复用的I/O模型,其实现方法是:使用select()函数,确定I/O操作可以在哪些socket句柄上同步调用不会阻塞那些发起这些调用的应用程序线程.当发起数据接收线程时,将socket句柄设置为读活动状态,而当发起数据发送线程时,将socket句柄设置为写活动状态.在程序实现过程中,定义HandleRecvThread()和HandleSendThread()两个函数分别处理数据接收线程和发送线程.

3.2 测试效果

本系统已经测试通过,网络环境如下:服务器端与客户端之间的最大传输速率为10 MB/s;服务器端配置:CPU 酷睿2双核1.6 GHz,内存1 GB;比赛双方客户端配置:CPU Pentium(R)4,2.50 GHz,内存512 MB;显示客户端配置:CPU

Pentium(R)4,2.50 GHz,内存512 MB,集成显卡.本系统网络通信效果良好,运行结果如图4、5、6所示.

图4 显示连接信息的服务器端界面截图Fig.4 The screen-capture of

connection information in the server interface

图5 策略客户端界面截图Fig.5 The screen-capture of the strategy client

interface

图6 显示客户端界面截图Fig.6 The screen-capture of the display client

interface

4 结 语

通过分析机器人足球仿真比赛平台对网络通信的特殊要求,提出了新的基于服务器端、策略客户端、显示客户端三方通信的解决方案.新的解决方案在数据实时性方面有较大的提高,通过测试,旧平台中存在的丢帧现象在新平台中很少发生(通过在客户端打印出所接收的服务器端传送过来的计算结果得出).同时,基于新方案的仿真平台具有较高的可操作性和观赏性. 目前新的仿真比赛平台已经开始在一些比赛中进行测试,随着机器人足球这项活动的不断发展,新的仿真平台网络系统还需要进一步做出改进,例如利用ACE框架[8]的平台无关性使网络系统可以运行在多种操作系统上,利用ACE wrapper

façade模式简化代码复杂性.

参考文献:

[1]洪炳镕,韩学东,孟伟.机器人足球比赛研究[J] .机器人,2003,25(4):373-377.

[2]王为.基于LM629对足球机器人运动控制的设计[J] .武汉工程大学学报,2008,30

(1):104-107.

[3]孔伟, 张彦铎.基于遗传算法的自主机器人避障方法研究[J] .武汉工程大学学报,2008,30 (3):110-113.

[4]杨帆,刘畅.基于D-S证据理论的多传感器目标识别应用[J].武汉工程大学学报,2009,31(1):73-75.

[5]李建伟, 洪炳镕, 郝宗波等.机器人足球仿真比赛平台的改进[J].哈尔滨工业大学学报, 2003,35 (9):1074-1076.

[6]Anthony J, Jim S网络编程[M].杨合庆,译.2版.北京:清华大学出版社,2002.

[7]王广伟,李维钊.用多线程技术实现Winsock编程[J].微型电脑应用,2000,16(5):35-39.

[8]Douglas C S.C + + Network Programming, Volume 1: Mastering

Complexity Using ACE and Patterns [M].於春景,译.北京:电子工业出版社,2007:71-85.

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689408415a243284.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信