CN116483357A - 一种基于ros的机器人在线仿真实训平台的构建方法 - Google Patents

一种基于ros的机器人在线仿真实训平台的构建方法 Download PDF

Info

Publication number
CN116483357A
CN116483357A CN202310385957.1A CN202310385957A CN116483357A CN 116483357 A CN116483357 A CN 116483357A CN 202310385957 A CN202310385957 A CN 202310385957A CN 116483357 A CN116483357 A CN 116483357A
Authority
CN
China
Prior art keywords
service
robot
unity
ros
web
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.)
Pending
Application number
CN202310385957.1A
Other languages
English (en)
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310385957.1A priority Critical patent/CN116483357A/zh
Publication of CN116483357A publication Critical patent/CN116483357A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种基于ROS的机器人在线仿真实训平台的构建方法、系统、计算机设备和存储介质。所述方法包括:在服务层,构建机器人在线仿真实训平台的服务模块;服务模块包括Web应用服务、实训文档服务、Unity‑ROS服务、Unity‑Web服务以及Web‑ROS服务;在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;在应用层,构建Web前端应用程序,以生成机器人在线仿真实训平台的平台页面以及交互页面。实现了通过Web浏览器的一站式的仿真实训,以及多机器人的仿真实训。

Description

一种基于ROS的机器人在线仿真实训平台的构建方法
技术领域
本申请涉及机器人技术领域,特别是涉及一种基于ROS的机器人在线仿真实训平台的构建方法、系统、计算机设备和存储介质。
背景技术
随着人工智能的发展,机器人得以快速的发展。随着机器人的广泛应用,机器人的学习与开发也逐渐受到重视。仿真实训在机器人学习和开发项目过程中可以有效的帮助提高机器人的开发和测试效率,在实机测试和部署之前尽可能多的发现错误,在系统出现问题之后更方便的复现和解决问题。许多科研人员以及学生通过机器人仿真实训平台来进行机器人的仿真实训。
现有的针对机器人的仿真实训平台,大多根据机器人硬件所配套的仿真软件、机器人硬件所对应的代码和机器人操作手册来进行机器人的仿真。但是采用这种仿真方式,通用性差,扩展性差,无法满足多机器人、一站式仿真实训的需求。
发明内容
基于此,有必要针对上述技术问题,提供一种基于ROS的机器人在线仿真实训平台的构建方法、系统、计算机设备、和存储介质。
第一方面,本申请提供了一种机器人在线仿真实训平台的构建方法。所述方法包括:
在服务层,构建所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
在应用层,构建Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面以及交互页面。
在其中一个实施例中,所述Web应用服务,用于搭建Web后台服务器,建立Web浏览器对所述机器人在线仿真实训平台的访问服务;
所述实训文档服务,用于通过Jupyter Notebook服务方式,建立所述机器人在线仿真实训平台的实训文档后台服务;
所述Unity-ROS服务,用于基于WebSocket的通讯模块,设置ROS服务节点,通过TCP网络连接,建立所述ROS服务节点与所述机器人的ROS节点连接,以及建立所述ROS服务节点与Unity的消息通信服务;
所述Unity-Web服务,用于基于WebRTC实时通讯服务,建立Unity与所述Web浏览器连接,以及建立Unity与所述Web浏览器的流媒体通信服务;
所述Web-ROS服务,用于根据VSCode在线服务,建立IDE与ROS系统的在线通信服务。
在其中一个实施例中,所述ROS服务节点通过发布订阅ROS话题,与所述机器人的ROS节点连接。
在其中一个实施例中,所述ROS服务节点通过已序列化消息发布订阅Unity服务脚本,建立与Unity服务脚本的消息通信。
在其中一个实施例中,所述建立Unity与所述Web浏览器之间的流媒体通信服务包括:Unity向所述Web浏览器实时广播Unity的画面渲染视频流和音频流;所述Web浏览器向Unity发送键鼠输入设备的输入信息;以及Unity根据接收到的所述输入信息进行逻辑处理,实时更新所述画面渲染视频流和所述音频流,并广播给所述Web浏览器。
在其中一个实施例中,所述机器人功能内容,包括根据机器人工作空间和机器人功能包的创建方法,得到机器人仿真实训工作空间以及对应工作空间下的所述机器人功能包;所述机器人功能包,包括机器人描述包、机器人控制包以及机器人配置包;所述Unity仿真内容,包括场景环境仿真和机器人仿真;其中,所述场景环境仿真,用于根据Unity模型及交互逻辑开发流程,得到Unity的场景环境;所述机器人仿真,用于通过解析URDF格式的机器人模型,导入Unity物理引擎PhyX关节体组件,得到Unity的机器人仿真;所述课程实训文档内容,包括根据Jupyter Notebook文档制作方法,得到文本、数学方程、代码和可视化内容形式的机器人实训步骤文档。
第二方面,本申请还提供了一种机器人在线仿真实训平台的构建系统。所述系统包括服务构建模块、内容模块以及应用模块;
所述服务构建模块,用于在服务层,构建所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
所述内容模块,用于在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
所述应用模块,用于在应用层,构建Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面及交互页面。
第三方面,本申请还提供了一种用于机器人学习的在线仿真系统。所述系统包括服务层、内容层以及应用层;
所述服务层设置有所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
所述内容层设置有对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
所述应用层设置有Web前端应用程序生成的所述机器人在线仿真实训平台的平台页面及交互页面。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述机器人在线仿真实训平台的构建方法。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述机器人在线仿真实训平台的构建方法。
上述基于ROS的机器人在线仿真实训平台的构建方法、系统、计算机设备和存储介质,通过在服务层,构建机器人在线仿真实训平台的服务模块;在内容层,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;在应用层,生成机器人在线仿真实训平台的平台页面以及交互页面。其通过对服务层、内容层和应用层的构建,使得用户可以通过Web浏览器的形式进行机器人的仿真实训,实现了通过Web浏览器的一站式的仿真实训,并利用ROS系统可适用于多机器人平台的灵活性的特点,实现了多机器人的仿真实训。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一实施例提供的机器人在线仿真实训平台的构建方法的终端的硬件结构框图;
图2为本申请一实施例提供的基于ROS的机器人在线仿真实训平台的构建方法的流程图;
图3为本申请一实施例提供的Unity服务脚本与机器人的ROS节点的消息通信方法的流程图;
图4为本申请一优选实施例提供的机器人在线仿真实训平台的构建方法的流程图;
图5为本申请一实施例提供的机器人在线仿真实训平台的构建系统的结构框图;
图6为本申请一实施例提供的用于机器人学习的在线仿真系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的机器人在线仿真实训平台的构建方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的机器人在线仿真实训平台的构建方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在一个实施例中,提供了一种基于ROS的机器人在线仿真实训平台的构建方法,图2是本实施例基于ROS(Robot Operating System,机器人操作系统)的机器人在线仿真实训平台的构建方法的流程图,如图2所示,该流程图包括以下步骤:
步骤S210,在服务层,构建机器人在线仿真实训平台的服务模块;服务模块包括Web(World Wide Web,全球广域网)应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务。
在本步骤中,上述Web应用服务,可以是通过搭建Web后台服务器,利用Web后台服务器建立Web浏览器对机器人在线仿真实训平台的访问服务。具体地,通过在Linux系统服务器中使用Python库快速搭建Http(Hyper Text Transfer Protocol,超文本传输协议)服务,根据Web后台服务器IP(Internet Protocol,网际互连协议)及搭建Web后台服务设定的端口得到Web前端应用程序的访问地址。至此,完成了为机器人在线仿真实训平台Web前端应用程序部署准备的Web应用服务的构建。本步骤通过Web后台服务器来提供Web浏览器的信息浏览服务,并根据Web浏览器的请求内容,访问机器人在线仿真实训平台的内容层的内容。
进一步地,上述实训文档服务,可以是通过Jupyter Notebook服务方式,建立机器人在线仿真实训平台的实训文档后台服务。具体地,在Linux系统服务器中,使用apt命令安装Jupyter Notebook,进而配置Jupyter配置文件,设置Jupyter配置文件的存放空间,最后设置服务访问地址和访问白名单。至此,完成了为机器人在线仿真实训平台Web前端应用程序部署准备的实训文档服务的构建。本步骤通过对实训文档服务的构建,实现在通过Web前端应用程序接收到访问白名单的访问实训文档服务的请求时,能够提供课程实训文档内容的服务。
另外,上述Unity-ROS服务,可以是基于WebSocket的通讯模块,设置ROS服务节点,通过TCP(Transmission Control Protocol,传输控制协议)网络连接,建立ROS服务节点与机器人的ROS节点连接,以及建立ROS服务节点与Unity的消息通信服务。其中,ROS服务节点,可以是Unity-ROS服务通过ROS-TCP-Endpoint发布的ROS服务节点。其中,ROS服务节点,可以包括unity_endpoint服务节点。上述机器人的ROS节点,可以是ROS机器人的功能节点。例如,机器人的ROS节点是ROS机器人的里程计话题节点、ROS机器人的雷达传感器话题节点等节点。具体地,在Linux系统服务器中使用apt命令安装ROS环境,基于ROS环境创建提供Unity端通过TCP网络连接可连接的ROS服务节点,ROS服务节点通过发布或订阅ROS话题与机器人的ROS节点连接,ROS服务节点通过已序列化消息进行发布或订阅Unity服务脚本,以此实现ROS服务节点与Unity服务脚本的消息通信,至此,完成了为机器人在线仿真实训平台Web前端应用程序部署准备的Unity-ROS的服务构建。通过此种方式,实现了Unity服务脚本与机器人的ROS节点的消息通信服务。
另外,上述Unity-Web服务,可以是基于WebRTC(Web Real-Time Communications,网页实时通信)的实时通讯服务,建立Unity与Web浏览器连接,以及建立Unity与Web浏览器的流媒体通信服务。具体地,可以是Unity-Web服务根据WebRTC实时通讯服务,得到Unity与Web浏览器的连接及流媒体通信服务。其中Unity与Web浏览器的流媒体通信服务,可以包括Unity向Web浏览器实时广播Unity的画面渲染视频流、音频流,还可以包括Web浏览器向Unity发送键鼠输入设备的输入信息,Unity根据接收到的信息进行逻辑处理,实时更新渲染视频流、音频流并广播给Web浏览器。通过此种方式,实现了Unity与Web浏览器的流媒体通信服务。
上述Web-ROS服务,可以是根据VSCode(Visual Studio Code,代码编辑器)在线服务,建立IDE与ROS系统的在线通信服务。具体地,可以通过在Linux系统服务器中部署VSCode在线服务,通过配置VSCode服务配置文件,其中,配置文件的内容可以包括服务IP及端口、用户名及密码、代码空间地址等。进而,通过访问Web浏览器的在线IDE(IntegratedDevelopment Environment,集成开发环境),并在Web浏览器的在线IDE中在线编写ROS功能代码,通过在线IDE终端进行代码编译,并将ROS指令发送至内容层,通过ROS指令来控制内容层的机器人功能内容。在本步骤中,通过构建Web-ROS服务,实现了通过Web浏览器的在线IDE编译来完成ROS指令的发送服务。
在本步骤中,通过在服务层构建机器人在线仿真实训所需要的服务模块,来提供支撑机器人在线仿真实训所需要的通过Web后台服务器来提供Web浏览器的信息浏览服务,通过Web前端应用程序接收到访问白名单的访问实训文档服务的请求时,能够提供课程实训文档内容的服务,Unity服务脚本与机器人的ROS节点的消息通信服务,Unity与Web浏览器的流媒体通信服务,以及通过Web浏览器的在线IDE编译来完成ROS指令的发送服务。
步骤S220,在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容。
其中,上述机器人实训课程设计,可以是针对不同机器人的多个实训课程设计。具体地,可以是针对市面上常见的款式的机器人设置各自的实训课程设计。上述机器人实训课程设计的内容,可以包括具体机器人本体、机器人的实训知识点、实训目的、实训原理以及实验步骤等。其中,机器人本体可以包括机器人的种类以及机器人的型号等机器人的具体识别信息。
进一步地,上述机器人功能内容,可以包括根据机器人工作空间和机器人功能包的创建方法,得到的机器人仿真实训工作空间以及对应工作空间下的机器人功能包。其中,上述机器人功能包,可以包括与机器人实训课程设计所对应的机器人描述包、机器人控制包以及机器人配置包。其中,上述机器人描述包,可以是指机器人的描述信息,具体可以包括URDF(Unified Robot Description Format,统一机器人描述格式)机器人模型描述文件、机器人模型网格三维模型以及材质等。其中,上述URDF机器人模型描述文件,可以是格式为URDF的机器人模型描述文件,可以用于描述机器人的几何形状、动力学参数以及传感器信息等信息。其中,机器人模型网格三维模型及材质,可以用于机器人模型的可视化、仿真、运动规划等。其中,上述机器人控制包,可以包含机器人的运动控制相关节点、启动文件和配置文件等信息。机器人控制包的内容,可以用于控制机器人的运动,实现机器人的各种运动特性。例如,机器人控制包的内容可以用于控制机器人的运动速度、可以用于控制机器人的位置、可以用于控制机器人的姿态等。其中,上述机器人配置包,可以包括机器人的各种感知节点和算法。例如,机器人配置包可以包括机器人的视觉、机器人的激光雷达、机器人的深度相机、机器人的传感器的驱动以及机器人的数据处理节点的等信息。机器人的配置包,可以用于实现机器人的环境感知、实时物体检测以及跟踪等功能。
另外,上述Unity仿真内容,可以包括场景环境仿真和机器人仿真。其中,上述场景环境仿真,可以用于根据Unity模型及交互逻辑开发流程,得到Unity的场景环境。上述机器人仿真,可以用于通过解析URDF格式的机器人模型,导入Unity物理引擎PhyX关节体组件,生成Unity的场景环境中的机器人模型,并对Unity的场景环境中的机器人模型进行控制仿真,完成Unity的机器人仿真。
具体地,可以根据Unity模型及交互逻辑开发流程,在Unity中导入3dmax/maya创建的三维环境模型材质及贴图,实现场景环境仿真。进而,导入ROS机器人功能内容中的机器人描述包,通过解析URDF文件,生成包含物理引擎PhX关节体组件的机器人模型。根据机器人控制包中的消息文件,编写订阅Unity-ROS服务的Unity脚本,实现在Unity-ROS服务中订阅ROS服务节点,通过订阅Unity-ROS服务实现Unity服务脚本接收ROS系统中机器人功能包的消息,继而完成对Unity中机器人模型的控制。至此,完成了Unity仿真内容,并为Unity-Web服务提供了画面渲染内容。
最后,上述课程实训文档内容,可以包括根据Jupyter Notebook文档制作方法,得到文本、数学方程、代码和可视化内容形式的机器人实训步骤文档。
具体地,上述Jupyter Notebook文档制作方法,可以根据访问实训文档服务提供的地址,以符合Markdown格式要求进行对应机器人的课程实训文档内容编写。其中,课程实训文档内容,可以包括实训目的、实训步骤以及实训结果等。其中,课程实训文档内容的形式有文本、数学方程、代码以及可视化内容等。至此,根据机器人实训课程设计,完成了课程实训文档的内容。
在本步骤中,通过添加机器人功能内容,来完成支撑机器人在线仿真实训平台所需的课程内容所对应的ROS机器人的功能内容,为Unity机器人仿真提供了原始模型素材。通过添加Unity仿真内容,来为Unity-Web服务提供了画面渲染内容。通过添加课程实训文档内容,得到支撑机器人在线仿真实训平台所需的课程设计的文档内容。
步骤S230,在应用层,构建Web前端应用程序,以生成机器人在线仿真实训平台的平台页面以及交互页面。
在本步骤中,上述Web前端,可以是指机器人在线仿真实训平台的网站前台部分,运行在PC(Personal Computer,个人计算机)端或移动端的浏览器上展现给用户浏览的网页。在本步骤中,上述机器人在线仿真实训平台的平台页面,可以包括Unity仿真可视化模块、课程实训文档模块和在线IDE模块等功能模块。具体地,可以通过Web前端应用程序点击机器人在线仿真实训平台的平台页面的Unity仿真可视化模块,来查看Unity的机器人仿真内容。可以通过Web前端应用程序点击机器人在线仿真实训平台的平台页面的课程实训文档模块,访问课程实训文档的内容。可以通过Web前端应用程序点击机器人在线仿真实训平台的平台页面的在线IDE模块,在Web浏览器的在线IDE中编写ROS功能代码,实现了发布控制机器人运动的ROS节点,并通过Unity-ROS服务发布的ROS服务节点的订阅内容,实现Unity机器人仿真控制。
优选地,可以通过在应用层构建Web前端应用程序,以生成机器人在线仿真实训平台的平台页面以及交互页面。具体地,通过编写Web应用程序的前端JavaScript功能文件及HTML(Hyper Text Markup Language,超文本标记语言)页面文件,构建Unity仿真可视化模块、课程实训文档模块和在线IDE模块等功能模块,以此来实现机器人在线仿真实训平台的平台页面的功能模块及与之对应的内容的交互。具体地,可以通过学习课程实训文档模块中的实训目的、实训步骤,利用在线IDE模块中进行ROS逻辑代码编写及编译运行,unity仿真可视化模块根据在线IDE模块运行的代码逻辑实现机器人的运动仿真可视化。本步骤通过构建Web前端应用程序,以此来实现机器人在线仿真实训平台的平台页面的功能模块及与之对应的内容的交互,进而完成在线仿真实训平台的平台页面以及交互页面。使得用户可以通过Web浏览器登录机器人在线仿真实训平台,并进行机器人的在线仿真实训。
上述步骤S210至步骤S230,通过在服务层构建机器人在线仿真实训所需要的服务模块,来提供支撑机器人在线仿真实训所需要的服务,通过在内容层构建与机器人实训课程设计所对应的内容,得到支撑机器人在线仿真实训平台所需的课程设计内容及基础环境,通过在应用层构建Web前端应用程序,以此来完成在线仿真实训平台的平台页面以及交互页面。其通过对服务层、内容层和应用层的构建,使得用户可以通过Web浏览器的形式进行机器人的仿真实训,实现了通过Web浏览器的一站式的仿真实训,并利用ROS系统可适用于多机器人平台的灵活性的特点,实现了多机器人的仿真实训。
另外,在一个可行的实施例中,基于上述步骤S210,本申请实施例提供的机器人在线仿真实训平台的构建方法,具体可以包括以下步骤:
步骤S212,ROS服务节点通过发布订阅ROS话题,与机器人的ROS节点连接。
在本步骤中,上述ROS服务节点,可以是Unity-ROS服务通过ROS-TCP-Endpoint发布的ROS服务节点。上述机器人的ROS节点,可以是ROS机器人的功能节点。ROS服务节点通过发布订阅ROS话题,与机器人的ROS节点连接,可以包括以下步骤:
S2121:ROS服务节点向节点管理器注册相关信息,包括ROS服务节点的信息、需要发布的话题名等,节点管理器记录下ROS服务节点的信息。
S2122:机器人的ROS节点向节点管理器注册相关信息,包括机器人的ROS节点的信息、需要发布的话题名等,节点管理器记录下机器人的ROS节点的信息。
S2123:节点管理器进行话题匹配。具体地,当节点管理器识别到ROS服务节点与机器人的ROS节点有相同的话题信息时,节点管理器通过RPC(Remote Procedure Call,远程过程调用)向机器人的ROS节点发送ROS服务节点的RPC地址信息。
S2124:机器人的ROS节点向ROS服务节点发送连接请求。具体地,机器人的ROS节点通过RPC向ROS服务节点发送连接请求,上述连接请求的内容,可以包括订阅的话题名、消息类型以及通信协议等信息。
S2125:ROS节点确认连接请求。具体地,ROS节点接收到机器人的ROS节点发送的连接请求后,继续通过RPC向机器人的ROS节点确认连接信息,同时发送自身相关的信息,上述自身相关的信息,可以包括订阅的话题名、消息类型以及通信协议等信息。
S2126:机器人的ROS节点接收到确认信息后,使用TCP尝试与ROS节点建立网络连接。
S2127:成功建立连接后,ROS节点开始向机器人的ROS节点发送话题消息数据。
在本步骤中,ROS服务节点通过发布订阅ROS话题,实现与机器人的ROS节点连接,进而实现了ROS服务节点与机器人的ROS节点的消息通信。
优选地,一个ROS节点可以同时与机器人的多个ROS节点通过发布订阅ROS话题进行连接,来实现一个ROS节点与机器人的多个ROS节点的消息通信。
此外,在一个实施例中,基于上述步骤S210,本申请实施例提供的机器人在线仿真实训平台的构建方法,还可以包括以下步骤:
步骤S214,ROS服务节点通过已序列化消息发布订阅Unity服务脚本,建立与Unity服务脚本的消息通信。
在本步骤中,上述已序列化消息,可以是指将消息已经转换为可以存储或传输的形式的消息。在本步骤中,将消息进行序列化的目的是方便消息的传输,以实现ROS服务节点发布订阅Unity服务脚本。上述Unity服务脚本,可以是控制ROS机器人进行仿真实训的指令代码。在本步骤中,ROS服务节点通过已序列化消息发布订阅Unity服务脚本,建立与Unity服务脚本的消息通信,实现ROS服务节点获取Unity服务脚本的内容。
图3为Unity服务脚本与机器人的ROS节点的消息通信方法的流程图。在一个可行的实施例中,当Unity-ROS服务通过ROS-TCP-Endpoint发布的ROS服务节点是unity_endpoint服务节点时,如图所示,unity_endpoint服务节点301通过已序列化消息进行发布或订阅Unity服务脚本302,以此实现unity_endpoint服务节点301获取Unity服务脚本302的脚本消息,进而,unity_endpoint服务节点301通过发布或订阅ROS话题与机器人的ROS节点303连接,将Unity服务脚本302的脚本消息发送至机器人的ROS节点303。
进一步地,在一个可行的实施例中,建立Unity与Web浏览器之间的流媒体通信服务,可以包括以下步骤:
Unity向Web浏览器实时广播Unity的画面渲染视频流和音频流;Web浏览器向Unity发送键鼠输入设备的输入信息;以及Unity根据接收到的输入信息进行逻辑处理,实时更新画面渲染视频流和音频流,并广播给Web浏览器。
在本步骤中,建立Unity与Web浏览器之间的流媒体通信服务,具体地,首先在Linux系统服务器中根据WebRTC实时通讯服务配置Unity与Web浏览器之间的信令服务,Unity与Web浏览器通过信令服务建立了点对点连接,Unity通过信令服务向Web浏览器实时广播画面渲染的视频流和音频流,Web浏览器通过信令服务向Unity发送键鼠输入设备的输入信息,Unity根据接收到的输入信息进行逻辑处理,实时更新画面渲染视频流和音频流,并广播给Web浏览器。在本步骤中,通过配置Unity与Web浏览器之间的信令服务,实现了Unity向Web浏览器之间的流媒体通信服务的构建,进而实现了Unity与Web浏览器之间信息交互。
图4是本申请优选实施例提供的机器人在线仿真实训平台的构建方法的流程图。如图4所示,该机器人在线仿真实训平台的构建方法包括如下步骤:
步骤S410,在服务层,构建机器人在线仿真实训平台的Web应用服务;Web应用服务,用于搭建Web后台服务器,建立Web浏览器对机器人在线仿真实训平台的访问服务;
步骤S420,在服务层,构建机器人在线仿真实训平台的实训文档服务;实训文档服务,用于通过Jupyter Notebook服务方式,建立机器人在线仿真实训平台的实训文档后台服务;
步骤S430,在服务层,构建机器人在线仿真实训平台的Unity-ROS服务;Unity-ROS服务,用于基于WebSocket的通讯模块,设置ROS服务节点,通过TCP网络连接,建立ROS服务节点与机器人的ROS节点连接,以及建立ROS服务节点与Unity的消息通信服务;
步骤S440,在服务层,构建机器人在线仿真实训平台的Unity-Web服务;Unity-Web服务,用于基于WebRTC实时通讯服务,建立Unity与Web浏览器连接,以及建立Unity与Web浏览器的流媒体通信服务;
步骤S450,在服务层,构建机器人在线仿真实训平台的Web-ROS服务;Web-ROS服务,用于根据VSCode在线服务,建立IDE与ROS系统的在线通信服务;
步骤S460,在内容层,根据机器人实训课程设计,添加对应的机器人功能内容;机器人功能内容,包括根据机器人工作空间和机器人功能包的创建方法,得到机器人仿真实训工作空间以及对应工作空间下的机器人功能包;
步骤S470,在内容层,根据机器人实训课程设计,添加对应的Unity仿真内容;Unity仿真内容,包括场景环境仿真和机器人仿真;
步骤S480,在内容层,根据机器人实训课程设计,添加对应的课程实训文档内容;课程实训文档内容,包括根据Jupyter Notebook文档制作方法,得到文本、数学方程、代码和可视化内容形式的机器人实训步骤文档;
步骤S490,在应用层,构建Web前端应用程序,以生成机器人在线仿真实训平台的平台页面以及交互页面。
本实施例中,通过在服务层构建机器人在线仿真实训所需要的服务模块,来提供支撑机器人在线仿真实训所需要的服务,通过在内容层构建与机器人实训课程设计所对应的内容,得到支撑机器人在线仿真实训平台所需的课程设计内容及基础环境,通过在应用层构建Web前端应用程序,以此来完成在线仿真实训平台的平台页面以及交互页面。其通过对服务层、内容层和应用层的构建,使得用户可以通过Web浏览器的形式进行机器人的仿真实训,实现了通过Web浏览器的一站式的仿真实训,并利用ROS系统可适用于多机器人平台的灵活性的特点,实现了多机器人的仿真实训。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种基于ROS的机器人在线仿真实训平台的构建方法的一种在线仿真实训平台的构建系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个在线仿真实训平台的构建系统的实施例中的具体限定可以参见上文中对于在线仿真实训平台的构建方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种基于ROS的机器人在线仿真实训平台的构建系统50,包括:服务构建模块52、内容模块54以及应用模块56;
服务构建模块52,用于在服务层,构建所述机器人在线仿真实训平台的服务模块;服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
内容模块54,用于在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
应用模块56,用于在应用层,构建Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面及交互页面。
上述基于ROS的机器人在线仿真实训平台的构建系统50,通过在服务层构建机器人在线仿真实训所需要的服务模块,来提供支撑机器人在线仿真实训所需要的服务,通过在内容层构建与机器人实训课程设计所对应的内容,得到支撑机器人在线仿真实训平台所需的课程设计内容及基础环境,通过在应用层构建Web前端应用程序,以此来完成在线仿真实训平台的平台页面以及交互页面。使得用户可以通过Web浏览器的形式进行机器人的仿真实训,实现了通过Web浏览器的一站式的仿真实训,并利用ROS系统可适用于多机器人平台的灵活性的特点,实现了多机器人的仿真实训。
在一个实施例中,如图6所示,提供了一种用于机器人学习的在线仿真系统60,包括:服务层62、内容层64以及应用层66;
所述服务层62设置有所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
所述内容层64设置有对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
所述应用层66设置有Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面及交互页面。
上述用于机器人学习的在线仿真系统60,通过在服务层62,来提供支撑机器人在线仿真实训所需要的服务,通过在内容层64,来构建与机器人实训课程设计所对应的内容,得到支撑机器人在线仿真实训平台所需的课程设计内容及基础环境,通过在应用层66,构建Web前端应用程序,以此来完成在线仿真实训平台的平台页面以及交互页面。使得用户可以通过Web浏览器的形式进行机器人的仿真实训,实现了通过Web浏览器的一站式的仿真实训,并利用ROS系统可适用于多机器人平台的灵活性的特点,实现了多机器人的在线仿真实训。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于ROS的机器人在线仿真实训平台的构建方法,其特征在于,所述方法包括:
在服务层,构建所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
在应用层,构建Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面以及交互页面。
2.根据权利要求1所述的机器人在线仿真实训平台的构建方法,其特征在于:
所述Web应用服务,用于搭建Web后台服务器,建立Web浏览器对所述机器人在线仿真实训平台的访问服务;
所述实训文档服务,用于通过Jupyter Notebook服务方式,建立所述机器人在线仿真实训平台的实训文档后台服务;
所述Unity-ROS服务,用于基于WebSocket的通讯模块,设置ROS服务节点,通过TCP网络连接,建立所述ROS服务节点与所述机器人的ROS节点连接,以及建立所述ROS服务节点与Unity的消息通信服务;
所述Unity-Web服务,用于基于WebRTC实时通讯服务,建立Unity与所述Web浏览器连接,以及建立Unity与所述Web浏览器的流媒体通信服务;
所述Web-ROS服务,用于根据VSCode在线服务,建立IDE与ROS系统的在线通信服务。
3.根据权利要求2所述的机器人在线仿真实训平台的构建方法,其特征在于,所述ROS服务节点通过发布订阅ROS话题,与所述机器人的ROS节点连接。
4.根据权利要求2所述的机器人在线仿真实训平台的构建方法,其特征在于,所述ROS服务节点通过已序列化消息发布订阅Unity服务脚本,建立与Unity服务脚本的消息通信。
5.根据权利要求2所述的机器人在线仿真实训平台的构建方法,其特征在于:
所述建立Unity与所述Web浏览器之间的流媒体通信服务包括:Unity向所述Web浏览器实时广播Unity的画面渲染视频流和音频流;所述Web浏览器向Unity发送键鼠输入设备的输入信息;以及Unity根据接收到的所述输入信息进行逻辑处理,实时更新所述画面渲染视频流和所述音频流,并广播给所述Web浏览器。
6.根据权利要求1至5任一项所述的机器人在线仿真实训平台的构建方法,其特征在于:
所述机器人功能内容,包括根据机器人工作空间和机器人功能包的创建方法,得到机器人仿真实训工作空间以及对应工作空间下的所述机器人功能包;所述机器人功能包,包括机器人描述包、机器人控制包以及机器人配置包;
所述Unity仿真内容,包括场景环境仿真和机器人仿真;其中,所述场景环境仿真,用于根据Unity模型及交互逻辑开发流程,得到Unity的场景环境;所述机器人仿真,用于通过解析URDF格式的机器人模型,导入Unity物理引擎PhyX关节体组件,得到Unity的机器人仿真;
所述课程实训文档内容,包括根据Jupyter Notebook文档制作方法,得到文本、数学方程、代码和可视化内容形式的机器人实训步骤文档。
7.一种基于ROS的机器人在线仿真实训平台的构建系统,其特征在于,包括服务构建模块、内容模块以及应用模块;
所述服务构建模块,用于在服务层,构建所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
所述内容模块,用于在内容层,根据机器人实训课程设计,添加对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
所述应用模块,用于在应用层,构建Web前端应用程序,以生成所述机器人在线仿真实训平台的平台页面及交互页面。
8.一种用于机器人学习的在线仿真系统,其特征在于,所述仿真系统包括服务层、内容层以及应用层;
所述服务层设置有所述机器人在线仿真实训平台的服务模块;所述服务模块包括Web应用服务、实训文档服务、Unity-ROS服务、Unity-Web服务以及Web-ROS服务;
所述内容层设置有对应的机器人功能内容、Unity仿真内容以及课程实训文档内容;
所述应用层设置有Web前端应用程序生成的所述机器人在线仿真实训平台的平台页面及交互页面。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202310385957.1A 2023-04-04 2023-04-04 一种基于ros的机器人在线仿真实训平台的构建方法 Pending CN116483357A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310385957.1A CN116483357A (zh) 2023-04-04 2023-04-04 一种基于ros的机器人在线仿真实训平台的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310385957.1A CN116483357A (zh) 2023-04-04 2023-04-04 一种基于ros的机器人在线仿真实训平台的构建方法

Publications (1)

Publication Number Publication Date
CN116483357A true CN116483357A (zh) 2023-07-25

Family

ID=87226174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310385957.1A Pending CN116483357A (zh) 2023-04-04 2023-04-04 一种基于ros的机器人在线仿真实训平台的构建方法

Country Status (1)

Country Link
CN (1) CN116483357A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056028A (zh) * 2023-09-25 2023-11-14 之江实验室 机器人仿真平台搭建方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056028A (zh) * 2023-09-25 2023-11-14 之江实验室 机器人仿真平台搭建方法、装置、计算机设备和存储介质
CN117056028B (zh) * 2023-09-25 2024-01-09 之江实验室 机器人仿真平台搭建方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
Joseph et al. Mastering ROS for Robotics Programming: Design, build, and simulate complex robots using the Robot Operating System
CN105637472B (zh) 具有广义屏幕描述的屏幕内容共享系统的框架
Isikdag Enhanced building information models
Hu et al. ROSUnitySim: Development and experimentation of a real-time simulator for multi-unmanned aerial vehicle local planning
Simiscuka et al. Real-virtual world device synchronization in a cloud-enabled social virtual reality IoT network
CN102959597A (zh) 电话的远程控制
CN113359994B (zh) 适用于ar教育应用的教学内容配置与交互方案实施的方法
US20090319397A1 (en) Virtual experience
WO2023124055A1 (zh) 基于数字孪生的人工增强方法、装置及介质
CN110096245A (zh) 分布式跨平台用户界面和应用投影
US20200276707A1 (en) Method and system for cloud-based programming and control of robotic platform
CN116483357A (zh) 一种基于ros的机器人在线仿真实训平台的构建方法
CN103858137A (zh) 远程预配置计算装置
WO2013032621A1 (en) Data infrastructure for providing interconnectivity between platforms, devices, and operating systems
Oyekoya et al. Supporting interoperability and presence awareness in collaborative mixed reality environments
Limosani et al. Connecting ROS and FIWARE: Concepts and tutorial
CN117235395A (zh) 一种基于云平台的展品信息展示方法、装置、设备及介质
Carlson et al. Ambient flow: A visual approach for remixing the Internet of Things
CN112233208B (zh) 机器人状态处理方法、装置、计算设备和存储介质
López et al. ROS2 and Unity based Simulation for telepresence robot
CN109963088A (zh) 基于增强现实ar的网络直播方法、装置及系统
Pinikas et al. Extension of the webrtc data channel towards remote collaboration and control
CN113138764A (zh) 代码运行方法及相关产品
CN117539368B (zh) 交互方法、装置、设备及可读存储介质
KR20200011299A (ko) E-스포츠 교육을 위한 웹소켓을 이용한 양방향 원격화면공유 서비스 제공 방법

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