CN112394912B - 一种基于ros计算图的机器人应用数据动态提取方法 - Google Patents
一种基于ros计算图的机器人应用数据动态提取方法 Download PDFInfo
- Publication number
- CN112394912B CN112394912B CN201910757281.8A CN201910757281A CN112394912B CN 112394912 B CN112394912 B CN 112394912B CN 201910757281 A CN201910757281 A CN 201910757281A CN 112394912 B CN112394912 B CN 112394912B
- Authority
- CN
- China
- Prior art keywords
- ros
- robot application
- node
- nodes
- robot
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Manipulator (AREA)
Abstract
本发明公布了一种基于ROS计算图的机器人应用数据的动态提取方法,基于ROS的工具roslaunch开发,通过设计配置文件解析器,在机器人应用运行时,从机器人应用的ROS包的文件系统中获取机器人应用的roslaunch配置文件,并根据配置文件中的参数与结构信息运行机器人ROS应用程序,生成ROS计算图;同时将关于机器人应用节点的配置信息传递给ROS计算图分析器;通过ROS计算图分析器读取所述配置信息和ROS计算图,生成机器人应用节点与话题、服务之间的联系,并生成机器人应用节点的特征;由此实现动态提取基于ROS计算图的机器人应用数据。当节点的生命周期遵循通用结构和且话题和服务不依赖于运行环境或传感器数据时,可以取得较好结果。当不满足以上条件时,通过执行roslaunch,以最大程度模拟运行环境,效果也佳。
Description
技术领域
本发明提供一种机器人代码元数据动态提取方法,具体涉及基于ROS(RoboticOperating System)计算图的机器人应用数据动态提取方法。
背景技术
由于机器人的规格和应用场景十分宽泛且在不停变化,因而为机器人编写通用的软件并 不容易。同时,不同的机器人会有完全不同的硬件,因此提高机器人软件的代码复用率也十 分困难。除此之外,机器人软件必须包括从底层的驱动程序、逻辑抽象到具体应用的所有层 次,这远超单一开发者的开发能力。
因此,机器人技术研究者设计了许多框架来管理机器人软件,因而诞生了许多机器人软 件系统用于学术研究和产业界。机器人领域的问题非常宽泛,单一解决方案无法应对所有问 题,每种框架都为达到某一特定目的而设计。
ROS(Robotic Operating System)也是这些框架其中之一。ROS最初是斯坦福人工智能实 验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目,设计来解决开发 大规模服务机器人应用的问题。但最终的框架在其它机器人领域也有通用性。它提供一系列 程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数 库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。其开源 许可证和活跃的社区使其在许多机器人领域得到了广泛采用。
近年来随着机器人应用的日益发展与普及,有越来越多的机器人应用开发者及技术研究 者开始关注ROS,同时针对机器人开源代码库即ROS包信息获取方式方面存在的一些问题 展开研究。
获得关于ROS包更多的信息,可以帮助机器人开源代码库提供更好的搜索与分类功能。 一个ROS包的信息可以分为两个层级,文件系统级别和计算图级别。目前已有的机器人开源 代码库只提供了对ROS包进行了静态分析后的信息,但是ROS灵活的框架导致ROS程序的 计算图级别信息无法使用静态分析获取。
ROS的计算图级别信息相较于文件系统级别信息则不那么容易获取。这些信息通常是 ROS程序根据运行时环境及参数动态生成。在不运行机器人应用节点的情况下,要想获取它 们的元数据,只能查阅文档或直接查看源代码。现有技术尚无法实现基于ROS计算图的机器 人代码数据进行动态提取。
发明内容
本发明的目的是提供一种基于ROS计算图的机器人代码元数据动态提取方法,用以获取 ROS程序的计算图级别的机器人应用数据信息。
本发明的核心是:ROS应用程序(如机器人应用)由多个节点组成,这些节点以点对点 方式与充当名称服务器和参数数据库的ROS主节点通信。机器人应用中,节点通常包括控制 器、传感器等。网络设计称为ROS计算图,可以在运行时重新配置。节点可以在任意时间启 动并加入或离开网络,而不会中断或影响整个网络的功能。在如机器人应用这类正在运行的 应用程序上启用此类高度动态的修改机制,可大大加快开发速度并提高系统的容错能力。但 同时,ROS节点通过话题或服务隐式连接,这导致动态生成的话题和服务难以通过静态分析 获取。另一方面,一个完整的ROS程序通常包含多个节点。为了便于一次启动和配置多个节 点,ROS附带了工具roslaunch。roslaunch的配置文件使用XML格式,用于描述ROS应用程 序的全部或部分内容。此配置主要包括必需的节点及其命名空间(namespace)层次结构,配置, 启动参数以及可用主机上的分布。执行时,roslaunch根据配置启动各个节点,没有特定的顺 序。这种配置格式可以看作是ROS应用程序的基本架构描述语言,因为它模拟了应用程序中 组件的组成和配置,以及命名空间和主机等结构元素。然而,这个配置文件是不完整的:它 没有明确地为通信渠道建模。服务和话题这两种ROS中的主要通信形式,没有用声明的方式 描述,而是由节点在运行时动态地创建。本发明提供一种基于ROS计算图的机器人数据的动 态提取方法,通过动态分析运行时ROS计算图,从而提取得到传统静态分析方法无法获取的 主题和服务信息。实践表明,当节点的生命周期遵循通用结构和且话题和服务不依赖于运行 环境或传感器数据时,可以取得较好结果。当不满足以上条件时,通过执行roslaunch,以最 大程度模拟运行环境,利用本发明方法也可以取得令人满意的效果。
本发明提供的技术方案如下:
一种基于ROS计算图的机器人应用数据的动态提取方法,设计基于ROS计算图的机器 人应用数据的动态提取与分析工具,包括配置文件解析器和ROS计算图分析器,在机器人应 用运行时,通过动态分析运行时的ROS计算图,从而提取得到传统静态分析方法无法获取的 主题和服务信息;生成机器人应用节点与话题、服务之间的联系,并生成机器人应用节点的 特征;具体包括如下步骤:
1)创建配置文件解析器d_roslaunch模块,具体执行如下操作:
11)首先读取roslaunch配置文件,解析机器人应用的节点,从文件系统中找到节点对应 的可执行文件,并根据roslaunch配置文件启动机器人应用节点;
12)如果ROS主节点尚未启动,首先启动ROS主节点,再依次启动其它节点(一般节点);
13)当读取多个roslaunch配置文件时,依次解析、合并相同的命名空间,忽略重复的节 点,之后再依次启动节点;
14)在启动完所有节点后,d_roslaunch会将解析过后的配置文件传递给analyzer模块。
2)设计ROS计算图分析器
analyzer模块读取由d_roslaunch生成的配置信息,从配置信息中获取所有节点的完整名 称。之后与ROS主节点通信,通过配置信息中获取的节点名称遍历所有节点及其在ROS主 节点注册的对应话题与服务,从而生成节点与话题、服务之间的联系,并生成节点的特征。
节点特征包括三项:节点发布的话题类型,节点订阅的话题类型,节点提供的服务类型。 这里选取的都是类型,也就是相同类型的话题将只保留一个。这样做的目的是简化模型。
使用Python编写动态分析工具,并添加包清单文件,从而符合ROS包规范,以便在ROS 社区分发。该工具目前用于辅助机器人开源代码库的计算图级信息提取,同时也可独立运行 用于分析ROS代码。
程序需要导入四个ROS相关模块:roslaunch、rospy、rosgraph、rosservice。
roslaunch模块用于解析roslaunch配置文件并根据配置文件启动节点;
rospy用于在记录运行状态并输出信息到日志文件;
rosgraph封装了用于和ROS主节点通信的方法,从而获取节点和话题信息;
rosservice用于获取服务信息。
另外还需要从xmlrpc.client模块中导入ServerProxy类,用于获取节点所在进程相关信息。 ROS主节点只记录了ROS计算图有关的内容,但没有记录进程相关信息,如Pid等。这里使 用ServerProxy类,获取进程信息。这些信息并不直接用于动态分析,而是用于调试。
程序逻辑根据设计,核心功能分为三个函数:
d_roslaunch(launchfile)
analyze_graph(launch)
gen_features(nodes,topics,services)
d_roslaunch(launchfile)接受roslaunch配置文件作为参数,中间调用analyze_graph(launch), 最终返回nodes,topics,services,返回结果分别是节点、话题、服务的实例列表。
analyze_graph(launch)接受launch作为参数,包含解析后的roslaunch配置文件信息。之 后调用rosgraph.Master(),生成ROS主节点代理,从而通信获取节点、话题、服务信息,最 终返回nodes,topics,services,返回结果分别是节点、话题、服务的实例列表。
gen_features(nodes,topics,services)接受d_roslaunch返回结果,对每个节点,删去重复的 话题类型和服务类型,返回feature_dict,包含节点-节点特征键值对。
本发明提供的基于ROS计算图的机器人应用数据的动态提取与分析工具/装置包括两个 模块,配置文件解析器d_roslaunch和ROS计算图分析器analyzer。
ROS配置文件解析器模块基于ROS的工具roslaunch开发,用于从机器人应用的ROS包 的文件系统中获取机器人应用的roslaunch配置文件,并根据配置文件中的参数与结构信息运 行机器人ROS应用程序,生成ROS计算图。同时将关于机器人应用节点的配置信息传递给 analyzer。
ROS计算图分析器模块用于读取由机器人d_roslaunch模块生成的配置信息和ROS计算 图,从而生成机器人应用节点与话题、服务之间的联系,并生成机器人应用节点的特征;由 此实现动态提取基于ROS计算图的机器人应用数据。
具体实施时,机器人应用节点的特征包括:节点发布的话题类型,节点订阅的话题类型, 节点提供的服务类型。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于ROS计算图的机器人数据的动态提取方法及装置,通过动态分析运 行时ROS计算图,从而提取得到传统静态分析方法无法获取的主题和服务信息。实践表明, 当节点的生命周期遵循通用结构和且话题和服务不依赖于运行环境或传感器数据时,可以提 取得到传统静态分析方法无法获取的主题和服务信息,取得较好结果。当不满足以上条件时, 通过执行roslaunch,以最大程度模拟运行环境,利用本发明方法也可以提取得到传统静态分 析方法无法获取的主题和服务信息,取得令人满意的效果。
附图说明
图1是本发明提供的动态分析工具的模块结构框图;
其中,ROS配置文件解析器从文件系统解析ROS配置文件,ROS计算图分析器根据解析结果分析计算图结构。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于ROS计算图的机器人应用数据的动态提取方法,设计动态分析工 具,在机器人应用运行时,通过动态分析运行时的ROS计算图,从而提取得到缺少的主题和 服务信息;生成机器人应用节点与话题、服务之间的联系,并生成机器人应用节点的特征。
图1所示是本发明提供的动态分析工具的模块结构,动态分析工具包括:ROS配置文件 解析器和ROS计算图分析器。
本发明的具体实施方式如下:
1.创建d_roslaunch模块
d_roslaunch将首先读取roslaunch配置文件,解析机器人应用的节点架构,从文件系统中 找到节点对应的可执行文件,并根据roslaunch配置文件启动这些机器人应用节点。在这过程 中,如果ROS主节点尚未启动,那么将首先启动ROS主节点,再依次启动其它节点。
如果读取了多个roslaunch配置文件,那么d_roslaunch将依次解析,合并相同的命名空 间,忽略重复的节点,之后再依次启动节点。在启动完所有节点后,d_roslaunch会将解析过 后的配置文件传递给analyzer模块。
2.analyzer模块设计
analyzer模块读取由d_roslaunch生成的配置信息,从配置信息中获取所有节点的完整名 称。之后与ROS主节点通信,通过配置信息中获取的节点名称遍历所有节点及其在ROS主 节点注册的对应话题与服务,从而生成节点与话题、服务之间的联系,并生成节点的特征。
节点特征包括三项:节点发布的话题类型,节点订阅的话题类型,节点提供的服务类型。 这里选取的都是类型,也就是相同类型的话题将只保留一个。这样做的目的是简化模型。
使用Python编写动态分析工具,并添加包清单文件,从而符合ROS包规范,以便在ROS 社区分发。该工具目前用于辅助机器人开源代码库的计算图级信息提取,同时也可独立运行 用于分析ROS代码。
程序需要导入四个ROS相关模块:roslaunch、rospy、rosgraph、rosservice。
roslaunch模块用于解析roslaunch配置文件并根据配置文件启动节点;
rospy用于在记录运行状态并输出信息到日志文件;
rosgraph封装了用于和ROS主节点通信的方法,从而获取节点和话题信息;
rosservice用于获取服务信息。
另外还需要从xmlrpc.client模块中导入ServerProxy类,用于获取节点所在进程相关信息。 ROS主节点只记录了ROS计算图有关的内容,但没有记录进程相关信息,如Pid等。这里使 用ServerProxy类,获取进程信息。这些信息并不直接用于动态分析,而是用于调试。
程序逻辑根据设计,核心功能分为三个函数:
d_roslaunch(launchfile)
analyze_graph(launch)
gen_features(nodes,topics,services)
d_roslaunch(launchfile)接受roslaunch配置文件作为参数,中间调用analyze_graph(launch), 最终返回nodes,topics,services,返回结果分别是节点、话题、服务的实例列表。
analyze_graph(launch)接受launch作为参数,包含解析后的roslaunch配置文件信息。之 后调用rosgraph.Master(),生成ROS主节点代理,从而通信获取节点、话题、服务信息,最 终返回nodes,topics,services,返回结果分别是节点、话题、服务的实例列表。
gen_features(nodes,topics,services)接受d_roslaunch返回结果,对每个节点,删去重复的 话题类型和服务类型,返回feature_dict,包含节点-节点特征键值对。
下面通过实例对本发明做进一步说明。
实施例1:解析ROS机器人示例程序
这里以ROS官方提供的教程包rospy_tutorials中的talker_listener.launch为例,分析元数 据提取中存在的问题,以及介绍如何通过本发明解决这一问题,并展示动态分析结果。
talker_listener.launch的计算图中只包含两个节点,talker.py文件定义的talker节点和 listener.py文件定义的listener节点。Talker节点每秒向chatter话题发布信息,listener节点订 阅chatter话题,并向屏幕打印收到的消息。
我们的目标是通过分析,获取talker节点、listener节点以及chatter话题之间的通信关系 以及消息格式信息。传统的静态分析方法可以通过读取talker_listener.launch,直接了解talker 节点和listener节点的存在,但无法知悉chatter话题的存在。Chatter话题分别在talker.py和 listener.py文件中定义,但具体实现取决于开发者,并且名称可能被混淆。例如,当我们定义 两个不同命名空间并且两个命名空间都各有一个talker节点、一个listener节点和一个chatter 话题时,其名称就会被加以混淆,以保证其名称在命名空间中唯一存在。
因此,我们使用本专利定义的基于ROS计算图的机器人代码元数据动态提取方法,来获 取chatter话题信息,具体流程如下:
1.d_roslaunch将首先读取roslaunch配置文件talker_listener.launch,解析节点命名空间 结构,此时我们只能获取节点间的层级结构,无法获取节点间的通信架构;
2.启动ROS主节点;
3.从文件系统中找到节点对应的可执行文件,并根据talker_listener.launch配置文件中的 参数依次启动这些节点,建立ROS运行时计算图;
4.analyzer模块读取由d_roslaunch生成的配置信息,从配置信息中获取所有节点的完整 名称;
5.与ROS主节点通信,通过配置信息中获取的节点名称遍历所有节点及其在ROS主节 点注册的对应话题与服务,在本地建立ROS计算图;
6.根据需要从ROS计算图生成节点与话题、服务之间的联系,并生成节点的特征;
a)使用在第4步中获取的节点名称,读取talker节点、listener节点信息,即talker 节点在向chatter话题发布消息,listener节点在向chatter话题订阅消息;
b)根据a)中获取的话题名称,读取chatter话题信息,即chatter话题有一个发布者 是talker节点,有一个订阅者是listener节点,消息类型是String。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员 可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。 因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的 范围为准。
Claims (6)
1.一种基于ROS计算图的机器人应用数据的动态提取方法,其特征是,基于ROS的工具roslaunch开发,通过设计配置文件解析器,在机器人应用运行时,从机器人应用的ROS包的文件系统中获取机器人应用的roslaunch配置文件,并根据配置文件中的参数与结构信息运行机器人ROS应用程序,生成ROS计算图;同时将关于机器人应用的节点的配置信息传递给ROS计算图分析器;通过ROS计算图分析器读取所述配置信息和ROS计算图,生成机器人应用的节点与话题、服务之间的联系,并生成机器人应用的节点的特征;由此实现动态提取基于ROS计算图的机器人应用数据。
2.如权利要求1所述基于ROS计算图的机器人应用数据的动态提取方法,其特征是,包括如下步骤:
1)读取roslaunch配置文件talker_listener.launch,解析节点命名空间结构,此时获取节点间的层级结构,无法获取节点间的通信架构;
2)启动ROS主节点;
3)从文件系统中找到节点对应的可执行文件,并根据talker_listener.launch配置文件中的参数依次启动这些节点,建立ROS运行时计算图;
4)读取生成的配置信息,从配置信息中获取所有节点的完整名称;
5)与ROS主节点通信,通过配置信息中获取的节点名称遍历所有节点及其在ROS主节点注册的对应话题与服务,在本地建立ROS计算图;
6)从ROS计算图生成节点与话题、服务之间的联系,并生成节点的特征。
3.如权利要求2所述基于ROS计算图的机器人应用数据的动态提取方法,其特征是,步骤6)包括:
a)使用获取的节点名称,读取talker节点、listener节点信息,即talker节点向chatter话题发布消息,listener节点向chatter话题订阅消息;
b)根据a)中获取的话题名称,读取chatter话题信息;所述chatter话题有一个发布者是talker节点,有一个订阅者是listener节点,消息类型是String。
4.一种基于ROS计算图的机器人应用数据的动态提取装置,其特征是,包括:配置文件解析器d_roslaunch和ROS计算图分析器analyzer;
所述配置文件解析器基于ROS的工具roslaunch开发,用于从机器人应用的ROS包的文件系统中获取机器人应用的roslaunch配置文件,并根据配置文件中的参数与结构信息运行机器人ROS应用程序,生成ROS计算图,同时将关于机器人应用的节点的配置信息传递给ROS计算图分析器analyzer;
ROS计算图分析器模块用于读取由机器人d_roslaunch模块生成的配置信息和ROS计算图,从而生成机器人应用的节点与话题、服务之间的联系,并生成机器人应用的节点的特征;由此实现动态提取基于ROS计算图的机器人应用数据。
5.如权利要求4所述基于ROS计算图的机器人应用数据的动态提取装置,其特征是,机器人应用的节点的特征包括:节点发布的话题类型,节点订阅的话题类型和节点提供的服务类型。
6.如权利要求4所述基于ROS计算图的机器人应用数据的动态提取装置,其特征是,机器人应用的节点包括:控制器和/或传感器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910757281.8A CN112394912B (zh) | 2019-08-16 | 2019-08-16 | 一种基于ros计算图的机器人应用数据动态提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910757281.8A CN112394912B (zh) | 2019-08-16 | 2019-08-16 | 一种基于ros计算图的机器人应用数据动态提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394912A CN112394912A (zh) | 2021-02-23 |
CN112394912B true CN112394912B (zh) | 2022-03-25 |
Family
ID=74602781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910757281.8A Active CN112394912B (zh) | 2019-08-16 | 2019-08-16 | 一种基于ros计算图的机器人应用数据动态提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112394912B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398151A (zh) * | 2022-01-11 | 2022-04-26 | 北京金山云网络技术有限公司 | 一种配置管理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273219A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 设备控制方法及装置 |
JP2019008158A (ja) * | 2017-06-26 | 2019-01-17 | 学校法人成蹊学園 | Rosアーキテクチャに基づいて情報を統合・共有する分散システム |
CN109483526A (zh) * | 2017-09-13 | 2019-03-19 | 北京猎户星空科技有限公司 | 虚拟环境和真实环境下机械臂的控制方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11171940B2 (en) * | 2018-03-30 | 2021-11-09 | Intel Corporation | Secure type-enforced actions |
-
2019
- 2019-08-16 CN CN201910757281.8A patent/CN112394912B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273219A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 设备控制方法及装置 |
JP2019008158A (ja) * | 2017-06-26 | 2019-01-17 | 学校法人成蹊学園 | Rosアーキテクチャに基づいて情報を統合・共有する分散システム |
CN109483526A (zh) * | 2017-09-13 | 2019-03-19 | 北京猎户星空科技有限公司 | 虚拟环境和真实环境下机械臂的控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112394912A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741293B2 (en) | Systems and methods of a script generation engine | |
CN108885545B (zh) | 用于实时数据流编程语言的工具和方法 | |
Willcock et al. | An introduction to TTCN-3 | |
Bertolino et al. | Deriving test plans from architectural descriptions | |
CN102566984B (zh) | 一种配置参数的方法及装置 | |
US12099818B2 (en) | Plugin-oriented functional programming system configured with software components | |
US20060271911A1 (en) | Generating executable objects implementing methods for an information model | |
CN102289774A (zh) | 金融交易处理系统中的图形化报文处理与测试系统及方法 | |
CN114706579A (zh) | 页面开发方法、装置、服务器及存储介质 | |
CN101980546B (zh) | 智能网平台、业务执行方法和分析业务异常的方法 | |
GB2415806A (en) | A dynamic software integration architecture | |
Barros et al. | Model-checking distributed components: The vercors platform | |
CN112988163A (zh) | 编程语言智能适配方法、装置、电子设备和介质 | |
CN112394912B (zh) | 一种基于ros计算图的机器人应用数据动态提取方法 | |
Zhang et al. | Automated extraction of grammar optimization rule configurations for metamodel-grammar co-evolution | |
CN113448689A (zh) | 运行期Dubbo协议转换装置及方法 | |
CN110611694B (zh) | 一种基于虚拟化主从容器的数据处理中心 | |
WO2004051470A1 (ja) | プログラム自動変換方法およびプログラム自動変換装置 | |
Pramsohler et al. | A layered interface-adaptation architecture for distributed component-based systems | |
CN115857889A (zh) | 一种基于ros计算图的机器人通信架构自动生成方法及装置 | |
CN115857911A (zh) | 基于ros代码元信息的机器人软件架构实时模拟方法及装置 | |
Voldby et al. | A modeling tool for system of systems | |
JP2004362185A (ja) | プログラム生成方法及び実施装置並びに処理プログラム | |
Süß et al. | Model-centric engineering with the evolution and validation environment | |
CN112685049B (zh) | 一种java字节码编译方法 |
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 |