WO2024010318A1 - 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법 - Google Patents
자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법 Download PDFInfo
- Publication number
- WO2024010318A1 WO2024010318A1 PCT/KR2023/009372 KR2023009372W WO2024010318A1 WO 2024010318 A1 WO2024010318 A1 WO 2024010318A1 KR 2023009372 W KR2023009372 W KR 2023009372W WO 2024010318 A1 WO2024010318 A1 WO 2024010318A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- self
- driving
- platform server
- user terminal
- 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.)
- Ceased
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1679—Program controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1656—Program controls characterised by programming, planning systems for manipulators
- B25J9/1664—Program controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/69—Coordinated control of the position or course of two or more vehicles
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/12—Hotels or restaurants
Definitions
- the present invention is a self-driving robot that allows a store manager to control the self-driving robots using his or her terminal when a plurality of self-driving robots equipped with a common platform provide services to users in a store, and a self-driving robot. It concerns an operation method, a self-driving robot platform server, and a method of controlling a self-driving robot using a user terminal.
- self-driving robots are being applied and used in various fields. From self-driving robots deployed in factories and logistics centers to self-driving robots used to provide daily services in hotels and restaurants, we are easily encountering self-driving robots.
- the manager or user must control the self-driving robot using the touch screen mounted on the self-driving robot. Because the administrator or user must move to the site where the self-driving robot in which an error occurred and control the self-driving robot, there is inconvenience and hassle in controlling the self-driving robot.
- the present invention can easily control multiple self-driving robots through user terminals such as PCs, smartphones, tablet PCs, or tablet orders installed on the table, and operates multiple self-driving robots using a behavior tree.
- user terminals such as PCs, smartphones, tablet PCs, or tablet orders installed on the table
- the present invention can easily control multiple self-driving robots through user terminals such as PCs, smartphones, tablet PCs, or tablet orders installed on the table, and operates multiple self-driving robots using a behavior tree.
- a method of operating an autonomous robot operated by at least one processor and controlled by a user terminal which is a feature of the present invention for achieving the technical object of the present invention, comprising:
- generating nodes for data collection for each component constituting the self-driving robot When power is applied, generating nodes for data collection for each component constituting the self-driving robot, generating robot identification information to distinguish the self-driving robot from a plurality of other self-driving robots, and identifying the robot. Specifying information in the namespace of the nodes, checking control authority information preset in the self-driving robot, and receiving a control command from the user terminal, performing a mission based on the control command. Includes.
- the step of generating the nodes further includes linking with the robot platform server, and the robot platform server may transmit a control command to control the self-driving robot created in the user terminal.
- the step of designating the name space includes driving in the input space and generating a map for the space, and converting the data collected by the nodes while driving in the input space into identification information given to the autonomous robot.
- a grouping step may be included.
- the control authority information is information indicating whether the self-driving robot can be controlled through a mobile robot management app installed on the user terminal, and may include identification information of the user terminal.
- the step of checking the control authority information includes transmitting activation information including node information for the created nodes, the map, and control authority information for controlling the self-driving robot to the robot platform server. can do.
- the step of transmitting to the robot platform server may include the step of linking with a mobile robot management app installed on the user terminal and granted control authority through an API provided by the robot platform server.
- the control command may include a command code mapped to the service and robot identification information of the target robot.
- Executing the operation may further include confirming whether robot identification information included in the control command is identification information assigned to the self-driving robot.
- An interface that interoperates with a mobile robot management app and a robot platform server installed on a user terminal, and a processor, wherein the processor has a robot agent installed to transmit and receive data with the robot platform server, through the mobile robot management app.
- a command code corresponding to the input control command is received from the robot platform server, and an operation corresponding to the command code is performed through control of the robot agent.
- the processor may generate nodes for transmitting data collected from each component based on a plurality of components constituting the self-driving robot.
- the processor may group data collected by a plurality of nodes by specifying a name space with identification information of the self-driving robot in the node for each component.
- It includes an interface that works with a robot agent installed on each of a plurality of self-driving robots and a mobile robot management app installed on the user terminal, a memory that stores identification information of the self-driving robots and a behavior tree of the self-driving robot, and a processor.
- the processor selects a target self-driving robot to process a service corresponding to the service request signal input from the mobile robot management app based on priority information included in the behavior tree, and provides the service to the target self-driving robot.
- a command to provide a service corresponding to the request signal is given.
- the memory may store the collected information collected by the self-driving robots by grouping them based on the identification information of each self-driving robot.
- the memory may store a behavior tree that manages control priorities according to priority information set as a priority for the self-driving robot and status information of the self-driving robot.
- a user or manager can easily control multiple autonomous robots using a user terminal or a tablet order installed in a store.
- Figure 1 is an exemplary diagram of an environment in which multiple autonomous robots are applied according to an embodiment of the present invention.
- Figure 2 is a flowchart of a method of operating a self-driving robot according to an embodiment of the present invention.
- Figure 3 is a flowchart of a method for controlling multiple autonomous robots through a user terminal according to an embodiment of the present invention.
- Figure 4 is an example showing a processing method when multiple autonomous robots receive the same control command according to an embodiment of the present invention.
- Figure 5 is an example of linking a robot agent and a mobile robot management app according to an embodiment of the present invention.
- Figure 6 is an example screen of a mobile robot management app installed on a user terminal according to an embodiment of the present invention.
- Figure 7 is an example diagram of another screen provided by a user terminal according to an embodiment of the present invention.
- Figure 8 is a structural diagram of an autonomous robot according to an embodiment of the present invention.
- Figure 1 is an exemplary diagram of an environment in which multiple autonomous robots are applied according to an embodiment of the present invention.
- multiple self-driving robots 100 drive autonomously in an installed space and provide services to users.
- multiple self-driving robots 100 are deployed in a restaurant to serve food to users, but the space in which they are deployed is not necessarily limited in this way.
- the embodiment of the present invention will be described by taking as an example that four (1 to 4) self-driving robots 100 are deployed in a restaurant. And, among the multiple autonomous robots 100, two autonomous robots (1, 2) are waiting in the waiting space until a later call occurs, and one autonomous robot (3) is at the destination to serve food. It is assumed that the other vehicle (4) has arrived at the destination and the user has received the food.
- Such multiple autonomous robots 100 have robot agents installed to transmit and receive data with the robot platform server 200.
- the present invention will be explained by taking as an example the robot agent installed and inputted into the self-driving robot 100 by a robot manufacturer.
- the administrator can install the robot agent by connecting it via USB type, or when communication is connected to the self-driving robot 100, the robot agent can be downloaded from the robot platform server 200 and installed.
- the robot agent is software installed on a hardware device (eg, PC, etc.) implemented inside the robot by the manufacturer of the robot terminal.
- the driving unit of the self-driving robot 100 is ROS (Robot Operating System) standard middleware (hereinafter referred to as 'Robot Operating System'). If it operates based on a common robot agent (referred to as 'robot standard middleware'), it can be easily operated in conjunction with the robot platform server 200, but is not necessarily limited to this.
- ROS Robot Operating System
- the robot agent and the robot platform server 200 link through communication to exchange data.
- the robot agent checks the hardware components (eg, sensors, motors, actuators, etc.) of the self-driving robot 100 and creates a node necessary to transmit data to the robot platform server 200. Since the robot agent can check the components of the self-driving robot 100 in various ways, embodiments of the present invention are not limited to any one method.
- the robot agent installed on the main PC of the self-driving robot 100 is driven.
- the robot standard middleware is run and data about the self-driving robot 100 is transmitted to the robot agent through the node, the robot agent receives the data transmitted from the node as constant data.
- the node is divided into a sensor node that transmits sensing information, and a management node that manages components other than sensors (eg, actuators, motors, etc.) among the components of the self-driving robot 100.
- the robot agent requests node regeneration and sends a failure error code to the robot platform.
- the robot platform server 200 displays the error code received from the robot agent on the monitoring screen so that the manager can check the error code at the center that controls the autonomous robots 100.
- the robot agent outputs an error notification screen on the touch screen of the self-driving robot 100.
- the robot agent uses sensors necessary for driving the self-driving robot 100 and a motor and an actuator that control the cover of the storage unit that stores hotel amenity items. Check with components.
- the robot agent creates sensor nodes, motor nodes, and actuator nodes to manage each component, and transmits the data collected from each node to the robot platform.
- the component from which data is generated is expressed as a 'node', but another term representing the minimum executable processor unit required for the autonomous robot 100 to provide a service (e.g., module, etc.) can also be used.
- the robot agent installed on each self-driving robot 100 receives the opening information (e.g., autonomous robot 100) of the self-driving robot 100.
- the navigation stack is grouped and managed by referring to the driving robot identification information, installation location, control authority information, etc.) and the map generated by the self-driving robot 100.
- the robot agent installed in each of the self-driving robots 100 divides the data collected by node into individual self-driving robots and transmits it to the robot platform server 200.
- the navigation stack provides a package necessary for developing a navigation service for the self-driving robot 100 based on robot standard middleware.
- Map_server issues map information to be used in navigation using a map created by the self-driving robot 100.
- amcl is used to estimate the current location of the self-driving robot 100 on the map published by Map_server.
- the navigation stack is used to provide navigation services based on a single autonomous robot (100). Therefore, it is difficult for two or more autonomous robots 100 to estimate each other's locations on the same map. To this end, the embodiment of the present invention performs a grouping operation of the navigation stack.
- the robot agent installed on the self-driving robot 100 transmits data from the robot agent to the robot platform server 200 for each robot.
- the robot agent collects the data including the robot identification information of the self-driving robot 100. send.
- the robot platform server 200 groups the navigation stack based on robot identification information and manages the self-driving robots 100 so that they do not collide with each other even if two or more self-driving robots 100 drive in the same space.
- the robot platform server 200 also interfaces with the user terminal 300.
- the user terminal 300 may be a terminal owned by a manager of a space where multiple autonomous robots 100 are deployed, or may be a manager who remotely manages autonomous robots 100 deployed at various locations. Additionally, it may be a tablet order installed on a table located in the space.
- an administrator controls a self-driving robot by inputting inputs from the touch screen mounted on the self-driving robot.
- the self-driving robot 100 can be easily controlled with an application installed on the user terminal 300.
- the robot platform server 200 which is linked through the robot agent installed on the self-driving robot 100, basically provides a mobile application (hereinafter referred to as a 'mobile robot management app' for convenience of explanation). Therefore, when the self-driving robot 100 is activated, the robot platform server 200 links the robot agent with the mobile robot management app installed on the user terminal 300 through the control API.
- a 'mobile robot management app' for convenience of explanation
- Users can check the opening information and robot management information of self-driving robots 100 deployed in various spaces through the mobile robot management app. Additionally, missions or tasks can be assigned to the self-driving robot 100 through the mobile robot management app, and the self-driving robot 100 in which an error has occurred can also be controlled.
- Figure 2 is a flowchart of a method of operating a self-driving robot according to an embodiment of the present invention.
- the self-driving robot 100 with the robot agent installed is introduced into space for the first time (S100).
- a robot agent is installed on the self-driving robot 100.
- the self-driving robot 100 without a robot agent is installed.
- the administrator can install a robot agent.
- the self-driving robot 100 interacts with the robot platform server 200 through a robot agent (S110). Since the method by which the robot agent interacts with the robot platform server 200 can be executed in various forms, embodiments of the present invention are not limited to any one method.
- the robot agent checks the components of the self-driving robot 100 and creates a node for each component (S120). When a node is created, the self-driving robot 100 initially runs and generates a map of the input space (S130).
- the method for the self-driving robot 100 to create a node and the method for creating a map are already known technologies, and embodiments of the present invention are not limited to any one method.
- the robot agent groups the navigation stack (S140). That is, the self-driving robot 100 adds robot identification information assigned to the self-driving robot 100 to the data collected by the sensor node and the management node, respectively. Through this, the robot platform server 200 groups data collected by the nodes of the autonomous robot 100 based on robot identification information.
- a navigation stack equal to the number of self-driving robots 100 must be managed in the robot platform server 200.
- robot identification information is assigned to each robot, and topics, nodes, and robot coordinate frames used in the navigation stack must not be given duplicate names.
- the topics, nodes, and coordinate frames used in the autonomous robot 100 and the navigation stack are set to basic names. Therefore, when operating two or more multiple autonomous robots 100 in the same space, the navigation stack needs to identify which autonomous robot 100 to receive data from, and transmits the issued speed command to which navigation stack. It's difficult to recognize what needs to be done.
- a name space is created for the nodes used as the autonomous robot 100 and the navigation stack, based on the robot identification information (id) assigned to each autonomous robot 100. Specify . And each self-driving robot 100 groups installed software.
- control authority information refers to information indicating whether the self-driving robot 100 can be controlled by the user terminal.
- Control authority information may be input when the self-driving robot 100 is developed, or the administrator may input control authority information when installing a robot agent on the self-driving robot 100.
- the administrator can control the self-driving robot 100 by entering the identification information of the user terminal 300 in the control authority information. You can set up the terminal.
- the robot agent transmits the information about the components confirmed in step S120 and the control authority information confirmed in step S150 to the robot platform server 200 along with the map generated in step S130 in the opening information (S160).
- the activation information may additionally include a robot identifier of the self-driving robot 100, location information where the self-driving robot 100 is inserted, spatial information, etc.
- the activation information may include space setting information set by the administrator.
- the space setting information may include various information such as table identification information for each of a plurality of tables installed in the space and waiting space information for the self-driving robots 100.
- the robot agent links with the mobile robot management app installed on the user terminal 300 through the control API provided by the robot platform server 200 (S170). Through this, the user can control the self-driving robot 100 through the mobile robot management app installed on the user terminal 300.
- the robot agent of the self-driving robot 100 groups the data collected by a plurality of nodes into identification information of the self-driving robot 100 and transmits it to the robot platform server 200.
- the self-driving robot 100 may transmit sensing data for each node to the robot platform server 200 at preset intervals, or may transmit it to the robot platform server 200 when a special event occurs.
- the robot identifier and mission code or control code included in the generated control command are checked, and a control command corresponding to the autonomous robot 100 is received (S180). Then, the robot agent executes a mission based on the mission code, task code, or control code inserted in the control command or changes the settings of the autonomous robot 100 according to the control code (S190).
- Figure 3 is a flowchart of a method for controlling multiple autonomous robots through a user terminal according to an embodiment of the present invention.
- the robot platform server 200 receives the activation information transmitted after each autonomous robot 100 completes the activation procedure (S200).
- the activation information includes identification information of each autonomous robot 100, node information for each robot component of each autonomous robot 100, and control authority information set for each autonomous robot 100.
- the robot platform server 200 groups and manages the received activation information for each autonomous robot 100. At this time, the robot platform server 200 checks the opening information, confirms the robot control authority of each self-driving robot 100, and grants control authority to the self-driving robot for which control authority using the user terminal 300 is not set. You can also request it.
- Grouped data collected by node is received from each self-driving robot 100 for which the opening procedure has been completed (S210).
- the collected data includes driving data sensed while the self-driving robot 100 is driving, status information for each robot component of the self-driving robot 100, surrounding robot data received through communication with a neighboring self-driving robot, etc., and self-driving robot ( 100) identification information is included.
- the robot platform server 200 collects node collection data grouped for each autonomous robot 100 received through step S210 to the user terminal ( 300) (S230).
- the user terminal 300 displays sensing data through the mobile robot management app executed in step S220, allowing the user to check the current state of the self-driving robot 100 (S240).
- a problem occurs in a specific self-driving robot among the multiple self-driving robots 100 or that a specific self-driving robot is requested to perform a mission (for example, a request to serve, a request to leave a meal, a request for customer guidance, etc.).
- a control signal for a specific autonomous robot that is, the control target autonomous robot (S250)
- the robot platform server 200 S260
- the user can send a control command for the self-driving robot to the robot platform server 200 regardless of the type of OS of the user terminal 300 owned by the user.
- the mobile robot management app can transmit control commands to the robot platform server 200 using the POST method, and examples of control commands are shown in Table 1 below.
- the robot platform server 200 transmits a control command to the self-driving robot 100 (S270). At this time, if there are multiple self-driving robots to be controlled, it must be possible to distinguish which self-driving robot 100 should execute the control command or mission command randomly transmitted from the user terminal 300 to the robot platform server 200. .
- the robot platform server 200 identifies the autonomous robot to perform the mission or task so that each agent can recognize the mission code and task code for each type of autonomous robot 100.
- the mission code includes a mission identifier (for example, serving, luggage, amenity, post, disinfect, etc.) so that the agent can distinguish and recognize the mission code for each type of autonomous robot 100.
- the task code contains information that allows missions to be assigned to the grouped navigation stack, such as delivery and return.
- the priority is specified in the task code. This allows the robot platform server 200 to recognize the priority and issue control commands to each agent of the multi-autonomous robot 100 when transmitting a plurality of mission codes to the agent, thereby enabling multi-autonomous driving. This is to improve efficiency when the traveling robots 100 process multiple missions.
- the robot platform server 200 will be described as an example in which the priority for each mission is set and stored as a behavior tree. However, when the user changes the priority for the mission and inputs it through the user terminal 300, the entered priority may be updated in the robot platform server 200 and provided to the agents of the multiple self-driving robots 100. .
- the priority when multiple autonomous robots 100 receive the same control command is managed by the robot platform server 200 through policy. This will be described in detail with reference to FIG. 4.
- a request to leave a meal using a tablet order will be described as an example.
- Figure 4 is an example showing a processing method when multiple autonomous robots receive the same control command according to an embodiment of the present invention.
- the 3rd self-driving robot (3) and the 4th self-driving robot (4) have the retirement mode defined as priority 1 and registered in the robot platform server 200. It is a state.
- the robot platform server 200 holds robot identification information, map information, and priority information for each mode so that when four autonomous robots (1 to 4) are opened, a map of the restaurant can be created and shared.
- a withdrawal request signal is transmitted to the robot platform server 200.
- the robot platform server 200 refers to the behavior tree of the self-driving robot for the corresponding restaurant, checks the self-driving robot identification information for which the withdrawal mode is set as a priority, and determines each self-driving robot based on the confirmed self-driving robot identification information. Check the current status information of the robot.
- the robot platform server 200 manages the control priority of the self-driving robot through a behavior tree according to the confirmed status information.
- the first priority is a waiting robot
- the second priority is a robot returning after mission completion
- the third priority is Assume that it is set in order of distance. Therefore, based on the confirmed status information, the robot platform server 200 checks the current status of the two autonomous robots 3 and 4 whose retirement mode priority is defined as 1.
- the robot platform server 200 checks the current location information of each autonomous robot. Since autonomous robot number 3 is close to the place where the tablet order (5) is placed, a control command is sent to the robot agent installed on autonomous robot number 3 (3) so that it can perform the mission. A new retirement mission is given to self-driving robot number 3 (3), and when the newly assigned mission is completed, the robot agent of self-driving robot number 3 (3) sends the completed result to the robot platform server 200.
- Figure 5 is an example of linking a robot agent and a mobile robot management app according to an embodiment of the present invention.
- a customer who wants a robot control service through a tablet order or smartphone app receives API documents and a robot agent from a service provider that provides multiple autonomous robot services through prior consultation with the service provider. .
- the customer company develops application software suitable for the user terminal 300, such as a smartphone or tablet order, using the provided API document.
- the customer receives a self-driving robot (100) with a robot agent installed.
- the robot agent is not something that can only be installed on robots made by a specific manufacturer, but can be installed on general-purpose types developed based on robot standard middleware.
- the robot agent transmits configuration information, sensor data, and activation information of the self-driving robot 100 to the robot platform server 200 (S300).
- the configuration information of the self-driving robot 100 corresponds to sensor information that senses data necessary for driving the self-driving robot 100, such as cameras, lidar, encoders, and inertial sensors.
- the activation information includes identification information of the user terminal 300 for controlling the self-driving robot 100.
- the robot platform server 200 issues an authentication token so that the robot agent and the mobile robot management app installed on the user terminal 300 can access or interact with the robot platform server 200 (S310). Since there are various methods by which the robot platform server 200 issues authentication tokens, embodiments of the present invention are not limited to any one method.
- the robot platform server 200 transmits an authentication token to the user terminal 300 on which the mobile robot management app is installed based on the identification information of the user terminal included in the opening information received in step S300 (S320).
- the user terminal 300 stores the authentication token received in step S320 (S330) and then executes the mobile robot management app according to the user's input (S340).
- the user terminal 300 transmits a mobile robot management app linkage request signal to the robot platform server 200 in order to link with the self-driving robot 100 (S350).
- the authentication token received and stored from the robot platform server 200 is included and transmitted.
- the robot platform server 200 verifies the authentication token received from the user terminal 300 in step S350 (S350) and transmits the verification result to the user terminal 300 (S370).
- the verification result corresponds to either verification success or verification failure.
- the mobile robot management app of the user terminal 300 is linked with the self-driving robot according to the tag information included in the API. Accordingly, the robot control service can be used using the user terminal 300 (S380). Through this, control commands generated from the mobile robot management app are received from the robot platform server 200 and delivered to the robot agent at each opening location, allowing the self-driving robot 100 to be controlled using the user terminal 300. do.
- additional procedures may be performed, such as requesting an authentication token for the linking procedure from the robot platform server 200 again.
- the additional procedures at this time are not limited to any one form.
- Figure 6 is an example screen of a mobile robot management app installed on a user terminal according to an embodiment of the present invention.
- a remote user can check information about multiple autonomous robots 100 received from the robot platform server 200 through the user terminal 300.
- the store where the self-driving robot in which the error occurred is installed can be selected through the location selection tool (6).
- a list of stores is provided through the location selection means 6, and the user selects a desired store as an example.
- the user may directly input the location or select the notice content in the notice information display window (5) to check information on the self-driving robots 100 installed at the location.
- the user selects the store he or she wants to check, he or she can check the list of multiple self-driving robots (100) providing services at that store and the status information of each self-driving robot in the robot status display window (7). If an error occurs in a specific self-driving robot (4) among the multiple self-driving robots (100) in the store, as shown in FIG. 3, an error display means is provided to control the self-driving robot (4) in which the error occurred. This will be explained as an example in which the control signal input button (8) is activated together to transmit the control signal.
- the screen of the touch screen mounted on the multi-autonomous robot 100 is provided through the user terminal 300, so that the user can give a mission to the multi-autonomous robot 100 through the user terminal 300.
- An example will be described with reference to FIG. 7.
- Figure 7 is an example diagram of another screen provided by a user terminal according to an embodiment of the present invention.
- the user can check a screen that is the same or similar to the touch screen screen of the self-driving robot in order to control the self-driving robot through the mobile robot management app installed on the user terminal 300.
- the user issues a food serving mission to the self-driving robot using the user terminal 300. It is assumed that three trays are installed in the autonomous robot that receives the mission.
- the user selects a tray to place food on the screen and enters the table number where the autonomous robot will serve the food placed on the tray.
- the information entered in this way is transmitted to the robot platform, and the agent of the self-driving robot communicates with the robot platform, analyzes the received mission information, and serves the food in the second tray to table number 3.
- Figure 8 is a structural diagram of an autonomous robot according to an embodiment of the present invention.
- the self-driving robot 100 includes a processor 110, a memory 130, an information collection means 140, an interface 150, and a storage device 160 that communicate through a bus 120. And includes a driving device 170.
- the processor 110 is a device that controls the operation of the robot 100, and may be various types of processors that process instructions included in a program, for example, a CPU (Central Processing Unit), MPU (Micro Processor Unit) , MCU (Micro Controller Unit), GPU (Graphic Processing Unit), etc.
- the processor 110 may be a semiconductor device that executes instructions stored in the memory 130 or the storage device 160.
- Processor 310 may be configured to execute the functions and methods described above.
- Memory 130 may include various types of volatile or non-volatile storage media. For example, the memory 130 loads the corresponding program so that instructions described to execute the operations of the present invention are processed by the processor 110, and read only memory (ROM) 131 and random access memory (RAM) It may include (132).
- ROM read only memory
- RAM random access memory
- the memory 130 may be located inside or outside the processor 110, and the memory 130 may be connected to the processor 110 through various known means.
- the information collection means 140 includes various sensors (e.g., lidar, depth camera, inertial measurement unit (IMU), etc.) that collect information from the robot 100 while traveling according to the operation of the present invention. corresponds to In the embodiment of the present invention, the use of LiDAR as the sensor 340 is described as an example, but it is not necessarily limited to this.
- sensors e.g., lidar, depth camera, inertial measurement unit (IMU), etc.
- the interface 150 is linked with the robot platform server 200 and transmits the local map generated by the robot 100 to the robot platform server 200. Additionally, the interface 150 may receive control commands transmitted from the robot platform server 200 and transmit them to the processor 110.
- the storage device 160 may store a local map of the space where the robot 100 drives. Additionally, the storage device 160 stores the global map received from the robot platform server 200.
- the driving device 170 allows the robot 100 to travel in the mapping area under the control of the processor 110.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Evolutionary Computation (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
적어도 하나의 프로세서에 의해 동작하며 사용자 단말에 의해 제어되는 자율주행 로봇의 동작 방법으로서, 전원이 인가되면 자율주행 로봇을 구성하는 구성 요소 별로 데이터 수집을 위한 노드들을 생성한다. 자율주행 로봇을 다른 복수의 자율주행 로봇들과 구분하는 로봇 식별 정보를 생성하고, 로봇 식별 정보를 노드들의 네임 스페이스로 지정한다. 자율주행 로봇에 기 설정된 제어 권한 정보를 확인하고, 사용자 단말로부터 제어 명령을 수신하면, 제어 명령을 기초로 미션을 수행한다.
Description
본 발명은 공통 플랫폼이 탑재되어 있는 복수의 자율주행 로봇들이 매장에서 사용자에게 서비스를 제공할 때, 매장 관리자가 자신의 단말을 이용하여 자율주행 로봇을 제어할 수 있는 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법에 관한 것이다.
자율주행 서비스 로봇 시장이 점차적으로 확대되면서, 다양한 분야에 자율주행 로봇이 적용되어 사용되고 있다. 공장이나 물류센터에 투입된 자율주행 로봇에서부터, 호텔이나 음식점 등에서 일상 서비스를 제공하기 위한 자율주행 로봇을 손쉽게 접하고 있다.
또한, 로봇 시장이 확대되면서, 자연스럽게 한 장소에 2대 이상의 로봇들을 운용하는 곳도 많아지고 있다. 따라서, 복수의 자율주행 로봇들(이하, '다중 자율로봇'이라 지칭함)이 효율적으로 운용되기 위한 다양한 기술 연구도 확대되고 있다.
보편적으로 다중 자율주행 로봇들이 실내(예를 들어, 음식점, 호텔 등)에서 스스로 주행할 때, 천장에 설치된 마커와 같은 구조물을 이용하여 주행한다. 이는, 로봇 간 통신없이 마커의 점유 상태를 확인하며 로봇이 목적지로 주행하기 때문에, 실내 환경에 구조물이 설치되지 않을 경우 다중 자율주행 로봇들의 주행이 불가능하다. 그리고, 자율주행 로봇이 주행하는 공간이 커질수록, 로봇이 주행하기 위한 환경 구축에 많은 비용이 발생한다.
따라서, 별도의 구조물 없이도 완전하게 자율주행하는 로봇의 개발이 필요하다. 즉, 자율주행 로봇간 위치 인식이나 경로를 계획하기 위해, 다른 자율주행 로봇들과의 통신을 위한 구조가 필요하다.
그러나, 다른 자율주행 로봇과 통신을 통해 위치를 인식하거나 경로를 계획하면서 목적지로 주행하다가 오류가 발생할 경우, 관리자 또는 사용자가 자율주행 로봇에 장착된 터치 스크린을 이용하여 자율주행 로봇을 제어해야 한다. 관리자 또는 사용자가 오류가 발생한 자율주행 로봇이 투입된 현장으로 이동하여 자율주행 로봇을 제어해야 하므로, 자율주행 로봇의 제어에 불편함과 번거로움이 있다.
따라서, 본 발명은 사용자들이 소지한 PC, 스마트폰, 태블릿 PC 또는 테이블에 설치된 태블릿 오더 등 사용자 단말을 통해 다중 자율주행 로봇들을 용이하게 제어할 수 있으며, 행동 트리를 이용하여 다중 자율주행 로봇의 운영 효율을 증진시킬 수 있는, 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 적어도 하나의 프로세서에 의해 동작하며 사용자 단말에 의해 제어되는 자율주행 로봇의 동작 방법으로서,
전원이 인가되면, 상기 자율주행 로봇을 구성하는 구성 요소 별로 데이터 수집을 위한 노드들을 생성하는 단계, 상기 자율주행 로봇을 다른 복수의 자율주행 로봇들과 구분하는 로봇 식별 정보를 생성하고, 상기 로봇 식별 정보를 상기 노드들의 네임 스페이스로 지정하는 단계, 상기 자율주행 로봇에 기 설정된 제어 권한 정보를 확인하는 단계, 그리고 상기 사용자 단말로부터 제어 명령을 수신하면, 상기 제어 명령을 기초로 미션을 수행하는 단계를 포함한다.
상기 노드들을 생성하는 단계는, 상기 로봇 플랫폼 서버와 연동하는 단계를 더 포함하고, 상기 로봇 플랫폼 서버는 상기 사용자 단말에서 생성된 상기 자율주행 로봇을 제어할 제어 명령을 전송할 수 있다.
상기 네임 스페이스로 지정하는 단계는, 투입된 공간을 주행하며 상기 공간에 대해 맵을 생성하는 단계, 그리고 상기 투입된 공간을 주행하며 상기 노드들이 각각 수집한 데이터들을, 상기 자율주행 로봇에 부여된 식별 정보로 그룹화하는 단계를 포함할 수 있다.
상기 제어 권한 정보는 상기 자율주행 로봇을 사용자 단말에 설치된 모바일 로봇 관리 앱을 통해 제어할 수 있는지 여부를 나타내는 정보로, 상기 사용자 단말의 식별 정보를 포함할 수 있다.
상기 제어 권한 정보를 확인하는 단계는, 상기 생성한 노드들에 대한 노드 정보, 상기 맵, 그리고 상기 자율주행 로봇을 제어하기 위한 제어 권한 정보를 포함하는 개통 정보를 로봇 플랫폼 서버로 전송하는 단계를 포함할 수 있다.
상기 로봇 플랫폼 서버로 전송하는 단계 이후에, 상기 로봇 플랫폼 서버에서 제공하는 API를 통해, 상기 사용자 단말에 설치되어 있으며 제어 권한이 부여된 모바일 로봇 관리 앱과 연동하는 단계를 포함할 수 있다.
상기 모바일 로봇 관리 앱과 연동하는 단계 이후에, 상기 모바일 로봇 관리 앱을 통해 입력된 제어 명령과 상기 제어 명령에 대한 명령 코드를 상기 로봇 플랫폼 서버로부터 수신하는 단계, 그리고 상기 명령 코드에 대응하는 동작을 실행하는 단계를 포함할 수 있다.
상기 제어 명령은 상기 서비스에 매핑된 명령 코드와 상기 대상 로봇의 로봇 식별 정보를 포함할 수 있다.
상기 동작을 실행하는 단계는, 상기 제어 명령에 포함된 로봇 식별 정보가 상기 자율주행 로봇에 부여된 식별 정보인지 확인하는 단계를 더 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 자율주행 로봇으로서,
사용자 단말에 설치된 모바일 로봇 관리 앱 및 로봇 플랫폼 서버와 연동하는 인터페이스, 그리고 프로세서를 포함하고, 상기 프로세서는, 상기 로봇 플랫폼 서버와 데이터를 송수신할 로봇 에이전트가 설치되어 있고, 상기 모바일 로봇 관리 앱을 통해 입력된 제어 명령에 대응하는 명령 코드를 상기 로봇 플랫폼 서버로부터 수신하고, 상기 로봇 에이전트의 제어를 통해 상기 명령 코드에 대응한 동작을 수행한다.
상기 프로세서는, 상기 자율주행 로봇을 구성하는 복수의 구성 요소들을 기초로 각 구성 요소에서 수집한 데이터를 전송하기 위한 노드들을 각각 생성할 수 있다.
상기 프로세서는, 상기 구성 요소별 노드에 상기 자율주행 로봇의 식별 정보로 네임 스페이스를 지정하여, 복수의 노드들이 각각 수집한 데이터를 그룹화할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 자율주행 로봇 플랫폼 서버로서,
복수의 자율주행 로봇들에 각각 설치된 로봇 에이전트 및 사용자 단말에 설치된 모바일 로봇 관리 앱과 연동하는 인터페이스, 상기 자율주행 로봇들의 식별정보와 상기 자율주행 로봇의 행동 트리를 저장하는 메모리, 그리고 프로세서를 포함하고, 상기 프로세서는 상기 행동 트리에 포함된 우선 순위 정보를 기초로 상기 모바일 로봇 관리 앱으로부터 입력된 서비스 요청 신호에 대응하는 서비스를 처리할 대상 자율주행 로봇을 선정하고, 상기 대상 자율주행 로봇에 상기 서비스 요청 신호에 대응하는 서비스 제공을 위한 명령을 부여한다.
상기 메모리는, 상기 자율주행 로봇이 수집한 수집 정보들을 상기 각 자율주행 로봇들의 식별정보를 기초로 그룹화하여 저장할 수 있다.
상기 메모리는, 상기 자율주행 로봇에 우선순위로 설정된 우선순위 정보 및 상기 자율주행 로봇의 상태정보에 따라 제어 우선순위를 관리하는 행동 트리를 저장할 수 있다.
본 발명에 따르면, 자율주행 로봇에 장착된 터치 스크린을 통한 입력이 아닌, 사용자 또는 관리자가 자신이 소지한 사용자 단말 또는 매장에 설치된 태블릿 오더를 이용하여 다중 자율주행 로봇을 용이하게 제어할 수 있다.
도 1은 본 발명의 실시예에 따라 다중 자율주행 로봇들이 적용된 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 자율주행 로봇의 동작 방법에 대한 흐름도이다.
도 3은 본 발명의 실시예에 따라 사용자 단말을 통해 다중 자율주행 로봇을 제어하는 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따라 다중 자율주행 로봇들이 동일한 제어 명령을 받았을 때의 처리 방법을 나타낸 실시예이다.
도 5는 본 발명의 실시예에 따라 로봇 에이전트와 모바일 로봇 관리 앱이 연동한 예시도이다.
도 6은 본 발명의 실시예에 따라 사용자 단말에 설치된 모바일 로봇 관리 앱의 화면 예시도이다.
도 7은 본 발명의 실시예에 따라 사용자 단말에서 제공하는 또 다른 화면의 예시도이다.
도 8은 본 발명의 실시예에 따른 자율주행 로봇의 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 자율주행 로봇 및 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법에 대해 상세히 설명한다.
도 1은 본 발명의 실시예에 따라 다중 자율주행 로봇들이 적용된 환경의 예시도이다.
도 1에 도시된 바와 같이, 다중 자율주행 로봇(100)들은 설치된 공간에서 자율주행하며, 사용자들에게 서비스를 제공한다. 본 발명의 실시예에서는 설명의 편의를 위하여 다중 자율주행 로봇(100)들이 식당에 투입되어 사용자들에게 음식을 서빙하는 것을 예로 하여 설명하나, 투입되는 공간이 반드시 이와 같이 한정되는 것은 아니다.
또한, 본 발명의 실시예에서는 식당에 네 대(①~④)의 자율주행 로봇(100)들이 투입되어 있는 것을 예로 하여 설명한다. 그리고, 다중 자율주행 로봇(100)들 중, 두 대의 자율주행 로봇(①, ②)들은 추후 호출이 발생할 때까지 대기공간에서 대기하고 있고, 한 대의 자율주행 로봇(③)은 음식을 서빙하러 목적지로 이동하고 있으며, 다른 한 대(④)는 목적지에 도착하여 사용자가 음식을 수령한 상태라고 가정한다.
이와 같은 다중 자율주행 로봇(100)들은 로봇 플랫폼 서버(200)와 데이터를 송수신하기 위해 로봇 에이전트가 설치되어 있다. 본 발명의 로봇 제조사에서 로봇 에이전트를 자율주행 로봇(100)에 설치하여 투입되는 것을 예로 하여 설명한다. 그러나, 관리자가 USB 타입으로 연결하여 로봇 에이전트를 설치할 수도 있고, 자율주행 로봇(100)에 통신이 연결되면 로봇 플랫폼 서버(200)로부터 로봇 에이전트를 다운로드하여 설치할 수도 있다. 여기서, 로봇 에이전트는 로봇 단말을 제조하는 제조사에서 로봇 내부에 구현된 하드웨어 장치(예를 들어, PC 등)에 설치한 소프트웨어이다.
이때, 자율주행 로봇(100)의 서비스 제공 형태(예를 들어, 호텔로봇, 서빙로봇, 방역로봇 등)에 따라 로봇 에이전트를 구분할 필요 없이, 동일한 타입의 공통 로봇 에이전트가 각 다중 자율주행 로봇(100)에 설치된다. 즉, 자율주행 로봇(100)의 서비스 종류별로 로봇 에이전트를 별도로 개발하거나 자율주행 로봇(100)에 설치하지 않아도, 자율주행 로봇(100)의 구동부가 ROS(Robot Operating System) 표준 미들웨어(이하, '로봇 표준 미들웨어'라 지칭함) 기반으로 동작한다면 공통 로봇 에이전트가 로봇 플랫폼 서버(200)와 연동하여 손쉽게 운용될 수 있으며, 반드시 이와 같이 한정되는 것은 아니다.
자율주행 로봇(100)이 처음 구동되어 로봇 에이전트가 설치되거나, 로봇 에이전트가 설치된 자율주행 로봇(100)이 최초 구동되면, 로봇 에이전트와 로봇 플랫폼 서버(200)가 통신을 통해 연동하여 데이터를 주고받는다.
이때, 로봇 에이전트는 자율주행 로봇(100)의 하드웨어 구성 요소(예를 들어, 센서, 모터, 액추에이터 등)를 확인하여, 로봇 플랫폼 서버(200)로 데이터를 전송하기 위해 필요한 노드를 생성한다. 로봇 에이전트는 자율주행 로봇(100)의 구성 요소를 다양한 방법으로 확인할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
즉, 자율주행 로봇(100)에 전원이 공급되면, 자율주행 로봇(100)의 메인 PC에 설치된 로봇 에이전트가 구동된다. 로봇 표준 미들웨어가 구동되고 자율주행 로봇(100)에 대한 데이터를 노드를 통해 로봇 에이전트로 전송하면, 로봇 에이전트는 노드로부터 전송되는 데이터를 상시 데이터로 수신한다. 노드는 센싱 정보를 전송하는 센서 노드와, 자율주행 로봇(100)의 구성 요소 중 센서 이외의 구성(예를 들어, 엑츄에이터, 모터 등)들을 관리하기 위한 관리 노드로 구분된다.
이때, 로봇 에이전트가 로봇 표준 미들웨어 기반으로 전송되지 않는 데이터를 수신하기 위해서는 별도의 규격 수립이 필요하다. 이를 위해 로봇 에이전트는 노드로부터 전송된 센서 데이터와 관리 데이터를 수신하고, 문제가 발생하면 에러 코드를 로봇 플랫폼 서버(200)에 보내도록 규격이 수립되어 있다.
예를 들어, 자율주행 로봇(100)에 장착된 라이다 센서의 데이터를 수신하는 센서 노드가 로봇 에이전트로의 데이터 전송에 문제가 발생하면, 로봇 에이전트는 노드 재생성을 요청하고 장애 에러코드를 로봇 플랫폼 서버(200)로 보낸다. 자율주행 로봇(100)들을 관제하는 센터에서 관리자가 장애 에러코드를 확인할 수 있도록, 로봇 플랫폼 서버(200)는 로봇 에이전트로부터 수신한 에러코드를 모니터링 화면을 통해 디스플레이한다. 또한, 로봇 에이전트는 자율주행 로봇(100)의 터치 스크린에 에러 알림 화면을 출력한다.
예를 들어, 자율주행 로봇(100)이 호텔로봇인 경우, 로봇 에이전트는 자율주행 로봇(100)의 주행에 필요한 센서와 호텔 어메니티 용품을 보관하는 보관부의 덮개를 제어하는 모터와 액추에이터(Actuator)를 구성 요소로 확인한다. 로봇 에이전트는 각 구성 요소를 관리하기 위해 센서 노드, 모터 노드, 액추에이터 노드를 생성하여, 각 노드에서 수집한 데이터를 로봇 플랫폼으로 전송한다. 본 발명의 실시예에서는 데이터가 발생되는 구성 요소를 '노드'라 표현하였으나, 자율주행 로봇(100)이 서비스를 제공하기 위해 요구되는 실행 가능한 최소한의 프로세서 단위를 나타내는 또 다른 용어(예를 들어, 모듈 등)로도 사용될 수 있다.
동일한 공간에 여러 대의 자율주행 로봇(100)이 도 1과 같이 개통될 경우를 대비하여, 각 자율주행 로봇(100)에 설치된 로봇 에이전트는 자율주행 로봇(100)의 개통 정보(예를 들어, 자율주행 로봇 식별 정보, 설치 장소, 제어 권한 정보 등)와 자율주행 로봇(100)이 생성한 지도를 참조하여 네비게이션 스택(Navigation Stack)을 그룹화하여 관리한다. 그리고 자율주행 로봇(100)들에 각각 설치된 로봇 에이전트는 노드별로 수집한 데이터를 자율주행 로봇별로 구분하여 로봇 플랫폼 서버(200)로 전송한다.
여기서, 네비게이션 스택은 로봇 표준 미들웨어를 기반으로 자율주행 로봇(100)의 네비게이션 서비스 개발에 필요한 패키지를 제공한다. 예를 들어, 네비게이션 스택 중 Map_server는 자율주행 로봇(100)이 작성한 지도를 사용하여 내비게이션에서 사용될 지도 정보를 발행한다. 그리고 amcl은 Map_server에서 발행한 지도에서 자율주행 로봇(100)의 현재 위치를 추정하기 위해 사용한다.
네비게이션 스택은 단일 자율주행 로봇(100) 기준으로 네비게이션 서비스를 하기 위해 사용된다. 따라서, 2대 이상의 다중 자율주행 로봇(100)이 동일한 지도 상에서 서로의 위치를 추정하기는 어렵다. 이를 위해 본 발명의 실시예에서는 네비게이션 스택의 그룹화 작업을 수행한다.
즉, 자율주행 로봇(100)에 설치된 로봇 에이전트는 각 로봇 별로 로봇 에이전트에서 로봇 플랫폼 서버(200)로 데이터를 전달한다. 이때, 데이터를 수신한 로봇 플랫폼 서버(200)는 어떤 자율주행 로봇(100)에서 데이터를 보냈는지 식별할 수 있도록 하기 위해, 로봇 에이전트는 자율주행 로봇(100)의 로봇 식별 정보를 포함하여 데이터를 전송한다.
로봇 플랫폼 서버(200)는 로봇 식별 정보를 기초로 네비게이션 스택을 그룹화하며, 2대 이상의 자율주행 로봇(100)이 동일한 공간 내에서 주행하더라도 서로 충돌하지 않도록 자율주행 로봇(100)들을 관리한다.
로봇 플랫폼 서버(200)는 사용자 단말(300)과도 연동한다. 사용자 단말(300)은 다중 자율주행 로봇(100)이 투입된 공간의 관리자가 소지한 단말일 수도 있고, 원격에서 여러 장소에 투입된 자율주행 로봇(100)들을 관리하는 관리자일 수도 있다. 또한, 공간에 위치한 테이블에 설치되어 있는 태블릿 오더일 수도 있다.
통상적으로 자율주행 로봇에 장착된 터치 스크린을 관리자가 입력하여 자율주행 로봇을 제어한다. 그러나, 본 발명의 실시예에서는 사용자 단말(300)에 설치된 어플리케이션으로 자율주행 로봇(100)을 용이하게 제어할 수 있다.
즉, 자율주행 로봇(100)에 설치된 로봇 에이전트를 통해 연동되는 로봇 플랫폼 서버(200)는 기본적으로 모바일 어플리케이션(이하, 설명의 편의를 위하여 '모바일 로봇 관리 앱'이라 지칭함)을 제공한다. 따라서, 자율주행 로봇(100)이 개통되면, 로봇 플랫폼 서버(200)는 제어 API를 통해, 로봇 에이전트와 사용자 단말(300)에 설치된 모바일 로봇 관리 앱을 연동시킨다. 여기서, 로봇 플랫폼 서버(200)가 로봇 에이전트와 모바일 로봇 관리 앱을 연동시키는 방법은 이후 상세히 설명한다.
사용자는 모바일 로봇 관리 앱을 통해 다양한 공간에 투입된 자율주행 로봇(100)들의 개통 정보와 로봇 관리 정보를 확인할 수 있다. 또한, 모바일 로봇 관리 앱을 통해 자율주행 로봇(100)에 미션 또는 작업을 할당할 수 있고, 오류가 발생한 자율주행 로봇(100)을 제어할 수도 있다.
이와 같은 환경에서, 자율주행 로봇이 로봇 플랫폼 서버(200)을 통해 사용자 단말(300)에서 생성된 미션 또는 제어 명령을 수행하는 동작 방법에 대해 도 2를 참조로 설명한다.
도 2는 본 발명의 실시예에 따른 자율주행 로봇의 동작 방법에 대한 흐름도이다.
도 2에 도시된 바와 같이, 로봇 에이전트가 설치된 자율주행 로봇(100)이 공간에서 처음으로 투입된다(S100). 본 발명의 실시예에서는 처음 자율주행 로봇(100)이 공간에 투입될 때, 로봇 에이전트가 자율주행 로봇(100)에 설치되어 있는 것을 예로 하여 설명하나, 로봇 에이전트가 설치되지 않은 자율주행 로봇(100)이 투입되면 관리자가 로봇 에이전트를 설치할 수도 있다.
자율주행 로봇(100)은 로봇 에이전트를 통해 로봇 플랫폼 서버(200)와 연동한다(S110). 로봇 에이전트가 로봇 플랫폼 서버(200)와 연동하는 방법은 다양한 형태로 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
로봇 에이전트는 자율주행 로봇(100)의 구성 요소를 확인하고, 각 구성 요소 별 노드를 생성한다(S120). 노드가 생성되면 자율주행 로봇(100)은 초기 주행하며 투입된 공간에 대한 맵을 생성한다(S130). 자율주행 로봇(100)이 노드를 생성하는 방법이나, 맵을 생성하는 방법은 이미 알려진 기술로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
로봇 에이전트는 네비게이션 스택을 그룹화한다(S140). 즉, 자율주행 로봇(100)은 센서 노드와 관리 노드가 각각 수집한 데이터를 자율주행 로봇(100) 자신에 부여된 로봇 식별 정보를 추가한다. 이를 통해, 로봇 플랫폼 서버(200)가 로봇 식별 정보를 기초로 해당 자율주행 로봇(100)의 노드들이 수집한 데이터를 그룹화한다.
동일한 공간에서 2대 이상의 자율주행 로봇(100)들이 독립적으로 구동하여 사용자에게 서비스를 제공하기 위해서는, 자율주행 로봇(100)의 수만큼의 내비게이션 스택이 로봇 플랫폼 서버(200)에서 관리되어야 한다. 이를 위해 로봇 별로 로봇 식별 정보(id)가 부여되고, 내비게이션 스택에 사용되는 토픽, 노드, 로봇 좌표 프레임은 중복된 이름으로 부여되면 안된다.
하지만, 자율주행 로봇(100)과 내비게이션 스택에서 사용하는 토픽과 노드, 좌표 프레임은 기본적인 이름으로 설정된다. 따라서, 두 대 이상의 다중 자율주행 로봇(100)을 동일한 공간에서 구동할 경우, 내비게이션 스택은 어떤 자율주행 로봇(100)으로부터 데이터를 받아야 하는지 식별이 필요하고, 어떤 내비게이션 스택으로 발행된 속도 명령을 전송해야 하는지 인식이 어렵다.
본 발명의 실시예에서는 이러한 문제점을 해결하기 위해, 각 자율주행 로봇(100)별로 부여된 로봇 식별 정보(id)를 기준으로, 자율주행 로봇(100)과 내비게이션 스택으로 사용되는 노드들에 네임 스페이스를 지정한다. 그리고 각 자율주행 로봇(100)은 설치된 소프트웨어를 그룹화 한다.
로봇 에이전트는 자율주행 로봇(100)에 기 설정된 제어 권한 정보를 확인한다(S150). 여기서, 제어 권한 정보는 사용자 단말로 자율주행 로봇(100)을 제어할 수 있는지 여부를 나타내는 정보를 의미한다.
제어 권한 정보는 자율주행 로봇(100)이 개발될 때 입력될 수도 있고, 관리자가 자율주행 로봇(100)에 로봇 에이전트를 설치할 때 제어 권한 정보를 입력할 수도 있다. 로봇 에이전트가 설치될 때 또는 로봇 에이전트가 로봇 플랫폼 서버(200)와 연동할 때, 관리자는 제어 권한 정보에 사용자 단말(300)의 식별 정보를 입력함으로써, 자율주행 로봇(100)을 제어할 수 있는 단말을 설정할 수 있다.
로봇 에이전트는 S120 단계에서 확인한 구성 요소에 대한 정보, S150 단계에서 확인한 제어 권한 정보를, S130 단계에서 생성한 맵과 함께 개통 정보에 포함하여 로봇 플랫폼 서버(200)로 전송한다(S160). 여기서, 개통 정보에는 자율주행 로봇(100)의 로봇 식별자와 자율주행 로봇(100)이 투입된 위치 정보, 공간 정보 등도 추가로 포함될 수 있다.
또한, 개통 정보에는 관리자에 의해 설정된 공간 설정 정보가 포함될 수도 있다. 여기서 공간 설정 정보라 함은, 공간 내에 설치된 복수 개의 테이블들 각각의 테이블 식별 정보나, 자율주행 로봇(100)들의 대기 공간 정보 등 다양한 정보가 포함될 수 있다.
이와 같은 절차로 자율주행 로봇(100)이 개통된 뒤, 로봇 에이전트는 로봇 플랫폼 서버(200)에서 제공하는 제어 API를 통해 사용자 단말(300)에 설치된 모바일 로봇 관리 앱과 연동한다(S170). 이를 통해, 사용자는 사용자 단말(300)에 설치된 모바일 로봇 관리 앱을 통해 자율주행 로봇(100)을 제어할 수 있게 된다.
그리고, 자율주행 로봇(100)의 로봇 에이전트는 복수의 노드들이 수집한 데이터들을 자율주행 로봇(100)의 식별 정보로 그룹화하여 로봇 플랫폼 서버(200)에 전송한다. 여기서 자율주행 로봇(100)은 노드별 센싱 데이터는 미리 설정한 주기별로 로봇 플랫폼 서버(200)로 전송할 수도 있고, 특별한 이벤트가 발생했을 때 로봇 플랫폼 서버(200)로 전송할 수도 있다.
로봇 관리 앱에서 제어 명령이 생성되면, 생성된 제어 명령에 포함된 로봇 식별자와 미션 코드 또는 제어 코드를 확인하여, 자율주행 로봇(100)에 해당하는 제어 명령을 수신한다(S180). 그리고, 로봇 에이전트는 제어 명령에 삽입된 미션 코드나 작업 코드 또는 제어 코드를 기초로 미션을 실행하거나 제어 코드에 따라 자율주행 로봇(100)의 설정을 변경한다(S190).
다음은 사용자가 사용자 단말(300)을 이용하여 다중 자율주행 로봇을 제어하는 방법에 대해 도 3을 참조로 설명한다.
도 3은 본 발명의 실시예에 따라 사용자 단말을 통해 다중 자율주행 로봇을 제어하는 방법에 대한 흐름도이다.
도 3에 도시된 바와 같이, 동일한 공간에 다중 자율주행 로봇(100)들이 투입되면 초기 개통 절차를 진행한다. 각 자율주행 로봇(100)이 개통 절차를 완료한 후 전송한 개통 정보를 로봇 플랫폼 서버(200)가 수신한다(S200). 개통 정보에는 각 자율주행 로봇(100)의 식별 정보, 각 자율주행 로봇(100)의 로봇 구성 요소별 노드 정보, 각 자율주행 로봇(100)에 설정되어 있는 제어 권한 정보 등이 포함되어 있다.
로봇 플랫폼 서버(200)는 수신한 개통 정보를 각 자율주행 로봇(100) 별로 그룹화하여 관리한다. 이때, 로봇 플랫폼 서버(200)는 개통 정보를 확인하여 각 자율주행 로봇(100)의 로봇 제어 권한을 확인하고, 사용자 단말(300)을 이용한 제어 권한이 설정되어 있지 않은 자율주행 로봇으로 제어 권한을 요청할 수도 있다.
개통 절차가 완료된 각 자율주행 로봇(100)으로부터 노드별로 수집하여 그룹화된 수집 데이터를 수신한다(S210). 수집 데이터는 자율주행 로봇(100)이 주행하면서 센싱한 주행 데이터, 자율주행 로봇(100)의 로봇 구성 요소별 상태 정보, 이웃한 자율주행 로봇과 통신으로 수신한 주변 로봇 데이터 등과, 자율주행 로봇(100)의 식별 정보가 포함되어 있다.
한편, 사용자 단말(300)에 설치된 모바일 로봇 관리 앱이 실행되면(S220), 로봇 플랫폼 서버(200)는 S210 단계를 통해 수신한 각 자율주행 로봇(100)별로 그룹화된 노드 수집 데이터를 사용자 단말(300)로 전송한다(S230). 사용자 단말(300)은 S220 단계에서 실행된 모바일 로봇 관리 앱을 통해 센싱 데이터를 디스플레이하여, 사용자가 자율주행 로봇(100)의 현 상태를 확인할 수 있도록 한다(S240).
이때, 다중 자율주행 로봇(100)들 중 특정 자율주행 로봇에 이상이 발생하였거나, 특정 자율주행 로봇에 미션 수행(예를 들어, 서빙 요청, 퇴식 요청, 고객 안내 요청 등)을 요청한다고 가정한다. 그러면 사용자는 특정 자율주행 로봇, 즉, 제어 대상 자율주행 로봇에 대한 제어 신호를 입력하여(S250), 로봇 플랫폼 서버(200)로 전송한다(S260).
이 경우, 사용자는 자신이 소지한 사용자 단말(300)의 OS 종류에 상관없이 로봇 플랫폼 서버(200)로 자율주행 로봇의 제어 명령을 보낼 수 있다. 모바일 로봇 관리 앱은 POST 방식으로 제어 명령을 로봇 플랫폼 서버(200)으로 전송할 수 있으며, 제어 명령의 예는 다음 표 1과 같다.
| post: tags: - Robot Mission Control summary: 서빙/퇴식/안내 등의 미션 수행 요청 description: 미션 코드 operationId: requestMission requestBody: description: 요청하고자 하는 미션 content: application/json: schema: $ref: '#/components/schemas/MissionBodyObject' responses: "200": description: 임무 생성 요청에 성공하였습니다. content: application/json: schema: $ref: '#/components/schemas/CommonResponseSuccess' |
로봇 플랫폼 서버(200)는 자율주행 로봇(100)으로 제어 명령을 전송한다(S270). 이때, 제어 대상 자율주행 로봇이 복수 개일 경우, 사용자 단말(300)에서 무작위로 로봇 플랫폼 서버(200)로 전달되는 제어 명령 또는 미션 명령을 어느 자율주행 로봇(100)이 실행해야 하는지 구분할 수 있어야 한다.
따라서, 본 발명의 실시예에서는 로봇 플랫폼 서버(200)가 각 자율주행 로봇(100)의 종류별로 각 에이전트가 미션 코드와 작업 코드를 인식할 수 있도록, 미션 또는 작업을 수행할 자율주행 로봇의 식별 정보를 포함하여 미션 코드와 작업 코드를 전송한다. 이를 위해, 미션 코드에는 각 자율주행 로봇(100)의 종류별로 에이전트가 미션 코드를 구분하여 인식할 수 있도록 미션 식별자(예를 들어, serving, luggage, amenity, post, disinfect 등)가 포함되어 있다. 그리고 작업 코드에는 배달, 복귀 등 그룹핑된 네비게이션 스택에 미션을 내릴 수 있도록 정보가 포함되어 있다.
이때, 작업 코드에는 우선 순위가 명시되어 있다. 이는 로봇 플랫폼 서버(200)에서 복수의 미션 코드를 에이전트에 전달할 때, 로봇 플랫폼 서버(200)가 우선 순위를 인식하여 다중 자율주행 로봇(100)의 각 에이전트에 제어명령을 내릴 수 있도록 하여 다중 자율주행 로봇(100)들이 복수의 미션을 처리할 때 효율성을 향상시키기 위함이다.
이를 위해, 로봇 플랫폼 서버(200)는 각 미션에 대한 우선 순위가 행동 트리(behavior tree)로 설정되어 저장되어 있는 것을 예로 하여 설명한다. 그러나, 사용자가 사용자 단말(300)을 통해 미션에 대한 우선 순위를 변경하여 입력하면, 입력된 우선 순위가 로봇 플랫폼 서버(200)에 갱신되어 다중 자율주행 로봇(100)들의 에이전트에 제공될 수도 있다.
즉, 다중 자율주행 로봇(100)들이 동일한 제어 명령을 받았을 때의 우선 순위는 로봇 플랫폼 서버(200)에서 정책으로 관리한다. 이에 대해서 도 4를 참조로 상세히 설명한다. 본 발명의 실시예에서는 태블릿 오더로 퇴식을 요청하는 것을 예로 하여 설명한다.
도 4는 본 발명의 실시예에 따라 다중 자율주행 로봇들이 동일한 제어 명령을 받았을 때의 처리 방법을 나타낸 실시예이다.
도 4에 도시된 바와 같이, 각 테이블 마다 태블릿 오더가 배치된 환경에서, 식당 이용자가 태블릿 오더를 통해 자율주행 로봇(100)에 퇴식을 요청한다고 가정한다. 퇴식 요청이 입력된 태블릿 오더는 로봇 플랫폼 서버(200)와 연동하기 위해 제공된 API로 고객사가 직접 개발한 어플리케이션이 설치된 상태이다.
이때, 어플리케이션이 설치되는 초기 단계에서 행위 트리를 통해, 3번 자율주행 로봇(③)과 4번 자율주행 로봇(④)은 퇴식 모드가 우선 순위 1로 정의되어 로봇 플랫폼 서버(200)에 등록된 상태이다. 그리고 로봇 플랫폼 서버(200)는 네 대의 자율주행 로봇(①~④)이 개통되면, 식당에 대한 지도를 작성하고 공유할 수 있도록 로봇 식별 정보와 지도 정보, 모드 별 우선순위 정보까지 보유하고 있다.
복수의 태블릿 오더들 중 특정 태블릿 오더(⑤)에서 퇴식을 위해 로봇 호출이 발생하면, 퇴식 요청 신호가 로봇 플랫폼 서버(200)로 전송된다. 로봇 플랫폼 서버(200)는 해당 식당에 대한 자율주행 로봇의 행위 트리를 참조하여, 퇴식 모드가 우선순위로 설정된 자율주행 로봇 식별 정보를 확인하고, 확인된 자율주행 로봇 식별 정보를 기초로 각 자율주행 로봇의 현재 상태 정보를 확인한다.
로봇 플랫폼 서버(200)는 확인한 상태 정보에 따라 자율주행 로봇의 제어 우선 순위를 행위 트리로 관리하는데, 본 발명의 실시예에서는 1순위는 대기중인 로봇, 2순위 미션완료 후 복귀하는 로봇, 3순위 거리순으로 설정되어 있다고 가정한다. 따라서, 로봇 플랫폼 서버(200)는 확인한 상태 정보를 기초로, 퇴식 모드의 우선 순위가 1로 정의되어 있는 두 대의 자율주행 로봇(③, ④)들의 현재 상태를 확인한다.
3번 자율주행 로봇(③)과 4번 자율주행 로봇(④)이 미션완료 후 복귀중임을 확인하면, 로봇 플랫폼 서버(200)는 각 자율주행 로봇의 현재 위치 정보를 확인한다. 3번 자율주행 로봇이 태블릿 오더(⑤)가 배치된 장소와 가까우므로, 미션을 수행할 수 있도록 3번 자율주행 로봇(③)에 설치된 로봇 에이전트에 제어 명령을 보낸다. 3번 자율주행 로봇(③)에 퇴식 미션이 새로 부여되고, 새로 부여된 미션을 완료하면 3번 자율주행 로봇(③)의 로봇 에이전트는 완료한 결과를 로봇 플랫폼 서버(200)에 보낸다.
다음은, 상술한 도 2에서 S170 단계에서 로봇 에이전트와 모바일 로봇 관리 앱이 연동한 예에 대해 도 5를 참조로 설명한다.
도 5는 본 발명의 실시예에 따라 로봇 에이전트와 모바일 로봇 관리 앱이 연동한 예시도이다.
도 5에 도시된 바와 같이, 태블릿 오더 또는 스마트폰 앱에서 로봇 제어 서비스를 원하는 고객사는 서비스 제공사와의 사전 협의를 통해, 다중 자율주행 로봇 서비스를 제공하는 서비스 제공사로부터 API 문서 및 로봇 에이전트를 제공받는다. 고객사는 제공받은 API 문서로 스마트폰 또는 태블릿 오더 등 사용자 단말(300)에 적합한 응용 소프트웨어 즉, 어플리케이션을 개발한다.
고객사에서 어플리케이션 개발을 완료하면, 고객은 로봇 에이전트가 설치된 자율주행 로봇(100)을 배송 받는다. 로봇 에이전트는 특정 제조사에서 만든 로봇만 설치할 수 있는 형태가 아닌, 로봇 표준 미들웨어 기반으로 개발된 범용 타입에 설치 가능한 형태이다.
자율주행 로봇(100)의 개통이 완료되면, 로봇 에이전트는 자율주행 로봇(100)의 구성 정보, 센서 데이터, 그리고 개통 정보를 로봇 플랫폼 서버(200)에 전송한다(S300). 여기서, 자율주행 로봇(100)의 구성 정보는 카메라, 라이다, 인코더, 관성 센서 등 자율주행 로봇(100)의 주행에 필요한 데이터를 센싱하는 센서 정보에 해당한다. 그리고 개통 정보에는 자율주행 로봇(100)을 제어하기 위한 사용자 단말(300)의 식별 정보 등이 포함되어 있다.
로봇 플랫폼 서버(200)는 로봇 에이전트와 사용자 단말(300)에 설치된 모바일 로봇 관리 앱이 로봇 플랫폼 서버(200)로 접근하거나, 상호 연동할 수 있도록 인증 토큰을 발급한다(S310). 로봇 플랫폼 서버(200)가 인증 토큰을 발급하는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
그리고, 로봇 플랫폼 서버(200)는 인증 토큰을 S300 단계에서 수신한 개통 정보에 포함된 사용자 단말의 식별 정보를 기초로 모바일 로봇 관리 앱이 설치된 사용자 단말(300)로 전송한다(S320). 사용자 단말(300)은 S320 단계에서 수신한 인증 토큰을 저장한 후(S330), 사용자의 입력에 따라 모바일 로봇 관리 앱을 실행시킨다(S340).
사용자 단말(300)은 자율주행 로봇(100)과의 연동을 위해 모바일 로봇 관리 앱 연동 요청 신호를 로봇 플랫폼 서버(200)로 전송한다(S350). 이때, S320 단계에서 로봇 플랫폼 서버(200)로부터 수신하여 저장한 인증 토큰을 포함하여 전송한다.
로봇 플랫폼 서버(200)는 S350 단계에서 사용자 단말(300)로부터 수신한 인증 토큰을 검증하고(S350), 검증 결과를 사용자 단말(300)에 전송한다(S370). 검증 결과는 검증 성공 또는 검증 실패 중 어느 하나에 해당한다.
만약, 사용자 단말(300)이 검증 성공 결과를 수신하면, API에 포함된 태그 정보에 따라 사용자 단말(300)의 모바일 로봇 관리 앱은 자율주행 로봇과 연동한다. 이에 따라, 사용자 단말(300)을 이용하여 로봇 제어 서비스를 이용할 수 있는 상태가 된다(S380). 이를 통해, 모바일 로봇 관리 앱에서 발생한 제어 명령을 로봇 플랫폼 서버(200)에서 수신하고, 각 개통 장소의 로봇 에이전트에 전달하여 자율주행 로봇(100)을 사용자 단말(300)을 이용하여 제어할 수 있게 된다.
그러나, 사용자 단말(300)이 검증 실패 결과를 수신하면, 로봇 플랫폼 서버(200)로 연동 절차를 위한 인증 토큰을 다시 요청하는 등, 추가 절차를 진행할 수 있다. 이때의 추가 절차는 어느 하나의 형태로 한정하지 않는다.
다음은, 상술한 절차를 통해 다중 자율주행 로봇(100)을 제어하는 사용자 단말(300)의 모바일 로봇 관리 앱에 대해 도 6을 참조로 설명한다.
도 6은 본 발명의 실시예에 따라 사용자 단말에 설치된 모바일 로봇 관리 앱의 화면 예시도이다.
도 6에 도시된 바와 같이, 원격의 사용자는 사용자 단말(300)을 통해 로봇 플랫폼 서버(200)로부터 수신한 다중 자율주행 로봇(100)들에 대한 정보를 확인할 수 있다. 특히, 공지 정보 표시 창(⑤)에 오류가 발생한 자율주행 로봇의 정보가 나타나면, 장소 선택 수단(⑥)을 통해 오류가 발생한 자율주행 로봇이 설치된 상점을 선택할 수 있다.
본 발명의 실시예에서는 장소 선택 수단(⑥)을 통해 상점의 리스트가 제공되고 사용자가 원하는 상점을 선택하는 것을 예로 하여 설명한다. 그러나, 사용자가 직접 장소를 입력하거나, 공지 정보 표시 창(⑤)의 공지 내용을 선택하여 해당 장소에 설치된 자율주행 로봇(100)들의 정보를 확인할 수도 있다.
사용자가 확인하고자 하는 상점을 선택하면, 로봇 상태 표시 창(⑦)에 해당 상점에서 서비스를 제공하는 다중 자율주행 로봇(100)들의 목록과, 각 자율주행 로봇의 상태 정보를 확인할 수 있다. 해당 상점에서 다중 자율주행 로봇(100)들 중 특정 자율주행 로봇(④)에 오류가 발생한 경우, 도 3에 도시된 바와 같이 오류 표시 수단과 함께 오류가 발생한 자율주행 로봇(④)을 제어하기 위한 제어 신호를 전송할 수 있도록 제어 신호 입력 버튼(⑧)이 함께 활성화되는 것을 예로 하여 설명한다.
다음은, 다중 자율주행 로봇(100)에 장착된 터치 스크린의 화면을 사용자 단말(300)을 통해 제공하여, 사용자가 사용자 단말(300)을 통해 다중 자율주행 로봇(100)에 미션을 줄 수 있는 예에 대해 도 7을 참조로 설명한다.
도 7은 본 발명의 실시예에 따라 사용자 단말에서 제공하는 또 다른 화면의 예시도이다.
도 7에 도시된 바와 같이, 사용자는 사용자 단말(300)에 설치된 모바일 로봇 관리 앱을 통해, 자율주행 로봇을 제어하기 위하여 자율주행 로봇의 터치 스크린 화면과 동일하거나 유사한 화면을 확인할 수 있다.
즉, 사용자가 사용자 단말(300)을 이용하여 자율주행 로봇에 음식 서빙 미션을 내린다고 가정한다. 미션을 받는 자율주행 로봇에는 3개의 트레이가 설치되어 있다고 가정한다.
사용자는 화면을 통해, 음식을 놓을 트레이를 선택하고, 해당 트레이에 놓인 음식을 자율주행 로봇이 서빙할 테이블 번호를 입력한다. 이렇게 입력된 정보는 로봇 플랫폼으로 전달되고, 자율주행 로봇의 에이전트는 로봇 플랫폼과 통신하여 수신한 미션의 정보를 분석하여, 3번 테이블에 두 번째 트레이에 담겨있는 음식을 서빙한다.
도 8은 본 발명의 실시예에 따른 자율주행 로봇의 구조도이다.
도 8에 도시된 바와 같이, 자율주행 로봇(100)은 버스(120)를 통해 통신하는 프로세서(110), 메모리(130), 정보 수집 수단(140), 인터페이스(150), 저장 장치(160) 그리고 구동 장치(170)를 포함한다.
프로세서(110)는 로봇(100)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 또는 프로세서(110)는 메모리(130) 또는 저장 장치(160)에 저장된 명령을 실행하는 반도체 장치일 수 있다. 프로세서(310)는 상술한 기능들 및 방법을 실행하도록 구성될 수 있다.
메모리(130)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(130)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(110)에 의해 처리되도록 해당 프로그램을 로드하며, ROM(read only memory)(131) 및 RAM(random access memory)(132)를 포함할 수 있다.
본 발명의 실시예에서 메모리(130)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(130)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
정보 수집 수단(140)은 본 발명의 동작에 따라 주행 중인 로봇(100)이 정보를 수집하는 다양한 센서(예를 들어, 라이다, 깊이 카메라, 관성 측정 장치(IMU: Inertial Measurement Unit) 등)들에 해당한다. 본 발명의 실시예에서는 센서(340)로 라이다를 이용하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
인터페이스(150)는 로봇 플랫폼 서버(200)와 연동하며, 로봇(100)이 생성한 지역 맵을 로봇 플랫폼 서버(200)로 전달한다. 또한 인터페이스(150)는 로봇 플랫폼 서버(200)로부터 전송되는 제어 명령을 수신하여 프로세서(110)로 전달할 수도 있다.
저장 장치(160)는 로봇(100)이 주행하는 공간의 지역 맵을 저장할 수 있다. 또한, 저장 장치(160)는 로봇 플랫폼 서버(200)로부터 수신한 전역 맵을 저장한다.
구동 장치(170)는 프로세서(110)의 제어에 따라 로봇(100)이 매핑 영역에서 주행되도록 한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (15)
- 적어도 하나의 프로세서에 의해 동작하며 사용자 단말에 의해 제어되는 자율주행 로봇의 동작 방법으로서,전원이 인가되면, 상기 자율주행 로봇을 구성하는 구성 요소 별로 데이터 수집을 위한 노드들을 생성하는 단계,상기 자율주행 로봇을 다른 복수의 자율주행 로봇들과 구분하는 로봇 식별 정보를 생성하고, 상기 로봇 식별 정보를 상기 노드들의 네임 스페이스로 지정하는 단계,상기 자율주행 로봇에 기 설정된 제어 권한 정보를 확인하는 단계, 그리고상기 사용자 단말로부터 제어 명령을 수신하면, 상기 제어 명령을 기초로 미션을 수행하는 단계를 포함하는, 동작 방법.
- 제1항에 있어서,상기 노드들을 생성하는 단계는,상기 로봇 플랫폼 서버와 연동하는 단계를 더 포함하고,상기 로봇 플랫폼 서버는 상기 사용자 단말에서 생성된 상기 자율주행 로봇을 제어할 제어 명령을 전송하는, 동작 방법.
- 제2항에 있어서,상기 네임 스페이스로 지정하는 단계는,투입된 공간을 주행하며 상기 공간에 대해 맵을 생성하는 단계, 그리고상기 투입된 공간을 주행하며 상기 노드들이 각각 수집한 데이터들을, 상기 자율주행 로봇에 부여된 식별 정보로 그룹화하는 단계를 포함하는, 동작 방법.
- 제3항에 있어서,상기 제어 권한 정보는 상기 자율주행 로봇을 사용자 단말에 설치된 모바일 로봇 관리 앱을 통해 제어할 수 있는지 여부를 나타내는 정보로, 상기 사용자 단말의 식별 정보를 포함하는, 동작 방법.
- 제1항에 있어서,상기 제어 권한 정보를 확인하는 단계는,상기 생성한 노드들에 대한 노드 정보, 상기 맵, 그리고 상기 자율주행 로봇을 제어하기 위한 제어 권한 정보를 포함하는 개통 정보를 로봇 플랫폼 서버로 전송하는 단계를 포함하는, 동작 방법.
- 제5항에 있어서,상기 로봇 플랫폼 서버로 전송하는 단계 이후에,상기 로봇 플랫폼 서버에서 제공하는 API를 통해, 상기 사용자 단말에 설치되어 있으며 제어 권한이 부여된 모바일 로봇 관리 앱과 연동하는 단계를 포함하는, 동작 방법.
- 제6항에 있어서,상기 모바일 로봇 관리 앱과 연동하는 단계 이후에,상기 모바일 로봇 관리 앱을 통해 입력된 제어 명령과 상기 제어 명령에 대한 명령 코드를 상기 로봇 플랫폼 서버로부터 수신하는 단계, 그리고상기 명령 코드에 대응하는 동작을 실행하는 단계를 포함하는, 동작 방법.
- 제7항에 있어서,상기 제어 명령은 상기 서비스에 매핑된 명령 코드와 상기 대상 로봇의 로봇 식별 정보를 포함하는, 동작 방법.
- 제8항에 있어서,상기 동작을 실행하는 단계는,상기 제어 명령에 포함된 로봇 식별 정보가 상기 자율주행 로봇에 부여된 식별 정보인지 확인하는 단계를 더 포함하는, 동작 방법.
- 자율주행 로봇으로서,사용자 단말에 설치된 모바일 로봇 관리 앱 및 로봇 플랫폼 서버와 연동하는 인터페이스, 그리고프로세서를 포함하고,상기 프로세서는,상기 로봇 플랫폼 서버와 데이터를 송수신할 로봇 에이전트가 설치되어 있고, 상기 모바일 로봇 관리 앱을 통해 입력된 제어 명령에 대응하는 명령 코드를 상기 로봇 플랫폼 서버로부터 수신하고, 상기 로봇 에이전트의 제어를 통해 상기 명령 코드에 대응한 동작을 수행하는, 자율주행 로봇.
- 제10항에 있어서,상기 프로세서는,상기 자율주행 로봇을 구성하는 복수의 구성 요소들을 기초로 각 구성 요소에서 수집한 데이터를 전송하기 위한 노드들을 각각 생성하는, 자율주행 로봇.
- 제11항에 있어서,상기 프로세서는,상기 구성 요소별 노드에 상기 자율주행 로봇의 식별 정보로 네임 스페이스를 지정하여, 복수의 노드들이 각각 수집한 데이터를 그룹화하는, 자율주행 로봇.
- 자율주행 로봇 플랫폼 서버로서,복수의 자율주행 로봇들에 각각 설치된 로봇 에이전트 및 사용자 단말에 설치된 모바일 로봇 관리 앱과 연동하는 인터페이스,상기 자율주행 로봇들의 식별정보와 상기 자율주행 로봇의 행동 트리를 저장하는 메모리, 그리고프로세서를 포함하고,상기 프로세서는,상기 행동 트리에 포함된 우선 순위 정보를 기초로 상기 모바일 로봇 관리 앱으로부터 입력된 서비스 요청 신호에 대응하는 서비스를 처리할 대상 자율주행 로봇을 선정하고, 상기 대상 자율주행 로봇에 상기 서비스 요청 신호에 대응하는 서비스 제공을 위한 명령을 부여하는, 자율주행 로봇 플랫폼 서버.
- 제13항에 있어서,상기 메모리는,상기 자율주행 로봇이 수집한 수집 정보들을 상기 각 자율주행 로봇들의 식별정보를 기초로 그룹화하여 저장하는, 자율주행 로봇 플랫폼 서버.
- 제13항에 있어서,상기 메모리는,상기 자율주행 로봇에 우선순위로 설정된 우선순위 정보 및 상기 자율주행 로봇의 상태정보에 따라 제어 우선순위를 관리하는 행동 트리를 저장하는, 자율주행 로봇 플랫폼 서버.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220083981A KR102843905B1 (ko) | 2022-07-07 | 2022-07-07 | 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법 |
| KR10-2022-0083981 | 2022-07-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024010318A1 true WO2024010318A1 (ko) | 2024-01-11 |
Family
ID=89453767
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2023/009372 Ceased WO2024010318A1 (ko) | 2022-07-07 | 2023-07-04 | 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR102843905B1 (ko) |
| WO (1) | WO2024010318A1 (ko) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102942596B1 (ko) * | 2024-09-26 | 2026-03-24 | 네이버 주식회사 | 클라우드 환경에서 다수의 로봇들의 행동을 제어하기 위한 방법 및 시스템 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014188597A (ja) * | 2013-03-26 | 2014-10-06 | Advanced Telecommunication Research Institute International | ロボットサービス連携システムおよびプラットフォーム |
| JP2019512402A (ja) * | 2016-03-03 | 2019-05-16 | マガジノ ゲーエムベーハー | 行動ツリーアーキテクチャを有するロボットの制御プロセス |
| KR20210029061A (ko) * | 2019-09-05 | 2021-03-15 | 엘지전자 주식회사 | 로봇 |
| KR102245824B1 (ko) * | 2020-03-02 | 2021-04-28 | 주식회사 큐리보 | 복수로봇 제어시스템 및 방법 |
| KR20220015132A (ko) * | 2020-07-30 | 2022-02-08 | 네이버랩스 주식회사 | 로봇 작업의 학습 방법 및 로봇 시스템 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102826066B1 (ko) * | 2019-09-19 | 2025-06-26 | 엘지전자 주식회사 | 로봇 청소기 및 이를 동작시키기 위한 방법 |
-
2022
- 2022-07-07 KR KR1020220083981A patent/KR102843905B1/ko active Active
-
2023
- 2023-07-04 WO PCT/KR2023/009372 patent/WO2024010318A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014188597A (ja) * | 2013-03-26 | 2014-10-06 | Advanced Telecommunication Research Institute International | ロボットサービス連携システムおよびプラットフォーム |
| JP2019512402A (ja) * | 2016-03-03 | 2019-05-16 | マガジノ ゲーエムベーハー | 行動ツリーアーキテクチャを有するロボットの制御プロセス |
| KR20210029061A (ko) * | 2019-09-05 | 2021-03-15 | 엘지전자 주식회사 | 로봇 |
| KR102245824B1 (ko) * | 2020-03-02 | 2021-04-28 | 주식회사 큐리보 | 복수로봇 제어시스템 및 방법 |
| KR20220015132A (ko) * | 2020-07-30 | 2022-02-08 | 네이버랩스 주식회사 | 로봇 작업의 학습 방법 및 로봇 시스템 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240006999A (ko) | 2024-01-16 |
| KR102843905B1 (ko) | 2025-08-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105635108B (zh) | 具有应用包分类器的防火墙 | |
| AU2018205187B2 (en) | Configuring terminal devices | |
| EP3613690B1 (en) | An elevator signalization apparatus | |
| KR101337619B1 (ko) | 통합 관제 시스템 및 통합 관제 방법 | |
| WO2018169143A1 (ko) | IoT 보일러의 제어 시스템 및 방법 | |
| WO2022004935A1 (ko) | 전자 장치 및 그의 동작 방법 | |
| CA2435068C (en) | Gateway apparatus and gateway setup tool | |
| WO2024010318A1 (ko) | 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법 | |
| CN104365033A (zh) | 飞行器信息管理系统 | |
| WO2023096168A1 (ko) | 로봇 및 시설물을 제어하는 방법 및 시스템 | |
| WO2018074619A1 (ko) | 컨테이너 터미널의 시뮬레이션 프로세스 자동화 시스템 및 방법 | |
| WO2014003510A1 (ko) | 토폴로지를 이용하여 데이터를 공유하는 장치 및 방법 | |
| US10818161B2 (en) | Method for the implementation and/or maintenance of a central fire alarm system and/or fire extinguishing control center and device therefore | |
| WO2013069886A1 (en) | Facilities control system and operating method of the same | |
| US12379122B2 (en) | Linking system and linking control method | |
| WO2019093591A1 (ko) | 건설 프로젝트 정보 관리 자동화를 위한 정보 관리시스템 및 채팅 플랫폼을 이용한 건설 프로젝트 정보 관리방법 | |
| WO2018074729A1 (ko) | 사무/공장 자동화를 위한 컴퓨터 입력 시스템 | |
| WO2024117609A1 (ko) | 다중 로봇 실시간 주행 제어 방법 및 시스템 | |
| WO2023229419A1 (ko) | 복수의 cctv가 설치되어 있는 교통수단 플랫폼의 순찰지원 방법 | |
| WO2023027283A1 (ko) | 클라우드 로봇 제어 개발을 위한 시뮬레이션 시스템 및 그 방법 | |
| JP2024119115A (ja) | 作業支援システム | |
| CN115515879B (zh) | 用于生成电梯呼叫请求的方法和系统 | |
| WO2024038950A1 (ko) | 아이템 정보 관리 방법 및 이를 제공하는 전자 장치 | |
| WO2024185941A1 (ko) | 원격 엘리베이터 제어 장치 및 원격 엘리베이터 제어 방법 | |
| JP2003288209A (ja) | オブジェクト利用ゲートウェイ装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23835784 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23835784 Country of ref document: EP Kind code of ref document: A1 |