CN107273219A - 设备控制方法及装置 - Google Patents
设备控制方法及装置 Download PDFInfo
- Publication number
- CN107273219A CN107273219A CN201710294288.1A CN201710294288A CN107273219A CN 107273219 A CN107273219 A CN 107273219A CN 201710294288 A CN201710294288 A CN 201710294288A CN 107273219 A CN107273219 A CN 107273219A
- Authority
- CN
- China
- Prior art keywords
- ros
- nodes
- message
- information
- node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开是关于一种设备控制方法及装置,所述方法包括:获取微纳卫星中所有功能模块以及功能模块之间的信息流;确定与每个功能模块对应的机器人操作***ROS节点;根据所述信息流生成所有ROS节点确定ROS计算图;确定ROS节点之间的通信方式;生成与每个ROS节点对应的独立的运行文件,并且控制不同ROS节点对应的运行文件运行;记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。该方法中ROS节点可单独编译、调试和运行,所以可较好的支持多人并行开发,使得效率大大提高,并且由于ROS节点对应的可执行文件可以松散耦合,所以灵活性以及可扩展性大大提高。
Description
技术领域
本公开涉及微纳卫星技术领域,尤其涉及一种设备控制方法及装置。
背景技术
微纳卫星技术近年来发展迅速,从最初单纯的大学研究探索领域迅速变为具有明显实用能力和巨大商业价值的研究领域。随着COTS(Commercial Off The Shelf,商用现成品)器件和大量新技术的应用,微小卫星的能力得到了大幅提高,甚至在个别方面的能力接近甚至超过大型卫星。
卫星的软件是一个复杂的多任务软件***,对于确保卫星在轨正常运行至关重要。随着空间任务的日益复杂,对星上软件的要求也越来越高。相对于大卫星,微纳卫星很多单机集成在一起,例如天拓一号卫星将星务计算机、姿控计算机、数管计算机的功能集成在一台星务计算机内,进而导致需要执行的功能任务数量较多。
目前的微纳星上软件多使用嵌入式操作***(如VxWorks、μCOS、Free RTOS),需要执行的功能任务模块可能分散在多个分***中,如测控分***、姿控分***、数管分***、导航分***等,每个分***可能有独立的硬件,也有可能多个分***共用一套硬件,在分***内部可以运行多个功能任务。分***之间可以通过星内总线连接,通过星内总线实现不同分***的任务之间的通信。在分***内部,功能任务通常基于嵌入式实时操作***实现,每一个功能任务对应一个线程,线程之间通过信号量、消息、全局变量等手段进行通信和同步,通过互斥量对公共资源进行保护,通过队列实现不同速度线程之间的匹配。
这种通信方式,虽然在实时性方面较好,但在在灵活性和扩展性方面有较大局限。由于这些独立运行的功能任务以多线程的方式运行,相互之间存在广泛的信息交互,逻辑关系和运行约束更为复杂,往往在前期需要多个软件工程师分别编码,然后在集成在一起编译成一个统一的软件镜像。这种设计模式在标准化、扩展性方面存在诸多不足,也不利于团队协作,在应对复杂空间任务时,在软件灵活性、可扩展性方面有较大局限。
发明内容
本申请公开了一种设备控制方法及装置,以解决背景技术所述基于嵌入式操作***的微纳卫星软件存在标准化、灵活性以及可扩展性较差的问题。
为解决上述技术问题,本申请公开如下技术方案:
一种设备控制方法,包括:
获取微纳卫星中所有软件功能模块以及功能模块之间的信息流;
确定与每个功能模块对应的机器人操作***ROS节点;
根据所述信息流和所有ROS节点生成ROS计算图,所述ROS计算图中包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包;
根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式,所述通信方式包括:消息方式和服务方式;
生成与每个ROS节点分别单独对应的运行文件,并且控制不同ROS节点对应的运行文件运行;
记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
可选地,所述根据所述信息流和所有ROS节点生成ROS计算图,包括:
根据所述信息流获取不同ROS节点之间的通信信息;
根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
根据所述ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
可选地,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
当ROS节点之间传递信息的方式为一对多时,确定ROS发布节点和多个ROS接收节点;
建立与所述ROS发布节点对应的消息主题;
控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
可选地,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应该的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为点对点;
当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数,当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
可选地,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应该的功能模块之间信息交互的特点,判断ROS节点之间是否需要任务同步;
当ROS节点之间需要任务同步时,确定同步发起ROS节点和至少一个同步接收ROS节点;
在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数,当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
一种设备控制装置,包括:
获取单元,用于获取微纳卫星中所有功能模块以及功能模块之间的信息流;
节点确定单元,用于确定与每个功能模块对应的机器人操作***ROS节点;
计算图生成单元,用于根据所述信息流和所有ROS节点生成ROS计算图,所述ROS计算图中包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包;
通信方式确定单元,用于根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式,所述通信方式包括:消息方式和服务方式;
文件生成单元,用于生成与每个ROS节点分别单独对应的运行文件;
文件运行单元,用于控制不同ROS节点对应的运行文件运行;
记录单元,用于记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
可选地,所述计算图生成单元,包括:
通信信息获取子单元,用于根据所述信息流获取不同ROS节点之间的通信信息;
信息确定子单元,用于根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
生成子单元,用于根据所述ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
可选地,所述通信方式确定单元,包括:
第一判断子单元,用于根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
节点确定子单元,用于当ROS节点之间传递信息的方式为一对多时,确定ROS发布节点和多个ROS接收节点;
消息主题建立子单元,用于建立与所述ROS发布节点对应的消息主题;
发布子单元,用于控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
订阅子单元,用于控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
可选地,所述通信方式确定单元,包括:
第二判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间传递信息的方式是否为点对点;
节点对确定子单元,用于当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
第一建立子单元,用于在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
信息请求发送子单元,用于当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;
第一调用子单元,用于当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数;
第一消息发送子单元,用于当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
可选地,所述通信方式确定单元,包括:
第三判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间是否需要任务同步;
同步节点确定子单元,用于当ROS节点之间需要任务同步时,确定同步发起ROS节点和至少一个同步接收ROS节点;
第二建立子单元,用于在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
第二调用子单元,用于当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数;
第二发送子单元,用于当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
本公开的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的该设备控制方法,在实现基于ROS的卫星软件时,可以根据卫星软件中的所有功能模块以及功能模块之间的信息流,先将功能模块转换为ROS节点,然后再确定包含ROS节点的ROS计算图,以ROS理念来设计微纳卫星的卫星软件,由于ROS***具有良好的通信机制,这使得每个ROS节点对应的可执行文件能够被单独设计,并且在运行时ROS节点对应的可执行文件可以松散耦合,因此,每个功能模块可以作为独立线程运行,例如将微纳卫星中的遥控、程控、数传、设备管理等功能模块分别作为ROS节点实现,在开发时可以独立开发,这样技术人员可以将微纳卫星中各个功能模块单独编写形成独立的运行文件,完成后的ROS节点可单独编译、调试和运行,这种方式可较好的支持多人并行开发,使得效率大大提高,并且由于ROS节点对应的可执行文件可以松散耦合,所以灵活性以及可扩展性大大提高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对实施例或背景技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种微纳卫星的星上软件功能示意图;
图2为本申请实施例提供的设备控制方法的流程示意图;
图3为本申请实施例提供的设备控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本申请实施例提供的一种微纳卫星的星上软件示意图。
如图1所示,图中包括微纳卫星的多个常用功能模块,包括:遥测、遥控、数传、参数上注、软件上注、星上时钟、信标、程控、姿态控制等,各个功能模块之间的信息流如图1中箭头所指方向。
图2为本申请实施例提供的设备控制方法的流程示意图。
如图2所示,该方法包括以下步骤:
S101,获取微纳卫星中所有功能模块以及功能模块之间的信息流。
每个微纳卫星,根据设计要求的不同,具有不同的功能模块以及独特的功能模块之间的信息流。所以,在本申请实施例中,首先要获取目标微纳卫星的一些基本信息。如图1所示,图中包括微纳卫星的所有功能模块以及功能模块之间的信息流。在本申请实施例中,微纳卫星的功能模块以及功能模块之间的信息流可以由技术人员根据微纳卫星设计方案提供,或者,直接从设计方案中提取微纳卫星的各个参数得到。
S102,确定与每个功能模块对应的机器人操作***ROS节点。
ROS(Robot Operating System,机器人操作***),是专为机器人软件开发所设计出来的一套电脑操作***架构,最早源于2007年斯坦福大学人工智能实验室的STAIR项目与机器人技术公司Willow Garage的个人机器人项目(Personal Robotics Program)之间的合作,2008年之后由Willow Garage公司推动其发展。
ROS是一个开源的次操作***,提供类似于操作***的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。ROS并不是传统意义上的操作***,ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS的运行架构是一种使用ROS通信模块实现模块间松散耦合的处理架构。这使可执行文件能被单独设计,并且在运行时松散耦合。
在本申请实施例中,当获取到微纳卫星的功能模块之后,首先要按照ROS节点确定规则,确定出与每个微纳卫星中功能模块对应的ROS节点,以此为基础来生成与微纳卫星对应的ROS计算图。
S103,根据所述信息流和所有ROS节点生成ROS计算图。
通常情况下,ROS通过计算图(Compute Graph)来组织软件。计算图的元素包括:
(1)ROS节点:主要的计算进程。
(2)ROS节点管理器:用于节点的注册和查找。
(3)ROS参数服务器:使数据通过关键词存在***的核心位置。
(4)ROS消息:用于节点间的通信。
(5)ROS消息主题:对消息进行路由和管理的数据总线。
(6)ROS服务:点对点的数据交互。
(7)ROS消息记录包:用于保存和回放ROS消息的数据记录。
在本申请实施例中,确定的ROS计算图中至少包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及消息记录包。
在本申请一个实施例中,步骤S103,可以包括以下步骤:
S11,根据所述信息流获取不同ROS节点之间的通信信息。
S12,根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
S13,根据所述ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
S104,根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式。
在本本申请实施例中,所述通信方式包括:消息方式和服务方式。另外,功能模块之间信息交互的特点包括:点对点、一对多、任务同步等,其中,对点是指两个功能模块进行一对一传输,功能模块之间双向的点对点信息交互使用ROS服务实现。ROS服务适用于请求、应答方式工作的场合。可以将通用功能做成ROS服务,供其他功能模块调用。
一对多是指一个功能模块向多个功能模块进行消息广播,功能模块之间广播式的通信通过ROS消息主题实现。例如遥测数据、星上时钟等信息多个模块运行时都需要,可以建立遥测消息主题和时钟消息主题,遥测模块和星上时钟模块分别向这两个消息主题发布遥测消息和时钟消息,需要使用遥测和时钟的模块可以向这两个消息主题订阅相应的消息;
任务同步是指两个功能模块之间需要进行任务同步,由于ROS节点没有信号量和互斥量,所以资源都被封装在节点内部。这样,节点之间的同步只能通过ROS消息或ROS服务完成。消息接收方或服务提供方设计回调函数,消息接收方在收到消息或服务器提供放在收到服务请求时触发回调函数,进而实现任务同步。
S105,生成与每个ROS节点分别单独对应的运行文件,并且控制不同ROS节点对应的运行文件运行。
由于ROS***提供了良好的通信机制,这使可执行文件能被单独设计,并且在运行时松散耦合。所以当生成与微纳卫星中功能模块对应的ROS计算图,并且确定出ROS计算图中各ROS节点之间的通信方式后,可以将微纳卫星中每个功能模块作为ROS的一个节点来实现,运行时每个功能模块可以作为独立线程运行。例如将微纳卫星中的遥控、程控、数传、设备管理等功能模块分别作为ROS节点实现,在开发时可以独立开发。
ROS节点可通过catkin_create_pkg工具创建,catkin_create_pkg工具可生成文件目录、配置文件和编译脚本,形成独立的运行文件。完成后的节点可单独编译、调试和运行。这种方式可较好的支持多人并行开发。
S106,记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
在本申请实施例中,日志功能可通过ROS消息记录包实现,也可自行开发日志模块,ROS消息记录功能可同时记录多类ROS消息。为了对微纳卫星运行过程进行有效监控,在本申请实施例中,在记录运行信息或日志信息时,并非全部记录,而是可以有选择地对部分运行信息和日志信息进行记录,在具体应用中,选择哪些运行信息和日志信息,技术人员可以自行设定。
本申请实施例提供的该设备控制方法,在实现基于ROS的卫星软件时,可以根据卫星软件中的所有功能模块以及功能模块之间的信息流,先将功能模块转换为ROS节点,然后再确定包含ROS节点的ROS计算图,以ROS理念来设计微纳卫星的卫星软件,由于ROS***具有良好的通信机制,这使得每个ROS节点对应的可执行文件能够被单独设计,并且在运行时ROS节点对应的可执行文件可以松散耦合,因此,每个功能模块可以作为独立线程运行,例如将微纳卫星中的遥控、程控、数传、设备管理等功能模块分别作为ROS节点实现,在开发时可以独立开发,这样技术人员可以将微纳卫星中各个功能模块单独编写形成独立的运行文件,完成后的ROS节点可单独编译、调试和运行,这种方式可较好的支持多人并行开发,使得效率大大提高,并且由于ROS节点对应的可执行文件可以松散耦合,所以灵活性以及可扩展性大大提高。
在本申请一个实施例中,前述步骤S104可以包括以下步骤。
S21,根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
当ROS节点之间传递信息的方式为一对多时,执行步骤S21。
S21,确定ROS发布节点和多个ROS接收节点;
S22,建立与所述ROS发布节点对应的消息主题;
S23,控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
S24,控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
在本申请一个实施例中,前述步骤S104可以包括以下步骤。
S31,根据ROS节点对应该的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为点对点;
当ROS节点之间传递信息的方式为点对点时,执行S32。
S32,当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
S33,在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
S34,当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数,当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
在本申请一个实施例中,前述步骤S104可以包括以下步骤。
S41,根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间是否需要任务同步;
当ROS节点之间需要任务同步时,执行S42。
S42,确定同步发起ROS节点和至少一个同步接收ROS节点;
S43,在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
S44,当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数,当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
与本申请图2所示的设备控制方法实施例相对应,本申请还提供了一种设备控制装置;参见图3为本申请实施例提供的一种设备控制装置的结构示意图。
如图3所示,该装置可以包括:获取单元11、节点确定单元12、计算图生成单元13、通信方式确定单元14、文件生成单元15、文件运行单元16和记录单元17,其中,
获取单元11,用于获取微纳卫星中所有功能模块以及功能模块之间的信息流;
节点确定单元12,用于确定与每个功能模块对应的机器人操作***ROS节点;
计算图生成单元13,用于根据所述信息流和所有ROS节点生成ROS计算图,所述ROS计算图中包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包;
通信方式确定单元14,用于根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式,所述通信方式包括:消息方式和服务方式;
文件生成单元15,用于生成与每个ROS节点分别单独对应的运行文件。
文件运行单元16,用于控制不同ROS节点对应的运行文件运行;
记录单元17,用于记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
在本申请一个实施例中,计算图生成单元,包括:
通信信息获取子单元,用于根据所述信息流获取不同ROS节点之间的通信信息;
信息确定子单元,用于根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
生成子单元,用于根据所述ROS节点、ROS消息、ROS主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
在本申请一个实施例中,所述通信方式确定单元,包括:
第一判断子单元,用于根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
节点确定子单元,用于当ROS节点之间传递信息的方式为一对多时,确定ROS发布节点和多个ROS接收节点;
消息主题建立子单元,用于建立与所述ROS发布节点对应的消息主题;
发布子单元,用于控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
订阅子单元,用于控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
在本申请一个实施例中,所述通信方式确定单元,包括:
第二判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间传递信息的方式是否为点对点;
节点对确定子单元,用于当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
第一建立子单元,用于在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
信息请求发送子单元,用于当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;
第一调用子单元,用于当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数;
第一消息发送子单元,用于当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
在本申请一个实施例中,所述通信方式确定单元,包括:
第三判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间是否需要任务同步;
同步节点确定子单元,用于当ROS节点之间需要任务同步时,确定同步发起ROS节点和至少一个同步接收ROS节点;
第二建立子单元,用于在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
第二调用子单元,用于当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数;
第二发送子单元,用于当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本文中,各个优选方案仅仅重点描述的是与其它方案的不同,各个优选方案只要不冲突,都可以任意组合,组合后所形成的实施例也在本说明书所公开的范畴之内,考虑到文本简洁,本文就不再对组合所形成的实施例进行单独描述。
可以理解的是,本申请可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种设备控制方法,其特征在于,包括:
获取微纳卫星中所有功能模块以及功能模块之间的信息流;
确定与每个功能模块对应的机器人操作***ROS节点;
根据所述信息流和所有ROS节点生成ROS计算图,所述ROS计算图中包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包;
根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式,所述通信方式包括:消息方式和服务方式;
生成与每个ROS节点分别单独对应的运行文件,并且控制不同ROS节点对应的运行文件运行;
记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述信息流和所有ROS节点生成ROS计算图,包括:
根据所述信息流获取不同ROS节点之间的通信信息;
根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
根据所述ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
3.根据权利要求1所述的方法,其特征在于,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
当ROS节点之间传递信息的方式为一对多时,确定ROS发布节点和多个ROS接收节点;
建立与所述ROS发布节点对应的消息主题;
控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
4.根据权利要求1所述的方法,其特征在于,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应该的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为点对点;
当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数,当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
5.根据权利要求1所述的方法,其特征在于,所述根据ROS节点对应该的功能模块之间信息交互的特点确定ROS节点之间的通信方式,包括:
根据ROS节点对应该的功能模块之间信息交互的特点,判断ROS节点之间是否需要任务同步;
当ROS节点之间需要任务同步时,确定同步发起ROS节点和至少一个同步接收ROS节点;
在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数,当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
6.一种设备控制装置,其特征在于,包括:
获取单元,用于获取微纳卫星中所有功能模块以及功能模块之间的信息流;
节点确定单元,用于确定与每个功能模块对应的机器人操作***ROS节点;
计算图生成单元,用于根据所述信息流和所有ROS节点生成ROS计算图,所述ROS计算图中包括:ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包;
通信方式确定单元,用于根据ROS节点对应的功能模块之间信息交互的特点确定ROS节点之间的通信方式,所述通信方式包括:消息方式和服务方式;
文件生成单元,用于生成与每个ROS节点分别单独对应的运行文件;
文件运行单元,用于控制不同ROS节点对应的运行文件运行;
记录单元,用于记录ROS节点在运行时的运行信息以及ROS之间的通信信息作为日志信息。
7.根据权利要求6所述的装置,其特征在于,所述计算图生成单元,包括:
通信信息获取子单元,用于根据所述信息流获取不同ROS节点之间的通信信息;
信息确定子单元,用于根据所述通信信息确定ROS节点之间的ROS消息、ROS服务、ROS消息主题以及ROS消息记录包;
生成子单元,用于根据所述ROS节点、ROS消息、ROS消息主题、ROS服务以及ROS消息记录包生成所述ROS计算图。
8.根据权利要求6所述的装置,其特征在于,所述通信方式确定单元,包括:
第一判断子单元,用于根据ROS节点对应的功能模块之间信息交互的特点,判断ROS节点之间传递信息的方式是否为一对多;
节点确定子单元,用于当ROS节点之间传递信息的方式为一对多时,确定ROS发布节点和多个ROS接收节点;
消息主题建立子单元,用于建立与所述ROS发布节点对应的消息主题;
发布子单元,用于控制所述ROS发布节点定期发布与所述消息主题相关的广播消息;
订阅子单元,用于控制所述ROS接收节点在需求所述广播消息时,从所述建立的消息主题中订阅所述广播消息。
9.根据权利要求6所述的装置,其特征在于,所述通信方式确定单元,包括:
第二判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间传递信息的方式是否为点对点;
节点对确定子单元,用于当ROS节点之间传递信息的方式为点对点时,将进行点对点传递信息的两个ROS节点确定ROS节点对,所述ROS节点对中一个ROS节点为消息发起节点,另一ROS节点为消息接收节点;
第一建立子单元,用于在所述消息接收节点中建立与所述ROS节点对对应的第一回调函数;
信息请求发送子单元,用于当需要进行点对点传输信息时,所述消息发起节点向所述消息接收节点发送信息请求;
第一调用子单元,用于当所述消息接收节点接收到信息请求时,所述消息接收节点调用所述第一回调函数;
第一消息发送子单元,用于当所述第一回调函数根据所述信息请求生成回复消息时,所述消息接收节点将所述回复消息发送给所述消息发起节点。
10.根据权利要求6所述的装置,其特征在于,所述通信方式确定单元,包括:
第三判断子单元,用于根据ROS节点对应该的功能模块之间信息交互的特点判断ROS节点之间是否需要任务同步;
同步节点确定子单元,用于当ROS节点之间需要任务同步时,确定同步发起ROS节点和至少一个同步接收ROS节点;
第二建立子单元,用于在所述同步接收节点中建立与所述任务同步对应的第二回调函数;
第二调用子单元,用于当所述同步接收ROS节点接收到所述同步发起ROS节点发送的同步请求时,所述同步接收ROS节点调用所述第二回调函数;
第二发送子单元,用于当所述第二回调函数根据所述同步请求生成回复消息时,所述同步接收ROS节点将所述回复消息发送给所述同步发起ROS节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710294288.1A CN107273219B (zh) | 2017-04-28 | 2017-04-28 | 设备控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710294288.1A CN107273219B (zh) | 2017-04-28 | 2017-04-28 | 设备控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273219A true CN107273219A (zh) | 2017-10-20 |
CN107273219B CN107273219B (zh) | 2019-09-06 |
Family
ID=60073619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710294288.1A Active CN107273219B (zh) | 2017-04-28 | 2017-04-28 | 设备控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273219B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108594810A (zh) * | 2018-04-08 | 2018-09-28 | 百度在线网络技术(北京)有限公司 | 数据处理的方法、装置、存储介质、终端设备和自动驾驶车辆 |
CN112394912A (zh) * | 2019-08-16 | 2021-02-23 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067281A (zh) * | 2011-11-28 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 按多个时间维度的聚类事件数据 |
US20160056762A1 (en) * | 2014-08-20 | 2016-02-25 | Augusto Ronchini Ximenes | Split Transformer Based LC-Tank Oscillator |
CN106066179A (zh) * | 2016-07-27 | 2016-11-02 | 湖南晖龙股份有限公司 | 一种基于ros操作***的机器人位置丢失找回方法和控制*** |
-
2017
- 2017-04-28 CN CN201710294288.1A patent/CN107273219B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067281A (zh) * | 2011-11-28 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 按多个时间维度的聚类事件数据 |
US20160056762A1 (en) * | 2014-08-20 | 2016-02-25 | Augusto Ronchini Ximenes | Split Transformer Based LC-Tank Oscillator |
CN106066179A (zh) * | 2016-07-27 | 2016-11-02 | 湖南晖龙股份有限公司 | 一种基于ros操作***的机器人位置丢失找回方法和控制*** |
Non-Patent Citations (2)
Title |
---|
Y.P.CHEN ETAL.: ""Sliding-mode controller design for spacecraft attitude tracking maneuvers"", 《IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS》 * |
杨磊等: ""微纳卫星星载设备管理方法"", 《仪器仪表学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108594810A (zh) * | 2018-04-08 | 2018-09-28 | 百度在线网络技术(北京)有限公司 | 数据处理的方法、装置、存储介质、终端设备和自动驾驶车辆 |
CN112394912A (zh) * | 2019-08-16 | 2021-02-23 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
CN112394912B (zh) * | 2019-08-16 | 2022-03-25 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107273219B (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022160707A1 (zh) | 结合rpa和ai的人机互动方法、装置、存储介质及电子设备 | |
CN103019791B (zh) | 软件部署方法及软件部署*** | |
US8166130B2 (en) | Methods and systems for exchanging data between a command and control information system and an enterprise resource planning system | |
CN105843182B (zh) | 一种基于oms的电力调度事故预案***及方法 | |
CN105897805A (zh) | 对多层架构的数据中心的资源进行跨层调度的方法和装置 | |
CN104050261A (zh) | 基于Storm的可变逻辑的通用数据处理***及方法 | |
CN107612962B (zh) | 一种分布式仿真评估试验管理*** | |
CN108460199A (zh) | Cni建模*** | |
CN109151030A (zh) | 一种物联网物体分布式交互***、方法 | |
CN114253661A (zh) | 基于容器云计算平台的产品结构 | |
CN107273219A (zh) | 设备控制方法及装置 | |
CN100456238C (zh) | 实现分布式对象持久化的方法、装置及编译单元 | |
CN104793928A (zh) | 一种基于Java的开发与运行平台实现方法及*** | |
CN103971225A (zh) | 一种工作流动态扩展方法及*** | |
Agievich et al. | A new approach for collaborative Enterprise Architecture development | |
Dennert et al. | Vertical data integration in automation based on IEC 61499 | |
CN106326488A (zh) | 一种基于xml的输变电设备状态数据交换适配器及其使用方法 | |
Youssef et al. | Developing and Enterprise Operating System (EOS) with the Federated Interoperability Approach | |
Heydarnoori et al. | Towards an automated deployment planner for composition of web services as software components | |
Tauber et al. | Integrating knowledge management with the systems analysis process | |
Bachmann et al. | Documenting software architectures: Organization of documentation package | |
Moser et al. | Making expert knowledge explicit to facilitate tool support for integrating complex information systems in the atm domain | |
CN103679432A (zh) | 一种支持动态构建应用平台的vnms*** | |
Binder et al. | Towards round-trip engineering to evolve complex production systems by utilizing automationml | |
Utomo et al. | Modeling of business process management of academic affair information system |
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 |