JP7353341B2 - A method for controlling a robot that provides services in conjunction with a service application and a cloud server - Google Patents
A method for controlling a robot that provides services in conjunction with a service application and a cloud server Download PDFInfo
- Publication number
- JP7353341B2 JP7353341B2 JP2021171001A JP2021171001A JP7353341B2 JP 7353341 B2 JP7353341 B2 JP 7353341B2 JP 2021171001 A JP2021171001 A JP 2021171001A JP 2021171001 A JP2021171001 A JP 2021171001A JP 7353341 B2 JP7353341 B2 JP 7353341B2
- Authority
- JP
- Japan
- Prior art keywords
- robot
- sub
- service
- service application
- command
- 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
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/028—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/0405—Program-control specially adapted for machine tool control and not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1656—Program controls characterised by programming, planning systems for manipulators
- B25J9/1664—Program controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L53/00—Methods of charging batteries, specially adapted for electric vehicles; Charging stations or on-board charging equipment therefor; Exchange of energy storage elements in electric vehicles
- B60L53/30—Constructional details of charging stations
- B60L53/35—Means for automatic or assisted adjustment of the relative position of charging devices and vehicles
- B60L53/36—Means for automatic or assisted adjustment of the relative position of charging devices and vehicles by positioning the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0022—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the communication link
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/22—Command input arrangements
- G05D1/221—Remote-control arrangements
- G05D1/226—Communication links with the remote-control arrangements
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/247—Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/644—Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2101/00—Details of software or hardware architectures used for the control of position
- G05D2101/10—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Business, Economics & Management (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Mechanical Engineering (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Primary Health Care (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Robotics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Transportation (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
以下の説明は、サービスアプリケーションと連係してサービスを提供するロボットを制御する方法およびクラウドサーバに関する。 The following description relates to a cloud server and a method for controlling a robot that provides a service in conjunction with a service application.
自律走行ロボットとは、ロボットが自ら周辺を探りながら障害物を感知し、タイヤや足を利用して目的地までの最適経路を探索するロボットであって、自律走行車はもちろん、物流、ホテルサービス、掃除サービスなどのような多様な分野のために開発されて活用されている。 An autonomous robot is a robot that detects obstacles while exploring its surroundings, and uses its tires and feet to find the optimal route to its destination.It is used not only for autonomous vehicles but also for logistics and hotel services. It has been developed and utilized for various fields such as , cleaning services, etc.
例えば、特許文献1は、自律移動ロボットのための経路計画方法に関する技術であって、自宅やオフィス内で自律的に移動する移動ロボットが、障害物を回避しながら安全かつ迅速に目標点まで移動するための最適経路を計画する方法について開示している。
For example,
上述した情報は、本発明の理解を助けるためのものに過ぎず、従来技術の一部を形成しない内容を含むこともある。 The above information is only intended to aid in understanding the invention and may contain material that does not form part of the prior art.
クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法であって、サービスアプリケーションから受信した抽象化された命令を具体化して複数のサブ命令を生成し、具体化されたサブ命令をロボットに送信することによってロボットが制御されるようにする、ロボット制御方法を提供する。 A method of controlling a robot that provides a service in conjunction with a service application, executed by a cloud server, in which an abstracted command received from the service application is concretely generated to generate multiple sub-commands. A robot control method is provided in which a robot is controlled by sending sub-commands to the robot.
ロボットから受信したデータを分析して抽象化されたデータを生成し、抽象化されたデータをサービスアプリケーションに送信し、該当の抽象化されたデータに基づいて、サービスアプリケーションで、ロボットを制御するための命令を生成したり、ロボットのモニタリング情報を生成したりすることができるようにする、ロボット制御方法を提供する。 To analyze the data received from the robot to generate abstracted data, send the abstracted data to the service application, and control the robot with the service application based on the corresponding abstracted data. Provided is a robot control method that enables generation of commands and monitoring information for the robot.
一側面において、クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法であって、前記サービスアプリケーションから前記サービスを提供するための命令を受信する段階、前記受信した命令を具体化して複数のサブ命令を生成する段階、および前記ロボットに前記サブ命令の各サブ命令を送信する段階を含み、前記ロボットは、受信した前記各サブ命令に基づいて制御される、ロボット制御方法を提供する。 In one aspect, there is provided a method for controlling a robot that provides a service in cooperation with a service application, which is executed by a cloud server, including the step of receiving an instruction for providing the service from the service application; A robot control method, comprising: generating a plurality of sub-instructions by embodying the sub-instructions; and transmitting each sub-instruction of the sub-instructions to the robot, the robot being controlled based on the received sub-instructions. I will provide a.
前記ロボット制御方法は、前記サービスアプリケーションからの命令がバイパス対象命令であるかどうかを判定する段階をさらに含み、前記サブ命令を生成する段階は、前記サービスアプリケーションからの命令がバイパス対象命令でない場合に実行されてよい。 The robot control method further includes the step of determining whether the instruction from the service application is an instruction to be bypassed, and the step of generating the sub-instruction is performed when the instruction from the service application is not an instruction to be bypassed. May be executed.
前記ロボット制御方法は、前記サービスアプリケーションからの命令がバイパス対象命令であれば、前記サービスアプリケーションからの命令を前記ロボットに直に伝達する段階をさらに含み、前記ロボットは、前記伝達された命令に基づいて制御されてよい。ここで「直に伝達」とは、「受信した命令を具体化して複数のサブ命令を生成する段階」を経ずに、受信した命令をそのまま伝達することを言う。 The robot control method further includes the step of directly transmitting the command from the service application to the robot, if the command from the service application is a bypass target command, and the robot performs the command based on the transmitted command. may be controlled by Here, "direct transmission" refers to transmitting the received command as it is without going through the "step of embodying the received command and generating a plurality of sub-commands."
前記バイパス対象命令は、前記ロボットのUX(User Experience)と関連する構成を制御するための命令であってよい。 The bypass target command may be a command for controlling a configuration related to a UX (User Experience) of the robot.
前記各サブ命令は、前記ロボットが実行可能な単位命令であり、前記サブ命令を生成する段階は、前記受信した命令を複数の単位命令に分割することによって前記サブ命令を生成してよい。 Each of the sub-commands is a unit command executable by the robot, and the step of generating the sub-commands may include generating the sub-commands by dividing the received command into a plurality of unit commands.
前記サービスアプリケーションからの命令は、前記ロボットを目的地に移動させるようにする命令であり、前記サブ命令を生成する段階は、前記ロボットの現在地から前記目的地まで前記ロボットが移動しなければならない複数のウェイポイントを決定する段階、および前記ウェイポイントの各ウェイポイントに前記ロボットを移動させる命令を前記各サブ命令として前記ロボットに送信する段階を含み、前記ロボットは、前記ウェイポイントへの移動に対応する前記サブ命令にしたがって制御されることによって前記目的地に移動してよい。 The command from the service application is a command to cause the robot to move to a destination, and the step of generating sub-commands includes a plurality of commands for the robot to move from the current location of the robot to the destination. and transmitting an instruction for moving the robot to each of the waypoints to the robot as each sub-instruction, the robot responding to the movement to the waypoint. The vehicle may be moved to the destination by being controlled according to the sub-instruction to perform the sub-instruction.
前記各サブ命令を送信する段階は、前記各サブ命令を順に送信するが、前記サブ命令のうちの第1サブ命令を前記ロボットに送信する段階、前記第1サブ命令による前記ロボットの制御が完了した後、前記ロボットから完了レポートを受信する段階、および前記完了レポートを受信した後、前記サブ命令のうちの前記第1サブ命令の次に該当する第2サブ命令を前記ロボットに送信する段階を含んでよい。 In the step of transmitting each of the sub-commands, each of the sub-commands is transmitted in order, and in the step of transmitting a first sub-command of the sub-commands to the robot, control of the robot by the first sub-command is completed. after receiving the completion report from the robot; and after receiving the completion report, transmitting to the robot a second sub-instruction that is next to the first sub-instruction among the sub-instructions. may be included.
前記各サブ命令を送信する段階は、前記ロボットの状態をモニタリングする段階、および前記ロボットの状態に基づいて、前記サブ命令のうちで前記ロボットによる前記サービスの提供のために必要なサブ命令を前記ロボットに送信するか、予め送信されたサブ命令を取り消すための取消命令を前記ロボットに送信する段階を含んでよい。 The step of transmitting each of the sub-commands includes the step of monitoring the state of the robot, and transmitting the sub-commands necessary for the robot to provide the service from among the sub-commands based on the state of the robot. The method may include transmitting to the robot a cancellation command for canceling a sub-command that has been sent to the robot or has previously been sent.
前記ロボット制御方法は、前記ロボットから前記ロボットが収集したデータを受信する段階、前記データを分析して抽象化されたデータを生成する段階、および前記抽象化されたデータを前記サービスアプリケーションに送信する段階を含み、前記抽象化されたデータに基づいて、前記サービスアプリケーションでは、前記ロボットを制御するための命令が生成されるか、前記ロボットのモニタリング情報が生成されてよい。 The robot control method includes the steps of receiving data collected by the robot from the robot, analyzing the data to generate abstracted data, and transmitting the abstracted data to the service application. Based on the abstracted data, the service application may generate instructions for controlling the robot or generate monitoring information for the robot.
前記ロボット制御方法は、前記ロボットからのデータがバイパス対象データを含むかどうかを判定する段階、および前記ロボットからのデータのうちの前記バイパス対象データを前記サービスアプリケーションに直に伝達する段階をさらに含み、前記バイパス対象データは、前記ロボットの第1状態を示すデータを含んでよい。 The robot control method further includes the steps of determining whether data from the robot includes data to be bypassed, and directly transmitting the data to be bypassed among the data from the robot to the service application. , the bypass target data may include data indicating a first state of the robot.
前記抽象化されたデータを生成する段階は、前記ロボットからのデータを分析して前記ロボットが第2状態を示すかどうかを判定する段階、および前記判定の結果により、前記ロボットが第2状態を示すかどうかに関する情報を前記抽象化されたデータとして前記サービスアプリケーションに送信する段階を含んでよい。 The step of generating the abstracted data includes the step of analyzing data from the robot to determine whether the robot exhibits the second state, and the result of the determination determines whether the robot exhibits the second state. The service application may include the step of transmitting information regarding whether to display or not to the service application as the abstracted data.
前記ロボット制御方法は、前記サービスアプリケーションからの命令とは独立的に前記ロボットを制御するための独立命令を生成する段階、および前記ロボットまたは他のロボットに前記独立命令を送信する段階をさらに含み、前記独立命令は、前記ロボットに充電を要求する命令、前記ロボットの特定の地点への移動の経路を更新する命令、または前記ロボットが前記サービスを提供することができなくなったときに、前記他のロボットに前記サービスを提供するように要請する命令を含んでよい。 The robot control method further includes the steps of: generating an independent command for controlling the robot independently of commands from the service application; and transmitting the independent command to the robot or another robot, The independent command may be a command to request the robot to charge, a command to update the route of movement of the robot to a particular point, or a command to perform the other command when the robot is no longer able to provide the service. It may include instructions requesting the robot to provide the service.
前記サービスアプリケーションは、前記ロボットとはネットワークを介して区分されるサーバまたはクライアント上に実現され、前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、前記ロボットに送信される前記各サブ命令は、前記サービスと関連するコンテキスト情報を含まなくてよい。 The service application is implemented on a server or client that is separated from the robot via a network, and the instructions from the service application directly control the robot to provide the service. Each sub-instruction is an abstracted command that cannot be sent to the robot, and each sub-instruction is a concrete command of the abstracted command so that the robot can be directly controlled. Each sub-instruction may not include context information associated with the service.
前記サービスアプリケーションが前記ロボットにプラグイン(plug-in)されることにより、前記ロボットは、前記サービスアプリケーションと連係して前記サービスを提供するように実現され、前記サービスアプリケーションは複数であり、前記クラウドサーバは、複数のサービスアプリケーションのうちの他のサービスアプリケーションが前記ロボットとプラグインされるようにすることにより、前記ロボットが前記他のサービスアプリケーションと連係して他のサービスを提供するように制御してよい。 By plugging the service application into the robot, the robot is realized to provide the service in cooperation with the service application, and the service application is plural, and the robot is configured to provide the service in cooperation with the service application. The server controls the robot to cooperate with the other service application to provide other services by causing the other service application of the plurality of service applications to be plugged in with the robot. It's fine.
前記サービスアプリケーション、前記クラウドサーバ、および前記ロボットには、互いに異なる保安政策が設定されてよい。 Different security policies may be set for the service application, the cloud server, and the robot.
他の一側面において、クラウドサーバおよびサービスアプリケーションと連係してサービスを提供するロボットの制御方法であって、前記クラウドサーバから、前記サービスアプリケーションから前記クラウドサーバに送信された前記サービスを提供するための命令が具体化されることによって生成された複数のサブ命令の各サブ命令を受信する段階、および受信した前記各サブ命令に基づいて前記ロボットを制御する段階を含み、前記サービスアプリケーションは、前記ロボットとはネットワークを介して区分されるサーバまたはクライアント上に実現され、前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、前記ロボットに送信される前記各サブ命令は、前記サービスと関連するコンテキスト情報を含まない、ロボット制御方法を提供する。 In another aspect, there is provided a method for controlling a robot that provides a service in cooperation with a cloud server and a service application, the method comprising: providing the service transmitted from the service application to the cloud server; The service application includes the steps of receiving each sub-instruction of a plurality of sub-instructions generated by embodying the instruction, and controlling the robot based on each of the received sub-instructions, is realized on a server or client that is partitioned via a network, and the instructions from the service application are abstracted instructions that cannot directly control the robot to provide the service. and each of the sub-instructions is a concrete instruction of the abstracted instruction so as to be able to directly control the robot, and each of the sub-instructions sent to the robot is an instruction of the service. To provide a robot control method that does not include context information associated with the robot.
前記ロボット制御方法は、前記ロボットの制御と関連するデータを収集する段階、および前記収集されたデータを前記クラウドサーバに送信する段階をさらに含み、前記クラウドサーバに送信されたデータは、前記クラウドサーバで分析されることによって抽象化されたデータに加工され、前記サービスアプリケーションに送信され、前記抽象化されたデータに基づいて、前記サービスアプリケーションでは、前記ロボットを制御するための命令が生成されるか、前記ロボットのモニタリング情報を示す情報が生成されてよい。 The robot control method further includes the steps of collecting data related to controlling the robot, and transmitting the collected data to the cloud server, and the data transmitted to the cloud server is transmitted to the cloud server. is processed into abstracted data by being analyzed by the service application, and is sent to the service application, and based on the abstracted data, the service application generates an instruction for controlling the robot. , information indicating monitoring information of the robot may be generated.
前記ロボットは、前記サービスアプリケーションがプラグイン(plug-in)されることにより、前記サービスアプリケーションと連係して前記サービスを提供するように実現され、前記クラウドサーバにより、前記サービスアプリケーションではない他のサービスアプリケーションがプラグインされることにより、前記ロボットは、前記他のサービスアプリケーションと連係して他のサービスを提供するように制御されてよい。 The robot is realized by being plugged in with the service application to provide the service in cooperation with the service application, and the cloud server allows the robot to connect to other services other than the service application. By plugging in applications, the robot may be controlled to provide other services in conjunction with the other service applications.
他の一側面において、サービスアプリケーションと連係してサービスを提供するロボットを制御するクラウドサーバであって、コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記サービスアプリケーションから前記サービスを提供するための命令を受信し、前記受信した命令を具体化して複数のサブ命令を生成し、前記ロボットに前記サブ命令の各サブ命令を送信し、前記ロボットは、受信した前記各サブ命令に基づいて制御される、クラウドサーバを提供する。 In another aspect, a cloud server for controlling a robot providing a service in conjunction with a service application, the cloud server comprising at least one processor implemented to execute computer readable instructions, the at least one A processor receives an instruction for providing the service from the service application, embodies the received instruction to generate a plurality of sub-instructions, transmits each sub-instruction of the sub-instructions to the robot, and The robot provides a cloud server that is controlled based on each of the received sub-instructions.
ロボットが提供するサービスと関連するサービスロジックを含むサービスアプリケーションをロボットから分離することができる。サービスアプリケーションは、ロボットとはネットワークを介して区分されるサーバまたはクライアント上に実現することができる。 A service application containing service logic associated with the services provided by the robot can be separated from the robot. The service application can be implemented on a server or client that is separated from the robot via a network.
クラウドサーバが、サービスアプリケーションから受信される(ロボットを直接的に制御することのできない)抽象化された命令に基づいて、ロボットを直接的に制御するための単位命令に該当する具体化されたサブ命令を生成し、生成されたサブ命令にしたがってサービスを提供するようにロボットを制御することができる。 Based on the abstracted instructions received from the service application (which cannot directly control the robot), the cloud server generates a concrete sub-component that corresponds to a unit instruction for directly controlling the robot. The robot can be controlled to generate instructions and provide services according to the generated sub-instructions.
ロボット側では、ロボットが提供するサービスに対するコンテキスト情報を把握する必要がなくなり、サービスアプリケーション側では、ロボットの詳細な機能の制御方法を把握する必要がなくなるため、サービスアプリケーションの開発の複雑性を低め、拡張性を容易に高めることができる。 The robot side no longer needs to know the context information for the service provided by the robot, and the service application side no longer needs to know how to control the robot's detailed functions, reducing the complexity of service application development. Expandability can be easily increased.
多様なアプリケーションをロボットにプラグインすることができるため、異なるサービスを提供するロボットに容易にスイッチングすることができる。 A variety of applications can be plugged into the robot, making it easy to switch between robots providing different services.
以下、実施形態について、添付の図面を参照しながら詳しく説明する。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
図1は、一実施形態における、クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法を示した図である。 FIG. 1 is a diagram illustrating a method of controlling a robot that provides a service in conjunction with a service application, which is executed by a cloud server, in one embodiment.
図1では、ロボット100を通じてサービスを提供する(または、ロボット100を制御する)にあたり、クラウドサーバ120が、サービスアプリケーション110からの命令(抽象化された命令)を受信し、受信した命令を具体化し、具体化した命令にしたがってロボット100を制御する方法について説明している。
In FIG. 1, in providing a service through the robot 100 (or controlling the robot 100), the
また、図1では、ロボット100が制御されることにより、クラウドサーバ120がロボット100からロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してデータを抽象化し、抽象化されたデータをサービスアプリケーション110に送信する方法について説明している。
In FIG. 1, when the
クラウドサーバ120は、サービスアプリケーション110からの命令が、具体化が必要ないバイパス対象命令に該当するかどうかを判定してよく、命令がバイパス対象命令の場合は、該当の命令をロボット100に直に伝達(ルーティングまたはフォワーディング)してよい。
The
また、クラウドサーバ120は、ロボット100からのデータが、抽象化が必要ないバイパス対象データを含むかどうかを判定してよく、バイパス対象データの場合は、該当のデータを直にサービスアプリケーション110に伝達(ルーティングまたはフォワーディング)してよい。
Further, the
一例として、図に示すように、サービスアプリケーション110からの命令が「ウィンクして挨拶」のように、ロボット100のUX(User Experience)と関連する装置105(例えば、ロボット100の目に対応するLED、またはその他のサウンド出力装置など)を制御するためのものである場合、クラウドサーバ120は、このような命令をバイパス対象命令に該当すると判断してよい。このとき、命令はロボット100に伝達されてよく、ロボット100は、装置105を通じて挨拶に該当する表情およびサウンド(「こんにちは」)を出力してよい。
As an example, as shown in the figure, when a command from the
実施形態では、ロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションの部分が、ロボット100から分離されて実現されてよい。言い換えれば、実施形態は、特定のサービスを提供するためのロボット100を実現するためにサービスまたは該当のサービスと関連する機能を含むアプリケーションをロボット100内部に搭載しなければならなかった従来の技術に比べ、(サービスを運用および/または要請する側の)サービスアプリケーション110の複雑度を減らすことができ、ロボット100の拡張性を高めることができる。
In embodiments, portions of the service application that include service logic associated with services provided by the
従来の技術の場合は、ロボット100が提供するサービスと関連するサービスロジックがサービスアプリケーションとしてロボット100に搭載され、このようなロボットに搭載されたサービスアプリケーションが(サービスを運用および/または要請する側の)サービスアプリケーション110と相互作用しながらサービスを提供していた。
In the case of conventional technology, the service logic related to the service provided by the
これに比べ、実施形態の場合は、ロボット100にはサービスロジックを含むサービスアプリケーションが搭載されないため、ロボット100側では、サービスと関連するコンテキスト情報を把握することができず、ロボット100は、クラウドサーバ120からロボット100の動きおよびロボット100が提供する機能を制御するための命令(すなわち、ロボット100が実行可能な単位命令)だけを受信して動作するようになる。
In contrast, in the case of the embodiment, since the
一方、命令を下すサービスアプリケーション110側では、(ロボットを直接的に制御するための具体化された命令ではない)抽象化された命令をクラウドサーバ120に送信してよく、クラウドサーバ120側では、このような抽象化された命令に基づいて、ロボット100を直接的に制御するための具体化された命令を生成してよい。したがって、サービスアプリケーション110の開発者は、ロボット100の詳細的な機能の制御方法を把握する必要がなくなり、ロボット100を通じてサービスを提供するための(すなわち、抽象化された命令だけでロボット100を制御することのできる)アプリケーションを開発することができるようになる。
On the other hand, the
サービスアプリケーション110は、ロボット100とネットワークを介して区分されるサーバまたはクライアント上に実現されてよい。また、サービスアプリケーション110は、実施形態によっては、ロボット100に結合されるか、ロボット100に含まれる装置内で実現されてもよい。このような実施形態の場合にも、サービスアプリケーション110とロボット100は、ネットワークを介して区分されてよい。
The
ロボット100、サービスアプリケーション110、およびクラウドサーバ120の具体的な動作と、ロボット100の詳しい制御方法については、図2~15を参照しながらさらに詳しく説明する。
The specific operations of the
図2は、一実施形態における、サービスを提供するロボットを示したブロック図である。 FIG. 2 is a block diagram illustrating a robot providing a service in one embodiment.
図2では、クラウドサーバ120により、サービスアプリケーション110と連係してサービスを提供するロボット100を示している。ロボット100は、例えば、建物の室内などのような空間内でクラウドサーバ120による制御にしたがってサービスを提供するサービスロボットであってよい。空間が室内の空間に限定されてはならず、室外の空間を示してもよい。言い換えれば、空間は、範囲が特定されている室内または室外の空間や、室内と室外の両方が含まれた空間であってよい。
FIG. 2 shows a
空間は、例えば、ロボット100によって品物の配達が実行される建物(会社など)、飲食物の配達が実行されるカフェ、案内サービスが提供される室内/室外空間などであってよい。
The space may be, for example, a building (such as a company) where goods are delivered by the
ロボット100は、空間を走行することにより、空間内の利用者にサービスを提供してよい。ロボット100は、サービスアプリケーション110からの命令(抽象化された命令)に基づいてサービスを提供してよい。サービスアプリケーション110からの命令は、クラウドサーバ120で具体化されてロボット100に伝達されてよく、ロボット100は、このような具体化された命令に基づいて制御されてよい。
The
ロボット100は、サービスを提供するために必要となる具体的な演算を実行せず、これを実行するためのセンシングデータはもちろん、ロボットの制御と関連するデータ(または、ロボット100が収集したデータ)をクラウドサーバ120に提供するだけであるという点において、ブレインレスロボットに該当してよい。
The
ロボット100が提供するサービスは、空間内で、飲食物、工産品のような商品、または宅配を配達する配達サービスを含んでよい。すなわち、ロボット100は、配達サービスロボットまたはサービングサービスロボットであってよい。また、ロボット100が提供するサービスは、利用者を空間内の特定の位置に案内する道案内サービスを含んでよい。さらに、ロボット100が提供するサービスは、警備サービス、イベント/ニュースなどの情報提供サービス、および空間内に位置する植物を管理するサービスを含んでよい。
The services provided by the
ロボット100は、物理的な装置であってよく、図に示すように、制御部104、駆動部108、センサ部106、および通信部102を含んでよい。また、ロボット100は、サービス提供のための品物などを載せるための搭載部をさらに含んでもよい。
The
制御部104は、ロボット100に内蔵された物理的なプロセッサであってよく、経路計画処理モジュール211、マッピング処理モジュール212、駆動制御モジュール213、ローカリゼーション処理モジュール214、データ処理モジュール215、および命令処理モジュール216を含んでよい。このとき、経路計画処理モジュール211、マッピング処理モジュール212、およびローカリゼーション処理モジュール214は、クラウドサーバ120との通信がなされない場合にもロボット100の自律走行が実行されるようにするために、実施形態によっては、選択的に、制御部104に含まれるものであってもよい。
The
通信部102は、ロボット100が他の装置(他のロボットまたはクラウドサーバ120など)と通信するための構成であってよい。言い換えれば、通信部102は、他の装置に対してデータおよび/または情報を送信/受信する、ロボット100のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。
The
駆動部108は、ロボット100の移動を制御して移動を可能にする構成であって、これを実行するための装備を含んでよい。例えば、駆動部108は、タイヤを含んでよい。駆動部108は、命令処理モジュール216によって処理された命令にしたがってロボット100の動きおよび/または機能を制御してよい。
The
センサ部106は、ロボット100の自律走行およびサービス提供のために必要なデータを収集するための構成であってよい。センサ部106は、高価なセンシング装備(スキャン装備)を含まなくてよく、低価型の超音波センサおよび/または低価型のカメラなどのようなセンサを含んでよい。センサ部106は、走行方向に位置する障害物/人物を識別するためのセンサを含んでもよい。
The
また、センサ部106は、図には示されていないが、カメラを含んでよい。カメラは、ロボット100の周りに位置する利用者または障害物を認識することができるように配置されてよい。カメラは、RGBカメラまたは単眼カメラであってよい。または、カメラは、デプス(depth)カメラを含んでもよい。
Further, although not shown in the figure, the
制御部104の処理例として、制御部104のデータ処理モジュール215は、センサ部106からのセンシング値(例えば、センサからの出力値)を含むセンシングデータを、通信部102を経てクラウドサーバ120に送信してよい。クラウドサーバ120は、空間内の(室内)地図に基づいて生成された経路データをロボット100に送信してよい。前記経路データは、ロボット100がサービスを提供するための経路を示すデータであってよい。経路データは、通信部102からデータ処理モジュール215に伝達されてよい。データ処理モジュール215は、経路データを駆動制御モジュール213に直接伝達してよく、駆動制御モジュール213は、経路データにしたがって駆動部108を制御してロボット100の自律走行を制御してよい。
As an example of processing by the
ロボット100とクラウドサーバ120が通信できなくなった場合、データ処理モジュール215は、センシングデータをローカリゼーション処理モジュール214に送信し、経路計画処理モジュール211とマッピング処理モジュール212で経路データを生成してロボット100の自律走行を直接処理してもよい。例えば、制御部104は、経路計画処理モジュール211とマッピング処理モジュール212によって地図からサービスを提供する位置を識別してよく、識別された位置でサービスを提供するための経路を示すデータとしての経路データを生成してよく、このような経路データによる経路を走行するようにロボット100の自律走行を制御してよい。
If the
ロボット100は、クラウド上に格納された地図に基づいてサービスを提供するための位置に自律走行で移動してよく、走行時に障害物の回避、敷居越え、エレベータの乗下車、非常停止などを実行するように制御されてよい。
The
一方、ロボット100は、空間内の地図を生成するために利用されるマッピングロボットとは区分されるものであってよい。このとき、ロボット100は、高価なセンシング装備(スキャン装備)を含まないため、低価型の超音波センサおよび/または低価型のカメラなどのようなセンサの出力値を利用して自律走行を処理してよい。ロボット100が以前にクラウドサーバ120との通信によって自律走行を処理した経験があれば、クラウドサーバ120から以前に受信した経路データが含むマッピングデータなどをさらに活用することにより、低価のセンサを利用しながらでも正確な自律走行を可能にすることができる。実施形態によっては、ロボット100は、前記マッピングロボットと兼用されてもよい。
On the other hand, the
実施形態において、ロボット100には、ロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションが搭載されなくてもよい。したがって、ロボット100は、サービスアプリケーション110からのサービスの提供のための抽象化された命令によっては直接的に制御されず、クラウドサーバ120によって該当の命令が具体化されることによって生成された単位命令(サブ命令)に基づいて制御されてよい。クラウドサーバ120からロボット100に送信されるサブ命令は、サービスと関連するコンテキスト情報を含まなくてもよい。例えば、サブ命令は、サービスの種類を示す情報やサービスの識別子などのように、サービスと関連する情報を含まなくてもよい。したがって、ロボット100の制御は、サービスのコンテキストに依存しなくてもよくなる。
In embodiments, the
命令処理モジュール216は、クラウドサーバ120から受信した命令(すなわち、具体化された命令)を、通信部102を経て、または通信部102とデータ処理モジュール215を経て受信してよい。制御部104は、受信した命令に基づいてロボット100を制御してよい。ロボット100は、クラウドサーバ120から受信した具体化された命令にしたがって制御されることによって利用者にサービスを提供してよい。
The
一方、駆動部108は、ロボット100の移動のための装備だけでなく、ロボット100が提供するサービスと関連する装備をさらに含んでよい。例えば、駆動部108は、上述したような搭載部と、サービスと関連する品物を搭載したり移動させたりするための構成(一例として、ロボットアーム(arm))を含んでよい。クラウドサーバ120から受信した具体化された命令にしたがい、サービス提供のために駆動部108が制御されてもよい。
Meanwhile, the driving
また、ロボット100は、情報/コンテンツを提供するためのスピーカおよび/またはディスプレイ、またはLEDなどをさらに含んでよい。これらの装置は、図1を参照しながら説明したUXと関連する装置105を構成してよい。命令処理モジュール216は、クラウドサーバ120から受信した命令にしたがってUXと関連する装置105が制御されるようにロボット100を制御してよい。
Additionally, the
実施形態では、サービスアプリケーション110にはロボット100のUIおよびサービスシナリオを制御するロジックが搭載され、ロボット100にはロボット100の動作に必要となる最小限のロジック(例えば、安全関連ロジック)だけが搭載されてよい。サービスアプリケーション110からの抽象化された命令(例えば、移動命令)にしたがい、クラウドサーバ120は、命令に該当する詳細移動計画を決定してよく、ロボット100を制御してよい。ロボット100は、このような決定された移動計画にしたがって走行してよい。
In the embodiment, the
クラウドサーバ120から命令を受信し、受信した命令にしたがってロボット100が制御される具体的な方法については、図3~15を参照しながらさらに詳しく説明する。
A specific method for receiving instructions from the
以上、図1を参照しながら説明した技術的特徴は、図2に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIG. 1 can also be applied to FIG. 2 as they are, so duplicate explanations will be omitted.
図3および図4は、一実施形態における、ロボットを制御するクラウドサーバを示したブロック図である。 3 and 4 are block diagrams illustrating a cloud server that controls a robot in one embodiment.
クラウドサーバ120は、上述したロボット100の空間内での移動(すなわち、走行)、およびロボット100によって提供される機能を制御する装置であってよい。クラウドサーバ120は、ロボット100が複数の場合、複数のロボットそれぞれの移動およびロボットそれぞれの機能を制御してよい。クラウドサーバ120は、ロボット100との通信により、ロボット100がサービスを提供するために移動しなければならない経路を設定してよく、このような経路に関する情報をロボット100に伝達してよい。ロボット100は、受信した経路に関する情報にしたがって走行してよく、利用者にサービスを提供してよい。すなわち、クラウドサーバ120は、設定された経路に沿ってロボットが移動(走行)するようにロボット100の移動を制御してよい。
The
クラウドサーバ120は、ロボット制御システムやその一部を構成してよい。クラウドサーバ120は、少なくとも1つのコンピュータ装置を含んでよく、空間内部または空間外部に位置するサーバで実現されてよい。
The
クラウドサーバ120は、図に示すように、メモリ330、プロセッサ320、通信部310、および入力/出力インタフェース340を含んでよい。
メモリ330は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置(permanent mass storage device)を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリ330とは区分される別の永続的記録装置として含まれてもよい。また、メモリ330には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ330とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信部310を通じてメモリ330にロードされてもよい。
プロセッサ320は、基本的な算術、ロジック、および入力/出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ330または通信部310によって、プロセッサ320に提供されてよい。例えば、プロセッサ320は、メモリ330にロードされたプログラムコードにしたがって受信される命令を実行するように構成されてよい。このようなプロセッサ320は、図4に示すような構成410~440を含んでよい。
プロセッサ320の構成410~440それぞれは、プロセッサ320の一部であって、ソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。プロセッサ320の構成410~440については、図4を参照しながら説明する。
Each of the components 410-440 of the
通信部310は、クラウドサーバ120が他の装置(ロボット100またはサービスアプリケーション110が搭載された装置など)と通信するための構成であってよい。言い換えれば、通信部310は、他の装置においてデータおよび/または情報を送信/受信する、クラウドサーバ120のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。
The
入力/出力インタフェース340は、キーボードまたはマウスなどのような入力装置、およびディスプレイやスピーカのような出力装置とのインタフェースのための手段であってよい。
Input/
実施形態によっては、クラウドサーバ120は、図に示した構成要素よりも多くの構成要素を含んでもよい。
In some embodiments,
実施形態において、クラウドサーバ120は、サービスアプリケーション110からロボット100によるサービス提供のための命令(抽象化された命令)を受信してよく、受信した命令を処理して(すなわち、具体化して)ロボット100を制御するためのサブ命令(すなわち、具体化された命令)を生成してよい。
In embodiments, the
図4を参照しながら、上述したプロセッサ320の構成410~440についてさらに詳しく説明する。プロセッサ320は、図に示すように、マップ生成モジュール410、ローカリゼーション処理モジュール420、経路計画処理モジュール430、および命令処理モジュール440を含んでよい。このようなプロセッサ320が含む構成要素は、オペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)にしたがってプロセッサ320が含む少なくとも1つのプロセッサが実行する互いに異なる機能(different functions)の表現であってよい。
The
マップ生成モジュール410は、建物内部で自律走行する(図示せず)マッピングロボットが、目標施設物(例えば、建物の内部)に対して生成したセンシングデータを利用して目標施設物の室内地図を生成するための構成要素であってよい。
The
このとき、ローカリゼーション処理モジュール420は、ロボット100からネットワークを介して受信したセンシングデータと、マップ生成モジュール410で生成された目標施設物の室内地図を利用しながら、目標施設物(建物または建物の階)内部におけるロボット100の位置を決定してよい。
At this time, the
経路計画処理モジュール430は、上述したロボット100から受信したセンシングデータと生成された室内地図を利用しながら、ロボット100の自律走行を制御するための制御信号を生成してよい。例えば、経路計画処理モジュール430は、ロボット100の走行のための経路(すなわち、経路データ)を生成してよい。生成された経路(経路データ)は、該当の経路に沿ったロボット100の走行のためにロボット100に設定されてよい。クラウドサーバ120は、生成された経路に関する情報を、ネットワークを介してロボット100に送信してよい。一例として、経路に関する情報は、ロボット100の現在地を示す情報、現在地と室内地図をマッピングするための情報、または経路計画情報を含んでよい。経路計画処理モジュール430は、ロボット100のための経路を生成してロボット100に設定してよい。クラウドサーバ120は、このような設定された経路に沿って(すなわち、設定された経路に沿って)ロボット100が移動するようにロボット100の移動を制御してよい。
The route
生成された経路は、空間内でロボット100がサービスを提供するために走行する経路であってよい。経路計画処理モジュール430は、地図から空間内でサービスを提供する位置を識別してよく、該当の位置でサービスが提供されるようにする経路を生成してよい。
The generated route may be a route that the
命令処理モジュール440は、サービスアプリケーション110からロボット100によるサービス提供のための命令(抽象化された命令)を受信してよく、受信した命令を処理して(すなわち、具体化して)ロボット100を制御するためのサブ命令(すなわち、具体化された命令)を生成してよい。また、命令処理モジュール440は、生成されたサブ命令をロボット100に送信し、サブ命令に基づいてロボット100を制御してよい。
The
実施形態では、ロボット100にはロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションが搭載されず、ロボット100は、サービスアプリケーション110からのサービスの提供のための抽象化された命令によっては直接的に制御されなくてもよい。
In the embodiment, the
ロボット100の動きおよび機能は、クラウドサーバ120から提供される具体化された命令によってのみ制御されてよい。命令処理モジュール440は、サービスアプリケーション110から受信した抽象化された命令をロボットが実行可能な単位命令に具体化することによって該当の単位命令に対応するサブ命令を生成してよく、このようなサブ命令のそれぞれをロボット100に送信することにより、ロボット100を制御してよい。
The movements and functions of
また、命令処理モジュール440は、サービスアプリケーション110から受信した命令のタイプにより、命令をロボット100に直に伝達してもよいし、該当の命令を具体化した後、具体化されたサブ命令をロボット100に送信してもよい。
Furthermore, depending on the type of command received from the
実施形態では、ロボット100がサービスアプリケーションに対応するサービスロジックの部分を搭載しないことにより、サービスアプリケーション110の開発者は、ロボット100の詳細的な機能の制御方法を把握する必要なく、ロボット100を通じてサービスを提供するためのアプリケーションを開発することができる。また、ロボット100には、異なるサービスを提供する多様なサービスアプリケーションを容易にプラグインすることができる。
In the embodiment, since the
また、命令処理モジュール440は、ロボット100からロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してよい。命令処理モジュール440は、受信したデータのタイプにより、データをサービスアプリケーション110に伝達してもよいし、該当のデータを抽象化した後、抽象化したデータをサービスアプリケーション110に送信してもよい。
The
ロボット100、サービスアプリケーション110、およびクラウドサーバ120のより具体的な動作とロボット100の制御方法については、図5~15を参照しながらさらに詳しく説明する。
More specific operations of the
以上、図1および図2を参照しながら説明した技術的特徴は、図3および図4に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 and 2 can also be applied to FIGS. 3 and 4 as they are, so duplicate explanations will be omitted.
図5は、一実施形態における、サービスアプリケーションが搭載された装置を示したブロック図である。 FIG. 5 is a block diagram illustrating a device equipped with a service application in one embodiment.
上述したように、サービスアプリケーション110は、ロボット100とはネットワークを介して区分されるサーバまたはクライアント上に実現されてよい。装置500は、このようなサーバまたはクライアントに対応してよい。実施形態によっては、このような装置500は、ロボット100に結合されてもよいし、ロボット100に含まれる装置内で実現されてもよい。また、装置500は、クラウドサーバ120に結合されてもよいし、クラウドサーバ120に含まれる装置内で実現されてもよい。このような実施形態の場合にも、サービスアプリケーション110とロボット100は、ネットワークを介して区分されてよい。
As described above, the
装置500は、PC(personal computer)、ノート型PC(laptop computer)、スマートフォン(smart phone)、タブレット(tablet)、ウェアラブルコンピュータ(wearable computer)、モノのインターネット(Internet Of Things)機器などを含む、あらゆる端末装置または電子装置を意味してよい。装置500は、ロボット100によって提供されるサービスを運用および/または要請する利用者が使用する端末であってよい。
The device 500 is a personal computer (PC), a laptop computer, a smart phone, a tablet, a wearable computer, or an Internet of Things. ) equipment, etc. It may mean a terminal device or an electronic device. Device 500 may be a terminal used by a user who operates and/or requests services provided by
装置500に搭載されたサービスアプリケーション110により、利用者は、ロボット100にサービスを提供するように命令してよい。このような命令は、クラウドサーバ120からロボット100に伝達されてもよいし、クラウドサーバ120による処理によって具体化された後にロボット100に送信されてもよい。
A
また、装置500は、搭載されたサービスアプリケーション110により、ロボット100からのデータを受信してよい。データは、クラウドサーバ120からサービスアプリケーション110に伝達されてもよいし、クラウドサーバ120による処理によって抽象化された後にサービスアプリケーション110に送信されてもよい。
Additionally, the device 500 may receive data from the
装置500は、図に示すように、通信部510およびプロセッサ520を含んでよい。通信部510は、装置500がクラウドサーバ120(あるいは、ロボット100)と通信するための装置であってよい。言い換えれば、通信部510は、このような他の装置においてデータおよび/または情報を送信/受信する、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。 Device 500 may include a communication unit 510 and a processor 520, as shown. The communication unit 510 may be a device for the device 500 to communicate with the cloud server 120 (or robot 100). In other words, the communication unit 510 is a hardware module, such as a network interface card, a network interface chip, a networking interface port, etc., or a network device driver that sends/receives data and/or information in such other devices. (driver) or a software module such as a networking program.
プロセッサ520は、装置500の構成要素を管理してよく、ユーザ端末110が使用するプログラムまたはアプリケーションを実行してよい。例えば、プロセッサ520は、ロボット100によるサービスの提供のための命令を生成および送信するためのサービスアプリケーション110をインストールして実行してよく、サービスアプリケーション110の実行とデータの処理などに必要な演算を実行してよい。プロセッサ520は、少なくとも1つのプロセッサまたはプロセッサ内の少なくとも1つのコア(core)であってよい。
Processor 520 may manage components of device 500 and execute programs or applications used by
装置500は、図には示していないが、メモリを含んでよい。メモリは、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置(permanent mass storage device)を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリとは区分される別の永続的記録装置として含まれてもよい。また、メモリには、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリとは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信部510を通じてメモリにロードされてもよい。 Although not shown, device 500 may include memory. Memory is a computer-readable storage medium that may include random access memory (RAM), read only memory (ROM), and permanent mass storage devices such as disk drives. Here, the ROM and the permanent large capacity storage device may be included as separate permanent storage devices separated from the memory. An operating system and at least one program code may also be recorded in the memory. Such software components may be loaded from a computer-readable storage medium separate from memory. Such other computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, and the like. In other embodiments, the software components may be loaded into memory through communication portion 510 that is not a computer-readable storage medium.
プロセッサ520は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリまたは通信部510によって、プロセッサ520に提供されてよい。例えば、プロセッサ520は、メモリにロードされたプログラムコードにしたがって受信される命令を実行するように構成されてよい。 Processor 520 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to processor 520 by memory or communication unit 510. For example, processor 520 may be configured to execute instructions received according to program code loaded into memory.
装置500がサービスを運用および/または要請する利用者の端末の場合、装置500は、ディスプレイを含んでよい。ディスプレイは、ロボット100の制御状態、ロボット100の管理のための情報、およびロボット100によるサービス提供の状態を含む、ロボット100のモニタリング情報を表示してよい。ディスプレイは、タッチスクリーンを含んでよい。
If the device 500 is a terminal of a user operating and/or requesting a service, the device 500 may include a display. The display may display monitoring information for the
実施形態では、サービス提供のための抽象化された命令を生成する主体であるサービスアプリケーション110と、該当の命令を具体化してロボット100に送信する主体であるクラウドサーバ120とが分離される。
In the embodiment, the
したがって、サービスアプリケーション110に該当するレイヤと、クラウドサーバ120に該当するレイヤ、およびロボット100に該当するレイヤは、互いに区分されてよい。これにより、サービスアプリケーション110、クラウドサーバ120、およびロボット100には、保安政策が互いに(または、これらのうちの少なくとも2つの保安政策が)異なるように設定されてよく、相対的に頻繁にアップデートが必要となるレイヤだけを分離して管理してよい。
Therefore, a layer corresponding to the
また、実施形態では、サービスアプリケーション110に該当するレイヤだけをアップデートすることにより、ロボット100がアップデートされたサービスを提供するように実現されてよい。
Further, in the embodiment, the
また、異なるサービスアプリケーションをロボット100に簡単にプラグインさせることが可能であるため、ロボット100が提供する機能の範囲を超えない限り、多様なサービスを提供するロボット100を実現することができる。
Further, since it is possible to easily plug different service applications into the
サービスアプリケーション110の開発者は、ロボット100に関する詳細的なドメイン知識がなくても(すなわち、不必要なトラブルシューテングやロボットの実行/運用に関するイシューに対応する必要なく)、ロボット100が提供するサービスをサービスアプリケーション110内に実現することができる。
The developer of the
したがって、ロボット100とサービスアプリケーション110における拡張性を高めることができる。
Therefore, the expandability of the
以上、図1~4を参照しながら説明した技術的特徴は、図5に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 4 can also be applied to FIG. 5 as they are, so redundant explanation will be omitted.
以下の詳細な説明において、ロボット100、クラウドサーバ120、またはサービスアプリケーション110(例えば、ロボット100、クラウドサーバ120、または装置500のプロセッサ)によって実行される動作は、説明の便宜上、ロボット100、クラウドサーバ120、またはサービスアプリケーション110によって実行される動作として説明する。
In the detailed description below, operations performed by
図6は、一実施形態における、クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法を示したフローチャートである。 FIG. 6 is a flowchart illustrating a method of controlling a robot that provides a service in conjunction with a service application, which is executed by a cloud server, in one embodiment.
段階610で、クラウドサーバ120は、サービスアプリケーション110からサービスを提供するための命令を受信してよい。サービスアプリケーション110から受信される命令は、ロボット100に特定の動作および/または機能の実行を要請するものであって、抽象化された命令であってよい。抽象化された命令は、(具体化されなくては)サービスが提供されるようにロボット100を直接的に制御することのできない命令であってよい。抽象化された命令は、品物を、例えば、配達するサービスで配達または回収位置にロボットを移動させる命令、道案内サービスで利用者を特定の位置に案内する命令、または、ロボット100に特定の機能の実行を要請する命令などを含んでよい。
At step 610,
段階615で、クラウドサーバ120は、サービスアプリケーション110からの命令がバイパス対象命令であるかどうかを判定してよい。
At
段階620で、クラウドサーバ120は、サービスアプリケーション110からの命令がバイパス対象命令であれば、サービスアプリケーション110からの命令をロボット100に直に伝達してよい。段階622において、ロボット100は、このような伝達されたバイパス対象命令にしたがって制御されてよい。
In step 620, the
バイパス対象命令とは、クラウドサーバ120による具体化の必要がない単純命令であって、サービスアプリケーション110からクラウドサーバ120を経てロボット100に直に伝達(ルーティング)される命令であってよい。バイパス対象命令は、例えば、ロボット100のUX(User Experience)と関連する構成105を制御するための命令であってよい。一例として、バイパス対象命令は、ロボット100に含まれたLEDまたはインジケータ(例えば、ロボットのgazeに対応するLED、またはその他の視覚的インジケータ)のオン/オフを制御する命令、またはロボット100に備えられたスピーカから特定のサウンドを出力するようにする命令を含んでよい。また、ロボット100の動き(移動)を手動で制御するための命令は、バイパス対象命令となってよい。
The bypass target command is a simple command that does not need to be embodied by the
クラウドサーバ120は、サービスアプリケーション110からの命令のタイプを分析することにより、該当の命令がバイパス対象命令であるかどうかを判定してよい。例えば、クラウドサーバ120は、サービスアプリケーション110からの命令のプロトコルを分析することにより、命令がバイパス対象命令であるかどうかを判定してよい。すなわち、クラウドサーバ120は、受信した命令のプロトコル端を解釈することにより、命令をロボット100にバイパスするかどうかを決定してよい。
The
段階625で、クラウドサーバ120は、サービスアプリケーション110から受信した命令を具体化して複数のサブ命令を生成してよい。サブ命令を生成する段階は、サービスアプリケーション110からの命令がバイパス対象命令ではない場合に実行されてよい。「命令の具体化」とは、サービスアプリケーション110からの抽象化された命令を、ロボット100を直接的に制御することができるようにする命令に分割することを意味してよい。言い換えれば、段階625によって生成された各サブ命令は、ロボット100を直接的に制御することができるように、サービスアプリケーション110からの抽象化された命令が具体化されたものであってよい。
At
段階630で、クラウドサーバ120は、生成されたサブ命令の各サブ命令をロボット100に送信してよい。段階635で、ロボット100は、受信した各サブ命令に基づいて制御されてよい。ロボット100は、サブ命令による制御を完了することにより、サービスアプリケーション110からの命令によって要請された動作を完了してよい。
At step 630, the
それぞれのサブ命令は、ロボットが実行可能な単位命令を構成してよい。言い換えれば、段階625で、クラウドサーバ120は、サービスアプリケーション110から受信した命令を複数の単位命令に分割することによってサブ命令を生成してよい。例えば、クラウドサーバ120は、サービスアプリケーション110から受信した命令を所定の時間単位または所定の大きさ単位に分割することによってサブ命令を生成してよい。アプリケーション110から受信した命令が示す動作が時間によって複数の動作に区分されるものであれば、前記動作のそれぞれに対応して前記アプリケーション110から受信された命令がサブ命令としてそれぞれ分割されてよい。
Each sub-instruction may constitute a unit instruction executable by the robot. In other words, in
抽象化された命令に基づいて抽象化された命令が具体化されたサブ命令を生成する方法については、図7および図8を参照しながらさらに詳しく説明する。 A method for generating sub-instructions in which the abstracted instructions are concrete based on the abstracted instructions will be described in more detail with reference to FIGS. 7 and 8.
クラウドサーバ120は、生成されたサブ命令のそれぞれを順にロボット100に送信してよい。各サブ命令は、ロボット100の動作によって適時にクラウドサーバ120からロボット100に伝達されてよい。
The
例えば、段階630で、クラウドサーバ120は、サブ命令のうちの第1サブ命令をロボット100に送信してよい。第1サブ命令とは、サービスアプリケーション110から受信した命令が示すロボット100の動作を完了するために、ロボット100が優先して実行しなければならない第1動作を示してよい。段階635で、ロボット100は、第1サブ命令にしたがって第1動作を実行してよく、第1動作の実行が完了したことを示す完了レポート(または、完了を示す信号)をクラウドサーバ120に送信してよい。段階640で、クラウドサーバ120は、このような完了レポートを受信してよく、完了レポートを受信した後、段階645で、サブ命令のうちの第1サブ命令の次に該当する第2サブ命令をロボット100に送信してよい。このとき、第2サブ命令とは、サービスアプリケーション110から受信した命令が示すロボット100の動作を完了するための前記第1動作の次の動作を示してよい。段階650で、ロボット100は、第2サブ命令にしたがって第2動作を実行してよい。同じように、ロボット100は、第2動作の実行が完了したことを示す完了レポートをクラウドサーバ120に送信してよく、クラウドサーバ120から次のサブ命令を受信してよい。
For example, at step 630,
このように、クラウドサーバ120は、生成されたサブ命令のそれぞれを順にロボット100に送信することができ、あるサブ命令が示す動作がロボット100によって実行されてから次のサブ命令をロボット100に送信することにより、ロボット100に適時に命令を伝達することができる。これにより、ロボット100の誤動作を防ぐことができる。言い換えれば、クラウドサーバ120は、サービスアプリケーション110から受信した命令を複数のミッションに区分することによって具体化してよい。ロボット100に送信されたサブ命令にしたがって1つのミッションが完了した場合、次のミッションに該当するサブ命令をロボット100に送信してよい。
In this way, the
また、上述したものとは異なり、ロボット100は、サブ命令による動作後、レポートをクラウドサーバ120に送信しなくてもよい。このとき、クラウドサーバ120は、ロボット100を(例えば、リアルタイムで)モニタリングし、ロボット100がサブ命令による動作を実行したと判断された場合に、次のサブ命令をロボット100に送信してよい。
Also, unlike what has been described above, the
または、クラウドサーバ120は、所定の時間間隔でサブ命令のそれぞれを順にロボット100に送信してもよい。
Alternatively, the
上述したように、実施形態では、クラウドサーバ120がサービスアプリケーション110からの命令を分析し、命令のタイプにより、該当の命令をロボット100にバイパスしてもよいし、命令を具体化してサブ命令を生成してロボットに送信してもよく、これにより、ロボット100を適切に制御することができる。
As described above, in the embodiment, the
一方、図には示されていないが、ロボット100は、受信した命令(サブ命令)がサービスアプリケーション110からの命令がバイパスされたものであるかを判定してもよい。このとき、ロボット100は、受信した命令(サブ命令)のプロトコルを分析することにより、受信した命令(サブ命令)がサービスアプリケーション110からの命令がバイパスされたものであるかを判定してよい。ロボット100は、受信した命令(サブ命令)がバイパスされた命令に該当する場合は、該当のバイパスされた命令に対応する動作を実行してよく、バイパスされていない命令(すなわち、具体化された命令)に該当する場合は、具体化された命令に対応する動作を実行してよい。
On the other hand, although not shown in the figure, the
以上、図1~5を参照しながら説明した技術的特徴は、図6に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 5 can also be applied to FIG. 6 as they are, so duplicate explanations will be omitted.
図7および図8は、一例における、抽象化された命令に基づいて、抽象化された命令が具体化されたサブ命令を生成する方法を示したフローチャートである。 7 and 8 are flowcharts illustrating, in one example, a method for generating sub-instructions in which the abstracted instructions are materialized based on the abstracted instructions.
図6を参照しながら、上述した段階625のクラウドサーバ120は、サービスアプリケーション110から受信した命令を複数の単位命令に分割することによってサブ命令を生成する方法についてより詳しく説明する。クラウドサーバ120は、サービスアプリケーション110から受信した命令を所定の時間単位または所定の大きさ単位に分割することによってサブ命令を生成してよい。
With reference to FIG. 6, a method in which the
例えば、サービスアプリケーション110からの命令が目的地にロボット100を移動させるようにする命令である場合について、図7を参照しながら説明する。目的地は、ロボット100が品物を配達するための目的地、またはロボット100が利用者を案内するための目的地であってよい。
For example, a case where the command from the
段階710で、クラウドサーバ120は、ロボット100の現在地から目的地までロボット100が移動しなければならない複数のウェイポイントを決定してよい。
At
段階720で、クラウドサーバ120は、ウェイポイントの各ウェイポイントにロボット100を移動させる命令を各サブ命令として生成してよく、生成された各サブ命令をロボット100に送信してよい。
At
例えば、クラウドサーバ120は、ロボット100の現在地から目的地までロボット100が移動しなければならない複数のウェイポイントのそれぞれの座標(座標の配列)を決定してよく、各座標への移動を示す命令を各サブ命令としてロボット100に送信してよい。
For example, the
ウェイポイントのそれぞれは、例えば、空間内の位置であってよく、目的地への移動においてロボット100が階間移動をしなければならない場合は、エレベータ前(すなわち、ドア前)の位置を示してよい。また、ウェイポイントは、空間内のドアの前の位置、空間内のコーナーに対応する位置、または空間の角または隅に対応する位置などであってよい。ウェイポイントは、目的地を含んでもよいし含まなくてもよい。
Each of the waypoints may be, for example, a position in space, and if the
上述したように、ロボット100があるウェイポイントへの移動を完了した後、クラウドサーバ120は、ロボット100から完了レポートを受信してよく、これにより、クラウドサーバ120は、ロボット100に次のウェイポイントへの移動を示すサブ命令を送信してよい。
As mentioned above, after the
ロボット100は、ウェイポイントへの移動に対応するサブ命令にしたがって制御されることによって目的地に移動してよい。
The
このように、サービスアプリケーション110から受信した命令は、複数のウェイポイントへの移動に具体化され、具体化されたサブ命令が生成されてよい。
In this manner, instructions received from
図8を参照しながら、クラウドサーバ120がロボット100の状態をモニタリングしながら適切なサブ命令をロボット100に送信する方法について説明する。
With reference to FIG. 8, a method for the
段階810で、クラウドサーバ120は、ロボット100の状態をモニタリングしてよい。ロボット100の状態のモニタリングは、リアルタイムあるいはほぼリアルタイムで行なわれてよい。
At
段階820で、クラウドサーバ120は、モニタリングされたロボット100の状態に基づいて、適したサブ命令を識別するか、予め送信されたサブ命令に対する取消命令を生成してよい。クラウドサーバ120は、識別されたサブ命令または取消命令をロボット100に送信してよい。
At
クラウドサーバ120は、モニタリングされたロボット100の状態により、サービスアプリケーション110から受信した命令を具体化して生成されたサブ命令のうち、ロボット100によるサービスの提供のために必要なサブ命令を決定してロボット100に送信してよい。例えば、クラウドサーバ120は、ロボット100があるウェイポイントに移動したことが確認された場合、サブ命令のうちから次のウェイポイントへの移動を示すサブ命令を識別してよく、識別されたサブ命令をロボット100に送信してよい。
Based on the monitored state of the
また、クラウドサーバ120は、モニタリングされたロボット100の状態により、予め送信されたサブ命令を取り消すための取消命令をロボット100に送信してよい。例えば、(ロボット100が特定の位置に閉じこめられたり、機能異常が発生したり、動作不能になったりするなどの事由により)予め送信されたサブ命令による動作をロボット100が実行することができなくなった場合、クラウドサーバ120は、予め送信されたサブ命令を取り消すための取消命令をロボット100に送信してよい。場合によっては、クラウドサーバ120は、他のロボットに前記サブ命令を送信し、前記実行されなかった動作を他のロボットが代わりに実行するように制御してよい。または、クラウドサーバ120は、前記予め送信されたサブ命令による動作を延期するように(すなわち、後で実行するように)する延期命令をロボット100に送信してもよい。
Further, the
上述したように、クラウドサーバ120は、ロボット100の状態をモニタリングすることで、ロボット100に適時にサブ命令を送信したり、命令を取消/延期する命令を送信したりすることができるようになる。
As described above, by monitoring the state of the
これに関し、図12および図13は、一例における、サービスアプリケーションからの抽象的な命令に基づいて具体化されたサブ命令を生成してロボットを制御する方法を示している。 In this regard, FIGS. 12 and 13 illustrate, in one example, a method for generating concrete sub-instructions based on abstract instructions from a service application to control a robot.
図12において、ロボット100は、配達サービスを提供するロボットであって、目的地1200に移動しろという命令がサービスアプリケーション110からクラウドサーバ120に受信されたと仮定する。
In FIG. 12, it is assumed that the
クラウドサーバ120は、サービスアプリケーション110からの命令に基づいて、ロボット100が目的地1200に移動するための経路計画を樹立してよい。クラウドサーバ120は、ロボット100が目的地1200に移動するための経路に含まれる複数のウェイポイント1210((1)~(7))を決定してよく、ウェイポイントへの移動を示すサブ命令1210-1~1210-7を生成してよい。
クラウドサーバ120は、サブ命令1210-1~1210-7のそれぞれを順にロボット100に送信することにより、ロボット100がウェイポイント1210((1)~(7))を経由して目的地1200に到着するように制御してよい。ウェイポイント1210((1)~(7)それぞれは、対応する位置の座標値を示してよい。
The
ロボット100の現在地から目的地1200までの経路がロボット100の階間移動を含む場合、ウェイポイント1210((1)~(7))のうちの少なくとも1つは、ロボット100が乗るエレベータに対応する位置(すなわち、ロボット100が搭乗および/または下車するエレベータのドア前に該当する位置)を示してよい。これにより、ロボット100は、階間移動を含んで目的地1200に移動することができるようになる。
If the path from the current location of the
上述したように、ロボット100に目的地1200への移動が指示された場合、ロボット100は、クラウドサーバ1200から分割された(ウェイポイントを示す)サブ命令を受信して制御されてよい。すなわち、ロボット100は、一度に実行可能な単位の命令に該当する単位命令を受信して動作してよい。単位命令は、抽象化された命令とは異なり、ロボット100が処理することのできる座標の配列を示してよい。
As described above, when the
図13では、ロボット100を終了しろという命令がサービスアプリケーション110からクラウドサーバ120に受信されたと仮定する。
In FIG. 13, it is assumed that a command to terminate the
クラウドサーバ120は、ロボット100を終了しろという抽象化された命令に基づいて、(1)ロボット100のセンサデバイス終了、(2)ロボット100のモータ制御終了、および(3)ロボット100のメインシステム終了という3つのサブ命令を生成してよい。クラウドサーバ120は、(1)~(3)のサブ命令を順にロボット100に送信してよい。例えば、クラウドサーバ120は、(1)によってロボット100のセンサデバイスが終了すればロボット100に(2)を送信し、(2)によってロボット100のモータ制御が終了すればロボット100に(3)を送信してよい。これにより、ロボット100は終了となってよい。
Based on the abstracted command to terminate the
上述したクラウドサーバ120は、ロボット100の1つの機能を制御するように構成されたサーバであってよい。例えば、クラウドサーバ120は、図12を参照しながら説明したようなロボット100の移動を制御するためのサーバであるか、図13を参照しながら説明したようなロボット100の終了(または、始動)を制御するためのサーバであってよい。または、クラウドサーバ120は、ロボット100の複数の機能のそれぞれを制御するように構成されてもよい。
The
以上、図1~6を参照しながら説明した技術的特徴は、図7、8、12、および13に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 6 can also be applied to FIGS. 7, 8, 12, and 13 as they are, and therefore redundant explanations will be omitted.
図9および図10は、一例における、ロボットからのデータを処理し、該当のデータに基づいて抽象化されたデータを生成および処理する方法を示したフローチャートである。 9 and 10 are flowcharts illustrating a method of processing data from a robot and generating and processing abstracted data based on the data, in one example.
図9を参照しながら、ロボット100からのデータがクラウドサーバ120で処理される方法について説明する。
With reference to FIG. 9, a method in which data from the
段階905で、クラウドサーバ120は、ロボット100から、ロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してよい。ロボット100の制御と関連するデータは、ロボット100が走行、機能実行、またはサービス動作によって収集したデータであってよい。例えば、ロボット100の制御と関連するデータは、センサ部106が収集したデータであって、時間情報、ロボット100の速度、位置、バッテリ情報、およびカメラで撮影された映像情報のうちの少なくとも1つを含んでよい。また、ロボット100の制御と関連するデータは、LEDの点灯状態、サウンドの出力状態、ロボット100のドアの開閉状態などのように、UXと関連する装置105の動作状態を示すデータを含んでよい。
At step 905,
段階910で、クラウドサーバ120は、ロボット100からのデータがバイパス対象データを含むかどうかを判定してよい。
At
段階915で、クラウドサーバ120は、ロボット100からのデータのうちのバイパス対象データを、サービスアプリケーション110に直に伝達(ルーティング)してよい。バイパス対象データは、ロボット100の第1状態を示すデータを含んでよい。第1状態は、データに対する分析または加工なく、該当のデータ自体だけで把握することのできるロボット100の単純状態を示してよい。または、第1状態は、サービスアプリケーション110によるリアルタイムの識別を必要とするロボット100の状態を示してよい。
In
第1状態は、例えば、ロボット100のバッテリ状態、速度状態、ドア開閉状態、LED点灯状態、およびサウンド出力状態を含んでよく、第1状態を示すデータは、このようなロボット100のバッテリデータ、速度データ、ドア開閉状態に関するデータ、LED点灯状態に関するデータ、およびサウンド出力状態に関するデータを含んでよい。
The first state may include, for example, the battery state, speed state, door opening/closing state, LED lighting state, and sound output state of the
このようなロボット100の第1状態を示すデータは、サービスアプリケーション110に直に伝達されてよく、サービスアプリケーション110では、ロボット100の第1状態が識別されてよい。サービスアプリケーション110は、ロボット100の第1状態が識別されることにより、ロボット100に対するモニタリング情報を生成してよい。モニタリング情報は、装置500において表示/出力されてよい。
Data indicating such a first state of the
段階925で、クラウドサーバ120は、ロボット100からのデータを分析して抽象化されたデータを生成してよい。クラウドサーバ120は、ロボット100からのデータのうちでバイパス対象データではないデータ、またはバイパス対象データを含むロボット100からのデータを分析し、抽象化されたデータを生成してよい。「データの抽象化」は、ロー(raw)データを分析することによって加工されたデータを生成する段階であってよい。例えば、抽象化されたデータは、ロボット100からのデータを分析しながらロボット100が特定の状態に該当するかどうかを判定した結果によってロボット100が特定の状態に該当するかどうかを示すデータであってよい。
At step 925,
これについては、図10を参照しながら、抽象化されたデータを生成する方法としてさらに詳しく説明する。 This will be explained in more detail as a method of generating abstracted data with reference to FIG.
以下の段階1010~1040は、段階925に含まれてよい。 The following steps 1010-1040 may be included in step 925.
段階1010で、クラウドサーバ120は、ロボット100からのデータを分析してよい。
At
段階1020で、クラウドサーバ120は、ロボット100からのデータを分析し、ロボット200が第2状態を示すかどうかを判定してよい。
At
段階1030で、クラウドサーバ120は、ロボット100が第2状態を示すと判定された場合、ロボット100が第2状態であることを示す抽象化されたデータを生成してよい。または、段階1040で、クラウドサーバ120は、ロボット100が第2状態に該当しないと判定された場合、ロボット100が第2状態でないことを示す抽象化されたデータを生成してよい。
At
言い換えれば、クラウドサーバ120は、このような判定の結果により、ロボット100が第2状態を示すかどうかを示す情報を抽象化されたデータとして生成してよい。
In other words, the
段階930で、クラウドサーバ120は、生成された抽象化されたデータをサービスアプリケーション110に送信してよい。
At step 930,
段階1010で分析されるロボット100からのデータは、上述した第1状態を示すデータを含んでよく、または/追加的に、センサ部106でセンシングされたデータを含んでよい。第2状態は、クラウドサーバ120がこのようなデータを分析することにより、ロボット100が該当するものであると判定するロボット100の状態を意味してよい。例えば、第2状態は、ロボット100によってサービスの提供が完了したかどうか、ロボット100によってサービスの提供が可能であるかどうか、またはロボット100の動作が正常であるかどうかを示してよい。言い換えれば、第2状態は、ロボット100からのデータに基づいて、クラウドサーバ120が判断したロボット100の状態を示してよい。
The data from the
具体的に、クラウドサーバ120は、ロボット100の位置が一定の時間以上変化しないと分析されたときには、ロボット100が閉じこめられているか、ロボット100が適切に動作することができないか、サービスの提供が不可能になったこと(または、サービスの提供に多くの時間がかかった)を示す抽象化されたデータを生成してよい。
Specifically, when the
段階935で、サービスアプリケーション110は、受信した抽象化されたデータに基づいて、ロボット100が第2状態に該当することを識別してよい。
At step 935,
サービスアプリケーション110は、段階940のように、受信した抽象化されたデータに基づいて(または、ロボット100の第2状態が識別されることにより)、ロボット100を制御するための命令を生成してよい。または/追加的に、サービスアプリケーション110は、受信した抽象化されたデータに基づいて(または、ロボット100の第2状態が識別されることにより)、ロボット100に対するモニタリング情報を生成してよい。
The
モニタリング情報は、上述したロボット100の第1状態および/または第2状態を示す情報であってよい。モニタリング情報は、装置500に表示/出力されてよい。
The monitoring information may be information indicating the first state and/or second state of the
段階940で、クラウドサーバ120に送信される命令は、図6の段階610を参照しながら説明した、抽象化された命令に対応してよい。一方、図には示されていないが、上述した第1状態が識別された場合にも、サービスアプリケーション110は、ロボット100を制御するための命令を生成してよい。
The instructions sent to the
以上、図1~8、図12および図13を参照しながら説明した技術的特徴は、図9および図10に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 8, FIG. 12, and FIG. 13 can also be applied to FIGS. 9 and 10 as they are, and thus redundant explanations will be omitted.
図11は、一例における、クラウドサーバ側からロボットに対して独立的に提供する独立命令を生成および処理する方法を示したフローチャートである。 FIG. 11 is a flowchart illustrating, in one example, a method for generating and processing independent commands that are independently provided to a robot from the cloud server side.
段階1110で、クラウドサーバ120は、サービスアプリケーション110からの命令(抽象化された命令)とは独立的にロボット100を制御するための独立命令を生成してよい。
At
段階1120で、クラウドサーバ120は、ロボット100または他のロボットに独立命令を送信してよい。
At
独立命令は、サービスアプリケーション110とは関係なく、クラウドサーバ120がロボット100を制御するために生成する命令であってよい。独立命令は、ロボット100の動作および機能実行と関連するものであり、ロボット100が提供するサービスに対しては独立的な動作および機能の実行に関する命令であってよい。
The independent command may be a command generated by the
例えば、独立命令は、ロボット100に充電を要求する命令(一例として、空間内の充電位置への移動命令)、ロボット100の特定の地点への移動の経路を更新する命令(例えば、目的地または特定のウェイポイントへの経路を更新する命令(走行recovery命令))、またはロボット100がサービスを提供することができなくなったときに、他のロボットに該当のサービスを提供するように要請する命令を含んでよい。
For example, the independent commands include a command to request the
また、クラウドサーバ120が複数のロボットを制御するにあたり、サービスを提供する特定のロボットを他のサービスを提供するようにスイッチングするか、サービスを提供するロボットを他のロボットに変更するなどのような資源管理と関連する命令は、独立命令となってよい。
In addition, when the
以上、図1~10、図12および図13を参照しながら説明した技術的特徴は、図11に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 10, FIG. 12, and FIG. 13 can also be applied to FIG. 11 as they are, and thus redundant explanations will be omitted.
図14は、一例における、クラウドサーバ、ロボット、およびサービスアプリケーションのN:1:Kの関係を示した図である。 FIG. 14 is a diagram showing an N:1:K relationship among a cloud server, a robot, and a service application in an example.
図に示すように、サービスアプリケーション110は複数であってよい。サービスアプリケーション110-1~110-Nは、それぞれ異なるロボット100がサービスを提供するように実現されたものであってよい。Nは2以上の自然数であってよい。クラウドサーバ120は、サービスアプリケーション110-1~110-Nそれぞれから抽象化された命令を受信してよく、受信した抽象化された命令に対応する動作を実行するようにロボット100を制御してよい。
As shown in the figure, there may be
図に示すように、ロボット100は複数であってよい。ロボット100-1~100-Kのそれぞれは、サービスアプリケーション110-1~110-Nが提供するサービスのうちの少なくとも1つを提供するように構成されてよい。ロボット100-1~100-Kは、サービスアプリケーション110-1~110-Nと1:多数または多数:1の関係でマッチングされてよい。すなわち、1つのサービスアプリケーションによって複数のロボット100-1~100-Kが制御されてよく、1つのロボットが複数のサービスアプリケーション110-1~110-Nと関連するサービスを提供するように構成されてよい。
As shown in the figure, there may be a plurality of
例えば、ロボット100-1~100-Kそれぞれは、サービスアプリケーション110-1~110-Nのうちの少なくとも1つが該当のロボットにプラグイン(plug-in)されることにより、該当のロボットがプラグインされたサービスアプリケーションと連係してサービスを提供するように実現されてよい。言い換えれば、サービスアプリケーション110がロボット100にプラグイン(plug-in)されることにより、ロボット100は、サービスアプリケーション110と連係してサービスアプリケーション110と関連するサービスを提供するように実現されてよい。
For example, each of the robots 100-1 to 100-K is enabled by plugging in at least one of the service applications 110-1 to 110-N to the robot. It may be implemented to provide a service in conjunction with a service application provided by the service provider. In other words, by plugging the
クラウドサーバ120は、複数のサービスアプリケーション110-1~110-Nのうちの他のサービスアプリケーションがロボット100とプラグインされるようにすることにより、ロボット100が他のサービスアプリケーションと連係して他のサービスを提供するように制御してよい。
The
したがって、図に示すように、実施形態では、あるサービスを提供するように実現されたロボット100を他のサービスを提供するようにする(または、追加で他のサービスを提供するようにする)ロボット100に容易にスイッチングすることができる。言い換えれば、ロボット100によるサービスの提供を簡単に確張することができる。
Accordingly, as shown in the figure, in embodiments, a
以上、図1~13を参照しながら説明した技術的特徴は、図14に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 13 can also be applied to FIG. 14 as they are, so duplicate explanations will be omitted.
図15は、一例における、データの流れの観点において、クラウドサーバ、ロボット、およびサービスアプリケーションの関係を示した図である。 FIG. 15 is a diagram illustrating the relationship between a cloud server, a robot, and a service application in terms of data flow in one example.
データの流れの観点において、クラウドサーバ120、ロボット100、およびサービスアプリケーション110は、互いに連結していてよい。
In terms of data flow,
ロボット100とサービスアプリケーション110は、クラウドサーバ120から命令とデータを通信するが、バイパス対象命令およびバイパス対象データは、ロボット100とサービスアプリケーション110の間で直に伝達されるため、データの流れの観点では、クラウドサーバ120、ロボット100、およびサービスアプリケーション110は、互いに連結するものと見なしてよい。
The
以上、図1~14を参照しながら説明した技術的特徴は、図15に対してもそのまま適用可能であるため、重複する説明は省略する。 The technical features described above with reference to FIGS. 1 to 14 can also be applied to FIG. 15 as they are, so redundant explanations will be omitted.
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。 The apparatus described above may be realized by hardware components, software components, or a combination of hardware and software components. For example, the devices and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), and a microcomputer. The implementation may be implemented using one or more general purpose or special purpose computers, such as a processor or various devices capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that execute on the OS. The processing device may also be responsive to execution of the software to access, record, manipulate, process, and generate data. Although for convenience of understanding, one processing device may be described as being used, those skilled in the art will appreciate that a processing device may include multiple processing elements and/or multiple types of processing elements. You will understand. For example, a processing device may include multiple processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に永続的に、または臨時的に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。 Software may include computer programs, code, instructions, or a combination of one or more of these that configure a processing device or instruct a processing device, independently or collectively, to perform operations as desired. You may do so. The software and/or data may be persistent on any machine, component, physical device, virtual device, computer storage medium or device of any kind to be interpreted by or to provide instructions or data to a processing device. It may be realized temporarily or temporarily. The software may be distributed on computer systems connected by a network, and may be recorded or executed in a distributed manner. The software and data may be recorded on one or more computer readable storage media.
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。 Methods according to embodiments may be implemented in the form of program instructions executable by various computer means and recorded on computer-readable media. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and configured for the embodiments, or may be those known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs and DVDs, and floptical disks. Includes magneto-optical media, and hardware devices specifically configured to record and execute program instructions, including ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that is executed by a computer using an interpreter or the like.
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。 As mentioned above, although the embodiments have been described based on limited embodiments and drawings, those skilled in the art will be able to make various modifications and variations based on the above description. For example, the techniques described may be performed in a different order than in the manner described, and/or components of the systems, structures, devices, circuits, etc. described may be performed in a different form than in the manner described. Even when combined or combined, opposed or replaced by other components or equivalents, suitable results can be achieved.
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。 Therefore, even if the embodiments are different, if they are equivalent to the scope of the claims, they fall within the scope of the appended claims.
100:ロボット
102:通信部
104:制御部
106:センサ部
108:駆動部
110:サービスアプリケーション
120:クラウドサーバ
211:経路計画処理モジュール
212:マッピング処理モジュール
213:駆動制御モジュール
214:ローカリゼーション処理モジュール
215:データ処理モジュール
216:命令処理モジュール
100: Robot 102: Communication unit 104: Control unit 106: Sensor unit 108: Drive unit 110: Service application 120: Cloud server 211: Route planning processing module 212: Mapping processing module 213: Drive control module 214: Localization processing module 215: Data processing module 216: Instruction processing module
Claims (18)
前記サービスアプリケーションから前記サービスを提供するための命令を受信する段階、
前記受信した命令を具体化して複数のサブ命令を生成する段階、および
前記ロボットに前記サブ命令の各サブ命令を送信する段階
を含み、
前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、
前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、
前記ロボットは、受信した前記各サブ命令に基づいて制御される、ロボット制御方法。 A method for controlling a robot that provides a service in conjunction with a service application executed by a cloud server, the method comprising:
receiving instructions for providing the service from the service application;
generating a plurality of sub-commands by embodying the received command; and transmitting each sub-command of the sub-commands to the robot;
the instructions from the service application are abstracted instructions that cannot directly control the robot to provide the service;
Each of the sub-commands is a concrete command of the abstracted command so that the robot can be directly controlled;
A robot control method, wherein the robot is controlled based on each of the received sub-commands.
をさらに含み、
前記サブ命令を生成する段階は、前記サービスアプリケーションからの命令がバイパス対象命令ではない場合に実行される、請求項1に記載のロボット制御方法。 further comprising determining whether the instruction from the service application is a bypass target instruction;
2. The robot control method according to claim 1, wherein the step of generating the sub-instruction is executed when the instruction from the service application is not a bypass target instruction.
をさらに含み、
前記ロボットは、前記伝達された命令に基づいて制御される、請求項2に記載のロボット制御方法。 If the command from the service application is a bypass target command, the method further includes transmitting the command from the service application directly to the robot;
The robot control method according to claim 2, wherein the robot is controlled based on the transmitted command.
前記サブ命令を生成する段階は、前記受信した命令を複数の単位命令に分割することによって前記サブ命令を生成する、請求項1に記載のロボット制御方法。 Each of the sub-instructions is a unit instruction that can be executed by the robot,
2. The robot control method according to claim 1, wherein in the step of generating the sub-instruction, the sub-instruction is generated by dividing the received instruction into a plurality of unit instructions.
前記サブ命令を生成する段階は、
前記ロボットの現在地から前記目的地まで前記ロボットが移動しなければならない複数のウェイポイントを決定する段階、および
前記ウェイポイントの各ウェイポイントに前記ロボットを移動させる命令を前記各サブ命令として前記ロボットに送信する段階
を含み、
前記ロボットは、前記ウェイポイントへの移動に対応する前記サブ命令にしたがって制御されることによって前記目的地に移動する、請求項5に記載のロボット制御方法。 The command from the service application is a command to move the robot to a destination,
The step of generating the sub-instructions includes:
determining a plurality of waypoints through which the robot should move from its current location to the destination; and sending instructions to the robot to move the robot to each of the waypoints as each of the sub-instructions. including the step of transmitting;
6. The robot control method according to claim 5, wherein the robot moves to the destination by being controlled according to the sub-instruction corresponding to movement to the waypoint.
前記サブ命令のうちの第1サブ命令を前記ロボットに送信する段階、
前記第1サブ命令による前記ロボットの制御が完了した後、前記ロボットから完了レポートを受信する段階、および
前記完了レポートを受信した後、前記サブ命令のうちの前記第1サブ命令の次に該当する第2サブ命令を前記ロボットに送信する段階
を含む、請求項1に記載のロボット制御方法。 The step of transmitting each of the sub-commands includes transmitting each of the sub-commands in order,
transmitting a first sub-command of the sub-commands to the robot;
after the control of the robot by the first sub-instruction is completed, receiving a completion report from the robot; and after receiving the completion report, the next one of the sub-instructions after the first sub-instruction The robot control method according to claim 1, comprising: transmitting a second sub-command to the robot.
前記ロボットの状態をモニタリングする段階、および
前記ロボットの状態に基づいて、前記サブ命令のうちで前記ロボットによる前記サービスの提供のために必要なサブ命令を前記ロボットに送信するか、予め送信されたサブ命令を取り消すための取消命令を前記ロボットに送信する段階
を含む、請求項1に記載のロボット制御方法。 The step of transmitting each sub-command includes:
monitoring the state of the robot; and based on the state of the robot, transmitting to the robot a sub-command that is necessary for the robot to provide the service, or transmitting a sub-command that has been previously transmitted to the robot. The robot control method according to claim 1, comprising the step of: transmitting a cancellation command to the robot to cancel the sub-command.
前記ロボットからのデータが前記ロボットの第1状態を示すバイパス対象データを含んでいるかどうかを判定する段階、
前記ロボットからのデータに前記バイパス対象データが含まれている場合には、前記バイパス対象データを前記サービスアプリケーションに直に伝達する段階、および
前記ロボットからのデータのうち、前記バイパス対象データではないデータに基づいて抽象化されたデータを生成し、生成された前記抽象化されたデータを前記サービスアプリケーションに送信する段階
をさらに含み、
前記抽象化されたデータに基づいて、前記サービスアプリケーションでは、前記ロボットを制御するための命令が生成されるか、前記ロボットのモニタリング情報が生成され、
前記バイパス対象データに基づいて、前記サービスアプリケーションでは前記ロボットの第1状態が識別される、請求項1に記載のロボット制御方法。 receiving data related to the robot from the robot;
determining whether data from the robot includes bypass target data indicating a first state of the robot;
If the data from the robot includes the data to be bypassed, directly transmitting the data to be bypassed to the service application;
generating abstracted data based on data that is not the bypass target data among the data from the robot, and transmitting the generated abstracted data to the service application;
further including;
Based on the abstracted data, the service application generates instructions for controlling the robot or generates monitoring information for the robot ,
The robot control method according to claim 1 , wherein the service application identifies a first state of the robot based on the bypass target data .
前記ロボットからのデータを分析して前記ロボットが第2状態を示すかどうかを判定する段階、および
前記判定の結果により、前記ロボットが第2状態を示すかどうかを示す情報を前記抽象化されたデータとして前記サービスアプリケーションに送信する段階
を含む、請求項9に記載のロボット制御方法。 The step of generating the abstracted data includes:
analyzing data from the robot to determine whether the robot exhibits a second state; and the result of the determination determines whether the robot exhibits a second state. The robot control method according to claim 9 , comprising the step of transmitting data to the service application.
前記ロボットまたは他のロボットに前記独立命令を送信する段階
をさらに含み、
前記独立命令は、前記ロボットに充電を要求する命令、前記ロボットの特定の地点への移動の経路を更新する命令、または前記ロボットが前記サービスを提供することができなくなったときに、前記他のロボットに対して前記サービスを提供するように要請する命令を含む、請求項1に記載のロボット制御方法。 further comprising: generating an independent command to control the robot independently of commands from the service application; and transmitting the independent command to the robot or another robot,
The independent command may be a command to request the robot to charge, a command to update the route of movement of the robot to a particular point, or a command to perform the other command when the robot is no longer able to provide the service. The robot control method according to claim 1, further comprising an instruction to request the robot to provide the service.
前記ロボットに送信される前記各サブ命令は、前記サービスと関連するコンテキスト情報を含まない、請求項1に記載のロボット制御方法。 The service application is realized on a server or a client that is separated from the robot via a network,
The robot control method according to claim 1, wherein each of the sub-instructions sent to the robot does not include context information associated with the service.
前記サービスアプリケーションは複数であり、
前記クラウドサーバは、複数のサービスアプリケーションのうちの他のサービスアプリケーションが前記ロボットとプラグインされるようにすることにより、前記ロボットが前記他のサービスアプリケーションと連係して他のサービスを提供するように制御する、請求項12に記載のロボット制御方法。 The service application is plugged into the robot, so that the robot is realized to cooperate with the service application to provide the service,
The service applications are plural;
The cloud server allows other service applications among the plurality of service applications to be plugged in with the robot, so that the robot cooperates with the other service applications to provide other services. The robot control method according to claim 12 .
前記クラウドサーバから、前記サービスアプリケーションから前記クラウドサーバに送信された前記サービスを提供するための命令が具体化されることによって生成された複数のサブ命令の各サブ命令を受信する段階、および
受信した前記各サブ命令に基づいて前記ロボットを制御する段階
を含み、
前記サービスアプリケーションは、前記ロボットとはネットワークを介して区分されるサーバまたはクライアント上に実現され、
前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、
前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、
前記ロボットに送信される前記各サブ命令は、前記サービスと関連するコンテキスト情報を含まない、ロボット制御方法。 A method for controlling a robot that provides a service in conjunction with a cloud server and a service application, the method comprising:
receiving, from the cloud server, each sub-instruction of a plurality of sub-instructions generated by embodying the instruction for providing the service transmitted from the service application to the cloud server; and controlling the robot based on each of the sub-commands;
The service application is realized on a server or a client that is separated from the robot via a network,
the instructions from the service application are abstracted instructions that cannot directly control the robot to provide the service;
Each of the sub-commands is a concrete command of the abstracted command so that the robot can be directly controlled;
The robot control method, wherein each of the sub-commands sent to the robot does not include context information associated with the service.
前記クラウドサーバに前記収集されたデータを送信する段階
をさらに含み、
前記クラウドサーバに送信されたデータは、前記クラウドサーバによって分析されることによって抽象化されたデータに加工され、前記サービスアプリケーションに送信され、
前記抽象化されたデータに基づいて、前記サービスアプリケーションでは、前記ロボットを制御するための命令が生成されるか、前記ロボットのモニタリング情報を示す情報が生成される、請求項15に記載のロボット制御方法。 further comprising: collecting data related to controlling the robot; and transmitting the collected data to the cloud server;
The data sent to the cloud server is analyzed by the cloud server, processed into abstracted data, and sent to the service application,
16. Robot control according to claim 15 , wherein the service application generates an instruction for controlling the robot or generates information indicating monitoring information of the robot based on the abstracted data. Method.
前記クラウドサーバにより、前記サービスアプリケーションではない他のサービスアプリケーションがプラグインされることにより、前記ロボットは、前記他のサービスアプリケーションと連係して他のサービスを提供するように制御される、請求項15に記載のロボット制御方法。 The robot is realized to provide the service in cooperation with the service application by being plugged in with the service application,
15. The robot is controlled to provide another service in cooperation with the other service application by plugging in another service application other than the service application by the cloud server. Robot control method described in.
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記サービスアプリケーションから前記サービスを提供するための命令を受信し、前記受信した命令を具体化して複数のサブ命令を生成し、前記ロボットに前記サブ命令の各サブ命令を送信し、
前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、
前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、
前記ロボットは、受信した前記各サブ命令に基づいて制御される、クラウドサーバ。 A cloud server that controls a robot that provides services in conjunction with a service application,
at least one processor implemented to execute computer-readable instructions;
The at least one processor includes:
receiving an instruction for providing the service from the service application, embodying the received instruction to generate a plurality of sub-instructions, and transmitting each sub-instruction of the sub-instructions to the robot;
the instructions from the service application are abstracted instructions that cannot directly control the robot to provide the service;
Each of the sub-commands is a concrete command of the abstracted command so that the robot can be directly controlled;
A cloud server, wherein the robot is controlled based on each of the received sub-instructions.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2020-0163830 | 2020-11-30 | ||
| KR1020200163830A KR102442064B1 (en) | 2020-11-30 | 2020-11-30 | A method for controlling a robot that provides a service in connection with a service application and a cloud server |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022087019A JP2022087019A (en) | 2022-06-09 |
| JP7353341B2 true JP7353341B2 (en) | 2023-09-29 |
Family
ID=81751326
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021171001A Active JP7353341B2 (en) | 2020-11-30 | 2021-10-19 | A method for controlling a robot that provides services in conjunction with a service application and a cloud server |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12117845B2 (en) |
| JP (1) | JP7353341B2 (en) |
| KR (2) | KR102442064B1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11962459B1 (en) | 2020-05-17 | 2024-04-16 | Heltun, Inc. | Intelligent traffic control in a bridge using cloud-based control for connected IoT devices |
| US12155506B1 (en) * | 2020-05-17 | 2024-11-26 | Heltun, Inc. | Cloud-based control and bridge for connected internet of things (IoT) devices |
| US20250321592A1 (en) * | 2022-05-30 | 2025-10-16 | Sony Group Corporation | Information processing device, information processing method, and program |
| WO2026071455A1 (en) * | 2024-09-25 | 2026-04-02 | 네이버 주식회사 | Method and system for controlling robot via web application in fleet management system |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001142534A (en) | 1999-11-04 | 2001-05-25 | Samsung Electronics Co Ltd | Control method of automatic guided vehicle system |
| JP2013099800A (en) | 2011-11-07 | 2013-05-23 | Fujitsu Ltd | Robot, method for controlling robot, and control program |
| JP2017010518A (en) | 2015-06-24 | 2017-01-12 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | Intelligent robot control system, method and apparatus based on artificial intelligence |
| CN106378780A (en) | 2016-10-21 | 2017-02-08 | 遨博(北京)智能科技有限公司 | Robot system and method and server for controlling robot |
| JP2017196691A (en) | 2016-04-27 | 2017-11-02 | パナソニックIpマネジメント株式会社 | robot |
| JP2019534516A (en) | 2016-11-08 | 2019-11-28 | フォルヴェルク・ウント・ツェーオー、インターホールディング・ゲーエムベーハーVorwerk & Compagnie Interholding Gesellshaft Mit Beschrankter Haftung | How to operate an autonomous mobile robot |
| WO2020164734A1 (en) | 2019-02-15 | 2020-08-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for controlling wireless command transmission to a robotic device |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06175722A (en) * | 1992-12-09 | 1994-06-24 | Yanmar Agricult Equip Co Ltd | Farm filed work control system for farm machine |
| KR100318437B1 (en) * | 1999-06-22 | 2001-12-24 | 박종섭 | System for parallelly controlling auto guide vehicle and method using the same |
| KR100520049B1 (en) | 2003-09-05 | 2005-10-10 | 학교법인 인하학원 | Path planning method for the autonomous mobile robot |
| US8060251B2 (en) * | 2004-12-06 | 2011-11-15 | Honda Motor Co., Ltd. | Interface for robot motion control |
| CN103459099B (en) * | 2011-01-28 | 2015-08-26 | 英塔茨科技公司 | Interact with a mobile telebot |
| US8307061B1 (en) * | 2011-10-27 | 2012-11-06 | Google Inc. | System and method for determining manufacturer instructions executable by a robotic device |
| US9802309B2 (en) * | 2014-07-24 | 2017-10-31 | X Development Llc | Methods and systems for generating instructions for a robotic system to carry out a task |
| CN109800937B (en) * | 2018-08-28 | 2020-12-01 | 博众精工科技股份有限公司 | Robot cluster dispatching system |
| EP3867757A4 (en) * | 2018-10-16 | 2022-09-14 | Brain Corporation | SYSTEMS AND METHODS FOR PERSISTENT MAPPING OF ENVIRONMENTAL PARAMETERS USING A CENTRALIZED CLOUD SERVER AND ROBOTIC NETWORK |
| KR102067770B1 (en) * | 2018-11-23 | 2020-01-17 | 롯데정보통신 주식회사 | Apparatus and method for intergratedly controlling multiple heterogeneous robots |
| KR20210099218A (en) * | 2019-01-03 | 2021-08-12 | 엘지전자 주식회사 | Server and robot system including same |
-
2020
- 2020-11-30 KR KR1020200163830A patent/KR102442064B1/en active Active
-
2021
- 2021-10-19 JP JP2021171001A patent/JP7353341B2/en active Active
- 2021-10-29 US US17/514,499 patent/US12117845B2/en active Active
-
2022
- 2022-09-05 KR KR1020220111994A patent/KR102545241B1/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001142534A (en) | 1999-11-04 | 2001-05-25 | Samsung Electronics Co Ltd | Control method of automatic guided vehicle system |
| JP2013099800A (en) | 2011-11-07 | 2013-05-23 | Fujitsu Ltd | Robot, method for controlling robot, and control program |
| JP2017010518A (en) | 2015-06-24 | 2017-01-12 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | Intelligent robot control system, method and apparatus based on artificial intelligence |
| JP2017196691A (en) | 2016-04-27 | 2017-11-02 | パナソニックIpマネジメント株式会社 | robot |
| CN106378780A (en) | 2016-10-21 | 2017-02-08 | 遨博(北京)智能科技有限公司 | Robot system and method and server for controlling robot |
| JP2019534516A (en) | 2016-11-08 | 2019-11-28 | フォルヴェルク・ウント・ツェーオー、インターホールディング・ゲーエムベーハーVorwerk & Compagnie Interholding Gesellshaft Mit Beschrankter Haftung | How to operate an autonomous mobile robot |
| WO2020164734A1 (en) | 2019-02-15 | 2020-08-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for controlling wireless command transmission to a robotic device |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220130048A (en) | 2022-09-26 |
| US12117845B2 (en) | 2024-10-15 |
| JP2022087019A (en) | 2022-06-09 |
| KR102442064B1 (en) | 2022-09-08 |
| US20220171392A1 (en) | 2022-06-02 |
| KR20220075582A (en) | 2022-06-08 |
| KR102545241B1 (en) | 2023-06-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7353341B2 (en) | A method for controlling a robot that provides services in conjunction with a service application and a cloud server | |
| EP3936965B1 (en) | Method and system for specifying nodes for robot path planning | |
| JP7071475B2 (en) | Elevator control method, elevator control system, robot control method and computer program | |
| US11775400B2 (en) | Redundant processing fabric for autonomous vehicles | |
| JP7686082B2 (en) | Method and system for controlling multiple robots traveling in a specified area, and building in which the robots are placed | |
| US8886829B1 (en) | Methods and systems for robot cloud computing using slug trails | |
| US12365090B2 (en) | Robots, teleoperation systems, and methods of operating the same | |
| KR102706709B1 (en) | Communication-based robot control system and method thereof | |
| US20240066683A1 (en) | Method and system for controlling robot configured with plurality of modular robots, and building in which robot is disposed | |
| KR20210044598A (en) | Control server of delivery robot and control method thereof | |
| KR101631153B1 (en) | Platform system for controlling automatic guided vehicle | |
| Fakhruldeen et al. | Development of a ROS Driver and Support Stack for the KMR iiwa Mobile Manipulator | |
| Taherkordi et al. | Service virtualization for self-adaptation in mobile cyber-physical systems | |
| US20190160679A1 (en) | Autonomous robotic avatars | |
| Xu et al. | Risk Analysis and Policy Enforcement of Function Interactions in Robot Apps | |
| US20230382432A1 (en) | Transitioning to an autonomous driving mode using an operator control history | |
| KR20250053584A (en) | Robot including sensor unit having touch sensor receiving touch input for interaction between robot and user and method for controlling the same | |
| KR20240133193A (en) | Method and system for controlling movement of a robot based on situation information geterated from environment information with respect to space acquired from the robot and sensor in the space | |
| JP2026058667A (en) | Management systems, methods, and programs | |
| KR20250114674A (en) | Method and system for controlling a plurality of robots | |
| Wang et al. | A fully cloud-based modular home service robot | |
| CN117794707A (en) | Operating terminals, robot systems and computer programs | |
| CN117858786A (en) | Operating terminals, robot systems and computer programs | |
| Aboudaya | Mobile Teleoperation of a Mobile Robot | |
| Head et al. | Multi-Robot Cluster Control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211019 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221004 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221222 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230404 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230630 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230829 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230919 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7353341 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |