CN112906245B - 一种多机器人仿真方法、系统、仿真服务器和终端 - Google Patents

一种多机器人仿真方法、系统、仿真服务器和终端 Download PDF

Info

Publication number
CN112906245B
CN112906245B CN202110298248.0A CN202110298248A CN112906245B CN 112906245 B CN112906245 B CN 112906245B CN 202110298248 A CN202110298248 A CN 202110298248A CN 112906245 B CN112906245 B CN 112906245B
Authority
CN
China
Prior art keywords
data
robot
robot program
simulation
processing module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110298248.0A
Other languages
English (en)
Other versions
CN112906245A (zh
Inventor
霍峰
张凡
秦宝星
程昊天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Gaussian Automation Technology Development Co Ltd
Original Assignee
Shanghai Gaussian Automation Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Gaussian Automation Technology Development Co Ltd filed Critical Shanghai Gaussian Automation Technology Development Co Ltd
Priority to CN202110298248.0A priority Critical patent/CN112906245B/zh
Publication of CN112906245A publication Critical patent/CN112906245A/zh
Application granted granted Critical
Publication of CN112906245B publication Critical patent/CN112906245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/02Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种多机器人仿真方法和系统,包括:多个机器人程序终端在同一仿真平台中运行,可以将需要测试的任务安排给各个机器人程序终端,多个机器人程序终端可以同时进行测试,因此可以提高测试效率,节约使用的资源。同时,本发明还可以进行数据异常处理,确保了测试的可靠性。本发明应用于自主导航的机器人上,使机器人实际部署前减少软件的未知性,提高软件的适应性,让机器人的部署更加高效,快捷,并降低成本。

Description

一种多机器人仿真方法、系统、仿真服务器和终端
技术领域
本发明涉及机器人领域,尤其涉及一种多机器人仿真方法和系统。
背景技术
目前,移动机器人广泛应用在各行各业中,例如清洁机器人,医疗机器人,安防机器人等。机器人部署在不同场景中的可行性、稳定性、软件适应性等情况往往是不可预知的。为了使得机器人的工作状况达到一个可预知范围,需要对机器人进行仿真测试。这包括对部署的环境进行建模,搭建机器人传感器模型,并部署机器人固件等,从而通过仿真提供的复杂拟真场景,测试机器人固件逻辑对于不同场景的运行效果。但是,目前机器人仿真测试的效率和可靠性还有待提升。
发明内容
基于此,有必要针对上述技术问题,提供一种多机器人仿真方法和系统。
根据本公开的一方面,提供一种多机器人仿真方法,其特征在于,所述方法包括:
仿真服务器发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器。
可选的,所述方法还包括:
实时监听所述仿真服务器与所述多个机器人程序终端之间的数据,如果发生数据异常,则重新启动发生异常的仿真服务器或所述机器人程序终端。
根据本公开的另一方面,提供一种仿真服务器,其特征在于,所述仿真服务器发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述仿真服务器接收所述多个机器人程序终端发送的控制数据,所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并生成所述控制数据。
根据本公开的另一方面,提供一种机器人程序终端,其特征在于,
所述机器人程序终端接收仿真服务器发布的其仿真平台中的传感器和场景数据,所述机器人程序终端与其他多个机器人程序终端同时运行于所述仿真平台中,所述多个机器人程序终端分别用于接收仿真服务器发布的多个测试任务;
所述多个机器人程序终端分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器。
根据本公开的另一方面,提供一种多机器人仿真系统,其特征在于,所述系统包括仿真服务器和多个机器人程序终端;
其中所述仿真服务器用于发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器。
根据本公开的另一方面,提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理装置执行时实现上述任意一项所述的多机器人仿真方法。
本公开的多机器人仿真方法和系统,多个机器人程序终端在同一仿真平台中运行,可以将需要测试的任务安排给多个机器人程序终端,多个机器人程序终端可以同时进行测试,因此可以提高测试效率,节约使用的资源。同时,本实施还可以进行数据异常处理,确保了测试的可靠性。本实施例应用于自主导航的机器人上,使机器人实际部署前减少软件的未知性,提高软件的适应性,让机器人的部署更加高效,快捷,并降低成本。
附图说明
图1是本发明提供的一种多机器人仿真系统100的示意图;
图2是本发明提供的一种多机器人仿真方法200的流程图;
图3是本发明提供的实施步骤S210的流程图;
图4是本发明提供的实施步骤S220的流程图;
图5是本发明提供的一种仿真系统500的示意图;
图6是本发明提供的一种仿真系统的信息交互示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
图1示出本公开一实施例的多机器人仿真系统100的示意图。如图所示,所述机器人仿真系统100包括仿真服务器1,多个机器人程序终端2和多个手机终端3。
所述仿真服务器1用于提供仿真模拟场景、模拟传感器数据以及模拟机器人运动,具体可以包括机器人操作系统(ROS)101、仿真平台102、仿真服务器数据处理(SDP)模块103和服务器数据监控服务(DMS)模块104。所述机器人操作系统101是专为机器人软件开发而设计的系统架构,提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理等功能,也提供一些机器人开发的工具和程序库。仿真平台102是构建机器人仿真环境的工具,用于提供了机器人模型、传感器模型、场景等数据。常见的仿真平台包括Gazebo仿真平台、V—Rep仿真平台、Webots仿真平台等。仿真服务器数据处理模块103用于发布仿真平台中的传感器数据、场景数据以及接收机器人控制数据。服务器数据监控服务模块104用于监控服务器传输的数据及进行数据异常处理。
所述机器人程序终端2用于承载机器人软件,实现机器人的自主定位导航和作业等控制,例如,可以进行接收仿真模拟数据,进行数据处理、规划路径,并发布机器人运动数据等操作。所述机器人程序终端2具体可以包括机器人固件201、机器人程序终端数据处理(TDP)模块202和机器人数据监控服务(DMS)模块203。其中机器人固件201为机器人底层软件,用于完成在仿真环境中的测试。所述机器人程序终端数据处理模块202用于接收处理所述仿真平台102中的传感器数据、场景数据,并与发布机器人控制数据。所述机器人数据监控服务模块203用于监控机器人传输的数据及进行数据异常处理。
所述手机终端3与机器人固件相连接,用于人为安排导航等相关任务,可以采用手机终端应用程序APP实现。
图2示出根据本公开一实施例的多机器人仿真方法200的流程图,如图2所示,本公开提供的多机器人仿真方法200可以包括以下步骤:
步骤S210,仿真服务器1发布其仿真平台102中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端2;
示例性的,仿真服务器1首先可以启动机器人操作系统101,并开启仿真服务器数据处理模块103,用于获取仿真平台102中的传感器和场景数据,并将上述数据发送给多个机器人程序终端2,从而将测试任务分配给不同的机器人程序终端2。
步骤S220,所述多个机器人程序终端2同时运行于所述仿真平台102中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器1;
示例性的,多个机器人程序终端2可以同时运行于同一仿真平台102中,并开启机器人程序终端数据处理模块202,用于接收仿真服务器1发布的仿真平台102中的传感器和场景数据,并将其转化为机器人操作系统101的通信数据,提供给机器人固件201,机器人固件201对数据进行处理,完成路径规划等操作,并将控制数据发送给所述仿真服务器1,从而完成仿真环境下的测试。
步骤S230,实时监听所述仿真服务器1与所述多个机器人程序终端2之间的数据,如果发生数据异常,则重新启动发生异常的仿真服务器1或所述机器人程序终端2。
示例性的,在仿真服务器1启动仿真服务器数据处理模块103之后,再启动服务器数据监控服务模块104;以及在机器人程序终端2开启机器人程序终端数据处理模块202之后,再启动机器人数据监控服务模块203。所述服务器数据监控服务模块104和所述机器人数据监控服务模块203可以实时监听所述仿真服务器数据处理模块103与所述机器人程序终端数据处理模块202之间通信的数据。当数据发生异常时,例如,频率过低、数据中断、通信异常等,可以重启所述仿真服务器数据处理模块103或所述机器人程序终端数据处理模块202对应的仿真服务器1或机器人程序终端2,直至监听的数据达到正常状态。
本实施中,多个机器人程序终端2在同一仿真平台中运行,可以将需要测试的任务安排给各个机器人程序终端2,多个机器人程序终端2可以同时进行测试,因此可以提高测试效率,节约使用的资源。同时,本实施还可以进行数据异常处理,确保了测试的可靠性。本实施例应用于自主导航的机器人上,使机器人实际部署前减少软件的未知性,提高软件的适应性,让机器人的部署更加高效,快捷,并降低成本。
图3示出根据本公开一实施例的实施步骤S210的流程图,如图3所示,步骤S210又可以包括以下步骤:
步骤S310,所述仿真服务器1启动所述仿真平台102,并开启所述仿真服务器数据处理模块103,获取传感器和场景数据;
步骤S320,所述仿真服务器数据处理模块103在不同的机器人程序终端2的数据前添加与所述机器人程序终端2对应的前缀,并将所述传感器和场景数据以广播的形式发布出去。
示例性的,所述仿真平台102为Gazebo仿真平台,可以通过仿真平台启动文件(launch文件)中命名空间的定义,将各机器人程序终端2的名称传递给仿真服务器数据处理模块103,所述仿真服务器数据处理模块103将各机器人程序终端2的名称以前缀的形式添加在数据名称前,此后,所述仿真服务器数据处理模块103可以将数据广播出去。
如下所示,为Gazebo仿真平台的启动文件的示例性源代码。
<launch>
<arg name="robot_name"default="robot"/>
<arg name="x"default="0"/>
<arg name="y"default="0"/>
<group ns="$(arg robot_name)">
<arg name="urdf_file"default="$(find xacro)/xacro--inorder'$(findmodel_descriptions)/robots/scrub_50_3_3_hexagons.urdf.xacro'"/>
<param name="robot_description"command="$(arg urdf_file)"/>
<node name="spawn_turtlebot_model"pkg="gazebo_ros"type="spawn_model"args="-unpause-urdf-param/$(arg robot_name)/robot_description-model$(arg robot_name)-x$(arg x)-y$(arg y)-z 0-R 0-P 0-Y 0"/>
……
</group>
</launch>
本实施例中,利用了仿真平台的广播方式发送数据,而且通过为不同的机器人程序终端2添加不同的前缀,可以区分不同的机器人程序终端2的数据,因而,既提高了数据发送效率,易于实现,还可以区分不同的机器人程序终端2的数据。
图4示出根据本公开一实施例的实施步骤S220的流程图,如图4所示,步骤S220又可以包括以下步骤:
步骤S410,所述机器人程序终端2开启所述机器人程序终端数据处理模块202,接收所述仿真服务器数据处理模块103通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据;
步骤S420,所述机器人程序终端数据处理模块202将所述数据转化为机器人操作系统101的通信数据,发送给机器人固件201;
示例性的,所述仿真平台为Gazebo仿真平台,所述机器人程序终端数据处理模块202将所述数据转化为机器人操作系统101的通信数据,可以利用机器人操作系统101的主题(topic)通信方式,也可以利用机器人操作系统101的服务(service)通信方式。所述主题(topic)通信方式是一种单向的异步通信方式,而服务(service)通信方式是一种双向的同步通信方式。
步骤S430,所述机器人固件201对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块202;
步骤S440,所述机器人程序终端数据处理模块202将所述控制数据通过所述仿真平台102的通讯接口,将所述控制数据发送给所述仿真服务器数据处理模块103;
示例性的,所述仿真平台为Gazebo仿真平台,可以利用所述Gazebo仿真平台自带的通信模块gazebo msg,将所述控制数据发送给仿真服务器数据处理模块103。
步骤S450,所述仿真服务器数据处理模块103将所述控制数据发送给所述仿真平台102,控制所述机器人程序终端2的运动。
本实施例中,机器人程序终端2通过从仿真服务器数据处理模块103发送的广播数据中筛选出自身的数据,再将数据转换为机器人操作系统101的通信数据,从而可以将数据发送给机器人固件201。所述机器人固件201处理数据,进行路径规划之后,将生成的控制数据返回给所述机器人程序终端数据处理模块202。而所述机器人程序终端数据处理模块202利用所述仿真平台102的通信接口将控制数据发送给仿真服务器数据处理模块103。可见,本实施中,仿真服务器1与机器人程序终端2之间可以利用仿真平台102自带的通信模块实现通信,同时可以区分多个机器人程序终端2的感知数据,例如传感器数据,从而可以实现在同一仿真平台中运行多个机器人程序终端2,并将不同的测试任务分配给多个机器人程序终端2,以此提高通信和测试的效率,并减少消耗的资源。
再次参考图1,示出根据本公开一实施例的多机器人仿真系统100的结构框图,如图1所示,本公开提供的多机器人仿真系统100包括仿真服务器1和多个机器人程序终端2。
其中所述仿真服务器1用于发布其仿真平台102中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端2;
示例性的,仿真服务器1首先可以启动机器人操作系统101,并开启仿真服务器数据处理模块103,用于获取仿真平台102中的传感器和场景数据,并将上述数据发送给多个机器人程序终端2,从而将测试任务分配给不同的机器人程序终端2。
所述多个机器人程序终端2同时运行于所述仿真平台102中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器1;
示例性的,多个机器人程序终端2可以同时运行于同一仿真平台102中,并开启机器人程序终端数据处理模块202,用于接收仿真服务器1发布的仿真平台102中的传感器和场景数据,并将其转化为机器人操作系统101的通信数据,提供给机器人固件201,机器人固件201对数据进行处理,完成路径规划等操作,并将控制数据发送给所述仿真服务器1,从而完成仿真环境下的测试。
所述多机器人仿真系统100还用于实时监听所述仿真服务器1与所述多个机器人程序终端2之间的数据,如果发生数据异常,则重新启动发生异常的仿真服务器1或所述机器人程序终端2。
示例性的,在仿真服务器1启动仿真服务器数据处理模块103之后,再启动服务器数据监控服务模块104;以及在机器人程序终端2开启机器人程序终端数据处理模块202之后,再启动机器人数据监控服务模块203。所述服务器数据监控服务模块104和所述机器人数据监控服务模块203可以实时监听所述仿真服务器数据处理模块103与所述机器人程序终端数据处理模块202之间通信的数据。当数据发生异常时,例如,频率过低、数据中断、通信异常等,可以重启所述仿真服务器数据处理模块103或所述机器人程序终端数据处理模块202对应的仿真服务器1或机器人程序终端2,直至监听的数据达到正常状态。
本实施中,多个机器人程序终端2在同一仿真平台中运行,可以将需要测试的任务安排给各个机器人程序终端2,多个机器人程序终端2可以同时进行测试,因此可以提高测试效率,节约使用的资源。同时,本实施还可以进行数据异常处理,确保了测试的可靠性。本实施例应用于自主导航的机器人上,使机器人实际部署前减少软件的未知性,提高软件的适应性,让机器人的部署更加高效,快捷,并降低成本。
再次参考图1,示出根据本公开一实施例的仿真服务器1的结构框图,如图1所示,本公开提供的仿真服务器1包括机器人操作系统(ROS)101、仿真平台102、仿真服务器数据处理(SDP)模块103和服务器数据监控服务(DMS)模块104。
其中所述仿真服务器数据处理模块103用于获取传感器和场景数据,在不同的机器人程序终端2的数据前添加与所述机器人程序终端2对应的前缀,并将所述传感器和场景数据以广播的形式发布出去,并且将接收到的所述机器人程序终端数据处理模块202发送的所述控制数据发送给所述仿真平台102,控制所述机器人程序终端2的运动。
示例性的,所述仿真平台102为Gazebo仿真平台,可以通过仿真平台启动文件(launch文件)中命名空间的定义,将各机器人程序终端2的名称传递给仿真服务器数据处理模块103,所述仿真服务器数据处理模块103将各机器人程序终端2的名称以前缀的形式添加在数据名称前,此后,所述仿真服务器数据处理模块103可以将数据广播出去。
如下所示,为Gazebo仿真平台的启动文件的示例性源代码。
<launch>
<arg name="robot_name"default="robot"/>
<arg name="x"default="0"/>
<arg name="y"default="0"/>
<group ns="$(arg robot_name)">
<arg name="urdf_file"default="$(find xacro)/xacro--inorder'$(findmodel_descriptions)/robots/scrub_50_3_3_hexagons.urdf.xacro'"/>
<param name="robot_description"command="$(arg urdf_file)"/>
<node name="spawn_turtlebot_model"pkg="gazebo_ros"type="spawn_model"args="-unpause-urdf-param/$(arg robot_name)/robot_description-model$(arg robot_name)-x$(arg x)-y$(arg y)-z 0-R 0-P 0-Y 0"/>
……
</group>
</launch>
本实施例中,利用了仿真平台的广播方式发送数据,而且通过为不同的机器人程序终端2添加不同的前缀,可以区分不同的机器人程序终端2的数据,因而,既提高了数据发送效率,易于实现,还可以区分不同的机器人程序终端2的数据。
再次参考图1,示出根据本公开一实施例的机器人程序终端2的结构框图,如图1所示,本公开提供的机器人程序终端2包括机器人固件201、机器人程序终端数据处理(TDP)模块202和机器人数据监控服务(DMS)模块203。
其中所述机器人程序终端数据处理模块202用于接收所述仿真服务器数据处理模块103通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据,将所述数据转化为机器人操作系统101的通信数据,发送给所述机器人固件201,将所述机器人固件201发送的所述控制数据通过所述仿真平台102的通讯接口,将所述控制数据发送给所述仿真服务器数据处理模块103;
示例性的,所述仿真平台为Gazebo仿真平台,所述机器人程序终端数据处理模块202将所述数据转化为机器人操作系统101的通信数据,可以利用机器人操作系统101的主题(topic)通信方式,也可以利用机器人操作系统101的服务(service)通信方式。所述主题(topic)通信方式是一种单向的异步通信方式,而服务(service)通信方式是一种双向的同步通信方式。
所述机器人固件201用于对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块202;
示例性的,所述仿真平台为Gazebo仿真平台,可以利用所述Gazebo仿真平台自带的通信模块gazebo msg,将所述控制数据发送给仿真服务器数据处理模块103。
本实施例中,机器人程序终端2通过从仿真服务器数据处理模块103发送的广播数据中筛选出自身的数据,再将数据转换为机器人操作系统101的通信数据,从而可以将数据发送给机器人固件201。所述机器人固件201处理数据,进行路径规划之后,将生成的控制数据返回给所述机器人程序终端数据处理模块202。而所述机器人程序终端数据处理模块202利用所述仿真平台102的通信接口将控制数据发送给仿真服务器数据处理模块103。可见,本实施中,仿真服务器1与机器人程序终端2之间可以利用仿真平台102自带的通信模块实现通信,同时可以区分多个机器人程序终端2的感知数据,例如传感器数据,从而可以实现在同一仿真平台中运行多个机器人程序终端2,并将不同的测试任务分配给多个机器人程序终端2,以此提高通信和测试的效率,并减少消耗的资源。
图5示出了根据本公开一实施例的一种仿真系统500的示意图,如图5所示,所述仿真系统500,包括处理器501、非易失性计算机可读存储介502、输入装置503、输出装置504,所述非易失性计算机可读存储介502包括计算机程序指令,上述计算机程序指令可由处理器501执行以完成上述多机器人仿真方法200。
图6示出了根据本公开一实施例的一种仿真系统的信息交互示意图,如图6所示,在步骤S610中,仿真服务器1发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端2;
在步骤S620中,机器人程序终端2接收仿真服务器发布的其仿真平台中的传感器和场景数据,所述机器人程序终端2与其他多个机器人程序终端同时运行于所述仿真平台中,所述多个机器人程序终端2分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器1。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

Claims (9)

1.一种多机器人仿真方法,其特征在于,所述方法包括:
仿真服务器发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器,包括:
所述机器人程序终端开启机器人程序终端数据处理模块,接收仿真服务器数据处理模块通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据;
所述机器人程序终端数据处理模块将所述数据转化为机器人操作系统的通信数据,发送给机器人固件;
所述机器人固件对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块;
所述机器人程序终端数据处理模块将所述控制数据通过所述仿真平台的通讯接口,将所述控制数据发送给所述仿真服务器数据处理模块;
所述仿真服务器数据处理模块将所述控制数据发送给所述仿真平台,控制所述机器人程序终端的运动。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
实时监听所述仿真服务器与所述多个机器人程序终端之间的数据,如果发生数据异常,则重新启动发生异常的仿真服务器或所述机器人程序终端。
3.根据权利要求1所述的方法,其特征在于,所述仿真服务器发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端,包括:
所述仿真服务器启动所述仿真平台,并开启所述仿真服务器数据处理模块,获取传感器和场景数据;
所述仿真服务器数据处理模块在不同的机器人程序终端的数据前添加与所述机器人程序终端对应的前缀,并将所述传感器和场景数据以广播的形式发布出去。
4.一种多机器人仿真系统,其特征在于,所述系统包括仿真服务器和多个机器人程序终端;
其中所述仿真服务器用于发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器,具体地:
所述机器人程序终端包括机器人固件、机器人程序终端数据处理模块和机器人数据监控服务模块;
其中所述机器人程序终端数据处理模块用于接收仿真服务器数据处理模块通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据,将所述数据转化为机器人操作系统的通信数据,发送给所述机器人固件,并将所述机器人固件发送的所述控制数据通过所述仿真平台的通讯接口,发送给仿真服务器数据处理模块;
所述机器人固件用于对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块。
5.根据权利要求4所述的系统,其特征在于,所述多机器人仿真系统实时监听所述仿真服务器与所述多个机器人程序终端之间的数据,如果发生数据异常,则重新启动发生异常的仿真服务器1或所述机器人程序终端。
6.根据权利要求4所述的系统,其特征在于,所述仿真服务器包括机器人操作系统、仿真平台、仿真服务器数据处理模块和服务器数据监控服务模块;
所述仿真服务器数据处理模块用于获取传感器和场景数据,在不同的机器人程序终端的数据前添加与所述机器人程序终端对应的前缀,并将所述传感器和场景数据以广播的形式发布出去,并且将接收到的机器人程序终端数据处理模块发送的控制数据发送给所述仿真平台,控制所述机器人程序终端的运动。
7.一种仿真服务器,其特征在于,
所述仿真服务器发布其仿真平台中的传感器和场景数据,并将多个测试任务分配给多个机器人程序终端;
所述仿真服务器接收所述多个机器人程序终端发送的控制数据,所述多个机器人程序终端同时运行于所述仿真平台中,分别进行所述多个测试任务的测试,并生成所述控制数据,具体地:
所述机器人程序终端开启机器人程序终端数据处理模块,接收仿真服务器数据处理模块通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据;
所述机器人程序终端数据处理模块将所述数据转化为机器人操作系统的通信数据,发送给机器人固件;
所述机器人固件对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块;
所述机器人程序终端数据处理模块将所述控制数据通过所述仿真平台的通讯接口,将所述控制数据发送给所述仿真服务器数据处理模块;
所述仿真服务器数据处理模块将所述控制数据发送给所述仿真平台,控制所述机器人程序终端的运动。
8.一种机器人程序终端,其特征在于,
所述机器人程序终端接收仿真服务器发布的其仿真平台中的传感器和场景数据,所述机器人程序终端与其他多个机器人程序终端同时运行于所述仿真平台中,所述多个机器人程序终端分别用于接收仿真服务器发布的多个测试任务;
所述多个机器人程序终端分别进行所述多个测试任务的测试,并将生成的控制数据发送给所述仿真服务器,具体地:
所述机器人程序终端开启机器人程序终端数据处理模块,接收仿真服务器数据处理模块通过广播形式发送的数据,并通过前缀筛选出发送给自身的传感器数据;
所述机器人程序终端数据处理模块将所述数据转化为机器人操作系统的通信数据,发送给机器人固件;
所述机器人固件对收到的数据进行处理,完成路径规划,并将生成的控制数据发送给所述机器人程序终端数据处理模块;
所述机器人程序终端数据处理模块将所述控制数据通过所述仿真平台的通讯接口,将所述控制数据发送给所述仿真服务器数据处理模块;
所述仿真服务器数据处理模块将所述控制数据发送给所述仿真平台,控制所述机器人程序终端的运动。
9.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理装置执行时实现权利要求1至3中任意一项所述的方法。
CN202110298248.0A 2021-03-19 2021-03-19 一种多机器人仿真方法、系统、仿真服务器和终端 Active CN112906245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110298248.0A CN112906245B (zh) 2021-03-19 2021-03-19 一种多机器人仿真方法、系统、仿真服务器和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110298248.0A CN112906245B (zh) 2021-03-19 2021-03-19 一种多机器人仿真方法、系统、仿真服务器和终端

Publications (2)

Publication Number Publication Date
CN112906245A CN112906245A (zh) 2021-06-04
CN112906245B true CN112906245B (zh) 2023-05-02

Family

ID=76105756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110298248.0A Active CN112906245B (zh) 2021-03-19 2021-03-19 一种多机器人仿真方法、系统、仿真服务器和终端

Country Status (1)

Country Link
CN (1) CN112906245B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113370211A (zh) * 2021-06-25 2021-09-10 深圳市拓普智造科技有限公司 一种机器人及其远程控制方法和系统
CN117103281B (zh) * 2023-10-20 2024-01-26 深圳墨影科技有限公司 一种机器人全融合仿真系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1521655A (zh) * 2003-01-28 2004-08-18 中国南方航空股份有限公司 一种航空模拟机训练的计算机辅助教学系统及其方法
FR2992443A1 (fr) * 2012-06-20 2013-12-27 Univ Blaise Pascal Clermont Ii Platerforme de simulation pour la validation d'une architecture logicielle et materielle d'un robot
CN110929422A (zh) * 2019-12-09 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 一种机器人集群仿真方法及装置
CN111090920A (zh) * 2018-10-24 2020-05-01 百度在线网络技术(北京)有限公司 多任务仿真运行方法、装置及存储介质
CN111399432A (zh) * 2020-03-26 2020-07-10 上海有个机器人有限公司 机器人远程监控方法、智能设备、云服务器和监控系统
CN111993424A (zh) * 2020-08-19 2020-11-27 中国兵器科学研究院 一种异构移动机器人的互操作中间件测试系统及方法
CN112069072A (zh) * 2020-09-07 2020-12-11 上海高仙自动化科技发展有限公司 一种机器人仿真控制系统、方法、服务器及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1521655A (zh) * 2003-01-28 2004-08-18 中国南方航空股份有限公司 一种航空模拟机训练的计算机辅助教学系统及其方法
FR2992443A1 (fr) * 2012-06-20 2013-12-27 Univ Blaise Pascal Clermont Ii Platerforme de simulation pour la validation d'une architecture logicielle et materielle d'un robot
CN111090920A (zh) * 2018-10-24 2020-05-01 百度在线网络技术(北京)有限公司 多任务仿真运行方法、装置及存储介质
CN110929422A (zh) * 2019-12-09 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 一种机器人集群仿真方法及装置
CN111399432A (zh) * 2020-03-26 2020-07-10 上海有个机器人有限公司 机器人远程监控方法、智能设备、云服务器和监控系统
CN111993424A (zh) * 2020-08-19 2020-11-27 中国兵器科学研究院 一种异构移动机器人的互操作中间件测试系统及方法
CN112069072A (zh) * 2020-09-07 2020-12-11 上海高仙自动化科技发展有限公司 一种机器人仿真控制系统、方法、服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ROS的服务机器人智能导航系统研究与仿真;崔靓等;《传感器与微系统》;20201231(第02期);全文 *

Also Published As

Publication number Publication date
CN112906245A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US20220179682A1 (en) Task processing method, apparatus, and system based on distributed system
CN112906245B (zh) 一种多机器人仿真方法、系统、仿真服务器和终端
CN115328663B (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
CN102419729B (zh) 并行测试执行
CN108196915A (zh) 基于应用容器引擎的代码处理方法、设备及存储介质
CN109710394A (zh) 定时任务处理系统及方法
CN110046101A (zh) 页面自动化测试方法、装置及计算机存储介质
CN104391716A (zh) 基于插件的应用程序实现方法及装置
CN110493028A (zh) 一种集群部署方法、系统、装置及计算机可读存储介质
CN109033814A (zh) 智能合约触发方法、装置、设备及存储介质
CN108959139A (zh) 一种cpld管脚复用方法与装置
CN112788112A (zh) 设备健康管理微服务自动发布方法、装置和平台
CN113704117A (zh) 一种算法测试系统、方法及装置
CN105117270A (zh) 一种用于模拟传感器的方法和装置
CN111813625A (zh) 分布式服务器集群的健康检查方法及装置
CN107025126B (zh) 一种资源调度方法、nfvo和系统
CN111638871A (zh) 一种设备信息处理方法、装置、设备、介质
CN106330595A (zh) 分布式平台的心跳检测方法和装置
CN111198725B (zh) 应用启动的处理方法、计算设备及计算机存储介质
CN101242201B (zh) 一种主备系统维护的方法、系统和装置
CN101971562B (zh) 控制自动运行过程执行的方法、装置及系统
CN111294250B (zh) 压力测试方法、装置和系统
CN111435320B (zh) 一种数据处理方法及其装置
CN115437627A (zh) 学件开发方法、装置、设备及存储介质
CN111464398A (zh) 自组织无中心的网络高层协议测试方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant