一种水中仿生机器人仿真系统的设计与实现
李佑兵1,蔡琼2,陈鹏慧2,朱运航2,谢广明1
(1. 北京大学 工学院,北京,100871;2. 湖南信息职业技术学院,湖南 长沙,410200)
摘要:针对一类基于全局视觉和基于自主视觉的水中仿生机器人即机器鱼(以下分别简称全局机器鱼和自主机器鱼)及其水球比赛的实际需要,研究水中仿生机器人仿真系统。提出一种基于MRDS(Microsoft Robotics Developer Studio)的分布式与集中式相结合的仿真系统设计方案,对系统软件架构和硬件配置进行探讨。在此方案设计的基础上,进行PKURSim(PKU Underwater Robot Simulation)水中仿生机器人仿真系统的开发工作。
关键词:水中仿生机器人;机器鱼;水球比赛;仿真;MRDS
中图分类号:TP391.9 文献标志码:A 文章编号:1672-7207(2011)S1-0551-04
Design and implementation of the simulation system for underwater bionic robots
LI You-bing1, CAI Qiong2, CHEN Peng-hui2, ZHU Yun-hang2, XIE Guang-ming1
(1. College of Engineering, Peking University, Beijing 100871, China;
2. Hunan College of Information, Changsha 410200, China)
Abstract: Research on simulation system for underwater bionic robot was carried out to satisfy the actual needs of the water polo game of a kind of completed underwater bionic robot (also known as robot fish) based on global vision and autonomous vision. An associative solution of distributed and centralized methods was given based on MRDS (Microsoft Robotics Developer Studio), the software construction and hardware configuration were discussed. Based on this solution, a simulation system known as PKURSim (PKU Underwater Robot Simulation) was under developed.
Key words: underwater bionic robot; robot fish; water polo game; simulation; MRDS
机器人相关研究涉及领域广、研究成本高且试验难度大,因此,先在仿真环境下进行试验,确认研究成果与研究目标比较接近时,再进行实体机器人验证的方法具有明显优势和广泛吸引力。国内外许多研究机器人的机构在研究过程中构建了相应的仿真实验环境。陆地机器人仿真领域已经发展出RoboCup机器 人足球赛仿真系统即RoboCup Soccer Simulator 3D (rcssserver3d)这类高水平成果,极大地促进了机器人足球赛这一机器人领域标准问题的解决进程。在水下机器人领域,美国AUSI(Autonomous Undersea Systems Institute)为其Solar-powered AUV研制的CADCON (Cooperative AUV Development Concept)[1]、美国夏威夷大学马诺分校ASL(Autonomous Systems Laboratory)的DVECS(Distributed Virtual Environment Collaborati- ve Simulator)[2]、日本东京大学URAL(Underwater Robotics & Application Laboratory)为其Twin-Burger AUV开发的MVS(Multi-Vehicle Simulator)[3]、美国NPS(Naval Postgraduate School)的NPSAIS(NPS AUV Integrated Simulator)[4]和中国科学院沈阳自动化所为其AUV研究而开发的多水下机器人实时仿真系统[5-6]等在其相应的AUV研究进程中发挥着重要作用。
北京大学智能控制实验室设计出一类3关节、无线控制的微小型仿生机器鱼[7-8](如图1所示),并开发了一套基于全局视觉的多机器鱼协作系统[9](如图2 所示)。CCD摄像头采集机器鱼外部状态信息和环境 信息图像,通过图像采集卡输入集控主机,主机上的协作系统软件处理图像,结合无线通信模块反馈回来的机器鱼内部控制信息作为控制和决策系统的输入,最后输出机器鱼的控制命令[9],通过无线通信模块 发送给机器鱼,机器鱼内嵌的微控系统解析控制命 令,驱动机器鱼按照指定的方式运动,实现各种协作任务。
图1 微小型仿生机器鱼[9]
Fig.1 Tiny bionic robot fish
图2 多仿生机器鱼协作系统硬件结构[9]
Fig.2 Hardware architecture of multiple bionic robot fish cooperation system
基于此协作系统,设计机器鱼水球比赛多水中机器人协作标准问题。无论是调试比赛用协作策略,还是进行科研数据采集,使用实体机器鱼在真实的水池中工作,其时间开销和实施难度都比较大。据此,本文作者考虑设计一种水中仿生机器人仿真系统,用于模拟水中环境和机器鱼在水中的行为,以辅助广泛的水中多机器人协作研究。
1 软件架构
1.1 基础平台
PKURSim是基于MRDS(Microsoft Robotics Dev- eloper Studio)而构建的。MRDS是微软公司为整合机器人软件开发迈出的第1步,是其机器人部门的第1个产品。MRDS的两大核心技术即并发和协调运行时(Concurrency and Coordination Runtime,CCR)技术和分布式软件服务(Decentralized Software Services,DSS)技术,分别解决了机器人软件领域最为关键的并发和分布式问题[10]。MRDS除提供1个通用的机器人软件开发环境,还包括1个模拟工具VSE(Visual Simulation Environment)。VSE本质上是1个通用的3D仿真器(Simulator),基于此仿真器和MRDS提供的基础,可以构建各种具体的机器人仿真(Simulation)实例,辅助机器人软件开发。
1.2 总体结构
PKURSim采用Client/Server结构,集中式与分布式相结合的仿真模式。服务端程序PKURSimServer模拟环境,提供系统管理辅助功能。客户端程序PKURSimClient模拟机器鱼,提供两种运行模式:分别模拟全局机器鱼和自主机器鱼,实现集中式和分布式仿真。
仿真全局机器鱼时,每个客户端进程模拟单个或多个机器鱼。通过UDP/IP协议与现有多机器鱼协作系统通信,接受其根据加载的策略组件及环境信息作出决策后生成的控制命令。控制虚拟机器鱼在服务端程序模拟出来的虚拟环境中按照策略指定方式游动。反馈当前虚拟环境中各个虚拟机器鱼内部控制信息给协作系统,此为集中式仿真。在此模式下,客户端进程还与服务端进程通过UDP/IP协议通信,每个仿真周期从虚拟环境中的全局虚拟摄像头获取全局实时环境信息,转发给协作系统的图像处理模块,处理完后供协作系统决策时使用。
仿真自主机器鱼时,每个客户端进程模拟单个机器鱼,实现机器鱼内嵌程序的功能。根据加载的策略组件及环境信息作出决策后生成控制命令,控制当前虚拟机器鱼在服务端程序模拟出来的虚拟环境中按照策略指定的方式游动。客户端程序可以运行多个进程,进程数量受限于网络带宽和服务器及客户端计算机处理能力,这些进程可以分布在1台或多台计算机上,与服务端进程的通信使用UDP/IP协议,此为分布式仿真。在此模式下,服务端进程为每个连接上的客户端进程生成1个局部虚拟摄像头实例,用于相应客户端进程即虚拟机器鱼实时获取局部环境信息,客户端进程获取到环境信息图像后,经过图像处理模块的处理,供决策时使用。
图3 PKURSim软件总体结构
Fig.3 Main architecture of PKURSim software
1.3 模型构建
根据MRDS VSE的设计思想[11],在VSE中,所有被仿真的对象包括各种环境对象和业务对象(本研究语境中为机器鱼)均被定义为实体(Entity)。VSE内置了诸多构建仿真环境所需的通用实体如天空实体(SkyEntity)、大地实体(HeightFieldEntity)、光线实体LightEntity、单形状实体(SingleShapeEntity)、多形状实体(MultiShapeEntity)等和具体的机器人及传感器实体。实体间可以定义父子关系,如1个机器人实体包含4个马达时,可以使4个马达实体作为机器人实体的子实体。所有实体间的交互接口均被定义为服务(Service),实体行为的控制也通过服务进行。MRDS的SDK提供了SimulationEngine、Dashboard和Simu- latedWebCam等基础服务。
PKURSim涉及环境和机器鱼两大实体模型。环境模型包括天空、大地、地形、光线、阴影、摄像头等内置实体和水池、水、障碍物等自定义实体。机器鱼模型从整体上只包括1个机器鱼实体,但它包含4个马达(舵机)实体、3个关节实体、1个电源实体、1个尾鳍实体、2个胸鳍实体、1个鱼头实体等作为子实 体,这些实体多数是自定义实体或需要从内置实体扩展的实体。
PKURSim涉及水动力学模型这个主要的服务模型。客户端程序模拟的虚拟机器鱼在服务端程序模拟的虚拟环境中的运动行为须遵循鱼类游动的水动力学规律。水动力学规律在软件上使用服务来实现,为模拟水环境不确定性的各种随机扰动,也封装在水动力学模型服务中。
1.4 详细结构
PKURSim软件详细结构如图4所示。服务端程序包括仿真进程控制、MRDS仿真引擎、环境模型、配置管理和辅助功能(如视频录像、数据记录)等模块。客户端程序包括机器鱼模型、配置管理、辅助功能、在机器鱼模型上扩展出来的全局机器鱼模型及相应控制服务、在机器鱼模型上扩展出来的自主机器鱼模型及相应控制服务、为全局机器鱼和自主机器鱼控制服务所用的水动力学模型服务、只和全局机器鱼控制服务交互的原协作系统以及由自主机器鱼控制模块加载的策略库等模块。
图4 PKURSim软件详细结构
Fig.4 Detail structure of PKURSim software
环境模型和机器鱼模型均可以根据不同使命的需要扩展出不同的环境模型和机器鱼模型,分别由服务端和客户端的配置管理模块进行配置,以实现使命选择。典型地,1个机器鱼水球比赛项目作为1个使命,有它特定的环境设置和机器鱼参数设置。比赛项目特定的环境可以从环境模型扩展,封装成独立组件(dll文件),由服务端配置管理模块选择供MRDS仿真引擎调用。比赛裁判规则同样实现成独立组件,由服务端配置管理模块选择供仿真进程控制模块调用,实质上是仿真进程控制模块的扩展。比赛项目特定的机器鱼可以从机器鱼模型扩展,封装成独立组件,由客户端配置管理模块选择供全局或自主机器鱼控制模块调用。需要说明的是:本文作者原创性地提出了1种具有3层结构,含2次UDP/IP通信过程的半实物仿真模式。考虑现有的协作系统,让其既可连接实体全局机器鱼平台,控制实体机器鱼比赛或试验,也可连接仿真平台,控制虚拟全局机器鱼在仿真环境中比赛或试验。客户端选择仿真全局机器鱼模式。全局机器鱼控制模块通过UDP/IP通信从服务端环境模型的全局摄像头获取仿真环境全局信息,再通过UDP/IP转发给现有协作系统的图像处理模块,同时将仿真环境中各虚拟全局机器鱼的内部控制信息也通过UDP/IP通信转发给现有协作系统的协作控制模块。协作控制模块结合图像处理结果、机器鱼内部控制信息反馈和控制策略计算出理想状态下机器鱼下一仿真周期目标状态,形成控制命令,通过UDP/IP通信发送给客户端的全局机器鱼控制模块。控制模块根据控制命令结合水动力学模型修正各机器鱼下一仿真周期的目标状态,通过UDP/IP通信发送给服务端仿真进程控制模块。仿真进程控制模块根据各机器鱼的目标状态更新屏幕显示。
2 硬件配置
PKURSim包括服务端和客户端程序,二者均要求计算机的硬件配置支持Windows XP SP2及以上的Windows操作系统,配备以太网网卡。服务端计算机负责显示,要求显卡支持DirectX 9及以上,Pixel Shader 3.0及以上。
服务端计算机软件环境需安装Microsoft .NET Framework 3.5 SP1及以上、Microsoft DirectX 9及以上、NVIDIA PhysX SystemSoftware 7.11.13及以上或NVIDIA PhysX硬件加速卡及相应驱动程序。
使用Microsoft Visual Studio 2008 Team System with SP1和C#语言,进行PKURSim的开发。
3 结论
基于全局视觉和自主视觉的水中仿生机器人研制过程中,仿真系统有着不可替代的优势,尤其是对于水中多机器人协作的研究,仿真系统更是不可或缺。
参考文献:
[1] Komerska R J, Chappell S G. A simulation environment for testing and evaluating multiple cooperating solar-powered AUVs[C]// Proceedings of the MTS/IEEE Oceans 2006 Conference. Boston, 2006: 1-6.
[2] Choi S K, Yuh J. A virtual collaborative world simulator for underwater robots using multi-dimensional, synthetic environment[C]// Proceedings of the 2001 IEEE International Conference on Robotics & Automation. Seoul, 2001: 926-931.
[3] Kuroda Y, Aramaki K, Fujii T, et al. A hybrid environment for the development of underwater mechatronic systems[C]// Proceedings of the 1995 IEEE 21st International Conference on Industrial Electronics, Control and Instrumentation. Orlando, 1995: 173-178.
[4] Brutzman D P, Kanayama Y, Zyda M J. Integrated simulation for rapid development of autonomous underwater vehicles[C]// Proceedings of the IEEE Oceanic Engineering Society AUV92 Conference, Washington D C: 1992: 3-10.
[5] 张禹, 刘开周, 邢志伟, 等. 自治水下机器人实时仿真系统开发研究[J]. 计算机仿真, 2004, 21(4): 155-158.
ZHANG Yu, LIU Kai-zhou, XING Zhi-wei, et al. Research on real-time simulation system of autonomous underwater vehicle [J]. Computer Simulation, 2004, 21(4): 155-158.
[6] 徐红丽, 许真珍, 封锡盛. 基于局域网的多水下机器人仿真系统设计与实现[J]. 机器人, 2005, 27(5): 423-425, 440.
XU Hong-li, XU Zhen-zhen, FENG Xi-sheng. Design and implementation of a multiple underwater vehicle simulation system based on LAN[J]. Robot, 2005, 27(5): 423-425, 440.
[7] Yu J, Wang L, Tan M. A framework for biomimetic robot fish’s design and its realization[C]// Proceedings of American Control Conference. Minnesota, 2005: 1593-1598.
[8] Yu J, Wang L. Parameter optimization of simpli?ed propulsive model for biomimetic robot fish[C]// Proceedings of IEEE International Conference on Robotics and Automation. Barcelona, 2005: 3317-3322.
[9] 邵金燕. 多机器人协作控制研究[D]. 北京: 北京大学工学院, 2007: 6, 13.
SHAO Jin-yan. Cooperative motion control of multiple mobile robots[D]. Beijing: Peking University. School of Engineering, 2007: 6, 13.
[10] Cherry S. Robots incorporated[J]. IEEE Spectrum, 2007, 44(8): 24-29.
[11] Kyle J, Trevor T. Professional Microsoft Robotics Developer Studio[M]. Indianapolis: Wiley Publishing Inc, 2008: 29-30.
(编辑 何运斌)
收稿日期:2011-04-15;修回日期:2011-06-15
基金项目:国家自然科学基金资助项目(60736022,60774089,10972003)
通信作者:李佑兵(1981-),男,湖南邵阳人,从事机器人控制、软件仿真研究;电话:13699218748;E-mail: liyoubing@pku.edu.cn