CN111656320A - 机器人应用管理装置、系统、方法及程序 - Google Patents
机器人应用管理装置、系统、方法及程序 Download PDFInfo
- Publication number
- CN111656320A CN111656320A CN201980010102.2A CN201980010102A CN111656320A CN 111656320 A CN111656320 A CN 111656320A CN 201980010102 A CN201980010102 A CN 201980010102A CN 111656320 A CN111656320 A CN 111656320A
- Authority
- CN
- China
- Prior art keywords
- virtual container
- robot application
- robot
- application management
- virtual
- 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
Links
- 238000000034 method Methods 0.000 title description 44
- 238000007726 management method Methods 0.000 claims description 181
- 230000007257 malfunction Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000008707 rearrangement Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 38
- 238000004891 communication Methods 0.000 description 35
- 238000005516 engineering process Methods 0.000 description 19
- 230000018109 developmental process Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 235000009508 confectionery Nutrition 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003912 environmental pollution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- 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/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- 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/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明通过使多种虚拟容器协作地执行来执行机器人应用。因此,将机器人应用管理装置(100)、至少一个机器人装置(300)以及至少一个计算机装置(400)经由局域网(600)进行连接。将包括这些装置的装置组作为用于执行机器人应用的集群进行管理,并将各虚拟容器配置于构成集群的装置组中的任一装置并启动。
Description
技术领域
本发明涉及利用分布式计算系统来实现机器人系统的技术,尤其涉及在该系统中进行机器人应用的管理的机构。
背景技术
近年来,在服务机器人的软件的开发中,使用指向被称为ROS(Robot OperatingSystem:机器人操作系统)的分布式计算系统的面向机器人的中间件的情况增多。通过由ROS提供的生态系统以及丰富的库组,服务机器人的开发效率提高(例如,非专利文献1)。
另一方面,分布式计算系统是原本在计算机科学领域中一直以来所使用的思维方式之一。通常提供用于捆绑构成系统的多个计算机并将其作为一个集群而掌握的机制。它们包容用于使运用/监控的大多数自动化、使开发效率地发展、且降低质量控制成本的机制。该机制通过组合以各种网络技术、虚拟化技术为基础的各种技术来实现(例如,非专利文献2)。
现有技术文献
非专利文献
非专利文献1:钱飞著“ROS编程”森北出版株式会社(2016年3月30日发行)
非专利文献2:古贺政纯著“Docker实践指南”株式会社Impress(2015年12月21日发行)
发明内容
发明所要解决的问题
通常由多台计算机构成机器人系统并通过分布式计算系统来实现,但在ROS中对于多台计算机的管理、控制并没有定义。因此,有可能引起ROS随机地使用大量的机器、进程等资源或者ROS的应用依赖于网络环境(时间同步、地址赋予、名称解析等)而受到限制的情况。
当前,为了不引起这样的情况,机器人系统的开发者或管理者必须手动登录构成机器人系统的各个计算机,并单独地进行机器人用的进程的执行、维护。而且,根据各个开发者或管理者,在分布式计算系统中如何处理如机器人系统那样在执行方面存在物理性制约的应用不断变化,因此连续开发很困难,原型的制作和实证实验停止的例子多发。
虽然用于持续优化分布式计算系统的开发、运用/监控以及质量管理的技术已在计算机科学领域中被培养,但作为其重要的一个方面的虚拟化技术由于当前以虚拟机管理程序类型为中心,因而在机器人系统中并未被利用。这是因为,在虚拟机管理程序类型的环境下,观察到无法识别机器人硬件的情况。
本发明的目的在于,在机器人系统中灵活地利用用于持续优化计算机科学领域中的分布式计算系统的开发、运用/监控以及质量管理的技术,减轻机器人系统的开发者或管理者进行计算资源和网络环境的管理或控制的麻烦。
用于解决问题的手段
依据本发明的原理的一个方式是一种机器人应用管理装置,其用于通过使多种虚拟容器协作地执行来执行机器人应用,该机器人应用管理装置具备:将装置组作为用于执行所述机器人应用的集群而进行管理的单元,所述装置组包括与所述机器人应用管理装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元。
依据本发明的原理的另一方式是一种系统,其具备:机器人应用管理装置,用于通过使多种虚拟容器协作地执行来执行机器人应用;以及至少一个机器人装置和至少一个计算机装置,与所述机器人应用管理装置经由局域网连接,所述系统还具备:将所述系统所具备的装置组作为用于执行所述机器人应用的集群而进行管理的单元;以及将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元。
依据本发明的原理的又一方式是一种机器人应用管理方法,其用于通过使多种虚拟容器协作地执行来执行机器人应用,其中,将装置组作为用于执行所述机器人应用的集群而进行管理,所述装置组包括与执行所述机器人应用管理方法的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置,将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动。
依据本发明的原理的又一方式是一种机器人应用管理程序,其用于通过使多种虚拟容器协作地执行来执行机器人应用,该机器人应用管理程序具备:将装置组作为用于执行所述机器人应用的集群而进行管理的程序代码,所述装置组包括与安装所述机器人应用管理程序的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的程序代码。
在上述的依据本发明的原理的各方式中,在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器可以选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置。
发明效果
根据本发明,能够减轻机器人系统的开发者或管理者进行计算资源和网络环境的管理或控制的麻烦,并且能够在例如存在物理性的制约的机器人系统中最佳地利用分布式计算系统的计算机资源。
附图说明
图1是表示本发明的一个实施方式所涉及的系统(以下,称为“本系统”)的结构的一例的图。
图2是表示本系统的结构的另一例的图。
图3是表示本系统的利用例的图。
图4是表示本系统的安装例的图。
图5是表示机器人应用管理装置的通信模块部及无线通信基站提供部的动作的流程的一例的图。
图6是表示机器人应用管理装置的公共信息分发部的动作的流程的一例的图。
图7是表示机器人应用管理装置以及末端计算机装置的组执行型逻辑容器用虚拟化环境提供部的动作的流程的一例的图。
图8是表示机器人应用管理装置的历史管理部的动作的流程的一例的图。
图9是表示用于实现在本系统中执行的装置的选择方面存在制约的虚拟容器的配置的结构的一例的图。
图10是表示应对在本系统中任一装置陷入动作不良的情况的动作的一例的图。
图11是表示用于在本系统中使引入了虚拟容器技术的装置和没有引入虚拟容器技术的装置混合存在而构成机器人系统的机构的一例的图。
图12是表示本系统中的虚拟容器的配置例的图。
具体实施方式
以下,对本发明的实施方式进行说明,但以下的说明示出本发明的具体例,并不限定本发明的范围。
在上述的依据本发明的原理的方式中,也可以构成为,将与所述机器人应用管理装置经由外部网络连接的至少一个云服务装置包含在构成所述集群的装置组中。
由此,除了能够捆绑在局域网内构成系统的多个计算机装置(机器人装置、机器人应用管理装置、以及具有计算机资源的装置)以外,还能够捆绑处于外部网络的对面侧的云服务装置,作为一个集群进行处理,由此能够使计算机资源的最佳利用进一步进化。例如,能够将进行如要求响应的速度这样的工作的虚拟容器配置于局域网内的装置,并将进行如解析大量的数据这样的工作的虚拟容器配置于云服务装置。
在上述的依据本发明的原理的方式中,也可以构成为,在所述多种虚拟容器存在第三种虚拟容器,所述第三种虚拟容器由于需要给定以上的处理能力或存储容量,所以在执行该虚拟容器的装置的选择方面存在其他制约,所述第三种虚拟容器和所述第一种虚拟容器及第二种虚拟容器以松散耦合的方式进行动作,对于第三种虚拟容器,选择满足所述其他制约的装置来进行所述配置。
由此,例如,能够将进行需要与搭载于机器人装置的电动机、传感器等物理要素的直接连接(例如,USB连接等)的工作的虚拟容器配置于该机器人装置,另一方面,将进行需要在具有特定性能的计算机装置上的动作的工作的虚拟容器配置于这样的计算机装置(例如,具有GPU(Graphics Processing Unit:图形处理单元)的装置、具有丰富的存储器的装置等)。
另外,这些虚拟容器间的松散耦合例如能够通过ROS的主题通信模型而容易地实现。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:对用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的步骤进行存储。
由此,例如能够从手动登录构成机器人系统的各个装置来单独地进行进程的执行、维护的作业中释放机器人系统的开发者或管理者。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:对表示构成所述集群的装置组的各装置满足哪个制约的信息进行存储。
由此,例如,作为上述的步骤,存储对于在执行的装置的选择方面存在制约的虚拟容器,描述为将该虚拟容器配置于满足该制约的装置并启动的步骤,在执行该步骤时,通过参照表示各装置满足哪个制约的信息,能够自动地选择配置虚拟容器的装置。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:存储虚拟容器能够执行的程序,使得配置所述多种虚拟容器中的每种虚拟容器的装置能够取得该虚拟容器能够执行的程序。
由此,例如,各装置能够自动地获取通过上述步骤针对本装置所指定的虚拟容器的实体即能够执行的程序(有时也被称为镜像(image)),从而无需机器人系统的开发者或管理者手动登录各装置,便能够进行各个虚拟容器的配置和启动。
在上述的依据本发明的原理的方式中,也可以构成为,所述虚拟容器能够执行的程序是将构成所述机器人应用的应用程序和OS打包而成的,并且在各装置的主机OS上形成针对每个虚拟容器而分离出的空间,从该主机OS以看起来像是进程的方式被执行。
因此,在依据本发明的原理的方式中,能够在机器人系统中利用容器类型的虚拟化技术。
另外,虚拟容器能够利用现有的虚拟容器运行时的技术来实现。所谓虚拟容器运行时,是容器管理软件主体,能够使软件容器内的应用(将其称为虚拟容器)的部署(配置于计算机来启动)自动化。在依据本发明的原理的方式中,通过使多种虚拟容器协作地执行从而执行一个机器人应用,因此与一个虚拟容器相当的软件容器中的应用实现机器人应用的一部分功能。
此外,各虚拟容器相对于构成集群的多个装置的配置和启动能够利用现有的虚拟容器编排工具(Virtual container orchestration tool)的技术来实现。所谓虚拟容器编排工具,是能够自动地进行虚拟容器相对于多个计算机装置(也被称为节点或主机)的设定、构建、部署的工具,由此,也能够实现进程的存活监控、自动再启动、更新分发的简化等。在依据本发明的原理的方式中,优选为,例如利用能够使用标签等针对每个自动配置目的地而设置给定程度的制约的工具的技术。
作为上述虚拟容器运行时的技术,例如可以利用Docker公司的“Docker”、CoreOS公司的“Rkt”、Linux(注册商标)Foundation的“LXC”、Microsoft公司的“Hyper-V”等。
作为上述虚拟容器编排工具的技术,例如可以利用“Docker Swarm”(参照非专利文献2)、“Kubernetes”(参照https://kubernetes.io/)、“Rancher”(参照https://rancher.com/)、“fleet”(参照https://coreos.com/fleet/docs/latest/launching-containers-fleet.html)等。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:在构成所述集群的装置组中的任一装置陷入动作不良的情况下,通过将由该陷入动作不良的装置启动的虚拟容器重新配置于构成所述集群的其他装置并启动,从而继续所述机器人应用的执行,其中所述重新配置对于所述在执行的装置的选择方面存在制约的虚拟容器,选择满足该制约的装置而进行,在除了所述陷入动作不良的装置以外不存在满足该制约的装置的情况下,停止所述机器人应用的执行。
由此,能够在具有物理性的制约的机器人系统中最佳地利用分布式计算系统的计算机资源,并且在构成集群的一部分装置陷入动作不良(例如,由于计算机装置自身的故障、机器人装置从局域网的通信范围内的脱离、云服务装置经由外部网络的通信的中断等,导致无法确认该装置是否在正常发挥功能的状态)的情况下,如果可以将该装置上的虚拟容器重新配置到其他装置上,则自动地使机器人系统继续进行动作,如果不能重新配置,则自动地使机器人系统停止。
在上述的依据本发明的原理的方式中,也可以构成为,将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,在构成所述集群的装置组中的任一装置陷入动作不良,所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
由此,例如在机器人装置从局域网的通信范围内脱离,机器人系统停止的情况下,能够在该机器人装置再次进入局域网的通信范围内后,自动地重新开始机器人系统。作为另一个例子,在机器人装置发生故障,机器人系统停止的情况下,通过在局域网的通信范围内启动代替的机器人装置,也能够自动地重新开始机器人系统。
在上述的依据本发明的原理的方式中,也可以构成为,还具备:在正在启动所述虚拟容器的装置不是构成所述集群的装置的情况下,使该虚拟容器停止的单元;以及存储用于使所述虚拟容器停止的步骤的单元。
由此,例如,能够自动地进行在满足某一条件后使虚拟容器停止这一操作,从而在构成集群的一部分装置由于动作不良而脱离集群的情况下,通过自动地停止与该集群对应的该装置上的虚拟容器(进而将虚拟容器从该装置废弃),能够提高安全性。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:对表示所述多种虚拟容器中的每种虚拟容器被配置于哪个装置并且处于包含启动中或停止中在内的哪种状态的信息进行收集,并向对用户进行显示的服务或存储历史的服务中的至少一个服务进行发送。
由此,例如,在与机器人应用管理装置经由局域网或外部网络连接的终端中,能够一并显示构成机器人系统的各装置的状态,减轻机器人系统的开发者或管理者(用户)的负担。另外,在与机器人应用管理装置经由局域网或外部网络连接的存储器中,能够保存针对机器人系统进行的控制、机器人系统的动作的详细日志。这些终端或存储器可以设为不构成云的装置。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:支持网络连接,使得构成所述集群的各装置中的各虚拟容器能够经由所述局域网进行通信,该单元的至少一部分通过将所述多种虚拟容器中的一个配置于本装置并启动而设置。
由此,例如,能够从在构成机器人系统的各装置手动进行用于网络连接的设定(时间同步、地址赋予、名称解析等)的作业中,释放机器人系统的开发者或管理者。对于进行了该设定的各装置上的虚拟容器彼此的通信,也可以通过虚拟容器运行时/虚拟容器编排工具的技术来进行辅助。
在上述的依据本发明的原理的方式中,也可以构成为,所述至少一个机器人装置包括移动的机器人装置,所述局域网中的至少与所述移动的机器人装置连接的连接部分是以无线的方式构成的,还具备用于所述无线连接的接入点功能或多跳功能中的至少一方。
通过该接入点功能,能够使移动机器人和各种装置(传感器、计算机)相互连接而构成机器人系统,通过多跳功能,能够配合移动机器人的移动范围而灵活地铺设无线局域网。其结果,移动机器人能够无需担心无线电波覆盖范围地四处移动。
在上述的依据本发明的原理的方式中,也可以构成为,将包括所述机器人应用管理装置所具备的单元之中的至少一部分的至少一个副机器人应用管理装置包含在构成所述集群的装置组中。
由此,即使主要的机器人应用管理装置停止工作,通过由副机器人应用管理装置代替,也能够使机器人系统继续动作。另外,能够使用副机器人应用管理装置来展开前述的无线多跳功能。而且,在运行多个机器人系统的情况下,主机器人应用管理装置共用,通过针对每个机器人系统设置具有前述的无线接入点功能的副机器人应用管理装置,各个机器人装置能够利用附近的接入点进行无线通信。
在上述的依据本发明的原理的方式中,也可以构成为,所述机器人应用管理装置位于局域网与外部网络的边界,还具备用于保护与所述局域网连接的各装置免受所述外部网络的影响的单元。
由此,通过将用于机器人系统的局域网从外部网络分离而进行保护(例如,利用网络地址转换、防火墙等单元),能够提高安全性。例如,在针对每个机器人系统设置所述副机器人应用管理装置的情况下,在多个机器人系统共用的主机器人应用管理装置设置该网络分离保护功能为宜。
另外,只要使用VPN(Virtual Private Network:虚拟专用网络)将具备该网络分离保护功能的机器人应用管理装置与处于外部网络的对面侧的云服务装置之间进行连接,即使在该情况下也能够确保安全性。或者,也可以使用如HTTPS、MQTTS那样的密码通信协议进行通信。
在上述的依据本发明的原理的方式中,也可以构成为,所述机器人应用管理装置还具备用于为所述机器人应用输入物理环境的数据的传感器,将控制所述传感器的虚拟容器作为所述多种虚拟容器中的一个而配置于本装置并启动。
由此,例如,能够进行考虑了来自搭载于机器人装置(一边移动一边进行感测)的传感器的信息、来自搭载于机器人应用管理装置(感测机器人装置的移动范围的环境)的传感器的信息这两者的机器人系统的控制。在针对每个机器人系统设置所述副机器人应用管理装置的情况下,也可以在该副机器人应用管理装置设置传感器。
在上述的依据本发明的原理的方式中,也可以构成为,还具备如下单元:赋予用于网络连接的地址,使得构成所述集群的至少一个装置中的至少一个虚拟容器能够经由所述局域网与没有构成所述集群的装置进行通信。
由此,能够将引入了虚拟容器技术的装置和没有引入虚拟容器技术的装置混合来构成机器人系统,所以能够从部分虚拟化技术的引入开始进行机器人系统的开发或管理。
上述各个方式也能够成为不同的类别的方式,或者组合而成为其他的方式,或者部分抽出而成为其他的方式。例如,为了执行上述方法而安装于构成系统的任一装置的程序、构成上述系统的机器人应用管理装置以外的装置、在该装置中执行的方法及用于其执行的程序、对于已述的任何程序而言存储有该程序的存储介质等分别可以成为依据本发明的原理的一个方式。
另外,上述的依据本发明的原理的方式包含在执行的装置的选择方面存在制约的虚拟容器的处理,但将上述说明的各个单元等附加到不包含在执行的装置的选择方面存在制约的虚拟容器的处理的方式而得到的方式也可以成为发明(独立于本发明的发明)。
以下,作为例示,使用附图对本发明的一个实施方式所涉及的系统(以下,称为“本系统”)进行说明。在以下的例子中,使用Docker作为虚拟容器运行时,并使用Docker Swarm作为虚拟容器编排工具。
图1所例示的本系统包括:机器人(传感器、电动机等物理要素);机器人应用管理装置(主)100,其为以通过局域网(LAN600)提供机器人系统的开发或程序执行所需的网络环境构建支持以及程序开发/执行环境为目的的边缘计算机;机器人应用管理装置(副)200,其重复负担机器人应用管理装置(主)100的至少一部分功能;以及多个计算机资源(末端计算机装置)300、400,其可以成为机器人应用管理装置(副)200的管理/控制对象。
末端计算机装置A(300)是机器人连接型,搭载有传感器306和驱动装置307。末端计算机装置B(400)是计算机单体。机器人应用管理装置和末端计算机装置是引入了虚拟容器技术的装置,分别具备组执行型逻辑容器用虚拟化环境提供部103、203、303、403,在其上进行动作的多个虚拟容器协作来执行一个机器人应用(使一个机器人系统动作)。
本系统还能够收容没有引入虚拟容器技术的LAN600上的计算机装置500(例如,智能电话、个人计算机等)。在本例中,机器人应用管理装置(主)100具备连接LAN600与因特网700的功能。还能够经由因特网700将没有引入虚拟容器技术的计算机装置(显示器/存储器)800收容于本系统。
因特网700只要是能够访问外部的计算机资源(在图1的例子中为计算机装置800)的通信网络即可,可以是LTE等移动电话网络、公共WiFi等。机器人应用管理装置(主)100具备因特网连接部108(例如,用于有线LAN连接的网络接口卡等),如图3的例子所示,能够经由宽带路由器109与因特网700连接。
另外,在图1的例子中,机器人应用管理装置(主)100与显示器/存储器800经由因特网700连接,但也能够将显示器/存储器800设置在LAN600上,将本系统封闭在LAN内而构成。
机器人应用管理装置、末端计算机装置以及未引入虚拟容器技术的计算机装置分别具备用于与LAN600连接的通信模块部101、201、301、401、501。各通信模块部可以经由有线网络进行连接,但优选为,至少与移动的机器人直接连接的计算机装置300和其他装置之间经由WiFi等无线网络进行连接。WiFi能够处理图像、声音、点云等大容量数据,在室内较强这一点上也是现实的选择项。
而且,为了提供多跳WiFi接入点环境,不仅机器人应用管理装置(主)100,而且机器人应用管理装置(副)200也具备无线通信基站提供部102、202(例如,依据无线分布系统(WDS:Wireless Distribution System)标准的无线LAN适配器等)。WDS支持通过收发无线LAN的信号并进行中继来用于扩大能够通信的范围的功能。由此,只要有电源,就能够通过WiFi网络来覆盖移动机器人移动的全部范围。
机器人应用管理装置(主)100的组执行型逻辑容器用虚拟化环境提供部103包括虚拟容器编排工具的管理器功能(Docker Swarm Manager),参照操作步骤记录簿存储部105,将构成机器人系统的装置组捆绑(聚类)为集群进行管理。被管理的一侧的各装置中的组执行型逻辑容器用虚拟化环境提供部303、304包含虚拟容器编排工具的代理功能(Docker Swarm Agent)。
机器人应用管理装置(副)200的组执行型逻辑容器用虚拟化环境提供部203包含虚拟容器编排工具的管理器功能,在与机器人应用管理装置(主)100分担功能的基础上,参照操作步骤记录簿存储部205,进行构成机器人系统的装置组的管理。也能够将机器人应用管理装置的计算机资源与末端计算机装置的计算机资源同样用于机器人应用的执行,在该情况下,组执行逻辑容器用虚拟化环境提供部103、104也包含虚拟容器编排工具的代理功能。
机器人应用管理装置(主)100的组执行型逻辑容器用虚拟化环境提供部103也具备镜像记录簿存储部(Docker注册表)104,对使构成机器人系统的各装置动作的虚拟容器的实体即能够执行的程序(Docker镜像)进行管理。机器人应用管理装置(副)200的组执行型逻辑容器用虚拟化环境提供部203也可以存储镜像记录簿的全部或一部分。
通过机器人应用管理装置(主)100的组执行型逻辑容器用虚拟化环境提供部103,能够将各虚拟容器的标准输出/标准错误输出收集于一处,并且仅通过一个命令,就能够如设置文件(操作步骤记录簿)中所描述的那样,跨主机(构成集群的装置)地启动/配置/停止多个虚拟容器。另外,如后文所述,通过设为无状态的应用,能够容易地进行各服务的纵向扩容(scale up))/纵向缩容(scale down)。
另外,机器人应用管理装置(主)100的状态显示部107通过组执行型逻辑容器用虚拟化环境提供部103的作用,能够取得跨主机(构成集群的装置)地在各虚拟容器中运行的服务的运转状态作为一览。该一览能够由机器人系统的用户等在显示器800等中进行确认。
这样,通过设置机器人应用管理装置,能够集中地处理分散于多个主机的虚拟容器。因此,能够期待运用/监控方面的优化。
而且,机器人应用管理装置(主)100也可以通过具备公共信息分发部106(包括未图示的公共信息记录簿存储部)来为机器人系统构建网络环境。该网络环境的至少一部分构建也可以在机器人应用管理装置(主)100或被聚类的其他装置上通过虚拟容器来执行。
如此进行的网络环境的构建例如可以包括时间同步(使用网络时间协议进行自动时间同步)、名称解析(使用域名系统进行基于主机名的地址解析)、地址赋予(使用动态主机配置协议等自动地赋予IP地址)、目录服务(使用轻量级目录访问协议等进行账户信息的集中管理)等。如此,通过机器人应用管理装置上的虚拟容器所执行的网络应用,例如即使在限制向公共NTP服务器的连接的企业网络中构建机器人系统的情况下,也能够自动地进行全部计算机的时间同步等。
另外,机器人应用管理装置(主)或(副)也可以具备传感器206。传感器206例如是环境传感器、照相机等信息收集设备,可以具备多个。这些传感器能够通过为了每个传感器而进行动作的虚拟容器来控制,并且通过这些虚拟容器协作,也能够构成传感器网络。
机器人应用管理装置还可以具备机器人应用开发环境。另外,也可以具备检测移动的机器人的位置信息的机构、分发地图的服务器功能。
上述机器人应用管理装置可以将使用ROS的移动机器人设为主要目标。此时,也能够以与充当WiFi接入点的情况浑然一体的方式,提供以网络/虚拟化技术为基础的环境。
在图2所例示的本系统中,机器人应用管理装置(主)100经由因特网700与具备组执行型逻辑容器用虚拟化环境提供部903的云服务装置(例如,IaaS)900连接,云服务装置900也作为构成机器人系统的装置组中的一个装置,使虚拟容器进行动作。
另外,也可以将没有引入虚拟容器技术的普通的云服务(例如,PaaS、SaaS等)经由因特网700与机器人应用管理装置(主)100连接,例如,将历史管理部107从通信模块101收集到的与机器人系统的控制、动作状态有关的信息的全部或一部分,保存到云服务提供的存储器800。
在图2的例子中,机器人应用管理装置(主)100在云服务与机器人的中间作为边缘设备而发挥作用。机器人应用管理装置(主)100由于能够将机器人系统用的局域网构建为与除此以外的网络分离的环境,因此,能够进行计算机资源的最佳分配,诸如将运行要求响应的速度、通信的安全性的服务的虚拟容器配置在局域网内、将运行其他服务的虚拟容器配置于云服务装置等。
只要使机器人应用管理装置(主)100的因特网连接部108和云服务装置900的因特网连接部908具有VPN网关的功能,即使使用外部的计算机资源,也能够确保通信的安全性。
在图2的例子中,虽然没有设置机器人应用管理装置(副)200,但当然也可以设置该装置。相反地,在图1的例子中,也可以设为没有设置机器人应用管理装置(副)200的结构。
图3示出了利用本系统使机器人装置1(300-1)用的机器人系统A和机器人装置2(300-2)用的机器人系统B运转的例子。在图中,WiFi(AP)意味着无线接入点,WiFi(CL)意味着无线客户端。机器人装置2与作为最近的接入点的机器人应用管理装置(副)200-2进行无线通信,但通过机器人应用管理装置(副)200-1的多跳功能,也能够与位于WiFi电波的覆盖范围外的机器人应用管理装置(主)100进行无线通信。
这里,例如,能够将机器人系统A由机器人应用管理装置(主)100、机器人应用管理装置(副)200-1、机器人装置300-1、以及未图示的计算机装置400构成,并将机器人系统B由机器人应用管理装置(主)100、机器人应用管理装置(副)200-2、机器人装置300-2、以及未图示的计算机装置400构成(即,针对每个集群指定成为动作对象的主机)。
在机器人系统A和机器人系统B为进行相同的动作的服务机器人的情况下,机器人系统A用的虚拟容器组和机器人系统B用的虚拟容器组也分别生成,例如,在计算机装置400中进行相同的服务的虚拟容器分为机器人系统A用和机器人系统B用这两个进行动作。
图4示出了利用Docker技术来安装本系统的情况的一例。在机器人应用管理装置(有时记为“RDB”)100/200、除此以外的计算机装置400以及机器人装置300这样的多个计算机资源上构建利用作为虚拟容器运行时的“Docker”和作为虚拟容器编排工具的“DockerSwarm”的虚拟容器构成的集群环境,运行机器人用虚拟容器(图中的“用于RDB-APPS的ROS容器(ROS Container For RDB-APPS)”),构建机器人系统。
在图4的例子中,构成集群的多个计算机装置(主机)各自的执行装置包含“Docker”、“RDB-APPS”、“用于RDB-APPS的ROS容器(ROS Container For RDB-APPS)”。“RDB-APPS”是在“Docker”的上层进行动作以面向各种机器人单独地操作虚拟容器的守护进程。安装有“Docker”和“RDB-APPS”的主机具备在图1~2中所说明的“组执行型逻辑容器用虚拟化环境提供部”。
作为机器人应用管理装置而发挥作用的计算机装置也可以具备:在“Docker”和“RDB-APPS”上作为“用于RDB-APPS的ROS容器(ROS Container For RDB-APPS)”进行上述的网络环境的构建(具有NTP、DNS、DHCP等功能)的公共信息分发部106;进行机器人环境的健康检查的功能部、收集与机器人的运转状况有关的信息并向显示器/存储器进行发送的状态显示部/历史管理部107;以及提供机器人应用开发环境的功能部等。由此,仅通过将机器人应用管理装置设置在因特网与服务机器人之间,就能够构建机器人专用的局域网和开发支持环境。
安装于各主机的“RDB-APPS”除了上述功能之外,还能够承担机器人硬件的驱动程序管理等。例如,“RDB-APPS”在其主机上启动虚拟容器时,若该虚拟容器与电动机(致动器)、各种传感器等硬件绑定,则能够指定该硬件的版本而在主机上设置用于运行硬件的驱动程序。由此,由于直接访问设备文件,因此与虚拟机管理程序类型相比,也产生在与硬件的连接中不易引发问题这样的容器型虚拟化的优点。
在图4的例子中,“用于RDB-APPS的ROS容器(ROS Container For RDB-APPS)”(图1~2的虚拟容器)可以将至少其一部分通过机器人系统的用户的安装来创建。在机器人应用管理装置上的Docker注册表配置有与“RDB-APPS”对应的标准“ROS容器”,机器人系统的用户可以基于该标准ROS容器,实施以Docker容器为中心的机器人系统开发。Docker注册表还允许瞬间复制任何数目的完全相同的ROS环境。
在上述的机器人系统开发中,将完成了OS、中间件的设置后的Docker容器镜像保存于Docker注册表,在开发机器人应用时,通过基于该容器镜像仅安装差分,能够实现修正作业的效率化。另外,通过针对一个Docker镜像设为一个包,能够防止环境的污染。
更详细而言,首先,利用存储在虚拟容器镜像记录簿存储部104(“Docker注册表”)中的模板镜像,仅将与模板镜像之间的差分描述为虚拟容器创建步骤记录簿(也被称为“Dockerfile”)。然后,使用该Dockerfile,执行创建虚拟容器镜像的命令,对新创建的镜像赋予名称,并保存于Docker注册表。
构成集群的各计算机装置(机器人应用管理装置、其他的设置在局域网内或设置在云上的计算机装置)上的各Docker容器(图1~2的虚拟容器)由驻留在机器人应用管理装置上的应用即“Docker Swarm Manager”(包含在“组执行型逻辑容器用虚拟化环境提供部”103/203中)进行综合监控。
各计算机装置被赋予用于明确各自的角色的标签,各计算机的“组执行型逻辑容器用虚拟化环境提供部”(包含驻留于各计算机装置的应用即“Docker Swarm Agent”)存储有所赋予的标签。“Docker Swarm Manager”参照赋予给各计算机装置的标签,选择具有适合于各虚拟容器的执行的标签的计算机装置(“Docker Swarm Agent”),进行任务分配。
由此,能够将各计算机装置(节点)或各虚拟容器(进程)的启动/监控、出自其的标准输出在机器人应用管理装置中统一地进行处理。因此,无论相关的计算机装置如何增加,机器人系统的用户都能够犹如一台那样进行操作。
另外,在此,说明了机器人应用管理装置成为管理器的例子,但构成集群的其他计算机装置也能够成为管理器。在该情况下,在各计算机装置参与到集群时,选择该装置是作为“Docker Swarm Manager”发挥作用还是作为“Docker Swarm Agent”发挥作用。应该选择哪一个是由各计算机装置的“组执行型逻辑容器用虚拟化环境提供部”存储的。
而且,能够经由机器人应用管理装置,使用VPN、HTTPS、MQTT等各协议,利用对机器人有用的云服务。例如,能够利用机器人动作所需的SaaS(Vision API、Voice API、机器学习等服务)。
也能够将rosbag等转储数据存储在作为上述云服务而提供的数据完整性和可用性高的存储器800上。也可以从收集到的数据中提取(过滤)机器人动作的管理所需的各种数据并进行保存。
另外,机器人应用管理装置不强制基于Docker容器的机器人系统开发,即使在使用以往的ROS开发方法的情况下,也能够享有机器人应用管理装置提供的各种网络基础设施功能等诸多便利性。另外,也能够仅将一部分功能进行Docker容器化,能够根据机器人系统的用户的情况而灵活运用。
图5示出了用于机器人应用管理装置100/200的无线通信基站提供部102/202(WiFi接入点)和通信模块部201(WiFi客户端)如图3所示那样通过多跳功能而扩展WiFi无线电波的覆盖范围的动作的流程的一例。
图6示出了用于使机器人应用管理装置100的公共信息分发部106(或者执行网络环境构建的虚拟容器)、机器人应用管理装置200以及末端计算机装置300/400的通信模块部201、301、401协作,用于使构成集群的多个计算机装置能够经由局域网进行通信的动作的流程的一例。
图7示出了利用Docker技术来安装本系统的情况下的动作的流程的一例。在本例中,机器人应用管理装置100/200和末端计算机装置300/400/900的组执行型逻辑容器用虚拟化环境提供部103、203、303、403、903构成实现一个或多个机器人系统的一个集群(构成集群的装置组的信息也被存储在“组执行型逻辑容器用虚拟化环境提供部”中),管理器在机器人应用管理装置100/200上动作,对多个代理上的各Docker容器进行创建(S72)或销毁(S76)。
就各计算机装置上的各Docker容器的部署(配置和启动的指示)而言,读入存储在虚拟容器操作步骤记录簿存储部105中的操作步骤(例如,yml描述),并由管理器进行(S71)。通过该“Docker Swarm Manager”,跨越主机地监控(池化)下属(属于同一集群)的“Docker Swarm Agent”的计算机资源,并在其上透明地管理虚拟容器的配置(S73)。因此,在属于集群的某个装置脱离时(S75),对于在该装置中运转的虚拟容器中的能够在其他装置中继续运转的虚拟容器,进行向移动目的地的装置的重新配置和启动。此时,在移动源的装置中运转的虚拟容器被停止,并根据需要被废弃。
图8示出了利用Docker技术来安装本系统的情况下的机器人应用管理装置100的历史管理部107的动作的流程的一例。另外,关于机器人应用管理装置100的状态显示部107的动作例,在图7中示出(S74)。
在本系统中,提供如下功能:在基于虚拟容器技术的集群环境下,即使在包含存在某种制约的装置(机器人等)的情况下,也能够实现与用于最佳地利用计算机资源的设计方针相匹配的安装。
图9示出了在利用Docker技术来安装本系统的情况下,用于实现在执行的装置的选择方面存在制约的虚拟容器的配置的结构的一例。
在“Docker Swarm Manager”的默认动作(应用的部署自动化工具)中,由于计算机资源是透明处理的,因此执行虚拟容器的主机选择由管理器判断为最佳的主机。
此时,在以下的情况下,将符合的虚拟容器配置于预期的主计算机,而不是配置于默认选择的主计算机。
1.伴有物理连接(USB连接等)的应用的虚拟容器。
2.需要GPU或需要丰富的存储器,并且需要在具有特定功能的计算机资源上的动作的应用的虚拟容器。
如图9的(a)所例示的那样,为了在如此预期的主计算机上配置虚拟容器而利用标签功能。在“Docker Swarm”中,对各代理(节点)预先赋予标签(在建立集群时存储于“组执行型逻辑容器用虚拟化环境提供部”)。在图中,对“环境(environment)”这一标签项目赋予“dev、test、prod”这样的标签中的任一个,对“存储器(storage)”这一标签项目赋予“disk、ssd”这样的标签中的任一个。虽然未图示,但有时也指定是否为边缘设备(作为具有上述特定功能的计算机资源的其他例子)这样的标签。
然后,在执行应用时,参照图9的(b)所例示的yml描述,部署虚拟容器。在yml描述中描述有与执行节点有关的标签的定义等,仅与由“service/db/deploy/placement/constraints/node.labels.storage”指定的标签一致的代理(该情况下为“ssd”)成为该虚拟容器可进行动作的主机。在图9的(a)中,存在5台的代理中的3台成为满足该条件的主机,仅在这3台中的某一台部署“db”这样的服务的虚拟容器。由此,能够控制进行动作的主机(仅在特定的节点进行动作)。
为了将在机器人系统中大量存在的物理连接的制约的影响范围抑制为最小限度,优选将存在物理连接的制约的虚拟容器创建为不具有状态(无状态)(例如,在需要保持状态的情况下,使虚拟容器的外部等具有状态)。另外,将不能搭载于机器人的(例如,需要重量、大容量电源的)计算机资源分离并且将机器人上的计算机资源的利用限制在所需的最小限度的思想,也可成为在创建机器人系统中的虚拟容器时应当采取的设计思想。
图10示出了在利用Docker技术来安装本系统的情况下,当构成集群的任一装置(主机)陷入动作不良时(例如,“Docker Swarm Manager”的心跳消失时),本系统为了应对该情况而采取的动作的一例。由此,能够进行在陷入动作不良的节点中运转的虚拟容器的重新启动、结束选项的指定、不同的主机中的陷入动作不良的节点的重新启动等。
首先,在对于在陷入动作不良的节点中运转的虚拟容器,仅存在一个与所定义的标签一致的代理的情况下(S90为是),不能进行系统恢复,直到相应的代理恢复为止(S93)。在该情况下,也可以进行图7中的虚拟容器的停止或废弃(S76)。
但是,通过将该作为处理对象而进行分配的虚拟容器设为不具有状态(无状态)的虚拟容器,能够在代理恢复后立即执行系统的恢复。即,“依赖于制约的部分”由动作所需的最小单位构成,并且“依赖于制约的部分”和“不依赖于制约的部分”通过遵守以松散耦合的方式进行动作这样的设计方针,能够以较少的停机时间进行系统恢复。
另一方面,在对于在陷入动作不良的节点中运转的虚拟容器,存在2个以上的与所定义的标签一致的代理的情况下(S90为否),通过“Docker Swarm”的作用,该虚拟容器能够立即在另一代理上启动(S91),从而机器人系统恢复(S92)。因此,对于图像处理、动作计划等能够在任何地方执行的处理,通过使其在任何代理上进行动作,从而即使某个主机装置停止工作,也能够在其他已经构成集群的主机中自动地重新启动进程。
但是,即使在表观上能够立即恢复,若虚拟容器是具有状态(有状态)的虚拟容器,则有时状态会被重置。在该情况下,通过设为将状态保持在虚拟容器外部这样的创建,也能够实现没有停机时间的系统。
构成集群的任一装置由于动作不良而从集群脱离的情况能够通过驻留在被安装于各个装置的“RDB-APPS”中的功能而检测出。例如,末端计算机装置的“RDB-APPS”通过定期地监控本装置的通信模块部,来定期地确认是否与有效的无线基站提供部连接。并且,当与无线基站的通信中断并经过一定时间(发生通信中断)时,停止经由RDB-APPS启动的虚拟容器(机器人应用)。
另一方面,机器人应用管理装置的“RDB-APPS”通过定期地监控本装置的无线基站提供部,来定期地确认处于构成集群的装置的一览(经由无线连接在一起的装置的一览)的各装置是否有效地连接。该一览由“RDB-APPS”存储,并基于定期的监控结果进行更新(如图10的S91那样,如果另一装置构成集群,则存储于一览的装置被变更)。
然后,机器人应用管理装置的“RDB-APPS”在与某个装置的通信中断并经过一定时间(发生通信中断)时,例如进行图10的动作。如果不存在能够利用的装置来代替发生了通信中断的装置,则基于组执行型逻辑容器用虚拟化环境提供部所管理的操作步骤记录簿,停止虚拟容器(机器人应用)。其后,当通过上述的定期监控检测出经由无线连接在一起的装置增加(发生了通信中断的装置或者代替该装置的装置被再次连接起来)的情况并经过一定时间时,基于操作顺序记录簿,在该连接起来的装置上启动虚拟容器(机器人应用)。
当归纳用于实现如机器人系统那样“存在制约的系统”的要求并且最佳地利用计算机资源的设计方针时,如以下所述。
A.通过虚拟容器编排工具,跨越主机地池化计算机资源,并在其上管理虚拟容器的配置。
B.将存在制约的系统分离为“依赖于制约的部分”和“不依赖于制约的部分”(所谓“制约”,意味着执行虚拟容器的主机受到限制)。
C.“依赖于制约的部分”由动作所需的最小单位构成。
D.“依赖于制约的部分”和“不依赖于制约的部分”以松散耦合的方式进行动作(例如,利用ROS的主题通信模型)。
通过用于实现该设计方针的机构和与其配合的安装,即使成为计算机资源的一部分不能利用的状态,也能够由其他计算机资源自动代替,并且即使系统的一部分停止工作,也能够使对其他部分造成的影响成为最小限度,由此能够防止牵连其他系统的连锁的停止工作。另外,停止工作的一部分系统也只要满足条件就能够自动地恢复,由此能够将制约带来的影响抑制为最小限度。
以上,以将本系统应用于实施连续的开发/运用的网络服务机器人领域的例子为中心进行了说明,但是本系统也能够应用于处理影像/声音/3D数据等大容量数据的IoT领域、提供作为多功能的WiFi接入点的网络基础设施的领域、经由云服务的硬件设备的共享经济或伴随于此的收费系统等。
安装于各主机上的“RDB-APPS”除了上述功能以外,还可以具备用于将虚拟容器技术部分地引入到系统的功能。由此,即使对Docker的处理不熟练的用户也能够实现容器类型虚拟化的低成本启动,在需要从Docker无论如何也无法识别出的各种硬件连接的情况下,能够允许裸机混合环境。
图11示出了在利用Docker技术来安装本系统的情况下,用于在本系统中将引入了虚拟容器技术的装置和没有引入虚拟容器技术的装置混合而构成系统的结构的一例。在为仅进行虚拟容器之间的协作即可的虚拟容器B的情况下,在启动该虚拟容器B时,通过分配Docker用的私有IP地址(eth0:199.0.2.3),并将其变换为配置有该虚拟容器B的节点的主机OS的IP地址(203.0.113.5),从而进行经由局域网的通信。
与此相对,在为要求与没有引入虚拟容器技术的装置的协作的虚拟容器A的情况下,在启动该虚拟容器A时,除了分配Docker用的私有IP地址(eth0:192.0.2.6)以外,还分配与配置有虚拟容器A的节点的主机OS相同的LAN网段的未分配的IP地址(eth1:203.0.113.7)。eth0将所分配的IP地址变换为配置有虚拟容器A的主机OS的IP地址(203.0.113.5)来进行经由LAN的通信,而eth1直接使用所分配的IP地址来与该LAN网段的设备(图1~2的计算机装置500)进行通信。
为了实现上述机构,例如“RDB-APPS”包括用于对配置在本装置上的虚拟容器的启动(不管是通过Swarm自动地启动还是由用户手动地启动,并且,无论是在机器人应用的执行开始时被配置并启动,还是在机器人应用的执行期间从其他设置被重新配置并启动)进行检测,并与该检测联动地执行以下的处理。
首先,参照赋予到虚拟容器的标志,判别是否应该分配与主机OS相同的LAN网段的IP地址(即,判别是否为要求与未引入虚拟容器技术的装置的协作的虚拟容器)。
然后,在应该分配的情况下,向已启动的虚拟容器分配Docker用的虚拟接口(eth0)以外的虚拟接口(eth*),分配对已启动的虚拟容器的主机名进行散列而生成的物理地址(MAC地址),使用该物理地址和虚拟容器的主机名对DHCP服务器或路由器请求IP地址的发行,并将所发行的IP地址分配给虚拟接口(eth*)。也可以在分配了IP地址后,实施向LAN或WAN的通信确认。
图12示出了对于搭载有多个照相机的图像检查用移动机器人(通过自主行驶移动到任意位置并拍摄高分辨率图像,并通过图像解析来实施现实世界的分析的机器人,这里称为“现实机器人”),利用Docker技术构建了本系统的一例。
图12的例子中的分布式计算系统由机器人应用管理装置(“RDB”)和其他3台计算机构成。所谓其他3台,是搭载于现实机器人的低功耗的“计算机A(Computer_A)”和“计算机B(Computer_B)”以及高性能CPU进行动作而专用于计算的“高CPU计算机(High_CPU_Computer)”。各计算机通过由RDB提供的WiFi网络而相互连接。
另外,在各计算机引入有用于面向机器人单独操作容器的守护进程(“RDB-APPS”),在各计算机上,Docker容器(用于RDB-APPS的ROS容器“ROS Container For RDB-APPS”)运转。该Docker容器是基于标准ROS容器,以节点为单位对ROS应用进行集成所得的容器。然后,通过集成所得的Docker容器的集合,提供机器人服务。
在Computer_A连接有与USB照相机、移动机器人、以及扬声器或麦克风等音频设备。为了从Docker容器控制这些存在物理连接的设备,在图12的例子中,利用“DockerCompose”来安装进行该控制的虚拟容器。这也可以通过使用“Docker Swarm”,根据在容器启动时所指定的标签“docker-compose.yml”选择执行节点的功能来实现。
在部署于该Computer_A上的虚拟容器中,例如具有激光测距装置(以太网(注册商标)连接)动作用容器“urg_node”、多个照相机(USB连接)动作容器“usb_cam”、扬声器/麦克风(音频插孔连接)容器“audio_common”、以及移动机器人(USB连接)驱动器容器“turtlebot_bringup”。虽然“urg_node”是可以配置于另一计算机来启动的虚拟容器,但是“usb_cam”、“audio_common”和“turtlebot_bringup”由于是控制存在物理连接的设备的虚拟容器,所以需要配置于Computer_A来启动。
在搭载于现实机器人的另一计算机资源即Computer_B上部署的虚拟容器中,例如具有画面(串行总线连接)控制用容器“ros_eye”。
在设置于与现实机器人不同的场所的计算机资源即High_CPU_Computer上部署的虚拟容器中,例如具有移动机器人的路径搜索计算用的容器“amcl”、将由Computer_A上的“usb_cam”拍摄到的动态图像变换为HTML5的容器“web_video_server”、用于计算从移动机器人的当前位置到充电器的路径的容器“kobuki_auto_docking”、用于以HTML5处理ROS的容器“roswww”和“ros_bridge_server”、用于压缩Computer_A上的“usb_cam”的图像的容器“image_transport”、用于计算/发布移动机器人的姿态(四元数)的容器“robot_pose_publisher”、以及声音合成用的容器“bridge_ojtalk_audio”。
在本例中,从将存在物理连接的制约的虚拟容器创建为不具有状态(无状态)的观点出发,“usb_cam”容器拍摄到的内容的保存等由“web_video_server”或“image_transport”等其他的容器执行,这些其他的容器不存在物理连接的制约,因此被部署于High_CPU_Computer,而不是部署在Computer_A上。
在自身也为计算机资源的RDB上部署的虚拟容器中,例如具有用于进行ROS参与节点的地址解析的容器“roscore”。RDB的CPU、存储器、盘等的规格只要通过在RDB上动作的Docker容器的服务来增减即可,在想要使RDB执行进阶计算的情况下,只要利用更高规格的计算机、搭载有GPU的计算机即可。
另外,RDB例如也可以具备气温传感器、气压传感器以及湿度传感器,在该情况下,用于控制气温传感器的Docker容器、用于控制气压传感器的Docker容器、用于控制湿度传感器的Docker容器是控制存在物理连接的设备的虚拟容器,所以作为需要配置于RDB来启动的虚拟容器而部署在RDB上。
以上,对本发明的实施方式进行了说明,当然,本领域技术人员可以进行各种变形、改良、应用等来实施上述实施方式,这样的方式也包含在本发明的范围内。
权利要求书(按照条约第19条的修改)
1.(修改后)一种机器人应用管理装置,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理装置的特征在于,具备:
将装置组作为用于执行所述机器人应用的集群而进行管理的单元,所述装置组包括与所述机器人应用管理装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置,
将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,
在构成所述集群的装置组中的任一装置陷入动作不良、所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
2.根据权利要求1所述的机器人应用管理装置,其特征在于,
将与所述机器人应用管理装置经由外部网络连接的至少一个云服务装置包括在构成所述集群的装置组中。
3.根据权利要求1或2所述的机器人应用管理装置,其特征在于,
在所述多种虚拟容器中存在第三种虚拟容器,所述第三种虚拟容器由于需要给定以上的处理能力或存储容量,因而在执行该虚拟容器的装置的选择方面存在其他制约,
所述第三种虚拟容器与所述第一种虚拟容器及第二种虚拟容器以松散耦合的方式进行动作,
对于第三种虚拟容器,选择满足所述其他制约的装置来进行所述配置。
4.根据权利要求1至3中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的步骤进行存储。
5.根据权利要求1至4中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对表示构成所述集群的装置组的各装置满足哪个制约的信息进行存储。
6.根据权利要求1至5中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:以对所述多种虚拟容器中的每种虚拟容器进行配置的装置能够取得该虚拟容器能够执行的程序的方式,存储该能够执行的程序。
7.根据权利要求1至6中任一项所述的机器人应用管理装置,其特征在于,
所述虚拟容器能够执行的程序是将构成所述机器人应用的应用程序和操作系统即OS打包而成的,在各装置的主机OS上形成按每个虚拟容器分离出的空间,所述虚拟容器能够执行的程序从所述主机操作系统看起来像是进程那样被执行。
8.根据权利要求1至7中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:在构成所述集群的装置组中的任一装置陷入动作不良的情况下,将由该陷入动作不良的装置启动的虚拟容器重新配置于构成所述集群的其他装置并启动,由此继续所述机器人应用的执行,
对于所述在执行的装置的选择方面存在制约的虚拟容器,选择满足该制约的装置来进行所述重新配置,在除了所述陷入动作不良的装置以外不存在满足所述制约的装置的情况下,停止所述机器人应用的执行。
9.(删除)
10.(修改后)根据权利要求1至8中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备:
在所述虚拟容器被启动的装置不是构成所述集群的装置的情况下,使该虚拟容器停止的单元;以及
存储用于使所述虚拟容器停止的步骤的单元。
11.(修改后)根据权利要求1至8、10中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对表示所述多种虚拟容器中的每种虚拟容器被配置于哪个装置且处于包含启动中或停止中在内的哪种状态的信息进行收集,并向对用户进行显示的服务或存储历史的服务中的至少一方进行发送。
12.(修改后)根据权利要求1至8、10至11中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:支持网络连接,使得构成所述集群的各装置中的各虚拟容器能够经由所述局域网进行通信,
该单元的至少一部分通过将所述多种虚拟容器中的一个配置于本装置并启动而设置。
13.(修改后)根据权利要求1至8、10至12中任一项所述的机器人应用管理装置,其特征在于,
所述至少一个机器人装置包括移动的机器人装置,
所述局域网中的至少与所述移动的机器人装置连接的连接部分是以无线的方式构成的,
所述机器人应用管理装置还具备用于所述无线连接的接入点功能或多跳功能中的至少一方。
14.(修改后)根据权利要求1至8、10至13中任一项所述的机器人应用管理装置,其特征在于,
将具备所述机器人应用管理装置所具备的单元之中的至少一部分的至少一个副机器人应用管理装置包括在构成所述集群的装置组中。
15.(修改后)根据权利要求1至8、10至14中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置位于所述局域网与外部网络的边界,
所述机器人应用管理装置还具备用于保护与所述局域网连接的各装置免受所述外部网络的影响的单元。
16.(修改后)根据权利要求1至8、10至15中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备传感器,该传感器用于为所述机器人应用输入物理环境的数据,
将控制所述传感器的虚拟容器作为所述多种虚拟容器中的一个而配置于本装置并启动。
17.(修改后)根据权利要求1至8、10至16中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:赋予用于网络连接的地址,使得构成所述集群的至少一个装置中的至少一个虚拟容器能够经由所述局域网与未构成所述集群的装置进行通信。
18.(修改后)一种系统,其具备:
机器人应用管理装置,用于通过使多种虚拟容器协作地执行来执行机器人应用;以及
至少一个机器人装置和至少一个计算机装置,与所述机器人应用管理装置经由局域网连接,
所述系统的特征在于,具备:
将所述系统所具备的装置组作为用于执行所述机器人应用的集群而进行管理的单元;以及
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置,
将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,
在构成所述集群的装置组中的任一装置陷入动作不良、所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
19.(修改后)一种机器人应用管理方法,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理方法的特征在于,
将装置组作为用于执行所述机器人应用的集群而进行管理,所述装置组包括与执行所述机器人应用管理方法的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置,
将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,
在构成所述集群的装置组中的任一装置陷入动作不良、所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
20.(修改后)一种机器人应用管理程序,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理程序的特征在于,具备:
将装置组作为用于执行所述机器人应用的集群而进行管理的程序代码,所述装置组包括与安装所述机器人应用管理程序的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及
用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的程序代码,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置,
将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,
在构成所述集群的装置组中的任一装置陷入动作不良、所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
Claims (20)
1.一种机器人应用管理装置,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理装置的特征在于,具备:
将装置组作为用于执行所述机器人应用的集群而进行管理的单元,所述装置组包括与所述机器人应用管理装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置。
2.根据权利要求1所述的机器人应用管理装置,其特征在于,
将与所述机器人应用管理装置经由外部网络连接的至少一个云服务装置包括在构成所述集群的装置组中。
3.根据权利要求1或2所述的机器人应用管理装置,其特征在于,
在所述多种虚拟容器中存在第三种虚拟容器,所述第三种虚拟容器由于需要给定以上的处理能力或存储容量,因而在执行该虚拟容器的装置的选择方面存在其他制约,
所述第三种虚拟容器与所述第一种虚拟容器及第二种虚拟容器以松散耦合的方式进行动作,
对于第三种虚拟容器,选择满足所述其他制约的装置来进行所述配置。
4.根据权利要求1至3中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的步骤进行存储。
5.根据权利要求1至4中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对表示构成所述集群的装置组的各装置满足哪个制约的信息进行存储。
6.根据权利要求1至5中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:以对所述多种虚拟容器中的每种虚拟容器进行配置的装置能够取得该虚拟容器能够执行的程序的方式,存储该能够执行的程序。
7.根据权利要求1至6中任一项所述的机器人应用管理装置,其特征在于,
所述虚拟容器能够执行的程序是将构成所述机器人应用的应用程序和操作系统即OS打包而成的,在各装置的主机OS上形成按每个虚拟容器分离出的空间,所述虚拟容器能够执行的程序从所述主机操作系统看起来像是进程那样被执行。
8.根据权利要求1至7中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:在构成所述集群的装置组中的任一装置陷入动作不良的情况下,将由该陷入动作不良的装置启动的虚拟容器重新配置于构成所述集群的其他装置并启动,由此继续所述机器人应用的执行,
对于所述在执行的装置的选择方面存在制约的虚拟容器,选择满足该制约的装置来进行所述重新配置,在除了所述陷入动作不良的装置以外不存在满足所述制约的装置的情况下,停止所述机器人应用的执行。
9.根据权利要求1至8中任一项所述的机器人应用管理装置,其特征在于,
将所述在执行的装置的选择方面存在制约的虚拟容器设为无状态的虚拟容器,
在构成所述集群的装置组中的任一装置陷入动作不良、所述机器人应用的执行停止的情况下,在该陷入动作不良的装置或者代替其的装置作为构成所述集群的装置而恢复后,进行所述虚拟容器的配置和启动,由此重新开始所述机器人应用的执行。
10.根据权利要求1至9中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备:
在所述虚拟容器被启动的装置不是构成所述集群的装置的情况下,使该虚拟容器停止的单元;以及
存储用于使所述虚拟容器停止的步骤的单元。
11.根据权利要求1至10中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:对表示所述多种虚拟容器中的每种虚拟容器被配置于哪个装置且处于包含启动中或停止中在内的哪种状态的信息进行收集,并向对用户进行显示的服务或存储历史的服务中的至少一方进行发送。
12.根据权利要求1至11中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:支持网络连接,使得构成所述集群的各装置中的各虚拟容器能够经由所述局域网进行通信,
该单元的至少一部分通过将所述多种虚拟容器中的一个配置于本装置并启动而设置。
13.根据权利要求1至12中任一项所述的机器人应用管理装置,其特征在于,
所述至少一个机器人装置包括移动的机器人装置,
所述局域网中的至少与所述移动的机器人装置连接的连接部分是以无线的方式构成的,
所述机器人应用管理装置还具备用于所述无线连接的接入点功能或多跳功能中的至少一方。
14.根据权利要求1至13中任一项所述的机器人应用管理装置,其特征在于,
将具备所述机器人应用管理装置所具备的单元之中的至少一部分的至少一个副机器人应用管理装置包括在构成所述集群的装置组中。
15.根据权利要求1至14中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置位于所述局域网与外部网络的边界,
所述机器人应用管理装置还具备用于保护与所述局域网连接的各装置免受所述外部网络的影响的单元。
16.根据权利要求1至15中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备传感器,该传感器用于为所述机器人应用输入物理环境的数据,
将控制所述传感器的虚拟容器作为所述多种虚拟容器中的一个而配置于本装置并启动。
17.根据权利要求1至16中任一项所述的机器人应用管理装置,其特征在于,
所述机器人应用管理装置还具备如下单元:赋予用于网络连接的地址,使得构成所述集群的至少一个装置中的至少一个虚拟容器能够经由所述局域网与未构成所述集群的装置进行通信。
18.一种系统,其具备:
机器人应用管理装置,用于通过使多种虚拟容器协作地执行来执行机器人应用;以及
至少一个机器人装置和至少一个计算机装置,与所述机器人应用管理装置经由局域网连接,
所述系统的特征在于,具备:
将所述系统所具备的装置组作为用于执行所述机器人应用的集群而进行管理的单元;以及
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的单元,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置。
19.一种机器人应用管理方法,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理方法的特征在于,
将装置组作为用于执行所述机器人应用的集群而进行管理,所述装置组包括与执行所述机器人应用管理方法的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置。
20.一种机器人应用管理程序,其用于通过使多种虚拟容器协作地执行来执行机器人应用,所述机器人应用管理程序的特征在于,具备:
将装置组作为用于执行所述机器人应用的集群而进行管理的程序代码,所述装置组包括与安装所述机器人应用管理程序的装置经由局域网连接的至少一个机器人装置和至少一个计算机装置;以及
用于将所述多种虚拟容器中的每种虚拟容器配置于构成所述集群的装置组中的任一装置并启动的程序代码,
在所述多种虚拟容器中存在第一种虚拟容器和第二种虚拟容器,所述第一种虚拟容器能选择任意的装置作为执行该虚拟容器的装置,所述第二种虚拟容器由于需要机器人装置中的物理连接,因而在执行该虚拟容器的装置的选择方面存在制约,
所述第一种虚拟容器和所述第二种虚拟容器以松散耦合的方式进行动作,
对于第二种虚拟容器,选择满足所述制约的装置来进行所述配置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-011123 | 2018-01-26 | ||
JP2018011123A JP6572330B2 (ja) | 2018-01-26 | 2018-01-26 | ロボットアプリケーション管理装置、システム、方法及びプログラム |
PCT/JP2019/002517 WO2019146763A1 (ja) | 2018-01-26 | 2019-01-25 | ロボットアプリケーション管理装置、システム、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111656320A true CN111656320A (zh) | 2020-09-11 |
Family
ID=67396054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980010102.2A Pending CN111656320A (zh) | 2018-01-26 | 2019-01-25 | 机器人应用管理装置、系统、方法及程序 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11327856B2 (zh) |
JP (1) | JP6572330B2 (zh) |
CN (1) | CN111656320A (zh) |
WO (1) | WO2019146763A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113286009A (zh) * | 2021-07-20 | 2021-08-20 | 上海景吾智能科技有限公司 | 远端HTTP网页实时查看机器人rosbag的播放方法及系统 |
CN113296807A (zh) * | 2021-05-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6792125B1 (ja) * | 2019-07-02 | 2020-11-25 | ラトナ株式会社 | エッジシステム、エッジシステムの制御方法、エッジシステムの制御に用いるコンピュータプログラム、及び、その記録媒体 |
KR102261306B1 (ko) * | 2019-11-11 | 2021-06-08 | 주식회사 스프링클라우드 | 자율주행시스템 |
JP2023525457A (ja) * | 2020-03-31 | 2023-06-16 | ステルス テクノロジーズ ピーティーワイ リミテッド | 自律走行する車両、またはロボットの制御 |
KR102496687B1 (ko) * | 2020-09-23 | 2023-02-07 | 한국전자통신연구원 | 도커화된 인공지능 라이브러리에 대한 프록시 생성 장치 및 방법, 도커화된 인공지능 라이브러리 기반 ros 분산 시스템 |
JP2022091301A (ja) * | 2020-12-09 | 2022-06-21 | オムロン株式会社 | 制御システムおよび制御方法 |
CN113127192B (zh) * | 2021-03-12 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种多个服务共享同一个gpu的方法、系统、设备及介质 |
CA3221198A1 (en) * | 2021-06-29 | 2023-01-05 | Kinova Inc. | Containerized plug-in system for robotics |
US20230102169A1 (en) * | 2021-09-27 | 2023-03-30 | UiPath, Inc. | System and computer-implemented method for controlling a robot of a virtual machine |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286188A (zh) * | 2008-04-03 | 2008-10-15 | 深圳先进技术研究院 | 一种虚拟仿真系统中力觉反馈的计算方法 |
US20090164037A1 (en) * | 2007-12-24 | 2009-06-25 | Snecma Services | Method of selecting an arrangement of sectors for a turbomachine nozzle |
JP2009282652A (ja) * | 2008-05-21 | 2009-12-03 | Yokogawa Electric Corp | 分散アプリケーションの配置先ノード選択支援システム、配置先ノード選択支援方法およびプログラム |
US20100115621A1 (en) * | 2008-11-03 | 2010-05-06 | Stuart Gresley Staniford | Systems and Methods for Detecting Malicious Network Content |
CN102087592A (zh) * | 2009-12-08 | 2011-06-08 | J.移动公司 | 用于执行机器人应用程序的终端装置 |
US20130042115A1 (en) * | 2011-08-09 | 2013-02-14 | CloudPassage, Inc. | Systems and methods for implementing security in a cloud computing environment |
CN103386687A (zh) * | 2013-07-16 | 2013-11-13 | 河北工业大学 | 一种具有力觉临场感的2-dof机器人遥操作装置 |
US20150046425A1 (en) * | 2013-08-06 | 2015-02-12 | Hsiu-Ping Lin | Methods and systems for searching software applications |
CN107329799A (zh) * | 2017-05-22 | 2017-11-07 | 国网安徽省电力公司信息通信分公司 | 一种融合Docker容器与KVM虚拟化技术的系统 |
US20180026944A1 (en) * | 2016-07-21 | 2018-01-25 | AT&T Global Network Services (U.K.) B.V. | Assessing risk associated with firewall rules |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11861511B2 (en) * | 2017-10-04 | 2024-01-02 | Trustees Of Tufts College | Systems and methods for ensuring safe, norm-conforming and ethical behavior of intelligent systems |
US20190325763A1 (en) * | 2018-04-22 | 2019-10-24 | Intel Corporation | Real and virtual collision-free movement of autonomous vehicles in mixed-reality environments |
TWI726236B (zh) * | 2018-09-05 | 2021-05-01 | 林保成 | 個人雲系統及其相關本地化方法 |
-
2018
- 2018-01-26 JP JP2018011123A patent/JP6572330B2/ja active Active
-
2019
- 2019-01-25 CN CN201980010102.2A patent/CN111656320A/zh active Pending
- 2019-01-25 US US16/964,286 patent/US11327856B2/en active Active
- 2019-01-25 WO PCT/JP2019/002517 patent/WO2019146763A1/ja active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164037A1 (en) * | 2007-12-24 | 2009-06-25 | Snecma Services | Method of selecting an arrangement of sectors for a turbomachine nozzle |
CN101286188A (zh) * | 2008-04-03 | 2008-10-15 | 深圳先进技术研究院 | 一种虚拟仿真系统中力觉反馈的计算方法 |
JP2009282652A (ja) * | 2008-05-21 | 2009-12-03 | Yokogawa Electric Corp | 分散アプリケーションの配置先ノード選択支援システム、配置先ノード選択支援方法およびプログラム |
US20100115621A1 (en) * | 2008-11-03 | 2010-05-06 | Stuart Gresley Staniford | Systems and Methods for Detecting Malicious Network Content |
CN102087592A (zh) * | 2009-12-08 | 2011-06-08 | J.移动公司 | 用于执行机器人应用程序的终端装置 |
US20130042115A1 (en) * | 2011-08-09 | 2013-02-14 | CloudPassage, Inc. | Systems and methods for implementing security in a cloud computing environment |
CN103386687A (zh) * | 2013-07-16 | 2013-11-13 | 河北工业大学 | 一种具有力觉临场感的2-dof机器人遥操作装置 |
US20150046425A1 (en) * | 2013-08-06 | 2015-02-12 | Hsiu-Ping Lin | Methods and systems for searching software applications |
US20180026944A1 (en) * | 2016-07-21 | 2018-01-25 | AT&T Global Network Services (U.K.) B.V. | Assessing risk associated with firewall rules |
CN107329799A (zh) * | 2017-05-22 | 2017-11-07 | 国网安徽省电力公司信息通信分公司 | 一种融合Docker容器与KVM虚拟化技术的系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296807A (zh) * | 2021-05-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
CN113296807B (zh) * | 2021-05-12 | 2023-10-31 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
CN113286009A (zh) * | 2021-07-20 | 2021-08-20 | 上海景吾智能科技有限公司 | 远端HTTP网页实时查看机器人rosbag的播放方法及系统 |
CN113286009B (zh) * | 2021-07-20 | 2021-10-26 | 上海景吾智能科技有限公司 | 远端HTTP网页实时查看机器人rosbag的播放方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6572330B2 (ja) | 2019-09-04 |
US11327856B2 (en) | 2022-05-10 |
US20210034479A1 (en) | 2021-02-04 |
WO2019146763A1 (ja) | 2019-08-01 |
JP2019128863A (ja) | 2019-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111656320A (zh) | 机器人应用管理装置、系统、方法及程序 | |
KR102125260B1 (ko) | 분산 지능모듈의 통합관리 시스템 | |
US10606660B1 (en) | Planned cloud resource management | |
CN109976774B (zh) | 区块链节点部署方法、装置、设备和存储介质 | |
US10044795B2 (en) | Methods and apparatus for rack deployments for virtual computing environments | |
CN106790595B (zh) | 一种Docker容器主动负载均衡装置及方法 | |
US11294699B2 (en) | Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group | |
EP3213470B1 (en) | Universal customer premises equipment | |
US20130138818A1 (en) | Method for accessing an automation system and system operating according to the method | |
CN112311646B (zh) | 基于超融合系统的混合云及部署方法 | |
JP2009122963A (ja) | デプロイ方法およびシステム | |
US11461120B2 (en) | Methods and apparatus for rack nesting in virtualized server systems | |
CN115965517B (zh) | 图形处理器资源管理方法及装置、电子设备和存储介质 | |
US20220237090A1 (en) | Autonomous organization and role selection of homogenous workers | |
CN112667293B (zh) | 一种部署操作系统的方法、装置及存储介质 | |
JP4637140B2 (ja) | 計算機システム | |
WO2021002084A1 (ja) | システム、システムの制御方法 | |
JPWO2017170309A1 (ja) | ネットワークシステム、その管理方法および装置ならびにサーバ | |
US11271990B2 (en) | Allocation of digital resources within a local, modular computer network (edge cloud) | |
US20140122676A1 (en) | Method and Apparatus For Web Based Storage On Demand | |
KR20170047747A (ko) | 화면 압축 서비스 방법 및 그 방법을 수행하는 가상 네트워크 장치 | |
WO2013114829A1 (ja) | 情報処理システム、データセンタ、システム移行方法、及び、プログラム | |
CN117056029B (zh) | 资源处理方法、系统、装置、存储介质及电子设备 | |
KR102582777B1 (ko) | 에지 컴퓨팅 환경을 위한 경량 큐브에지 구성 방법 및 장치 | |
CN116339926B (zh) | 一种ats软件的容器化部署方法 |
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 |