Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7353341B2 - A method for controlling a robot that provides services in conjunction with a service application and a cloud server - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2021171001A
Other languages
Japanese (ja)
Other versions
JP2022087019A (en
Inventor
ギョンシク パク
ヨンファン ユン
スンイン チャ
ウヨン チェ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naver Labs Corp
Original Assignee
Naver Labs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Naver Labs Corp filed Critical Naver Labs Corp
Publication of JP2022087019A publication Critical patent/JP2022087019A/en
Application granted granted Critical
Publication of JP7353341B2 publication Critical patent/JP7353341B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/028Control 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/0405Program-control specially adapted for machine tool control and not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1664Program controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60LPROPULSION 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/00Methods 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/30Constructional details of charging stations
    • B60L53/35Means for automatic or assisted adjustment of the relative position of charging devices and vehicles
    • B60L53/36Means for automatic or assisted adjustment of the relative position of charging devices and vehicles by positioning the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control 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/0022Control 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/221Remote-control arrangements
    • G05D1/226Communication links with the remote-control arrangements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/247Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/644Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2101/00Details of software or hardware architectures used for the control of position
    • G05D2101/10Details 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, Patent Document 1 discloses a technology related to a route planning method for an autonomous mobile robot, in which a mobile robot that moves autonomously in a home or office safely and quickly moves to a target point while avoiding obstacles. This paper discloses a method for planning an optimal route for

上述した情報は、本発明の理解を助けるためのものに過ぎず、従来技術の一部を形成しない内容を含むこともある。 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.

韓国公開特許第10-2005-0024840号公報Korean Published Patent No. 10-2005-0024840

クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法であって、サービスアプリケーションから受信した抽象化された命令を具体化して複数のサブ命令を生成し、具体化されたサブ命令をロボットに送信することによってロボットが制御されるようにする、ロボット制御方法を提供する。 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.

一実施形態における、クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法を示した図である。FIG. 2 is a diagram illustrating a method of controlling a robot that provides a service in conjunction with a service application, executed by a cloud server, in one embodiment. 一実施形態における、サービスを提供するロボットを示したブロック図である。1 is a block diagram illustrating a robot providing a service in one embodiment. FIG. 一実施形態における、ロボットを制御するクラウドサーバを示したブロック図である。FIG. 2 is a block diagram illustrating a cloud server that controls a robot in one embodiment. 一実施形態における、ロボットを制御するクラウドサーバを示したブロック図である。FIG. 2 is a block diagram illustrating a cloud server that controls a robot in one embodiment. 一実施形態における、サービスアプリケーションが搭載された装置を示したブロック図である。1 is a block diagram illustrating a device equipped with a service application in one embodiment. FIG. 一実施形態における、クラウドサーバが実行する、サービスアプリケーションと連係してサービスを提供するロボットの制御方法を示したフローチャートである。2 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. 一例における、抽象化された命令に基づいて、抽象化された命令が具体化されたサブ命令を生成する方法を示したフローチャートである。2 is a flowchart illustrating a method for generating sub-instructions in which the abstracted instructions are materialized based on the abstracted instructions in one example. 一例における、抽象化された命令に基づいて、抽象化された命令が具体化されたサブ命令を生成する方法を示したフローチャートである。2 is a flowchart illustrating a method for generating sub-instructions in which the abstracted instructions are materialized based on the abstracted instructions in one example. 一例における、ロボットからのデータを処理し、該当のデータに基づいて抽象化されたデータを生成および処理する方法を示したフローチャートである。5 is a flowchart illustrating a method for processing data from a robot and generating and processing abstracted data based on the data in one example. 一例における、ロボットからのデータを処理し、該当のデータに基づいて抽象化されたデータを生成および処理する方法を示したフローチャートである。5 is a flowchart illustrating a method for processing data from a robot and generating and processing abstracted data based on the data in one example. 一例における、クラウドサーバ側でロボットに対して独立的に提供する独立命令を生成および処理する方法を示したフローチャートである。5 is a flowchart illustrating a method for generating and processing independent commands that are independently provided to a robot on a cloud server side in one example. 一例における、サービスアプリケーションからの抽象的な命令に基づいて具体化されたサブ命令を生成してロボットを制御する方法を示した図である。FIG. 2 is a diagram illustrating a method for controlling a robot by generating concrete sub-instructions based on abstract instructions from a service application in one example. 一例における、サービスアプリケーションからの抽象的な命令に基づいて具体化されたサブ命令を生成してロボットを制御する方法を示した図である。FIG. 2 is a diagram illustrating a method for controlling a robot by generating concrete sub-instructions based on abstract instructions from a service application in one example. 一例における、クラウドサーバ、ロボット、およびサービスアプリケーションのN:1:Kの関係を示した図である。FIG. 2 is a diagram showing an N:1:K relationship between a cloud server, a robot, and a service application in an example. 一例における、データの流れの観点において、クラウドサーバ、ロボット、およびサービスアプリケーションの関係を示した図である。FIG. 2 is a diagram illustrating the relationship between a cloud server, a robot, and a service application in terms of data flow in one example.

以下、実施形態について、添付の図面を参照しながら詳しく説明する。 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 cloud server 120 receives an instruction (abstracted instruction) from the service application 110, and embodies the received instruction. , describes a method for controlling the robot 100 according to concrete instructions.

また、図1では、ロボット100が制御されることにより、クラウドサーバ120がロボット100からロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してデータを抽象化し、抽象化されたデータをサービスアプリケーション110に送信する方法について説明している。 In FIG. 1, when the robot 100 is controlled, the cloud server 120 receives data collected by the robot 100 from the robot 100 (for example, data related to the control of the robot 100), abstracts the data, and abstracts the data. A method for transmitting converted data to the service application 110 is explained.

クラウドサーバ120は、サービスアプリケーション110からの命令が、具体化が必要ないバイパス対象命令に該当するかどうかを判定してよく、命令がバイパス対象命令の場合は、該当の命令をロボット100に直に伝達(ルーティングまたはフォワーディング)してよい。 The cloud server 120 may determine whether the command from the service application 110 corresponds to a bypass target command that does not need to be materialized, and if the command is a bypass target command, the cloud server 120 directly sends the corresponding command to the robot 100. May be communicated (routing or forwarding).

また、クラウドサーバ120は、ロボット100からのデータが、抽象化が必要ないバイパス対象データを含むかどうかを判定してよく、バイパス対象データの場合は、該当のデータを直にサービスアプリケーション110に伝達(ルーティングまたはフォワーディング)してよい。 Further, the cloud server 120 may determine whether the data from the robot 100 includes bypass target data that does not require abstraction, and if the data is bypass target data, the data is directly transmitted to the service application 110. (routing or forwarding).

一例として、図に示すように、サービスアプリケーション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 service application 110 is "wink and greet", a device 105 (for example, an LED corresponding to the eyes of the robot 100) associated with the UX (User Experience) of the robot 100 is sent. , or other sound output device), the cloud server 120 may determine that such an instruction corresponds to a bypass target instruction. At this time, the command may be transmitted to the robot 100, and the robot 100 may output an expression and sound corresponding to a greeting (“hello”) through the device 105.

実施形態では、ロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションの部分が、ロボット100から分離されて実現されてよい。言い換えれば、実施形態は、特定のサービスを提供するためのロボット100を実現するためにサービスまたは該当のサービスと関連する機能を含むアプリケーションをロボット100内部に搭載しなければならなかった従来の技術に比べ、(サービスを運用および/または要請する側の)サービスアプリケーション110の複雑度を減らすことができ、ロボット100の拡張性を高めることができる。 In embodiments, portions of the service application that include service logic associated with services provided by the robot 100 may be implemented separately from the robot 100. In other words, the embodiments differ from the conventional technology in which an application including a service or a function related to the service must be installed inside the robot 100 in order to realize the robot 100 for providing a specific service. In comparison, the complexity of the service application 110 (on the side that operates and/or requests services) can be reduced, and the scalability of the robot 100 can be increased.

従来の技術の場合は、ロボット100が提供するサービスと関連するサービスロジックがサービスアプリケーションとしてロボット100に搭載され、このようなロボットに搭載されたサービスアプリケーションが(サービスを運用および/または要請する側の)サービスアプリケーション110と相互作用しながらサービスを提供していた。 In the case of conventional technology, the service logic related to the service provided by the robot 100 is installed in the robot 100 as a service application, and the service application installed in such a robot (operating and/or requesting side) ) The service was provided while interacting with the service application 110.

これに比べ、実施形態の場合は、ロボット100にはサービスロジックを含むサービスアプリケーションが搭載されないため、ロボット100側では、サービスと関連するコンテキスト情報を把握することができず、ロボット100は、クラウドサーバ120からロボット100の動きおよびロボット100が提供する機能を制御するための命令(すなわち、ロボット100が実行可能な単位命令)だけを受信して動作するようになる。 In contrast, in the case of the embodiment, since the robot 100 is not equipped with a service application including service logic, the robot 100 cannot grasp the context information related to the service, and the robot 100 is unable to grasp the context information related to the service. The robot 100 receives only commands (ie, unit commands executable by the robot 100) for controlling the movement of the robot 100 and the functions provided by the robot 100 from the robot 120 and operates.

一方、命令を下すサービスアプリケーション110側では、(ロボットを直接的に制御するための具体化された命令ではない)抽象化された命令をクラウドサーバ120に送信してよく、クラウドサーバ120側では、このような抽象化された命令に基づいて、ロボット100を直接的に制御するための具体化された命令を生成してよい。したがって、サービスアプリケーション110の開発者は、ロボット100の詳細的な機能の制御方法を把握する必要がなくなり、ロボット100を通じてサービスを提供するための(すなわち、抽象化された命令だけでロボット100を制御することのできる)アプリケーションを開発することができるようになる。 On the other hand, the service application 110 side that issues the command may send abstracted commands (not concrete commands for directly controlling the robot) to the cloud server 120, and the cloud server 120 side Based on such abstracted instructions, concrete instructions for directly controlling the robot 100 may be generated. Therefore, the developer of the service application 110 no longer needs to know how to control the detailed functions of the robot 100, and the developer of the service application 110 no longer needs to know how to control the detailed functions of the robot 100, and can control the robot 100 with only abstracted instructions. You will be able to develop applications that can

サービスアプリケーション110は、ロボット100とネットワークを介して区分されるサーバまたはクライアント上に実現されてよい。また、サービスアプリケーション110は、実施形態によっては、ロボット100に結合されるか、ロボット100に含まれる装置内で実現されてもよい。このような実施形態の場合にも、サービスアプリケーション110とロボット100は、ネットワークを介して区分されてよい。 The service application 110 may be implemented on a server or client that is partitioned from the robot 100 via a network. Additionally, service application 110 may be coupled to robot 100 or implemented within a device included in robot 100, depending on the embodiment. Even in such an embodiment, the service application 110 and the robot 100 may be separated via the network.

ロボット100、サービスアプリケーション110、およびクラウドサーバ120の具体的な動作と、ロボット100の詳しい制御方法については、図2~15を参照しながらさらに詳しく説明する。 The specific operations of the robot 100, the service application 110, and the cloud server 120 and the detailed control method of the robot 100 will be explained in more detail with reference to FIGS. 2 to 15.

図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 robot 100 that provides services in conjunction with a service application 110 using a cloud server 120. The robot 100 may be, for example, a service robot that provides services under the control of the cloud server 120 in a space such as the interior of a building. Space should not be limited to indoor space, but may also refer to outdoor space. In other words, the space may be an indoor or outdoor space with a specified range, or a space that includes both indoors and outdoors.

空間は、例えば、ロボット100によって品物の配達が実行される建物(会社など)、飲食物の配達が実行されるカフェ、案内サービスが提供される室内/室外空間などであってよい。 The space may be, for example, a building (such as a company) where goods are delivered by the robot 100, a cafe where food and drinks are delivered, an indoor/outdoor space where guidance services are provided, or the like.

ロボット100は、空間を走行することにより、空間内の利用者にサービスを提供してよい。ロボット100は、サービスアプリケーション110からの命令(抽象化された命令)に基づいてサービスを提供してよい。サービスアプリケーション110からの命令は、クラウドサーバ120で具体化されてロボット100に伝達されてよく、ロボット100は、このような具体化された命令に基づいて制御されてよい。 The robot 100 may provide services to users within the space by traveling in the space. The robot 100 may provide a service based on instructions (abstracted instructions) from the service application 110. Instructions from the service application 110 may be embodied in the cloud server 120 and communicated to the robot 100, and the robot 100 may be controlled based on such embodied instructions.

ロボット100は、サービスを提供するために必要となる具体的な演算を実行せず、これを実行するためのセンシングデータはもちろん、ロボットの制御と関連するデータ(または、ロボット100が収集したデータ)をクラウドサーバ120に提供するだけであるという点において、ブレインレスロボットに該当してよい。 The robot 100 does not execute specific calculations necessary to provide the service, and uses not only sensing data to perform this but also data related to robot control (or data collected by the robot 100). The robot may be considered a brainless robot in that it only provides information to the cloud server 120.

ロボット100が提供するサービスは、空間内で、飲食物、工産品のような商品、または宅配を配達する配達サービスを含んでよい。すなわち、ロボット100は、配達サービスロボットまたはサービングサービスロボットであってよい。また、ロボット100が提供するサービスは、利用者を空間内の特定の位置に案内する道案内サービスを含んでよい。さらに、ロボット100が提供するサービスは、警備サービス、イベント/ニュースなどの情報提供サービス、および空間内に位置する植物を管理するサービスを含んでよい。 The services provided by the robot 100 may include a delivery service that delivers food, drinks, products such as manufactured goods, or home delivery within a space. That is, robot 100 may be a delivery service robot or a serving service robot. Further, the services provided by the robot 100 may include a guide service that guides the user to a specific position in space. Furthermore, the services provided by the robot 100 may include a security service, an information provision service such as events/news, and a service for managing plants located within the space.

ロボット100は、物理的な装置であってよく、図に示すように、制御部104、駆動部108、センサ部106、および通信部102を含んでよい。また、ロボット100は、サービス提供のための品物などを載せるための搭載部をさらに含んでもよい。 The robot 100 may be a physical device, and may include a control section 104, a driving section 108, a sensor section 106, and a communication section 102, as shown in the figure. Furthermore, the robot 100 may further include a mounting section on which items for providing services are placed.

制御部104は、ロボット100に内蔵された物理的なプロセッサであってよく、経路計画処理モジュール211、マッピング処理モジュール212、駆動制御モジュール213、ローカリゼーション処理モジュール214、データ処理モジュール215、および命令処理モジュール216を含んでよい。このとき、経路計画処理モジュール211、マッピング処理モジュール212、およびローカリゼーション処理モジュール214は、クラウドサーバ120との通信がなされない場合にもロボット100の自律走行が実行されるようにするために、実施形態によっては、選択的に、制御部104に含まれるものであってもよい。 The control unit 104 may be a physical processor built into the robot 100, and includes a path planning processing module 211, a mapping processing module 212, a drive control module 213, a localization processing module 214, a data processing module 215, and an instruction processing module. 216. At this time, the route planning processing module 211, the mapping processing module 212, and the localization processing module 214 are configured according to the embodiment in order to allow the robot 100 to run autonomously even when there is no communication with the cloud server 120. Depending on the situation, it may be selectively included in the control unit 104.

通信部102は、ロボット100が他の装置(他のロボットまたはクラウドサーバ120など)と通信するための構成であってよい。言い換えれば、通信部102は、他の装置に対してデータおよび/または情報を送信/受信する、ロボット100のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。 The communication unit 102 may be configured to allow the robot 100 to communicate with other devices (such as other robots or the cloud server 120). In other words, the communication unit 102 includes hardware such as an antenna, a data bus, a network interface card, a network interface chip, a networking interface port, etc. of the robot 100 that transmits/receives data and/or information to/from other devices. or a software module such as a network device driver or networking program.

駆動部108は、ロボット100の移動を制御して移動を可能にする構成であって、これを実行するための装備を含んでよい。例えば、駆動部108は、タイヤを含んでよい。駆動部108は、命令処理モジュール216によって処理された命令にしたがってロボット100の動きおよび/または機能を制御してよい。 The drive unit 108 is configured to control the movement of the robot 100 to enable the movement, and may include equipment for executing this. For example, drive unit 108 may include tires. Drive unit 108 may control movements and/or functions of robot 100 according to instructions processed by instruction processing module 216.

センサ部106は、ロボット100の自律走行およびサービス提供のために必要なデータを収集するための構成であってよい。センサ部106は、高価なセンシング装備(スキャン装備)を含まなくてよく、低価型の超音波センサおよび/または低価型のカメラなどのようなセンサを含んでよい。センサ部106は、走行方向に位置する障害物/人物を識別するためのセンサを含んでもよい。 The sensor unit 106 may be configured to collect data necessary for the robot 100 to travel autonomously and provide services. The sensor unit 106 does not need to include expensive sensing equipment (scanning equipment), and may include sensors such as a low-cost ultrasonic sensor and/or a low-cost camera. The sensor unit 106 may include a sensor for identifying obstacles/persons located in the traveling direction.

また、センサ部106は、図には示されていないが、カメラを含んでよい。カメラは、ロボット100の周りに位置する利用者または障害物を認識することができるように配置されてよい。カメラは、RGBカメラまたは単眼カメラであってよい。または、カメラは、デプス(depth)カメラを含んでもよい。 Further, although not shown in the figure, the sensor unit 106 may include a camera. The camera may be positioned such that it can recognize users or obstacles located around the robot 100. The camera may be an RGB camera or a monocular camera. Alternatively, the camera may include a depth camera.

制御部104の処理例として、制御部104のデータ処理モジュール215は、センサ部106からのセンシング値(例えば、センサからの出力値)を含むセンシングデータを、通信部102を経てクラウドサーバ120に送信してよい。クラウドサーバ120は、空間内の(室内)地図に基づいて生成された経路データをロボット100に送信してよい。前記経路データは、ロボット100がサービスを提供するための経路を示すデータであってよい。経路データは、通信部102からデータ処理モジュール215に伝達されてよい。データ処理モジュール215は、経路データを駆動制御モジュール213に直接伝達してよく、駆動制御モジュール213は、経路データにしたがって駆動部108を制御してロボット100の自律走行を制御してよい。 As an example of processing by the control unit 104, the data processing module 215 of the control unit 104 transmits sensing data including a sensing value from the sensor unit 106 (for example, an output value from the sensor) to the cloud server 120 via the communication unit 102. You may do so. The cloud server 120 may transmit route data generated based on an in-space (indoor) map to the robot 100. The route data may be data indicating a route for the robot 100 to provide a service. The route data may be transmitted from the communication unit 102 to the data processing module 215. The data processing module 215 may directly transmit the route data to the drive control module 213, and the drive control module 213 may control the drive unit 108 according to the route data to control autonomous travel of the robot 100.

ロボット100とクラウドサーバ120が通信できなくなった場合、データ処理モジュール215は、センシングデータをローカリゼーション処理モジュール214に送信し、経路計画処理モジュール211とマッピング処理モジュール212で経路データを生成してロボット100の自律走行を直接処理してもよい。例えば、制御部104は、経路計画処理モジュール211とマッピング処理モジュール212によって地図からサービスを提供する位置を識別してよく、識別された位置でサービスを提供するための経路を示すデータとしての経路データを生成してよく、このような経路データによる経路を走行するようにロボット100の自律走行を制御してよい。 If the robot 100 and the cloud server 120 are unable to communicate, the data processing module 215 sends the sensing data to the localization processing module 214, the route planning processing module 211 and the mapping processing module 212 generate route data, and the robot 100 Autonomous driving may be handled directly. For example, the control unit 104 may use the route planning processing module 211 and the mapping processing module 212 to identify a location where a service is provided from a map, and use route data as data indicating a route for providing a service at the identified location. may be generated, and the autonomous running of the robot 100 may be controlled to travel along a route based on such route data.

ロボット100は、クラウド上に格納された地図に基づいてサービスを提供するための位置に自律走行で移動してよく、走行時に障害物の回避、敷居越え、エレベータの乗下車、非常停止などを実行するように制御されてよい。 The robot 100 may autonomously move to a location to provide a service based on a map stored in the cloud, and performs actions such as avoiding obstacles, crossing thresholds, getting on and off elevators, and making emergency stops while moving. It may be controlled to

一方、ロボット100は、空間内の地図を生成するために利用されるマッピングロボットとは区分されるものであってよい。このとき、ロボット100は、高価なセンシング装備(スキャン装備)を含まないため、低価型の超音波センサおよび/または低価型のカメラなどのようなセンサの出力値を利用して自律走行を処理してよい。ロボット100が以前にクラウドサーバ120との通信によって自律走行を処理した経験があれば、クラウドサーバ120から以前に受信した経路データが含むマッピングデータなどをさらに活用することにより、低価のセンサを利用しながらでも正確な自律走行を可能にすることができる。実施形態によっては、ロボット100は、前記マッピングロボットと兼用されてもよい。 On the other hand, the robot 100 may be different from a mapping robot used to generate a map in space. At this time, since the robot 100 does not include expensive sensing equipment (scanning equipment), it can run autonomously using output values of sensors such as low-cost ultrasonic sensors and/or low-cost cameras. May be processed. If the robot 100 has previously processed autonomous travel through communication with the cloud server 120, it can utilize low-cost sensors by further utilizing mapping data included in route data previously received from the cloud server 120. This enables accurate autonomous driving even while driving. Depending on the embodiment, the robot 100 may also be used as the mapping robot.

実施形態において、ロボット100には、ロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションが搭載されなくてもよい。したがって、ロボット100は、サービスアプリケーション110からのサービスの提供のための抽象化された命令によっては直接的に制御されず、クラウドサーバ120によって該当の命令が具体化されることによって生成された単位命令(サブ命令)に基づいて制御されてよい。クラウドサーバ120からロボット100に送信されるサブ命令は、サービスと関連するコンテキスト情報を含まなくてもよい。例えば、サブ命令は、サービスの種類を示す情報やサービスの識別子などのように、サービスと関連する情報を含まなくてもよい。したがって、ロボット100の制御は、サービスのコンテキストに依存しなくてもよくなる。 In embodiments, the robot 100 may not be equipped with a service application that includes service logic related to the services provided by the robot 100. Therefore, the robot 100 is not directly controlled by abstracted instructions for providing a service from the service application 110, but unit instructions generated by the cloud server 120 embodying the instructions. (sub-instructions). The sub-commands sent from cloud server 120 to robot 100 may not include context information associated with the service. For example, the sub-command does not need to include information related to the service, such as information indicating the type of service or a service identifier. Therefore, control of the robot 100 does not have to depend on the context of the service.

命令処理モジュール216は、クラウドサーバ120から受信した命令(すなわち、具体化された命令)を、通信部102を経て、または通信部102とデータ処理モジュール215を経て受信してよい。制御部104は、受信した命令に基づいてロボット100を制御してよい。ロボット100は、クラウドサーバ120から受信した具体化された命令にしたがって制御されることによって利用者にサービスを提供してよい。 The command processing module 216 may receive commands (ie, instantiated commands) received from the cloud server 120 via the communication unit 102 or via the communication unit 102 and the data processing module 215. The control unit 104 may control the robot 100 based on the received command. The robot 100 may provide a service to a user by being controlled according to embodied instructions received from the cloud server 120.

一方、駆動部108は、ロボット100の移動のための装備だけでなく、ロボット100が提供するサービスと関連する装備をさらに含んでよい。例えば、駆動部108は、上述したような搭載部と、サービスと関連する品物を搭載したり移動させたりするための構成(一例として、ロボットアーム(arm))を含んでよい。クラウドサーバ120から受信した具体化された命令にしたがい、サービス提供のために駆動部108が制御されてもよい。 Meanwhile, the driving unit 108 may include not only equipment for moving the robot 100 but also equipment related to services provided by the robot 100. For example, the drive unit 108 may include a loading unit as described above and a configuration (eg, a robot arm) for loading and moving items related to the service. According to the embodied instructions received from the cloud server 120, the driving unit 108 may be controlled to provide the service.

また、ロボット100は、情報/コンテンツを提供するためのスピーカおよび/またはディスプレイ、またはLEDなどをさらに含んでよい。これらの装置は、図1を参照しながら説明したUXと関連する装置105を構成してよい。命令処理モジュール216は、クラウドサーバ120から受信した命令にしたがってUXと関連する装置105が制御されるようにロボット100を制御してよい。 Additionally, the robot 100 may further include a speaker and/or display, LEDs, etc. for providing information/content. These devices may constitute the device 105 associated with the UX described with reference to FIG. Command processing module 216 may control robot 100 such that UX and associated devices 105 are controlled according to commands received from cloud server 120.

実施形態では、サービスアプリケーション110にはロボット100のUIおよびサービスシナリオを制御するロジックが搭載され、ロボット100にはロボット100の動作に必要となる最小限のロジック(例えば、安全関連ロジック)だけが搭載されてよい。サービスアプリケーション110からの抽象化された命令(例えば、移動命令)にしたがい、クラウドサーバ120は、命令に該当する詳細移動計画を決定してよく、ロボット100を制御してよい。ロボット100は、このような決定された移動計画にしたがって走行してよい。 In the embodiment, the service application 110 is equipped with logic that controls the UI and service scenario of the robot 100, and the robot 100 is equipped with only the minimum logic (for example, safety-related logic) required for the operation of the robot 100. It's okay to be. According to abstracted instructions (eg, movement instructions) from service application 110, cloud server 120 may determine a detailed movement plan corresponding to the instruction and may control robot 100. The robot 100 may travel according to such a determined movement plan.

クラウドサーバ120から命令を受信し、受信した命令にしたがってロボット100が制御される具体的な方法については、図3~15を参照しながらさらに詳しく説明する。 A specific method for receiving instructions from the cloud server 120 and controlling the robot 100 according to the received instructions will be described in more detail with reference to FIGS. 3 to 15.

以上、図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 cloud server 120 may be a device that controls the movement (i.e., travel) of the robot 100 described above in space and the functions provided by the robot 100. When there are a plurality of robots 100, the cloud server 120 may control the movement of each of the plurality of robots and the functions of each of the robots. Cloud server 120 may communicate with robot 100 to establish a route that robot 100 must travel to provide a service, and may communicate information regarding such route to robot 100. The robot 100 may travel according to the received information regarding the route and may provide services to the user. That is, the cloud server 120 may control the movement of the robot 100 so that the robot moves (runs) along a set route.

クラウドサーバ120は、ロボット制御システムやその一部を構成してよい。クラウドサーバ120は、少なくとも1つのコンピュータ装置を含んでよく、空間内部または空間外部に位置するサーバで実現されてよい。 The cloud server 120 may constitute a robot control system or a part thereof. The cloud server 120 may include at least one computer device and may be implemented in a server located inside or outside the space.

クラウドサーバ120は、図に示すように、メモリ330、プロセッサ320、通信部310、および入力/出力インタフェース340を含んでよい。 Cloud server 120 may include a memory 330, a processor 320, a communications unit 310, and an input/output interface 340, as shown.

メモリ330は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置(permanent mass storage device)を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリ330とは区分される別の永続的記録装置として含まれてもよい。また、メモリ330には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ330とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信部310を通じてメモリ330にロードされてもよい。 Memory 330 is a computer-readable storage medium, and 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 mass storage device may be included as separate permanent storage devices separated from the memory 330. Additionally, an operating system and at least one program code may be recorded in the memory 330. Such software components may be loaded from a computer-readable storage medium separate from memory 330. 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, software components may be loaded into memory 330 through communication portion 310 that is not a computer-readable storage medium.

プロセッサ320は、基本的な算術、ロジック、および入力/出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ330または通信部310によって、プロセッサ320に提供されてよい。例えば、プロセッサ320は、メモリ330にロードされたプログラムコードにしたがって受信される命令を実行するように構成されてよい。このようなプロセッサ320は、図4に示すような構成410~440を含んでよい。 Processor 320 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 320 by memory 330 or communication unit 310. For example, processor 320 may be configured to execute instructions received according to program code loaded into memory 330. Such a processor 320 may include configurations 410-440 as shown in FIG.

プロセッサ320の構成410~440それぞれは、プロセッサ320の一部であって、ソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。プロセッサ320の構成410~440については、図4を参照しながら説明する。 Each of the components 410-440 of the processor 320 is part of the processor 320 and may be a software and/or hardware module, and may represent a function (functional block) implemented by the processor. The configurations 410 to 440 of the processor 320 will be described with reference to FIG.

通信部310は、クラウドサーバ120が他の装置(ロボット100またはサービスアプリケーション110が搭載された装置など)と通信するための構成であってよい。言い換えれば、通信部310は、他の装置においてデータおよび/または情報を送信/受信する、クラウドサーバ120のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。 The communication unit 310 may be configured to allow the cloud server 120 to communicate with another device (such as a device equipped with the robot 100 or the service application 110). In other words, the communication unit 310 includes hardware such as antennas, data buses, network interface cards, network interface chips, networking interface ports, etc. of the cloud server 120 that transmit/receive data and/or information in other devices. module or a software module such as a network device driver or networking program.

入力/出力インタフェース340は、キーボードまたはマウスなどのような入力装置、およびディスプレイやスピーカのような出力装置とのインタフェースのための手段であってよい。 Input/output interface 340 may be a means for interfacing with input devices, such as a keyboard or mouse, and output devices, such as a display or speakers.

実施形態によっては、クラウドサーバ120は、図に示した構成要素よりも多くの構成要素を含んでもよい。 In some embodiments, cloud server 120 may include more components than those illustrated.

実施形態において、クラウドサーバ120は、サービスアプリケーション110からロボット100によるサービス提供のための命令(抽象化された命令)を受信してよく、受信した命令を処理して(すなわち、具体化して)ロボット100を制御するためのサブ命令(すなわち、具体化された命令)を生成してよい。 In embodiments, the cloud server 120 may receive instructions (abstracted instructions) for the robot 100 to provide the service from the service application 110, and processes (i.e., embodies) the received instructions to provide the robot with the instructions. Sub-instructions (ie, instantiated instructions) may be generated to control 100.

図4を参照しながら、上述したプロセッサ320の構成410~440についてさらに詳しく説明する。プロセッサ320は、図に示すように、マップ生成モジュール410、ローカリゼーション処理モジュール420、経路計画処理モジュール430、および命令処理モジュール440を含んでよい。このようなプロセッサ320が含む構成要素は、オペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)にしたがってプロセッサ320が含む少なくとも1つのプロセッサが実行する互いに異なる機能(different functions)の表現であってよい。 The configurations 410 to 440 of the processor 320 described above will be described in more detail with reference to FIG. Processor 320 may include a map generation module 410, a localization processing module 420, a route planning processing module 430, and an instruction processing module 440, as shown. The components included in such processor 320 may perform different functions performed by at least one processor included in processor 320 according to control instructions provided by operating system code and at least one computer program code. ) may be an expression.

マップ生成モジュール410は、建物内部で自律走行する(図示せず)マッピングロボットが、目標施設物(例えば、建物の内部)に対して生成したセンシングデータを利用して目標施設物の室内地図を生成するための構成要素であってよい。 The map generation module 410 generates an indoor map of a target facility using sensing data generated for the target facility (for example, inside a building) by a mapping robot (not shown) autonomously running inside the building. It may be a component for

このとき、ローカリゼーション処理モジュール420は、ロボット100からネットワークを介して受信したセンシングデータと、マップ生成モジュール410で生成された目標施設物の室内地図を利用しながら、目標施設物(建物または建物の階)内部におけるロボット100の位置を決定してよい。 At this time, the localization processing module 420 uses the sensing data received from the robot 100 via the network and the indoor map of the target facility generated by the map generation module 410 to ) may determine the position of the robot 100 within the interior.

経路計画処理モジュール430は、上述したロボット100から受信したセンシングデータと生成された室内地図を利用しながら、ロボット100の自律走行を制御するための制御信号を生成してよい。例えば、経路計画処理モジュール430は、ロボット100の走行のための経路(すなわち、経路データ)を生成してよい。生成された経路(経路データ)は、該当の経路に沿ったロボット100の走行のためにロボット100に設定されてよい。クラウドサーバ120は、生成された経路に関する情報を、ネットワークを介してロボット100に送信してよい。一例として、経路に関する情報は、ロボット100の現在地を示す情報、現在地と室内地図をマッピングするための情報、または経路計画情報を含んでよい。経路計画処理モジュール430は、ロボット100のための経路を生成してロボット100に設定してよい。クラウドサーバ120は、このような設定された経路に沿って(すなわち、設定された経路に沿って)ロボット100が移動するようにロボット100の移動を制御してよい。 The route planning processing module 430 may generate a control signal for controlling the autonomous running of the robot 100, using the sensing data received from the robot 100 described above and the generated indoor map. For example, the path planning processing module 430 may generate a path (ie, path data) for the robot 100 to travel. The generated route (route data) may be set in the robot 100 for the robot 100 to travel along the corresponding route. The cloud server 120 may transmit information regarding the generated route to the robot 100 via the network. As an example, the information regarding the route may include information indicating the current location of the robot 100, information for mapping the current location with an indoor map, or route planning information. The route planning processing module 430 may generate a route for the robot 100 and set it on the robot 100. The cloud server 120 may control the movement of the robot 100 so that the robot 100 moves along such a set route (that is, along the set route).

生成された経路は、空間内でロボット100がサービスを提供するために走行する経路であってよい。経路計画処理モジュール430は、地図から空間内でサービスを提供する位置を識別してよく、該当の位置でサービスが提供されるようにする経路を生成してよい。 The generated route may be a route that the robot 100 travels in space to provide a service. Route planning processing module 430 may identify locations in space from the map to provide services and may generate a route that causes services to be provided at the locations.

命令処理モジュール440は、サービスアプリケーション110からロボット100によるサービス提供のための命令(抽象化された命令)を受信してよく、受信した命令を処理して(すなわち、具体化して)ロボット100を制御するためのサブ命令(すなわち、具体化された命令)を生成してよい。また、命令処理モジュール440は、生成されたサブ命令をロボット100に送信し、サブ命令に基づいてロボット100を制御してよい。 The command processing module 440 may receive commands (abstracted commands) for the robot 100 to provide a service from the service application 110, and processes (i.e., embodies) the received commands to control the robot 100. A subinstruction (i.e., a reified instruction) may be generated to do the following: Additionally, the command processing module 440 may transmit the generated sub-commands to the robot 100 and control the robot 100 based on the sub-commands.

実施形態では、ロボット100にはロボット100が提供するサービスと関連するサービスロジックを含むサービスアプリケーションが搭載されず、ロボット100は、サービスアプリケーション110からのサービスの提供のための抽象化された命令によっては直接的に制御されなくてもよい。 In the embodiment, the robot 100 is not equipped with a service application that includes service logic associated with the service provided by the robot 100, and the robot 100 is not equipped with a service application that includes service logic related to the service provided by the robot 100, and the robot 100 is not equipped with a service application that includes service logic related to the service provided by the robot 100. It does not have to be directly controlled.

ロボット100の動きおよび機能は、クラウドサーバ120から提供される具体化された命令によってのみ制御されてよい。命令処理モジュール440は、サービスアプリケーション110から受信した抽象化された命令をロボットが実行可能な単位命令に具体化することによって該当の単位命令に対応するサブ命令を生成してよく、このようなサブ命令のそれぞれをロボット100に送信することにより、ロボット100を制御してよい。 The movements and functions of robot 100 may be controlled only by embodied instructions provided by cloud server 120. The instruction processing module 440 may generate sub-instructions corresponding to the unit instructions by embodying the abstracted instructions received from the service application 110 into unit instructions executable by the robot. Robot 100 may be controlled by sending each of the commands to robot 100.

また、命令処理モジュール440は、サービスアプリケーション110から受信した命令のタイプにより、命令をロボット100に直に伝達してもよいし、該当の命令を具体化した後、具体化されたサブ命令をロボット100に送信してもよい。 Furthermore, depending on the type of command received from the service application 110, the command processing module 440 may directly transmit the command to the robot 100, or after embodying the relevant command, transmit the embodied sub-command to the robot 100. 100 may be transmitted.

実施形態では、ロボット100がサービスアプリケーションに対応するサービスロジックの部分を搭載しないことにより、サービスアプリケーション110の開発者は、ロボット100の詳細的な機能の制御方法を把握する必要なく、ロボット100を通じてサービスを提供するためのアプリケーションを開発することができる。また、ロボット100には、異なるサービスを提供する多様なサービスアプリケーションを容易にプラグインすることができる。 In the embodiment, since the robot 100 is not equipped with a service logic part corresponding to a service application, the developer of the service application 110 can provide services through the robot 100 without having to understand how to control detailed functions of the robot 100. Applications can be developed to provide Additionally, various service applications that provide different services can be easily plugged into the robot 100.

また、命令処理モジュール440は、ロボット100からロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してよい。命令処理モジュール440は、受信したデータのタイプにより、データをサービスアプリケーション110に伝達してもよいし、該当のデータを抽象化した後、抽象化したデータをサービスアプリケーション110に送信してもよい。 The command processing module 440 may also receive data collected by the robot 100 from the robot 100 (eg, data related to controlling the robot 100). Depending on the type of received data, the command processing module 440 may transmit the data to the service application 110, or may abstract the data and then transmit the abstracted data to the service application 110.

ロボット100、サービスアプリケーション110、およびクラウドサーバ120のより具体的な動作とロボット100の制御方法については、図5~15を参照しながらさらに詳しく説明する。 More specific operations of the robot 100, service application 110, and cloud server 120 and a method of controlling the robot 100 will be described in more detail with reference to FIGS. 5 to 15.

以上、図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 service application 110 may be implemented on a server or client that is separated from the robot 100 via a network. Device 500 may correspond to such a server or client. In some embodiments, such a device 500 may be coupled to the robot 100 or implemented within a device included in the robot 100. Further, the device 500 may be coupled to the cloud server 120 or may be realized within a device included in the cloud server 120. Even in such an embodiment, the service application 110 and the robot 100 may be separated via the network.

装置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 robot 100.

装置500に搭載されたサービスアプリケーション110により、利用者は、ロボット100にサービスを提供するように命令してよい。このような命令は、クラウドサーバ120からロボット100に伝達されてもよいし、クラウドサーバ120による処理によって具体化された後にロボット100に送信されてもよい。 A service application 110 installed on the device 500 allows a user to instruct the robot 100 to provide a service. Such a command may be transmitted from the cloud server 120 to the robot 100, or may be transmitted to the robot 100 after being embodied through processing by the cloud server 120.

また、装置500は、搭載されたサービスアプリケーション110により、ロボット100からのデータを受信してよい。データは、クラウドサーバ120からサービスアプリケーション110に伝達されてもよいし、クラウドサーバ120による処理によって抽象化された後にサービスアプリケーション110に送信されてもよい。 Additionally, the device 500 may receive data from the robot 100 using the installed service application 110. The data may be transmitted from the cloud server 120 to the service application 110 or may be abstracted through processing by the cloud server 120 and then transmitted to the service application 110.

装置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 user terminal 110. For example, processor 520 may install and execute service application 110 for generating and transmitting instructions for service provision by robot 100, and perform operations necessary to execute service application 110 and process data, etc. May be executed. Processor 520 may be at least one processor or at least one core within a processor.

装置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 robot 100, including the control status of the robot 100, information for managing the robot 100, and the status of service provision by the robot 100. The display may include a touch screen.

実施形態では、サービス提供のための抽象化された命令を生成する主体であるサービスアプリケーション110と、該当の命令を具体化してロボット100に送信する主体であるクラウドサーバ120とが分離される。 In the embodiment, the service application 110, which is the entity that generates abstracted instructions for providing a service, and the cloud server 120, which is the entity that embodies the instructions and sends them to the robot 100, are separated.

したがって、サービスアプリケーション110に該当するレイヤと、クラウドサーバ120に該当するレイヤ、およびロボット100に該当するレイヤは、互いに区分されてよい。これにより、サービスアプリケーション110、クラウドサーバ120、およびロボット100には、保安政策が互いに(または、これらのうちの少なくとも2つの保安政策が)異なるように設定されてよく、相対的に頻繁にアップデートが必要となるレイヤだけを分離して管理してよい。 Therefore, a layer corresponding to the service application 110, a layer corresponding to the cloud server 120, and a layer corresponding to the robot 100 may be separated from each other. As a result, the service application 110, the cloud server 120, and the robot 100 may be configured to have different security policies (or the security policies of at least two of them) and are updated relatively frequently. You can separate and manage only the necessary layers.

また、実施形態では、サービスアプリケーション110に該当するレイヤだけをアップデートすることにより、ロボット100がアップデートされたサービスを提供するように実現されてよい。 Further, in the embodiment, the robot 100 may be implemented to provide updated services by updating only the layer corresponding to the service application 110.

また、異なるサービスアプリケーションをロボット100に簡単にプラグインさせることが可能であるため、ロボット100が提供する機能の範囲を超えない限り、多様なサービスを提供するロボット100を実現することができる。 Further, since it is possible to easily plug different service applications into the robot 100, it is possible to realize a robot 100 that provides various services as long as the range of functions provided by the robot 100 is not exceeded.

サービスアプリケーション110の開発者は、ロボット100に関する詳細的なドメイン知識がなくても(すなわち、不必要なトラブルシューテングやロボットの実行/運用に関するイシューに対応する必要なく)、ロボット100が提供するサービスをサービスアプリケーション110内に実現することができる。 The developer of the service application 110 can provide services provided by the robot 100 without having detailed domain knowledge about the robot 100 (i.e., without having to deal with unnecessary troubleshooting or issues related to execution/operation of the robot). can be implemented within the service application 110.

したがって、ロボット100とサービスアプリケーション110における拡張性を高めることができる。 Therefore, the expandability of the robot 100 and the service application 110 can be improved.

以上、図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 robot 100, cloud server 120, or service application 110 (e.g., a processor of robot 100, cloud server 120, or device 500) are referred to as robot 100, cloud server 120, or a processor of device 500 for convenience of explanation. 120 or an operation executed by the service application 110.

図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, cloud server 120 may receive instructions to provide a service from service application 110. The commands received from the service application 110 request the robot 100 to perform specific operations and/or functions, and may be abstracted commands. Abstracted instructions may be instructions that (unless they are made concrete) cannot directly control the robot 100 so that a service is provided. The abstracted command may be, for example, a command to move the robot to a delivery or collection position in a delivery service, a command to guide a user to a specific position in a route guidance service, or a command to perform a specific function on the robot 100. may include instructions requesting the execution of the following.

段階615で、クラウドサーバ120は、サービスアプリケーション110からの命令がバイパス対象命令であるかどうかを判定してよい。 At step 615, cloud server 120 may determine whether the instruction from service application 110 is a bypassed instruction.

段階620で、クラウドサーバ120は、サービスアプリケーション110からの命令がバイパス対象命令であれば、サービスアプリケーション110からの命令をロボット100に直に伝達してよい。段階622において、ロボット100は、このような伝達されたバイパス対象命令にしたがって制御されてよい。 In step 620, the cloud server 120 may directly transmit the command from the service application 110 to the robot 100 if the command from the service application 110 is a bypass target command. At step 622, the robot 100 may be controlled according to such communicated bypass target commands.

バイパス対象命令とは、クラウドサーバ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 cloud server 120, and may be a command that is directly transmitted (routed) from the service application 110 to the robot 100 via the cloud server 120. The bypass target command may be, for example, a command for controlling the configuration 105 related to the UX (User Experience) of the robot 100. By way of example, the instructions to be bypassed may be instructions for controlling the on/off of an LED or indicator included in the robot 100 (e.g., an LED corresponding to a gaze on the robot, or other visual indicator), or an instruction provided in the robot 100. may include instructions for causing a particular sound to be output from the selected speaker. Further, a command for manually controlling the movement (movement) of the robot 100 may be a bypass target command.

クラウドサーバ120は、サービスアプリケーション110からの命令のタイプを分析することにより、該当の命令がバイパス対象命令であるかどうかを判定してよい。例えば、クラウドサーバ120は、サービスアプリケーション110からの命令のプロトコルを分析することにより、命令がバイパス対象命令であるかどうかを判定してよい。すなわち、クラウドサーバ120は、受信した命令のプロトコル端を解釈することにより、命令をロボット100にバイパスするかどうかを決定してよい。 The cloud server 120 may determine whether the instruction is a bypass target instruction by analyzing the type of instruction from the service application 110. For example, cloud server 120 may determine whether an instruction is a bypassed instruction by analyzing the protocol of the instruction from service application 110. That is, cloud server 120 may determine whether to bypass the instruction to robot 100 by interpreting the protocol end of the received instruction.

段階625で、クラウドサーバ120は、サービスアプリケーション110から受信した命令を具体化して複数のサブ命令を生成してよい。サブ命令を生成する段階は、サービスアプリケーション110からの命令がバイパス対象命令ではない場合に実行されてよい。「命令の具体化」とは、サービスアプリケーション110からの抽象化された命令を、ロボット100を直接的に制御することができるようにする命令に分割することを意味してよい。言い換えれば、段階625によって生成された各サブ命令は、ロボット100を直接的に制御することができるように、サービスアプリケーション110からの抽象化された命令が具体化されたものであってよい。 At step 625, cloud server 120 may embody the instructions received from service application 110 to generate a plurality of sub-instructions. The step of generating a sub-instruction may be performed when the instruction from the service application 110 is not a bypass target instruction. “Concretization of instructions” may mean dividing abstracted instructions from service application 110 into instructions that allow robot 100 to be directly controlled. In other words, each sub-instruction generated by step 625 may be a reification of an abstracted instruction from the service application 110 so that the robot 100 can be directly controlled.

段階630で、クラウドサーバ120は、生成されたサブ命令の各サブ命令をロボット100に送信してよい。段階635で、ロボット100は、受信した各サブ命令に基づいて制御されてよい。ロボット100は、サブ命令による制御を完了することにより、サービスアプリケーション110からの命令によって要請された動作を完了してよい。 At step 630, the cloud server 120 may send each of the generated sub-instructions to the robot 100. At step 635, robot 100 may be controlled based on each received sub-instruction. The robot 100 may complete the operation requested by the command from the service application 110 by completing control by the sub-command.

それぞれのサブ命令は、ロボットが実行可能な単位命令を構成してよい。言い換えれば、段階625で、クラウドサーバ120は、サービスアプリケーション110から受信した命令を複数の単位命令に分割することによってサブ命令を生成してよい。例えば、クラウドサーバ120は、サービスアプリケーション110から受信した命令を所定の時間単位または所定の大きさ単位に分割することによってサブ命令を生成してよい。アプリケーション110から受信した命令が示す動作が時間によって複数の動作に区分されるものであれば、前記動作のそれぞれに対応して前記アプリケーション110から受信された命令がサブ命令としてそれぞれ分割されてよい。 Each sub-instruction may constitute a unit instruction executable by the robot. In other words, in step 625, the cloud server 120 may generate sub-instructions by dividing the instruction received from the service application 110 into multiple unit instructions. For example, the cloud server 120 may generate sub-instructions by dividing the instruction received from the service application 110 into predetermined time units or predetermined size units. If the action indicated by the command received from the application 110 is divided into a plurality of actions depending on time, the command received from the application 110 may be divided into sub-instructions corresponding to each of the actions.

抽象化された命令に基づいて抽象化された命令が具体化されたサブ命令を生成する方法については、図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 cloud server 120 may send each of the generated sub-instructions to the robot 100 in turn. Each sub-command may be transmitted from the cloud server 120 to the robot 100 in a timely manner according to the operation of the robot 100.

例えば、段階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, cloud server 120 may send a first of the sub-instructions to robot 100. The first sub-command may indicate a first action that the robot 100 must perform with priority in order to complete the action of the robot 100 indicated by the command received from the service application 110. At step 635, the robot 100 may perform the first action according to the first sub-instruction, and sends a completion report (or signal indicating completion) to the cloud server 120 indicating that the execution of the first action is completed. You may do so. In step 640, the cloud server 120 may receive such a completion report, and after receiving the completion report, in step 645, the cloud server 120 may execute a second sub-instruction subsequent to the first sub-instruction among the sub-instructions. It may be transmitted to the robot 100. At this time, the second sub-command may indicate an action subsequent to the first action to complete the action of the robot 100 indicated by the command received from the service application 110. At step 650, robot 100 may perform a second operation according to the second sub-instruction. Similarly, the robot 100 may send a completion report to the cloud server 120 indicating that the execution of the second action is completed, and may receive the next sub-instruction from the cloud server 120.

このように、クラウドサーバ120は、生成されたサブ命令のそれぞれを順にロボット100に送信することができ、あるサブ命令が示す動作がロボット100によって実行されてから次のサブ命令をロボット100に送信することにより、ロボット100に適時に命令を伝達することができる。これにより、ロボット100の誤動作を防ぐことができる。言い換えれば、クラウドサーバ120は、サービスアプリケーション110から受信した命令を複数のミッションに区分することによって具体化してよい。ロボット100に送信されたサブ命令にしたがって1つのミッションが完了した場合、次のミッションに該当するサブ命令をロボット100に送信してよい。 In this way, the cloud server 120 can sequentially send each of the generated sub-instructions to the robot 100, and transmits the next sub-instruction to the robot 100 after the action indicated by a certain sub-instruction is executed by the robot 100. By doing so, commands can be transmitted to the robot 100 in a timely manner. Thereby, malfunctions of the robot 100 can be prevented. In other words, cloud server 120 may implement instructions received from service application 110 by partitioning them into multiple missions. When one mission is completed according to a sub-command sent to the robot 100, a sub-command corresponding to the next mission may be sent to the robot 100.

また、上述したものとは異なり、ロボット100は、サブ命令による動作後、レポートをクラウドサーバ120に送信しなくてもよい。このとき、クラウドサーバ120は、ロボット100を(例えば、リアルタイムで)モニタリングし、ロボット100がサブ命令による動作を実行したと判断された場合に、次のサブ命令をロボット100に送信してよい。 Also, unlike what has been described above, the robot 100 does not need to send a report to the cloud server 120 after performing an operation based on a sub-instruction. At this time, the cloud server 120 may monitor the robot 100 (eg, in real time) and send the next sub-command to the robot 100 if it is determined that the robot 100 has executed the operation according to the sub-command.

または、クラウドサーバ120は、所定の時間間隔でサブ命令のそれぞれを順にロボット100に送信してもよい。 Alternatively, the cloud server 120 may send each of the sub-commands to the robot 100 in turn at predetermined time intervals.

上述したように、実施形態では、クラウドサーバ120がサービスアプリケーション110からの命令を分析し、命令のタイプにより、該当の命令をロボット100にバイパスしてもよいし、命令を具体化してサブ命令を生成してロボットに送信してもよく、これにより、ロボット100を適切に制御することができる。 As described above, in the embodiment, the cloud server 120 analyzes the command from the service application 110 and, depending on the type of command, may bypass the corresponding command to the robot 100 or embody the command to generate sub-commands. It may be generated and transmitted to the robot, thereby allowing the robot 100 to be appropriately controlled.

一方、図には示されていないが、ロボット100は、受信した命令(サブ命令)がサービスアプリケーション110からの命令がバイパスされたものであるかを判定してもよい。このとき、ロボット100は、受信した命令(サブ命令)のプロトコルを分析することにより、受信した命令(サブ命令)がサービスアプリケーション110からの命令がバイパスされたものであるかを判定してよい。ロボット100は、受信した命令(サブ命令)がバイパスされた命令に該当する場合は、該当のバイパスされた命令に対応する動作を実行してよく、バイパスされていない命令(すなわち、具体化された命令)に該当する場合は、具体化された命令に対応する動作を実行してよい。 On the other hand, although not shown in the figure, the robot 100 may determine whether the received command (sub-command) is a bypassed command from the service application 110. At this time, the robot 100 may determine whether the received command (sub-command) is a bypassed command from the service application 110 by analyzing the protocol of the received command (sub-command). If the received command (sub-instruction) corresponds to a bypassed command, the robot 100 may perform the operation corresponding to the bypassed command, and perform the action corresponding to the non-bypassed command (i.e., the instantiated sub-instruction). command), the action corresponding to the instantiated command may be executed.

以上、図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 cloud server 120 generates sub-instructions by dividing the instruction received from the service application 110 into a plurality of unit instructions in step 625 described above will be described in more detail. The cloud server 120 may generate sub-instructions by dividing the instruction received from the service application 110 into predetermined time units or predetermined size units.

例えば、サービスアプリケーション110からの命令が目的地にロボット100を移動させるようにする命令である場合について、図7を参照しながら説明する。目的地は、ロボット100が品物を配達するための目的地、またはロボット100が利用者を案内するための目的地であってよい。 For example, a case where the command from the service application 110 is a command to move the robot 100 to a destination will be described with reference to FIG. The destination may be a destination for the robot 100 to deliver an item or a destination for the robot 100 to guide a user.

段階710で、クラウドサーバ120は、ロボット100の現在地から目的地までロボット100が移動しなければならない複数のウェイポイントを決定してよい。 At step 710, cloud server 120 may determine multiple waypoints through which robot 100 must travel from its current location to a destination.

段階720で、クラウドサーバ120は、ウェイポイントの各ウェイポイントにロボット100を移動させる命令を各サブ命令として生成してよく、生成された各サブ命令をロボット100に送信してよい。 At step 720, the cloud server 120 may generate instructions for moving the robot 100 to each of the waypoints as each sub-instruction, and may send each generated sub-instruction to the robot 100.

例えば、クラウドサーバ120は、ロボット100の現在地から目的地までロボット100が移動しなければならない複数のウェイポイントのそれぞれの座標(座標の配列)を決定してよく、各座標への移動を示す命令を各サブ命令としてロボット100に送信してよい。 For example, the cloud server 120 may determine the coordinates (array of coordinates) of each of a plurality of waypoints at which the robot 100 must move from the current location of the robot 100 to the destination, and may provide instructions indicating movement to each coordinate. may be sent to the robot 100 as each sub-command.

ウェイポイントのそれぞれは、例えば、空間内の位置であってよく、目的地への移動においてロボット100が階間移動をしなければならない場合は、エレベータ前(すなわち、ドア前)の位置を示してよい。また、ウェイポイントは、空間内のドアの前の位置、空間内のコーナーに対応する位置、または空間の角または隅に対応する位置などであってよい。ウェイポイントは、目的地を含んでもよいし含まなくてもよい。 Each of the waypoints may be, for example, a position in space, and if the robot 100 has to move between floors in moving to a destination, each waypoint may indicate a position in front of an elevator (i.e., in front of a door). good. The waypoint may also be a position in front of a door in the space, a position corresponding to a corner in the space, a position corresponding to a corner or corner of the space, or the like. A waypoint may or may not include a destination.

上述したように、ロボット100があるウェイポイントへの移動を完了した後、クラウドサーバ120は、ロボット100から完了レポートを受信してよく、これにより、クラウドサーバ120は、ロボット100に次のウェイポイントへの移動を示すサブ命令を送信してよい。 As mentioned above, after the robot 100 completes moving to a certain waypoint, the cloud server 120 may receive a completion report from the robot 100, which causes the cloud server 120 to direct the robot 100 to the next waypoint. A sub-command indicating movement to may be sent.

ロボット100は、ウェイポイントへの移動に対応するサブ命令にしたがって制御されることによって目的地に移動してよい。 The robot 100 may move to a destination by being controlled according to sub-instructions corresponding to movement to a waypoint.

このように、サービスアプリケーション110から受信した命令は、複数のウェイポイントへの移動に具体化され、具体化されたサブ命令が生成されてよい。 In this manner, instructions received from service application 110 may be embodied in movements to multiple waypoints, and embodied sub-instructions may be generated.

図8を参照しながら、クラウドサーバ120がロボット100の状態をモニタリングしながら適切なサブ命令をロボット100に送信する方法について説明する。 With reference to FIG. 8, a method for the cloud server 120 to send appropriate sub-commands to the robot 100 while monitoring the state of the robot 100 will be described.

段階810で、クラウドサーバ120は、ロボット100の状態をモニタリングしてよい。ロボット100の状態のモニタリングは、リアルタイムあるいはほぼリアルタイムで行なわれてよい。 At step 810, cloud server 120 may monitor the status of robot 100. Monitoring of the condition of robot 100 may occur in real time or near real time.

段階820で、クラウドサーバ120は、モニタリングされたロボット100の状態に基づいて、適したサブ命令を識別するか、予め送信されたサブ命令に対する取消命令を生成してよい。クラウドサーバ120は、識別されたサブ命令または取消命令をロボット100に送信してよい。 At step 820, the cloud server 120 may identify a suitable sub-instruction or generate a cancellation instruction for the previously sent sub-instruction based on the monitored state of the robot 100. Cloud server 120 may send the identified sub-instruction or cancellation instruction to robot 100.

クラウドサーバ120は、モニタリングされたロボット100の状態により、サービスアプリケーション110から受信した命令を具体化して生成されたサブ命令のうち、ロボット100によるサービスの提供のために必要なサブ命令を決定してロボット100に送信してよい。例えば、クラウドサーバ120は、ロボット100があるウェイポイントに移動したことが確認された場合、サブ命令のうちから次のウェイポイントへの移動を示すサブ命令を識別してよく、識別されたサブ命令をロボット100に送信してよい。 Based on the monitored state of the robot 100, the cloud server 120 determines which sub-instructions are necessary for the robot 100 to provide the service, from among the sub-instructions generated by embodying the instructions received from the service application 110. It may be transmitted to the robot 100. For example, when it is confirmed that the robot 100 has moved to a certain waypoint, the cloud server 120 may identify a sub-instruction indicating movement to the next waypoint from among the sub-instructions, and may be sent to the robot 100.

また、クラウドサーバ120は、モニタリングされたロボット100の状態により、予め送信されたサブ命令を取り消すための取消命令をロボット100に送信してよい。例えば、(ロボット100が特定の位置に閉じこめられたり、機能異常が発生したり、動作不能になったりするなどの事由により)予め送信されたサブ命令による動作をロボット100が実行することができなくなった場合、クラウドサーバ120は、予め送信されたサブ命令を取り消すための取消命令をロボット100に送信してよい。場合によっては、クラウドサーバ120は、他のロボットに前記サブ命令を送信し、前記実行されなかった動作を他のロボットが代わりに実行するように制御してよい。または、クラウドサーバ120は、前記予め送信されたサブ命令による動作を延期するように(すなわち、後で実行するように)する延期命令をロボット100に送信してもよい。 Further, the cloud server 120 may transmit a cancellation command to the robot 100 to cancel the previously transmitted sub-command, depending on the monitored state of the robot 100. For example, if the robot 100 is unable to perform an operation according to a sub-command sent in advance (due to reasons such as the robot 100 being trapped in a particular position, malfunctioning, or becoming inoperable), In this case, the cloud server 120 may transmit a cancellation command to the robot 100 to cancel the previously transmitted sub-command. In some cases, the cloud server 120 may send the sub-instructions to other robots and control the other robots to perform the unexecuted operations instead. Alternatively, the cloud server 120 may send a postponement instruction to the robot 100 to postpone (i.e., execute later) the operation according to the previously transmitted sub-instruction.

上述したように、クラウドサーバ120は、ロボット100の状態をモニタリングすることで、ロボット100に適時にサブ命令を送信したり、命令を取消/延期する命令を送信したりすることができるようになる。 As described above, by monitoring the state of the robot 100, the cloud server 120 can send sub-commands to the robot 100 in a timely manner, or send commands to cancel/postpone the command. .

これに関し、図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 robot 100 is a robot that provides a delivery service and that a command to move to a destination 1200 is received by the cloud server 120 from the service application 110.

クラウドサーバ120は、サービスアプリケーション110からの命令に基づいて、ロボット100が目的地1200に移動するための経路計画を樹立してよい。クラウドサーバ120は、ロボット100が目的地1200に移動するための経路に含まれる複数のウェイポイント1210((1)~(7))を決定してよく、ウェイポイントへの移動を示すサブ命令1210-1~1210-7を生成してよい。 Cloud server 120 may establish a route plan for robot 100 to move to destination 1200 based on instructions from service application 110. The cloud server 120 may determine a plurality of waypoints 1210 ((1) to (7)) included in the route for the robot 100 to move to the destination 1200, and may determine a sub-instruction 1210 indicating movement to the waypoint. -1 to 1210-7 may be generated.

クラウドサーバ120は、サブ命令1210-1~1210-7のそれぞれを順にロボット100に送信することにより、ロボット100がウェイポイント1210((1)~(7))を経由して目的地1200に到着するように制御してよい。ウェイポイント1210((1)~(7)それぞれは、対応する位置の座標値を示してよい。 The cloud server 120 sends each of the sub-commands 1210-1 to 1210-7 to the robot 100 in order, so that the robot 100 arrives at the destination 1200 via the waypoints 1210 ((1) to (7)). You can control it to do so. Each of the waypoints 1210 ((1) to (7)) may indicate the coordinate values of the corresponding position.

ロボット100の現在地から目的地1200までの経路がロボット100の階間移動を含む場合、ウェイポイント1210((1)~(7))のうちの少なくとも1つは、ロボット100が乗るエレベータに対応する位置(すなわち、ロボット100が搭乗および/または下車するエレベータのドア前に該当する位置)を示してよい。これにより、ロボット100は、階間移動を含んで目的地1200に移動することができるようになる。 If the path from the current location of the robot 100 to the destination 1200 includes movement of the robot 100 between floors, at least one of the waypoints 1210 ((1) to (7)) corresponds to the elevator on which the robot 100 rides. The location may be indicated (ie, the location corresponding to the door of the elevator where the robot 100 boards and/or exits). This allows the robot 100 to move to the destination 1200, including moving between floors.

上述したように、ロボット100に目的地1200への移動が指示された場合、ロボット100は、クラウドサーバ1200から分割された(ウェイポイントを示す)サブ命令を受信して制御されてよい。すなわち、ロボット100は、一度に実行可能な単位の命令に該当する単位命令を受信して動作してよい。単位命令は、抽象化された命令とは異なり、ロボット100が処理することのできる座標の配列を示してよい。 As described above, when the robot 100 is instructed to move to the destination 1200, the robot 100 may be controlled by receiving divided sub-commands (indicating waypoints) from the cloud server 1200. That is, the robot 100 may operate by receiving unit commands that can be executed at one time. Unlike abstracted instructions, a unit instruction may indicate an array of coordinates that the robot 100 can process.

図13では、ロボット100を終了しろという命令がサービスアプリケーション110からクラウドサーバ120に受信されたと仮定する。 In FIG. 13, it is assumed that a command to terminate the robot 100 is received by the cloud server 120 from the service application 110.

クラウドサーバ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 robot 100, the cloud server 120 (1) terminates the sensor device of the robot 100, (2) terminates the motor control of the robot 100, and (3) terminates the main system of the robot 100. You may generate three sub-instructions. The cloud server 120 may send the sub-commands (1) to (3) to the robot 100 in order. For example, the cloud server 120 sends (2) to the robot 100 when the sensor device of the robot 100 ends due to (1), and sends (3) to the robot 100 when the motor control of the robot 100 ends due to (2). You may send it. With this, the robot 100 may be terminated.

上述したクラウドサーバ120は、ロボット100の1つの機能を制御するように構成されたサーバであってよい。例えば、クラウドサーバ120は、図12を参照しながら説明したようなロボット100の移動を制御するためのサーバであるか、図13を参照しながら説明したようなロボット100の終了(または、始動)を制御するためのサーバであってよい。または、クラウドサーバ120は、ロボット100の複数の機能のそれぞれを制御するように構成されてもよい。 The cloud server 120 described above may be a server configured to control one function of the robot 100. For example, the cloud server 120 is a server for controlling the movement of the robot 100 as described with reference to FIG. 12, or a server for controlling the movement of the robot 100 as described with reference to FIG. It may be a server for controlling. Alternatively, cloud server 120 may be configured to control each of a plurality of functions of robot 100.

以上、図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 robot 100 is processed by the cloud server 120 will be described.

段階905で、クラウドサーバ120は、ロボット100から、ロボット100が収集したデータ(例えば、ロボット100の制御と関連するデータ)を受信してよい。ロボット100の制御と関連するデータは、ロボット100が走行、機能実行、またはサービス動作によって収集したデータであってよい。例えば、ロボット100の制御と関連するデータは、センサ部106が収集したデータであって、時間情報、ロボット100の速度、位置、バッテリ情報、およびカメラで撮影された映像情報のうちの少なくとも1つを含んでよい。また、ロボット100の制御と関連するデータは、LEDの点灯状態、サウンドの出力状態、ロボット100のドアの開閉状態などのように、UXと関連する装置105の動作状態を示すデータを含んでよい。 At step 905, cloud server 120 may receive from robot 100 data collected by robot 100 (eg, data related to control of robot 100). The data related to the control of the robot 100 may be data collected by the robot 100 while running, performing a function, or performing a service operation. For example, the data related to the control of the robot 100 is data collected by the sensor unit 106, and includes at least one of time information, speed and position of the robot 100, battery information, and video information captured by a camera. may include. Further, the data related to the control of the robot 100 may include data indicating the operating state of the device 105 related to the UX, such as the lighting state of an LED, the output state of a sound, the opening/closing state of a door of the robot 100, etc. .

段階910で、クラウドサーバ120は、ロボット100からのデータがバイパス対象データを含むかどうかを判定してよい。 At step 910, cloud server 120 may determine whether the data from robot 100 includes data to be bypassed.

段階915で、クラウドサーバ120は、ロボット100からのデータのうちのバイパス対象データを、サービスアプリケーション110に直に伝達(ルーティング)してよい。バイパス対象データは、ロボット100の第1状態を示すデータを含んでよい。第1状態は、データに対する分析または加工なく、該当のデータ自体だけで把握することのできるロボット100の単純状態を示してよい。または、第1状態は、サービスアプリケーション110によるリアルタイムの識別を必要とするロボット100の状態を示してよい。 In step 915, the cloud server 120 may directly route bypass target data among the data from the robot 100 to the service application 110. The bypass target data may include data indicating the first state of the robot 100. The first state may represent a simple state of the robot 100 that can be understood only from the data itself without any analysis or processing of the data. Alternatively, the first state may indicate a state of the robot 100 that requires real-time identification by the service application 110.

第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 robot 100, and the data indicating the first state includes such battery data of the robot 100, It may include speed data, data regarding door opening/closing status, data regarding LED lighting status, and data regarding sound output status.

このようなロボット100の第1状態を示すデータは、サービスアプリケーション110に直に伝達されてよく、サービスアプリケーション110では、ロボット100の第1状態が識別されてよい。サービスアプリケーション110は、ロボット100の第1状態が識別されることにより、ロボット100に対するモニタリング情報を生成してよい。モニタリング情報は、装置500において表示/出力されてよい。 Data indicating such a first state of the robot 100 may be communicated directly to the service application 110, where the first state of the robot 100 may be identified. The service application 110 may generate monitoring information for the robot 100 by identifying the first state of the robot 100. Monitoring information may be displayed/output at device 500.

段階925で、クラウドサーバ120は、ロボット100からのデータを分析して抽象化されたデータを生成してよい。クラウドサーバ120は、ロボット100からのデータのうちでバイパス対象データではないデータ、またはバイパス対象データを含むロボット100からのデータを分析し、抽象化されたデータを生成してよい。「データの抽象化」は、ロー(raw)データを分析することによって加工されたデータを生成する段階であってよい。例えば、抽象化されたデータは、ロボット100からのデータを分析しながらロボット100が特定の状態に該当するかどうかを判定した結果によってロボット100が特定の状態に該当するかどうかを示すデータであってよい。 At step 925, cloud server 120 may analyze data from robot 100 to generate abstracted data. The cloud server 120 may analyze data from the robot 100 that is not bypass target data or data from the robot 100 that includes bypass target data among the data from the robot 100 and generate abstracted data. “Data abstraction” may be a stage of generating processed data by analyzing raw data. For example, the abstracted data is data indicating whether the robot 100 falls under a specific state based on the result of determining whether the robot 100 falls under a specific state while analyzing data from the robot 100. It's fine.

これについては、図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 step 1010, cloud server 120 may analyze data from robot 100.

段階1020で、クラウドサーバ120は、ロボット100からのデータを分析し、ロボット200が第2状態を示すかどうかを判定してよい。 At step 1020, cloud server 120 may analyze data from robot 100 and determine whether robot 200 exhibits a second state.

段階1030で、クラウドサーバ120は、ロボット100が第2状態を示すと判定された場合、ロボット100が第2状態であることを示す抽象化されたデータを生成してよい。または、段階1040で、クラウドサーバ120は、ロボット100が第2状態に該当しないと判定された場合、ロボット100が第2状態でないことを示す抽象化されたデータを生成してよい。 At step 1030, the cloud server 120 may generate abstracted data indicating that the robot 100 is in the second state if it is determined that the robot 100 exhibits the second state. Alternatively, in step 1040, if it is determined that the robot 100 does not fall into the second state, the cloud server 120 may generate abstracted data indicating that the robot 100 is not in the second state.

言い換えれば、クラウドサーバ120は、このような判定の結果により、ロボット100が第2状態を示すかどうかを示す情報を抽象化されたデータとして生成してよい。 In other words, the cloud server 120 may generate information indicating whether the robot 100 exhibits the second state as abstracted data based on the result of such determination.

段階930で、クラウドサーバ120は、生成された抽象化されたデータをサービスアプリケーション110に送信してよい。 At step 930, cloud server 120 may send the generated abstracted data to service application 110.

段階1010で分析されるロボット100からのデータは、上述した第1状態を示すデータを含んでよく、または/追加的に、センサ部106でセンシングされたデータを含んでよい。第2状態は、クラウドサーバ120がこのようなデータを分析することにより、ロボット100が該当するものであると判定するロボット100の状態を意味してよい。例えば、第2状態は、ロボット100によってサービスの提供が完了したかどうか、ロボット100によってサービスの提供が可能であるかどうか、またはロボット100の動作が正常であるかどうかを示してよい。言い換えれば、第2状態は、ロボット100からのデータに基づいて、クラウドサーバ120が判断したロボット100の状態を示してよい。 The data from the robot 100 analyzed in step 1010 may include data indicative of the first state described above and/or may additionally include data sensed by the sensor unit 106. The second state may refer to a state of the robot 100 that the cloud server 120 determines to be applicable to the robot 100 by analyzing such data. For example, the second state may indicate whether the robot 100 has completed providing the service, whether the robot 100 is capable of providing the service, or whether the robot 100 is operating normally. In other words, the second state may indicate the state of the robot 100 determined by the cloud server 120 based on data from the robot 100.

具体的に、クラウドサーバ120は、ロボット100の位置が一定の時間以上変化しないと分析されたときには、ロボット100が閉じこめられているか、ロボット100が適切に動作することができないか、サービスの提供が不可能になったこと(または、サービスの提供に多くの時間がかかった)を示す抽象化されたデータを生成してよい。 Specifically, when the cloud server 120 analyzes that the position of the robot 100 does not change for a certain period of time or more, the cloud server 120 determines whether the robot 100 is trapped, cannot operate properly, or cannot provide services. Abstracted data may be generated to indicate that something is no longer possible (or that it took a lot of time to provide a service).

段階935で、サービスアプリケーション110は、受信した抽象化されたデータに基づいて、ロボット100が第2状態に該当することを識別してよい。 At step 935, service application 110 may identify that robot 100 falls into the second state based on the received abstracted data.

サービスアプリケーション110は、段階940のように、受信した抽象化されたデータに基づいて(または、ロボット100の第2状態が識別されることにより)、ロボット100を制御するための命令を生成してよい。または/追加的に、サービスアプリケーション110は、受信した抽象化されたデータに基づいて(または、ロボット100の第2状態が識別されることにより)、ロボット100に対するモニタリング情報を生成してよい。 The service application 110 generates instructions for controlling the robot 100 based on the received abstracted data (or the second state of the robot 100 is identified), as in step 940. good. Or/additionally, the service application 110 may generate monitoring information for the robot 100 based on the received abstracted data (or due to the second state of the robot 100 being identified).

モニタリング情報は、上述したロボット100の第1状態および/または第2状態を示す情報であってよい。モニタリング情報は、装置500に表示/出力されてよい。 The monitoring information may be information indicating the first state and/or second state of the robot 100 described above. Monitoring information may be displayed/output to device 500.

段階940で、クラウドサーバ120に送信される命令は、図6の段階610を参照しながら説明した、抽象化された命令に対応してよい。一方、図には示されていないが、上述した第1状態が識別された場合にも、サービスアプリケーション110は、ロボット100を制御するための命令を生成してよい。 The instructions sent to the cloud server 120 at step 940 may correspond to the abstracted instructions described with reference to step 610 of FIG. On the other hand, although not shown in the figure, the service application 110 may also generate instructions for controlling the robot 100 when the first state described above is identified.

以上、図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 step 1110, cloud server 120 may generate independent instructions for controlling robot 100 independently of instructions (abstracted instructions) from service application 110.

段階1120で、クラウドサーバ120は、ロボット100または他のロボットに独立命令を送信してよい。 At step 1120, cloud server 120 may send independent instructions to robot 100 or other robots.

独立命令は、サービスアプリケーション110とは関係なく、クラウドサーバ120がロボット100を制御するために生成する命令であってよい。独立命令は、ロボット100の動作および機能実行と関連するものであり、ロボット100が提供するサービスに対しては独立的な動作および機能の実行に関する命令であってよい。 The independent command may be a command generated by the cloud server 120 to control the robot 100 regardless of the service application 110. The independent command is related to the operation and function execution of the robot 100, and may be a command related to the operation and function execution that is independent of the service provided by the robot 100.

例えば、独立命令は、ロボット100に充電を要求する命令(一例として、空間内の充電位置への移動命令)、ロボット100の特定の地点への移動の経路を更新する命令(例えば、目的地または特定のウェイポイントへの経路を更新する命令(走行recovery命令))、またはロボット100がサービスを提供することができなくなったときに、他のロボットに該当のサービスを提供するように要請する命令を含んでよい。 For example, the independent commands include a command to request the robot 100 to charge (for example, a command to move to a charging position in space), a command to update the route of movement of the robot 100 to a specific point (for example, a destination or An instruction to update the route to a specific waypoint (traveling recovery instruction), or an instruction to request another robot to provide the corresponding service when the robot 100 is unable to provide the service. may be included.

また、クラウドサーバ120が複数のロボットを制御するにあたり、サービスを提供する特定のロボットを他のサービスを提供するようにスイッチングするか、サービスを提供するロボットを他のロボットに変更するなどのような資源管理と関連する命令は、独立命令となってよい。 In addition, when the cloud server 120 controls multiple robots, it may switch a specific robot providing a service to provide another service, or change the robot providing a service to another robot. Instructions related to resource management may be independent instructions.

以上、図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 multiple service applications 110. The service applications 110-1 to 110-N may be implemented so that different robots 100 provide services. N may be a natural number of 2 or more. The cloud server 120 may receive abstracted instructions from each of the service applications 110-1 to 110-N, and may control the robot 100 to perform operations corresponding to the received abstracted instructions. .

図に示すように、ロボット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 robots 100. Each of the robots 100-1 to 100-K may be configured to provide at least one of the services provided by the service applications 110-1 to 110-N. The robots 100-1 to 100-K may be matched with the service applications 110-1 to 110-N in a 1:many or many:1 relationship. That is, a plurality of robots 100-1 to 100-K may be controlled by one service application, and one robot may be configured to provide services related to a plurality of service applications 110-1 to 110-N. good.

例えば、ロボット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 service application 110 into the robot 100, the robot 100 may be implemented to cooperate with the service application 110 to provide services related to the service application 110.

クラウドサーバ120は、複数のサービスアプリケーション110-1~110-Nのうちの他のサービスアプリケーションがロボット100とプラグインされるようにすることにより、ロボット100が他のサービスアプリケーションと連係して他のサービスを提供するように制御してよい。 The cloud server 120 allows other service applications among the plurality of service applications 110-1 to 110-N to be plugged into the robot 100, so that the robot 100 can cooperate with other service applications and perform other service applications. May be controlled to provide services.

したがって、図に示すように、実施形態では、あるサービスを提供するように実現されたロボット100を他のサービスを提供するようにする(または、追加で他のサービスを提供するようにする)ロボット100に容易にスイッチングすることができる。言い換えれば、ロボット100によるサービスの提供を簡単に確張することができる。 Accordingly, as shown in the figure, in embodiments, a robot 100 that is implemented to provide one service may be adapted to provide other services (or may additionally be adapted to provide other services). 100 can be easily switched. In other words, it is possible to easily ensure that the robot 100 provides the service.

以上、図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, cloud server 120, robot 100, and service application 110 may be interconnected.

ロボット100とサービスアプリケーション110は、クラウドサーバ120から命令とデータを通信するが、バイパス対象命令およびバイパス対象データは、ロボット100とサービスアプリケーション110の間で直に伝達されるため、データの流れの観点では、クラウドサーバ120、ロボット100、およびサービスアプリケーション110は、互いに連結するものと見なしてよい。 The robot 100 and the service application 110 communicate instructions and data from the cloud server 120, but the instructions to be bypassed and the data to be bypassed are directly transmitted between the robot 100 and the service application 110. Here, cloud server 120, robot 100, and service application 110 may be considered to be coupled to each other.

以上、図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.
前記バイパス対象命令は、前記ロボットのUX(User Experience)と関連する構成を制御するための命令である、請求項3に記載のロボット制御方法。 4. The robot control method according to claim 3, wherein the bypass target command is a command for controlling a configuration related to a UX (User Experience) of the robot. 前記各サブ命令は、前記ロボットが実行可能な単位命令であり、
前記サブ命令を生成する段階は、前記受信した命令を複数の単位命令に分割することによって前記サブ命令を生成する、請求項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状態を示すかどうかを示す情報を前記抽象化されたデータとして前記サービスアプリケーションに送信する段階
を含む、請求項に記載のロボット制御方法。
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.
前記サービスアプリケーションが前記ロボットにプラグイン(plug-in)されることにより、前記ロボットは、前記サービスアプリケーションと連係して前記サービスを提供するように実現され、
前記サービスアプリケーションは複数であり、
前記クラウドサーバは、複数のサービスアプリケーションのうちの他のサービスアプリケーションが前記ロボットとプラグインされるようにすることにより、前記ロボットが前記他のサービスアプリケーションと連係して他のサービスを提供するように制御する、請求項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 .
前記サービスアプリケーション、前記クラウドサーバ、および前記ロボットには、互いに異なる保安政策が設定される、請求項12に記載のロボット制御方法。 The robot control method according to claim 12 , wherein different security policies are set for the service application, the cloud server, and the robot. クラウドサーバおよびサービスアプリケーションと連係してサービスを提供するロボットの制御方法であって、
前記クラウドサーバから、前記サービスアプリケーションから前記クラウドサーバに送信された前記サービスを提供するための命令が具体化されることによって生成された複数のサブ命令の各サブ命令を受信する段階、および
受信した前記各サブ命令に基づいて前記ロボットを制御する段階
を含み、
前記サービスアプリケーションは、前記ロボットとはネットワークを介して区分されるサーバまたはクライアント上に実現され、
前記サービスアプリケーションからの前記命令は、前記サービスを提供するように前記ロボットを直接的に制御することのできない抽象化された命令であり、
前記各サブ命令は、前記ロボットを直接的に制御することができるように前記抽象化された命令が具体化された命令であり、
前記ロボットに送信される前記各サブ命令は、前記サービスと関連するコンテキスト情報を含まない、ロボット制御方法。
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.
前記ロボットは、前記サービスアプリケーションがプラグイン(plug-in)されることにより、前記サービスアプリケーションと連係して前記サービスを提供するように実現され、
前記クラウドサーバにより、前記サービスアプリケーションではない他のサービスアプリケーションがプラグインされることにより、前記ロボットは、前記他のサービスアプリケーションと連係して他のサービスを提供するように制御される、請求項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.
JP2021171001A 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 Active JP7353341B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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