APP下载

基于MSRS的仿生机器鱼水球比赛实时仿真系统

2014-03-22陈鹏慧朱运航

河南科技 2014年6期
关键词:水球服务器端客户端

蔡 琼 陈鹏慧 朱运航

(湖南信息职业技术学院 信息工程系,湖南 长沙 410200)

0 引言

21世纪是人类开发海洋的世纪,随着陆地资源的日益枯竭,人们把目光投向了海洋,使得适应各种环境的水下机器人的相关研究得到迅猛发展[1]。

2001年中科院自动化所复杂系统与智能科学重点实验室和北京航空大学机器人研究所联合开展 “多微小型仿生机器鱼群体协作与控制的研究”;北京大学在仿生机器鱼领域做了多年的研究,成功研制出机器海龟、两栖机器人、机器海豚等,2007年中国机器人大赛成功创立了水中仿生机器鱼水球比赛项目[2][3]。

研究发现,要测试水中机器人技术和进行水中机器人竞赛实验,面临机器人构件加工制作、机器人运动控制、传感器信息整合、多机器人协作工作以及水下环境不确定性等复杂问题,这会费大量时间和精力进行水中机器人技术的调试及数据处理[4]。因此,开发水中机器人技术仿真系统是降低水中机器人相关领域研究成本、加快中国机器人技术发展的一个重要途径,水中机器人比赛仿真系统也将成为测试水中机器人技术的理想平台。

本文设计并实现了一种基于Microsoft Robotics Studio(MSRS)[5]的水中仿生机器鱼水球比赛实时仿真系统,该系统能测试水中仿生机器鱼关节位姿的变化情况和控制指令、水中仿生机器鱼之间碰撞处理情况、水波扰动和障碍物对水中仿生机器鱼运动位姿的影响,可以对真实环境中的各种运动状态进行仿真分析等。该仿真系统的算法及各种实验结果可以便利的移植到实体水中仿生机器鱼的设计研发中,从而加快实体水中机器鱼的设计和算法研究工作。

1 MSRS简介

Microsoft Robotics Studio是支持多种机器人硬件平台的机器人开发环境。MSRS运行时同时支持.NET框架和精简.NET框架,运行时由并发和协调运行时CCR (Concurrency and Coordination Runtime)和分布式系统服务 DSS(Decentralized System Services)两个主要组件构成,方便用户编译、监视、发布,并根据需要构建应用程序[5]。

2 MSRS仿生机器鱼水球比赛实时仿真系统

本仿真系统设计目的在于针对目前水中仿生机器鱼和机器鱼水球比赛及研发中遇到的一系列困难,提供一种水中仿生机器鱼水球比赛实时仿真系统,使其能够较真实地模拟水中仿生机器鱼运动状态变化情况、各个关节的位姿变化、机器鱼水球比赛进程,更好地测试水中仿生机器鱼各种运动学理论、碰撞理论、水波扰动理论、运动策略算法等有关水中仿生机器鱼运动的体系结构,以便更好地对水中仿生机器鱼设计体系和策略控制算法进行改进。

2.1 系统设计模式

本文所设计仿生机器鱼水球比赛实时仿真系统基于Microsoft Robotics Studio SDK1.5开发,采用服务器/客户端设计模式,服务器端和客户端通过TCP/IP协议进行连接和信息交互。本系统设计模式如图1所示。

图1 系统设计模式

2.2 比赛项目

本文所设计仿真系统完全模拟实体仿生机器鱼水球比赛,设置了机器鱼1vs1、2vs2、3vs3、技术挑战赛等4个比赛项目,其中技术挑战赛包括单鱼顶球、自由表演、双鱼对游3项。同时,本仿真系统提供了接口扩展功能,可以方便地扩展到其他水球比赛项目。

2.3 整体设计框架

整体设计框架包括客户端策略模块、服务器端公共接口模块、核心控制模块、环境设置模块、辅助功能模块、数据显示模块、运动学建模模块[6]。上述七个模块组建了一个仿生机器鱼水球比赛计算机实时仿真系统,控制水球仿真平台策略调用、比赛进程、数据显示等整个比赛过程。系统整体设计框架如图2、图3所示。

图2 整体设计框架(服务器端)

图3 整体设计框架(客户端)

客户端模块功能包括比赛场地信息获取、比赛场地重构、服务器端进行信息、交互输出策略制定等。客户端获取比赛环境信息,包括比赛类型、比赛阶段、所在半场、机器鱼位姿信息、场地信息,重建仿真比赛场景,并根据目标制定机器鱼运动策略,然后发送给服务器端。

2.4 系统实现实施例

本实施例中,每次比赛运行一个服务器端程序和两个客户端程序,客户端和服务器端以TCP/IP通信协议进行连接和信息交互。仿真比赛过程如下:

(1)运行服务器端程序,服务器端核心控制模块选择比赛类型和比赛时间,并不断监听局域网内本地或其他终端TCP/IP连接请求。

(2)在同一台服务器端或其他终端运行客户端程序,输入需要连接的服务器IP地址和端口号,向服务器发送连接请求信号,并确认是否准备完毕。

(3)服务器端接收客户端连接请求,判断客户端请求是否有效。如果有效,记录客户端地址,获取客户端队伍名字等信息;如果无效,则连接失败,向客户端发送连接失败信息。

(4)服务器与客户端连接成功后,服务器端将确认客户端参赛队伍是否已准备好比赛。一场比赛中,所有参赛队伍都准备好并确认以后,才能开始比赛。界面如图4所示。

(5)步骤3和步骤4进行过程中,可以通过环境设置模块进行比赛场景信息设置,包括:1)设置比赛场地大小、球门大小;2)设置机器鱼色标,包括前方和后方色标;3)设置机器鱼位姿,包括X、Y坐标和方向;4)设置障碍物和通道信息,包括位置、形状、长度、宽度、方向;5)可以通过鼠标点击拖动来设置机器鱼位置。

图4 比赛控制模块

图5 环境信息设置模块界面

(6)点击“开始”按钮进行比赛。服务器端每隔一段时间向客户端发送策略请求消息,客户端收到请求后,调用公共接口模块及环境设置模块,根据当前比赛环境信息,计算机器鱼运动策略,然后将指令发送给服务器。

(7)服务器收到客户端策略指令后,根据机器鱼运动学建模模块,计算下一时刻机器鱼位姿信息。

(8)得到机器鱼下一时刻位姿信息后,进入服务器核心控制模块,进行碰撞处理、扰动处理、裁判模块,控制比赛进程。水球仿真比赛界面如图6所示。

(9)步骤1~8所述操作及信息可以通过仿真数据显示模块进行显示及交互,大大方便了研究人员实时查看数据并进行水球比赛调试。机器鱼位姿、策略命令等信息显示节目如图7所示。

图6 比赛场地界面

图7 机器鱼信息显示界面

(10)本实时仿真系统同时提供辅助功能,包括仿真比赛回放[7]、实时截图、比赛录像、机器鱼仿真运动测试、机器鱼仿真运动轨迹绘制等功能,为仿真比赛系统系统优化分析、实时监测、策略优化改进提供支持。

在本实施例中,两个客户端终端分别运行客户端程序,并与服务器端进行连接和信息交互,服务器端处理根据客户端连接信息及策略,对机器鱼运动状态和整个水球比赛进程进行实时仿真,整个比赛通过数据显示模块实时显示。

本仿真系统已将相关库函数打包,并制作成为安装程序和卸载程序,使用非常方便。

3 结论与展望

与现有陆上机器人比赛仿真比赛相比,本实时仿真系统首次研究了基于水中仿生机器鱼水球比赛的实时仿真系统,在使用中替代了水中实体仿生机器鱼实现了仿生机器人水球比赛。通过对机器鱼水球比赛的实时仿真,有效地验证了水下仿生机器鱼运动模型的正确性,验证了机器鱼每个时刻各个关节输出频率、摆幅、偏滞角对机器鱼位姿变化的影响,验证了水波环境、障碍物碰撞对机器鱼运动状态的影响,降低了水下仿生机器鱼的测试成本,同时缩短了水中机器人水球比赛策略的研发周期。

在中国水中机器人大赛仿真组的比赛中发现了以下问题,需要在以后的研究中改进:(1)物理模型需要进一步的优化;(2)对抗赛时初始化时双方机器鱼对球的距离应保持一致;(3)关于死球的判定,应进一步优化;(4)应加入3D仿真界面。

[1] 蒋新松.未来机器人技术发展方向的探讨[M].迈向新世纪的中国机器人——国家863计划智能机器人主题回顾与展望.沈阳: 辽宁科学技术出版社,2001,199-206.

[2] 张乐.多模态机器鱼的设计与控制[D].北京大学智能控制实验室论文,2008,6.

[3] 喻俊志.多仿生机器鱼控制与协调研究[D].中国科学院自动化研究所博士论文,2003,12.

[4] 郭叶军,熊蓉,吴铁军.RoboCup机器人足球仿真比赛开发设计[J].计算机工程与应用,2003,29(2):146-148.

[5] Tandy Trower.欢迎来到 Microsoft Robotics Studio.微软机器人工程团队网站.

[6] Chen Wang,Guangming Xie,Hongdong Wei,Long Wang.A Novel CPG Model for Locomotion Control of a Fish-like Robot.

[7] 佟国峰,何洪生,邵振洲.基于 Microsoft Robotics Studio的新型足球机器人3D仿真平台[J].济南大学学报,2007,10(21):1-4.

猜你喜欢

水球服务器端客户端
好玩儿的太空水球实验
“水球”实验再次亮相“天宫课堂”
Linux环境下基于Socket的数据传输软件设计
《浮浮沉沉的水球》
如何看待传统媒体新闻客户端的“断舍离”?
联接中外 沟通世界水球大战
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计