KR102322048B1 - Building in which robot providing service and autonomously driving building by locating user is disposed - Google Patents

Building in which robot providing service and autonomously driving building by locating user is disposed Download PDF

Info

Publication number
KR102322048B1
KR102322048B1 KR1020210076893A KR20210076893A KR102322048B1 KR 102322048 B1 KR102322048 B1 KR 102322048B1 KR 1020210076893 A KR1020210076893 A KR 1020210076893A KR 20210076893 A KR20210076893 A KR 20210076893A KR 102322048 B1 KR102322048 B1 KR 102322048B1
Authority
KR
South Korea
Prior art keywords
robot
user
distance
service
movement
Prior art date
Application number
KR1020210076893A
Other languages
Korean (ko)
Inventor
원지혜
김덕화
이동환
Original Assignee
네이버 주식회사
네이버랩스 주식회사
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 네이버 주식회사, 네이버랩스 주식회사 filed Critical 네이버 주식회사
Priority to KR1020210076893D priority Critical patent/KR20210118773A/en
Priority to KR1020210076893A priority patent/KR102322048B1/en
Application granted granted Critical
Publication of KR102322048B1 publication Critical patent/KR102322048B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion

Abstract

공간 내에서 서비스를 제공하는 로봇에게 서비스를 제공 받는 사용자의 사용자 단말로부터 사용자의 위치 정보를 획득하고, 획득된 위치 정보와, 로봇의 센서부로부터의 센싱에 기반하여, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 로봇 제어 방법이 제공된다. Acquires the location information of the user from the user terminal of the user who is provided with the service from the robot that provides the service in the space, and reduces the distance between the user and the robot based on the obtained location information and sensing from the sensor unit of the robot A robot control method is provided for controlling the movement of the robot to

Figure R1020210076893
Figure R1020210076893

Description

사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물{BUILDING IN WHICH ROBOT PROVIDING SERVICE AND AUTONOMOUSLY DRIVING BUILDING BY LOCATING USER IS DISPOSED}A building in which a robot that autonomously drives a building by positioning a user and provides a service is deployed

아래의 설명은 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치에 관한 것으로, 서비스를 제공 받는 사용자를 정확하게 찾아갈 수 있도록 로봇을 제어하는 방법 및 장치에 관한 것이다.The following description relates to a method and an apparatus for controlling a robot that provides a service to a user in a space, and relates to a method and an apparatus for controlling a robot to accurately find a user who is provided with a service.

자율 주행 로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾아가는 로봇으로, 자율 주행 차량이나, 물류, 호텔 서비스, 로봇 청소기 등 다양한 분야를 위해 개발 및 활용되고 있다. An autonomous driving robot is a robot that finds an optimal route to a destination using wheels or legs while looking around and detecting obstacles by itself.

건물의 실내와 같은 공간 내에서 로봇을 통해 사용자에게 서비스를 제공하기 위해서는, 로봇의 위치와 로봇으로부터 서비스를 제공 받는 사용자(즉, 사용자의 모바일 단말)의 위치를 정확하게 측위하는 것이 중요하다. 특히, 로봇이 직접 사용자의 위치로 이동하여 사용자에게 서비스를 제공하는 경우에 있어서, 공간 내의 여러 사용자들 중 서비스를 제공 받는 사용자가 누구인지가 정확하게 식별되어야 하며, 로봇은 이러한 식별된 사용자의 위치로 이동하도록 제어되어야 한다. In order to provide a service to a user through a robot in a space such as the interior of a building, it is important to accurately position the position of the robot and the position of the user (ie, the user's mobile terminal) receiving the service from the robot. In particular, in the case where the robot directly moves to the user's location and provides a service to the user, it is necessary to accurately identify the user who receives the service from among several users in the space, and the robot moves to the identified user's location. It must be controlled to move.

로봇이 서비스를 요청한 사용자를 식별하는 방법으로는 사용자의 얼굴(안면)을 인식하여, 서비스를 요청한 사용자를 식별하는 것이 있다. 그러나, 안면 인식을 통한 사용자의 식별은 사용자의 안면 정보가 미리 데이터베이스 등에 구축되어 있는 경우에만 가능하다. 따라서, 이러한 안면 인식을 통한 사용자의 식별은 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서는 적용되기가 어렵다. As a method for the robot to identify the user who requested the service, there is a method of recognizing the user's face (face) to identify the user who requested the service. However, identification of the user through face recognition is possible only when the user's face information is previously built in a database or the like. Therefore, identification of a user through such facial recognition is difficult to apply when providing a service to an unspecified user (not registered in advance) in an open space.

또한, 서비스를 제공 받는 사용자는 로봇에게 자신의 정확한 위치를 전달하기가 어렵다. 5~10m의 오차를 갖는 실내 측위 기술을 이용하는 것으로는 로봇이 사용자의 위치를 정확하게 파악하기가 어렵고, 특히, 공간 내에 사용자의 수가 많은 경우, 로봇에 의한 서비스의 제공은 더 비효율적이게 된다. In addition, it is difficult for a user who is provided with a service to deliver his or her exact location to the robot. By using the indoor positioning technology having an error of 5 to 10 m, it is difficult for the robot to accurately grasp the location of the user. In particular, when the number of users in the space is large, the provision of the service by the robot becomes more inefficient.

따라서, 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서도 서비스를 제공 받는 사용자의 위치를 정확하게 식별할 수 있으며, 로봇에 의한 서비스의 제공을 효율화할 수 있도록 하는 방법 및 장치가 요구된다. Therefore, even when providing a service to an unspecified user (not registered in advance) in an open space, the location of the user receiving the service can be accurately identified, and the method and apparatus for efficiently providing the service by the robot is required

한국공개특허 제10-2005-0024840호는 자율 이동 로봇을 위한 경로 계획 방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동 로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다. Korean Patent Laid-Open Patent No. 10-2005-0024840 is a technology related to a path planning method for an autonomous mobile robot, and it is a technology for a mobile robot that moves autonomously in a home or office to find an optimal path that can move safely and quickly to a target point while avoiding obstacles. How to plan is disclosed.

상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for understanding only, and may include content that does not form a part of the prior art, and may not include what the prior art can present to a person skilled in the art.

공간 내에서 서비스를 제공하는 로봇에게 서비스를 제공 받는 사용자의 사용자 단말로부터 사용자의 위치 정보를 획득하고, 획득된 위치 정보와, 로봇의 센서부로부터의 센싱에 기반하여, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 로봇 제어 방법을 제공할 수 있다.Acquires the location information of the user from the user terminal of the user who is provided with the service from the robot that provides the service in the space, and reduces the distance between the user and the robot based on the obtained location information and sensing from the sensor unit of the robot It is possible to provide a robot control method for controlling the movement of the robot so as to

로봇이 포함하는 카메라에 기반하여 측정된 사용자와 로봇 간의 거리 및 로봇이 포함하는 통신 모듈에 기반하여 측정된 사용자 단말과 로봇 간의 거리를 비교함으로써, 사용자의 위치를 정확하게 측위하여 해당 사용자에게 로봇을 통한 서비스를 제공할 수 있다. By comparing the distance between the user and the robot measured based on the camera included in the robot and the distance between the user terminal and the robot measured based on the communication module included in the robot, the user's location is accurately positioned and the user is sent to the user through the robot. service can be provided.

일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇 또는 상기 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하는 단계 및 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는 단계를 포함하는, 로봇 제어 방법이 제공된다. In one aspect, in a robot control method performed by a robot providing a service in a space or a robot control system for controlling the robot, from a user terminal of a user receiving a service from the robot, in the space Decreasing the distance between the user and the robot based on the sensing of the acquired position information and the sensor unit of the robot for at least one of the user and the user terminal, obtaining the user's location information A robot control method is provided, including the step of controlling the movement of the robot to do so.

상기 센서부는 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈 중 적어도 하나를 포함할 수 있다. The sensor unit recognizes the user, by communicating with a camera and the user terminal used to measure the distance between the user and the robot, at least one of a communication module used to measure the distance between the robot and the user terminal may include.

상기 통신 모듈은 상기 사용자 단말과 통신하기 위한 AP (Access Point) 모듈 또는 블루투스 모듈을 포함하고, 상기 로봇과 상기 사용자 단말 간의 거리는 상기 위한 AP 모듈 또는 블루투스 모듈로부터 상기 사용자 단말에 의해 수집된 신호의 세기 및 상태 정보 중 적어도 하나에 기반하여 계산될 수 있다. The communication module includes an AP (Access Point) module or a Bluetooth module for communicating with the user terminal, and the distance between the robot and the user terminal is the strength of the signal collected by the user terminal from the AP module or the Bluetooth module for the communication module. and state information.

상기 로봇의 이동을 제어하는 단계는, 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 거리를 감소시키도록 상기 로봇의 이동을 제어할 수 있다. The controlling of the movement of the robot may include controlling the movement of the robot to reduce a distance between the robot and the user terminal calculated based on a signal collected by the user terminal from the communication module.

상기 로봇의 이동을 제어하는 단계는, 상기 로봇의 이동에 따른, 상기 로봇의 위치 좌표 및 상기 로봇의 위치 좌표에서의 상기 로봇과 상기 사용자 단말 간의 거리로 구성된 복수의 쌍들을 결정하는 단계 및 상기 결정된 복수의 쌍들에 기반하여 상기 사용자 단말의 위치 좌표를 계산하는 단계를 포함할 수 있다. The step of controlling the movement of the robot, according to the movement of the robot, determining the plurality of pairs consisting of the position coordinates of the robot and the distance between the robot and the user terminal in the position coordinates of the robot and the determined It may include calculating the position coordinates of the user terminal based on the plurality of pairs.

상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우, 상기 로봇의 이동을 제어하는 단계는, 상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하는 단계, 상기 제1 거리와 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하는 단계 및 상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계를 포함할 수 있다. When a plurality of users including the user are recognized by the camera, the step of controlling the movement of the robot may include, based on the recognition by the camera, a first distance between each user of the plurality of users and the robot calculating, comparing the first distance with a second distance between the robot and the user terminal calculated based on a signal collected by the user terminal from the communication module, and among the plurality of users, the and determining that the candidate user associated with the first distance, the difference from the second distance being less than or equal to a predetermined value, is the user provided with the service by the robot.

상기 로봇의 이동을 제어하는 단계는, 상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되, 상기 로봇의 이동에 따라 상기 제2 거리가 증가함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계 및 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계를 포함할 수 있다. In the controlling of the movement of the robot, the movement of the robot is controlled so that the robot moves toward the candidate user, and when it is identified that the second distance increases according to the movement of the robot, another Recognizing a user and determining that the other user is the user provided with a service by the robot, and moving the robot toward the other user so that the second distance is reduced.

상기 로봇의 이동을 제어하는 단계는, 상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되, 상기 로봇의 이동에 따라 상기 제2 거리와 상기 후보 사용자와 연관된 상기 제1 거리 간의 차이가 소정의 값을 초과함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계 및 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계를 포함할 수 있다. The controlling of the movement of the robot includes controlling the movement of the robot to move the robot toward the candidate user, and a difference between the second distance and the first distance associated with the candidate user according to the movement of the robot. if it is identified that ? exceeds a predetermined value, recognizing another user through the camera and determining that the other user is the user provided with the service by the robot, and the other user so that the second distance is reduced It may include moving the robot toward.

상기 로봇의 이동을 제어하는 단계는, 상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 존재하지 않는 경우, 상기 카메라를 통해 다른 사용자를 인식하기 위해 상기 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계 및 상기 제1 방향으로의 상기 로봇의 이동 후, 상기 카메라에 의한 인식에 기반한 상기 다른 사용자와 상기 로봇 간의 제1 거리와 상기 제2 거리를 비교하는 단계를 포함할 수 있다. The step of controlling the movement of the robot may include, among the plurality of users, if there is no candidate user associated with the first distance, the difference from the second distance being less than or equal to a predetermined value, other users through the camera. moving the robot in a first direction independent of a direction in which the plurality of users are located in order to recognize, and after moving the robot in the first direction, the other user and the It may include comparing the first distance between the robots and the second distance.

상기 복수의 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 복수인 경우, 상기 로봇의 이동을 제어하는 단계는, 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계 및 상기 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계를 포함할 수 있다. If there are a plurality of candidate users associated with the first distance whose difference from the second distance is less than or equal to a predetermined value among the plurality of users, the controlling of the movement of the robot may include changing according to the movement of the robot, monitoring the first distance and the second distance, and selecting a candidate user associated with the first distance, the difference from the second distance being less than or equal to a predetermined value, from among a plurality of candidate users It may include determining that it is the user provided with the service by the robot.

상기 모니터링하는 단계는, 상기 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계 및 상기 제1 방향으로의 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계를 포함할 수 있다. The monitoring may include moving the robot in a first direction independent of a direction in which the plurality of candidate users are located and changing according to the movement of the robot in the first direction, the first distance and monitoring the second distance.

상기 로봇의 이동을 제어하는 단계는, 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 거리 및 상기 카메라에 의한 인식에 기반하여 계산된 상기 사용자와 상기 로봇 간의 거리를 함께 감소시키도록 상기 로봇의 이동을 제어할 수 있다. The step of controlling the movement of the robot includes: the distance between the robot and the user terminal calculated based on a signal collected by the user terminal from the communication module, and the user and the calculated based on recognition by the camera It is possible to control the movement of the robot to reduce the distance between the robots together.

상기 로봇의 이동을 제어하는 단계는, 상기 카메라를 사용하여, 상기 사용자를 인식하고, 상기 인식된 사용자와 상기 로봇 간의 거리를 계산하는 단계 및 상기 계산된 거리를 감소시키도록 상기 로봇의 이동을 제어하는 단계를 포함할 수 있다. The step of controlling the movement of the robot may include, using the camera, recognizing the user, calculating a distance between the recognized user and the robot, and controlling the movement of the robot to reduce the calculated distance. may include the step of

상기 로봇 제어 방법은 상기 사용자 단말에 대해, 상기 사용자의 이동을 자제하도록 요청하는 메시지를 송신하는 단계를 더 포함할 수 있다. The method for controlling the robot may further include transmitting a message requesting to refrain from moving the user to the user terminal.

상기 위치 정보는 상기 사용자가 위치하는 상기 공간 내의 층을 나타내는 정보를 포함하고, 상기 로봇은 상기 사용자가 위치하는 상기 공간 내의 층을 이동하도록 제어될 수 있다. The location information may include information indicating a floor in the space where the user is located, and the robot may be controlled to move the floor in the space where the user is located.

상기 위치 정보는 상기 사용자 단말이 위치하는 좌표를 포함하고, 상기 로봇의 이동을 제어하는 단계는, 상기 좌표로의 상기 로봇의 이동을 제어하되, 상기 센서부로부터의 센싱에 따라 결정되는 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어할 수 있다. The location information includes coordinates at which the user terminal is located, and the controlling the movement of the robot includes controlling the movement of the robot to the coordinates, but with the user determined according to sensing from the sensor unit. The movement of the robot may be controlled to reduce the distance between the robots.

다른 일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서 및 센서부를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는 로봇이 제공된다. In another aspect, in a robot providing a service in a space, comprising at least one processor and a sensor unit implemented to execute computer-readable instructions, wherein the at least one processor provides a service from the robot Obtaining the location information of the user in the space from the receiving user's user terminal, and based on the obtained location information and sensing from the sensor unit for at least one of the user and the user terminal, the A robot is provided that controls movement of the robot to reduce a distance between the user and the robot.

상기 센서부는 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈 중 적어도 하나를 포함할 수 있다. The sensor unit recognizes the user, by communicating with a camera and the user terminal used to measure the distance between the user and the robot, at least one of a communication module used to measure the distance between the robot and the user terminal may include.

다른 일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는, 로봇 제어 시스템이 제공된다. In another aspect, in a robot control system for controlling a robot providing a service in a space, comprising at least one processor implemented to execute a computer-readable command, the at least one processor, the robot From the user terminal of the user who receives the service from, the location information of the user in the space is obtained, and the obtained location information and the sensor unit of the robot for at least one of the user and the user terminal A robot control system is provided that controls the movement of the robot to reduce a distance between the user and the robot based on sensing.

로봇의 카메라에 기반하여 측정된 사용자와 로봇 간의 거리 및 로봇의 통신 모듈에 기반하여 측정된 사용자 단말과 로봇 간의 거리를 비교하여, 로봇을 통해 서비스를 제공 받을 사용자 및 해당 사용자의 위치를 결정함으로써 로봇을 통한 서비스 제공의 효율성을 높일 수 있다.By comparing the distance between the user and the robot measured based on the robot's camera and the distance between the user terminal and the robot measured based on the robot's communication module, the user to be provided with the service through the robot and the location of the user are determined. can increase the efficiency of service provision through

안면 인식을 통해 사용자를 식별하는 방법을 사용하는 경우처럼 사용자 정보를 미리 등록할 필요 없이, 개방된 공간에서 불특정의(미등록) 사용자에 대해 로봇을 통한 서비스를 제공할 수 있다.It is possible to provide a service through a robot to an unspecified (unregistered) user in an open space without the need to register user information in advance as in the case of using a method of identifying a user through facial recognition.

서비스를 제공 받는 사용자의 주변에 장애물이 존재하거나, 사용자가 소지하는 사용자 단말의 측위 정확도가 낮은 경우에도, 해당 사용자의 위치를 정확하게 측위하여 로봇을 통한 서비스를 제공할 수 있다.Even when there are obstacles around the user receiving the service or the positioning accuracy of the user terminal carried by the user is low, the user can accurately position the location of the user and provide the service through the robot.

도 1은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타낸다.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.
도 3 및 도 4는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
도 5는 일 실시예에 따른, 사용자의 사용자 단말을 나타내는 블록도이다.
도 6은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 로봇의 이동을 제어함에 있어서, 통신 모듈을 사용하여 사용자 단말의 위치 좌표를 계산하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 9는 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 카메라를 사용하여 계산된 사용자와 로봇 간의 거리에 기반하여 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 10 내지 도 12는 일 예에 따른, 카메라를 사용하여 계산된 로봇과 사용자 간의 거리 및 통신 모듈을 사용하여 계산된 로봇과 사용자 단말(사용자) 간의 거리에 기반하여 로봇에 의해 서비스를 제공 받을 사용자를 결정하는 방법을 나타낸다.
도 13은 일 예에 따른, 통신 모듈을 사용하여 계산된 로봇과 사용자 단말(사용자) 간의 거리 및 로봇의 위치에 기반하여, 서비스를 제공 받는 사용자의 위치를 결정하는 방법을 나타낸다.
도 14a 내지 도 14c는 일 예에 따른, 서비스를 제공 받을 사용자의 전방에 카메라의 시야를 방해하는 장애물이 있는 경우에 있어서, 로봇에 의해 서비스를 제공 받을 사용자를 결정하는 방법을 나타낸다.
1 shows a method of controlling a robot that provides a service to a user in a space, according to an embodiment.
2 is a block diagram illustrating a robot that provides a service in a space, according to an embodiment.
3 and 4 are block diagrams illustrating a robot control system for controlling a robot providing a service in a space, according to an embodiment.
5 is a block diagram illustrating a user terminal of a user, according to an embodiment.
6 is a flowchart illustrating a method of controlling a robot that provides a service to a user in a space, according to an embodiment.
7 is a flowchart illustrating a method of calculating position coordinates of a user terminal using a communication module in controlling movement of a robot, according to an example.
8 is a flowchart illustrating a method of controlling the movement of the robot to reduce the distance between the user and the robot in controlling the movement of the robot to provide a service to the user, according to an example.
9 is a flowchart illustrating a method of controlling movement of a robot based on a distance between a user and a robot calculated using a camera in controlling movement of a robot to provide a service to a user, according to an example.
10 to 12 are users to be provided with services by the robot based on the distance between the robot and the user calculated using the camera and the distance between the robot and the user terminal (user) calculated using the communication module, according to an example; shows how to determine
13 illustrates a method of determining a location of a user receiving a service based on a distance between a robot and a user terminal (user) calculated using a communication module and a location of the robot, according to an example.
14A to 14C are diagrams illustrating a method of determining a user to be provided with a service by a robot when there is an obstacle in front of the user to be provided with a service that obstructs the view of the camera, according to an example.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타낸다.1 shows a method of controlling a robot that provides a service to a user in a space, according to an embodiment.

도 1에서는 로봇 제어 시스템(120)과, 로봇 제어 시스템(120)에 의한 제어를 통해 제어되는 로봇(100)이 도시되었다. 로봇(100)은 예컨대, 건물의 실내 등과 같은 공간 내에서 로봇 제어 시스템(120)에 의한 제어에 따라 서비스를 제공하는 서비스 로봇일 수 있다. 공간은 실내의 공간으로 한정되지 않고 실외의 공간을 나타낼 수도 있다. 말하자면, 공간은 범위가 특정되어 있는 실내 또는 실외의 공간이나 실내 및 실외가 함께 포함된 공간일 수 있다.In FIG. 1 , the robot control system 120 and the robot 100 controlled through the control by the robot control system 120 are illustrated. The robot 100 may be, for example, a service robot that provides a service according to the control by the robot control system 120 in a space such as an interior of a building. The space is not limited to an indoor space and may indicate an outdoor space. In other words, the space may be an indoor or outdoor space in which a range is specified, or a space including both indoor and outdoor spaces.

공간은 예컨대, 로봇(100)을 통해, 물건의 배달이 수행되는 건물(회사 등), 음식물의 배달이 수행되는 카페, (스탠딩) 파티장 등일 수 있다. The space may be, for example, a building (company, etc.) in which delivery of goods is performed, a cafe in which delivery of food is performed, a (standing) party hall, and the like, through the robot 100 .

로봇(100)은 이와 같은 공간을 주행함으로써 공간 내의 사용자 단말(110)의 사용자(130)에게 서비스를 제공할 수 있다. 사용자 단말(110)은 사용자가 소지하는 모바일 단말일 수 있다. 로봇(100)은 사용자(130)와 연관된 사용자 단말(110)의 위치를 파악하거나 사용자들 중 서비스를 제공 받을 사용자(130)를 직접 인식하는 것을 통해 사용자(130)의 위치로 이동하여 사용자(130)에게 서비스를 제공할 수 있다. The robot 100 may provide a service to the user 130 of the user terminal 110 in the space by traveling in such a space. The user terminal 110 may be a mobile terminal carried by the user. The robot 100 moves to the location of the user 130 by recognizing the location of the user terminal 110 associated with the user 130 or directly recognizing the user 130 to be provided with the service among users. ) to provide services.

한편, 로봇(100)은 서비스를 제공함에 있어서 요구되는 구체적인 연산을 수행하지 않고, 이를 수행하기 위한 센싱 데이터를 로봇 제어 시스템(120)으로 제공할 뿐이라는 점에서, 브레인리스 로봇에 해당할 수도 있다. On the other hand, the robot 100 may correspond to a brainless robot in that it does not perform a specific operation required in providing a service, but only provides sensing data for performing this to the robot control system 120 . .

로봇(100)이 제공하는 서비스는 공간 내에서 음료와 같은 음식물이나 공산품과 같은 상품 또는 택배를 배달하는 배달 서비스를 포함할 수 있다. 즉, 로봇(100)은 배달 서비스 로봇 또는 서빙 서비스 로봇일 수 있다. 또한, 로봇(100)이 제공하는 서비스는 사용자(130)를 공간 내의 특정한 위치로 안내하는 길 안내 서비스를 포함할 수 있다. 또한, 로봇(100)이 제공하는 서비스는 경비 서비스, 이벤트/뉴스 등의 정보 제공 서비스, 및 공간 내에 위치된 식물들에 대한 관리 서비스를 포함할 수 있다.The service provided by the robot 100 may include a delivery service for delivering food, such as beverages, or goods, such as industrial products, or courier service in a space. That is, the robot 100 may be a delivery service robot or a serving service robot. In addition, the service provided by the robot 100 may include a route guidance service for guiding the user 130 to a specific location in the space. In addition, the service provided by the robot 100 may include a security service, an information providing service such as event/news, and a management service for plants located in the space.

실시예에 있어서, 로봇(100)은, 기 등록되거나 데이터베이스 내에 구축된, 사용자(130) 및 다른 사용자들(140)을 비롯한 사용자들에 대한 정보(예컨대, 사용자들 각각의 안면 정보)를 사용하지 않고, 서비스를 제공 받을 사용자(130)를 다른 사용자들(140)과 구분하여 식별할 수 있고, 식별된 사용자(130)에게 서비스를 제공할 수 있다. In an embodiment, the robot 100 does not use information about users (eg, facial information of each of the users), including the user 130 and other users 140 , previously registered or built in a database. Instead, the user 130 to be provided with the service may be distinguished from other users 140 and identified, and the service may be provided to the identified user 130 .

사용자(130)는 사용자 단말(110)을 소지한 사람으로, 공간 내에서 로봇(100)으로부터 서비스를 제공 받는 대상일 수 있다. 예컨대, 사용자(130)는 도시된 것처럼, 로봇(100)으로부터 로봇(100)에 탑재된 음료 또는 택배물과 같은 물건을 배달 받는 사용자일 수 있다. The user 130 is a person who possesses the user terminal 110 and may be a target receiving a service from the robot 100 in a space. For example, as shown, the user 130 may be a user receiving goods such as beverages or parcels mounted on the robot 100 from the robot 100 .

아래에서, 도 1을 참조하여, 공간 내에서 로봇(100)의 이동을 제어하여 서비스를 요청한 사용자(130)에게 서비스를 제공하는 방법에 대해 더 자세하게 설명한다. Hereinafter, with reference to FIG. 1 , a method of providing a service to the user 130 who has requested the service by controlling the movement of the robot 100 in a space will be described in more detail.

도시된 실시예에서처럼, 로봇(100)은 탑재된 음료 또는 택배물과 같은 물건을 사용자(130)에게 배달하는 서비스를 제공할 수 있다. 사용자(130)는 사용자 단말(110)을 조작함으로써 로봇(100)에 의한 서비스의 제공을 요청할 수 있다. 예컨대, 사용자(130)는 사용자 단말(110)에 설치된 어플리케이션을 통해 로봇(100)에 의한 서비스의 제공을 요청할 수 있다.As in the illustrated embodiment, the robot 100 may provide a service for delivering a product such as a mounted beverage or delivery to the user 130 . The user 130 may request the provision of a service by the robot 100 by manipulating the user terminal 110 . For example, the user 130 may request the provision of a service by the robot 100 through an application installed in the user terminal 110 .

사용자(130)에 의해 로봇(100)에 의한 서비스의 제공이 요청되면, 해당 서비스의 요청 및 사용자 단말(110)의 위치 정보(즉, 사용자의 위치 정보)는 로봇 제어 시스템(120)(또는, 실시예에 따라서는 로봇(100))으로 전달될 수 있다. When provision of a service by the robot 100 is requested by the user 130, the request for the service and location information of the user terminal 110 (ie, location information of the user) are transmitted to the robot control system 120 (or, Depending on the embodiment, it may be transmitted to the robot 100).

로봇(100)은 로봇 제어 시스템(120)에 의한 제어에 따라, 수신된 사용자 단말(110)의 위치 정보에 따른 공간 내의 위치로 이동할 수 있다. 이 때, 로봇(100)은 로봇(100)에 포함된 센서부를 통해 사용자(130)와 로봇(100) 간의 거리를 식별할 수 있고, 사용자(130)와 로봇(100) 간의 거리가 감소되도록 이동이 제어될 수 있다. 예컨대, 로봇(100)은 사용자 단말(110)로부터 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부로부터의 센싱에 기반하여, 사용자(130)와 로봇(100) 간의 거리를 감소시키도록 이동이 제어될 수 있다. The robot 100 may move to a location in space according to the received location information of the user terminal 110 under control by the robot control system 120 . At this time, the robot 100 may identify the distance between the user 130 and the robot 100 through the sensor unit included in the robot 100 , and move so that the distance between the user 130 and the robot 100 is reduced. This can be controlled. For example, the robot 100 includes the user 130 and the robot ( 100) movement can be controlled to reduce the distance between them.

즉, 로봇(100)은 사용자 단말(110)로부터 획득된 위치 정보에 기반하여 해당 위치 정보가 나타내는 위치로 이동할 수 있고, 센서부에 의한 센싱에 기반하여 사용자(130) 및 다른 사용자들(140)을 비롯한 사용자들 중에서 서비스를 제공 받는 사용자(130)를 결정할 수 있으며, 해당 사용자(130)에게 서비스를 제공할 수 있다. That is, the robot 100 may move to a position indicated by the corresponding position information based on the position information obtained from the user terminal 110, and the user 130 and other users 140 based on the sensing by the sensor unit. It is possible to determine the user 130 to be provided with the service from among users including, and to provide the service to the user 130 .

사용자 단말(110)로부터 획득되는 위치 정보는 공간 내에서의 사용자 단말(110)의 위치를 대략적으로 나타내는 것일 수 있다. 예컨대, 상기 위치 정보는 GPS를 통해 획득되는 공간 내에서의 사용자 단말(110)의 위치를 나타낼 수 있다. 또는/추가적으로, 상기 위치 정보는 실내 측위 기술에 기반하여 획득된 공간 내에서의 사용자 단말(110)의 위치를 나타낼 수 있다. 이러한 위치 정보는 사용자 단말(110)이 공간 내의 블루투스 모듈 및/또는 AP (Access Point)와 통신함으로써 결정된 위치이거나, 사용자 단말(110)이 사용하는 셀룰러 네트워크에 관한 정보(예컨대, LTE 네트워크 정보 또는 5G 네트워크 정보)에 기반하여 결정된 위치를 나타낼 수 있다. 위치 정보는 위치 좌표를 포함할 수 있다.The location information obtained from the user terminal 110 may roughly indicate the location of the user terminal 110 in space. For example, the location information may indicate the location of the user terminal 110 in a space obtained through GPS. Or/additionally, the location information may indicate the location of the user terminal 110 in a space obtained based on indoor positioning technology. Such location information is a location determined by the user terminal 110 communicating with a Bluetooth module and/or an access point (AP) in space, or information about a cellular network used by the user terminal 110 (eg, LTE network information or 5G). network information) may indicate a determined location. The location information may include location coordinates.

이와 같은 사용자 단말(110)로부터 획득되는 위치 정보는 상대적으로 정확도가 낮을 수 있다. 예컨대, 위치 정보는 5m 내지 10m 내외의 오차를 가지는 것으로서, 공간 내에서의 사용자(130) 또는 사용자 단말(110)의 정확한 측위에는 적합하지 않을 수 있다. The location information obtained from the user terminal 110 may have relatively low accuracy. For example, the location information has an error of about 5m to 10m, and may not be suitable for accurate positioning of the user 130 or the user terminal 110 in the space.

실시예에서, 로봇(100)은 사용자 단말(110)로부터 획득되는 이러한 위치 정보에 기반하여 사용자(130)를 향해 이동하되, 센서부에 의한 사용자(130) 및/또는 사용자 단말(110)에 대한 센싱에 기반하여 서비스를 제공 받는 사용자(130)를 다른 사용자들(140)과는 구분하여 특정할 수 있고, 특정된 사용자(130)에게 서비스를 제공할 수 있다. In an embodiment, the robot 100 moves toward the user 130 based on such location information obtained from the user terminal 110, but the user 130 and/or the user terminal 110 by the sensor unit. Based on the sensing, the user 130 receiving the service may be distinguished from other users 140 and specified, and a service may be provided to the specified user 130 .

따라서, 실시예를 통해서는, 로봇(100)이 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서도, 서비스를 제공 받는 사용자(130)를 정확하게 특정하여 특정된 사용자(130)에게 서비스를 제공할 수 있다. Therefore, through the embodiment, even when the robot 100 provides a service to an unspecified user (not registered in advance) in an open space, the user 130 who receives the service is precisely specified and specified. ) to provide services.

로봇(100)의 센서부에 의한 센싱에 따라, 사용자(130)(또는 사용자 단말(110))과 로봇(100) 간의 거리가 계산되는 방법 및 사용자들 중 서비스를 제공 받는 사용자(130)가 결정되는 방법과, 이에 따라 로봇(100)이 제어되는 구체적인 방법에 대해서는 후술될 도 2 내지 도 14를 참조하여 더 자세하게 설명된다. According to the sensing by the sensor unit of the robot 100, a method for calculating the distance between the user 130 (or the user terminal 110) and the robot 100 and the user 130 receiving the service among the users is determined A specific method for controlling the method and thus controlling the robot 100 will be described in more detail with reference to FIGS. 2 to 14, which will be described later.

도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.2 is a block diagram illustrating a robot that provides a service in a space, according to an embodiment.

전술한 것처럼, 로봇(100)은 공간 내에서 사용자(130)에게 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다.As described above, the robot 100 may be a service robot used to provide a service to the user 130 in a space.

로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 제어부(104), 구동부(108), 센서부(106) 및 통신부(102)를 포함할 수 있다. 또한, 로봇(100)은 도 1을 참조하여 전술한 것처럼 물건을 탑재하기 위한 탑재부를 포함할 수 있다.The robot 100 may be a physical device, and as shown, may include a control unit 104 , a driving unit 108 , a sensor unit 106 , and a communication unit 102 . In addition, the robot 100 may include a mounting unit for mounting an object as described above with reference to FIG. 1 .

제어부(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 driving control module 213 , a localization processing module 214 , It may include a data processing module 215 and a service processing module 216 . At this time, even when the path planning processing module 211 , the mapping processing module 212 , and the localization processing module 214 do not communicate with the robot control system 120 , autonomous driving of the robot 100 is performed. In order to be able to do so, it may be selectively included in the control unit 104 depending on the embodiment.

통신부(102)는 로봇(100)이 다른 장치(다른 로봇, 사용자 단말(110), 서버(115) 또는 로봇 제어 시스템(120) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(102)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다. The communication unit 102 may be configured for the robot 100 to communicate with other devices (such as another robot, user terminal 110, server 115, or robot control system 120). In other words, the communication unit 102 is a hardware module or network device, such as an antenna of the robot 100 , a data bus, a network interface card, a network interface chip and a networking interface port, etc., that transmits/receives data and/or information to/from other devices. It may be a software module such as a driver or a networking program.

구동부(108)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비를 포함할 수 있다. 예컨대, 구동부(108)는 바퀴를 포함할 수 있다. The driving unit 108 controls the movement of the robot 100 and is a configuration that enables movement, and may include equipment for performing this. For example, the drive 108 may include wheels.

센서부(106)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성일 수 있다. 센서부(106)는 고가의 센싱 장비(스캔 장비)를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. 센서부(106)는 주행 방향에 위치하는 장애물/사람을 식별하기 위한 센서를 포함할 수 있다. The sensor unit 106 may be configured to collect data required for autonomous driving and service provision of the robot 100 . The sensor unit 106 may not include expensive sensing equipment (scan equipment), but may include only a sensor such as a low-cost ultrasonic sensor and/or a low-cost camera. The sensor unit 106 may include a sensor for identifying an obstacle/person located in the driving direction.

또한, 센서부(106)는 카메라(230)를 포함할 수 있다. 카메라는 로봇(100)의 주위에 위치하는 사용자(130)를 인식할 수 있도록 배치될 수 있다. 카메라는 RGB 카메라 또는 단안 카메라일 수 있다. 또는, 카메라(230)는 깊이(depth) 카메라를 포함할 수 있다. 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(130)에 의해 인식된 사용자(130)와 로봇(100) 간의 위치 관계를 결정할 수 있다. 카메라(230)는 사용자를 인식함으로써 사용자와 로봇(100) 간의 거리를 측정하기 위해 사용될 수 있다. Also, the sensor unit 106 may include a camera 230 . The camera may be arranged to recognize the user 130 positioned around the robot 100 . The camera may be an RGB camera or a monocular camera. Alternatively, the camera 230 may include a depth camera. The robot 100 (or the robot control system 120 ) may determine a positional relationship between the user 130 and the robot 100 recognized by the camera 130 . The camera 230 may be used to measure the distance between the user and the robot 100 by recognizing the user.

예컨대, 로봇(100)(또는, 로봇 제어 시스템(120))은 사용자(130)의 영상으로부터 로봇(100)과 사용자(130) 간의 거리 및 로봇(100)에 대한 사용자(130)의 방향을 결정할 수 있다. 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(130)에 의해 촬영된 사용자(130)의 영상에 기반하여 사용자(130)를 인식하고, 사용자(130)를 추적할 수 있다. 카메라(130)는 복수 개일 수 있고, 예컨대, 로봇(100)의 전방 및 후방에 각각 설치될 수도 있다. 카메라(230)에 의해 다른 사용자들(140)이 인식되는 경우에도 다른 사용자들(140)의 각각에 대해 유사한 설명이 적용될 수 있다. 말하자면, 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(230)의 화각 범위에 존재하는 사용자들의 각각과 로봇(100) 간의 위치 관계를 결정할 수 있다. For example, the robot 100 (or the robot control system 120 ) determines the distance between the robot 100 and the user 130 and the direction of the user 130 with respect to the robot 100 from the image of the user 130 . can The robot 100 (or the robot control system 120 ) may recognize the user 130 based on the image of the user 130 captured by the camera 130 and track the user 130 . There may be a plurality of cameras 130 , and for example, they may be installed in front and rear of the robot 100 , respectively. A similar description may be applied to each of the other users 140 even when the other users 140 are recognized by the camera 230 . That is, the robot 100 (or the robot control system 120 ) may determine the positional relationship between the robot 100 and each of the users existing in the range of the angle of view of the camera 230 .

또한, 센서부(106)는 통신 모듈(240)을 포함할 수 있다. 통신 모듈(240)은 사용자 단말(110)과 통신함으로써, 로봇(100)과 사용자 단말(110) 간의 거리를 측정하기 위해 사용될 수 있다. 통신 모듈(240)은 사용자 단말(110)과 통신하기 위한 AP 모듈 또는 블루투스 모듈을 포함할 수 있다. 사용자 단말(110)은 통신 모듈(240)이 브로드캐스트하는 신호를 수신하여, 사용자 단말(110)과 로봇(100) 간의 거리를 계산할 수 있다. 예컨대, 로봇(100)과 사용자 단말(110) 간의 거리는 통신 모듈(240)의 AP 모듈 또는 블루투스 모듈로부터 사용자 단말(110)에 의해 수집된 신호의 세기에 기반하여 계산될 수 있다. 사용자 단말(110)은 수집된 신호의 세기를 거리로 변환함으로써 로봇(100)과 사용자 단말(110) 간의 거리를 계산할 수 있다. 또는, 이러한 로봇(100)과 사용자 단말(110) 간의 거리의 계산은 로봇(100)이나 로봇 제어 시스템(120)에서 수행될 수도 있다. Also, the sensor unit 106 may include a communication module 240 . The communication module 240 may be used to measure a distance between the robot 100 and the user terminal 110 by communicating with the user terminal 110 . The communication module 240 may include an AP module or a Bluetooth module for communicating with the user terminal 110 . The user terminal 110 may receive a signal broadcast by the communication module 240 to calculate a distance between the user terminal 110 and the robot 100 . For example, the distance between the robot 100 and the user terminal 110 may be calculated based on the strength of a signal collected by the user terminal 110 from the AP module or the Bluetooth module of the communication module 240 . The user terminal 110 may calculate the distance between the robot 100 and the user terminal 110 by converting the intensity of the collected signal into a distance. Alternatively, the calculation of the distance between the robot 100 and the user terminal 110 may be performed by the robot 100 or the robot control system 120 .

통신 모듈(240)은 사용자 단말(110)과 일대일로 통신함으로써, 로봇(100)과 사용자 단말(110) 간의 거리를 지속적으로 수집할 수 있다. The communication module 240 may continuously collect the distance between the robot 100 and the user terminal 110 by communicating one-to-one with the user terminal 110 .

실시예에 따라, 통신 모듈(240)은 NFC 모듈 또는 비콘과 같은 사용자 단말(110)과의 근거리 무선 통신을 위한 장치를 포함할 수도 있다. According to an embodiment, the communication module 240 may include a device for short-range wireless communication with the user terminal 110 such as an NFC module or a beacon.

한편, 도시된 것과는 달리 통신 모듈(240)은 전술된 통신부(102)에 포함될 수도 있다. On the other hand, unlike shown in the figure, the communication module 240 may be included in the above-described communication unit 102 .

제어부(104)의 처리 예시로서, 제어부(104)의 데이터 처리 모듈(215)은 센서부(106)로부터의 센싱 값(예컨대, 센서들로부터의 출력 값)을 포함하는 센싱 데이터를 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송할 수 있다. 로봇 제어 시스템(120)은 공간 내의 (실내) 지도를 사용하여 생성된 경로 데이터를 로봇(100)으로 전송할 수 있다. 상기 경로 데이터는 로봇(100)이 서비스를 제공하기 위한 경로를 나타내는 데이터일 수 있다. 경로 데이터는 통신부(102)를 통해 데이터 처리 모듈(215)로 전달될 수 있다. 데이터 처리 모듈(215)은 경로 데이터를 바로 구동 제어 모듈(213)로 전달할 수 있고, 구동 제어 모듈(213)은 경로 데이터에 따라 구동부(108)를 제어하여 로봇(100)의 자율 주행을 제어할 수 있다.As an example of the processing of the control unit 104 , the data processing module 215 of the control unit 104 transmits the sensed data including the sensing value (eg, output value from the sensors) from the sensor unit 106 to the communication unit 102 . can be transmitted to the robot control system 120 through The robot control system 120 may transmit path data generated using the (indoor) map in the space to the robot 100 . The path data may be data indicating a path for the robot 100 to provide a service. The path data may be transmitted to the data processing module 215 through the communication unit 102 . The data processing module 215 may directly transmit the route data to the drive control module 213 , and the drive control module 213 controls the drive unit 108 according to the route data to control autonomous driving of the robot 100 . can

로봇(100)과 로봇 제어 시스템(120)이 통신할 수 없는 경우, 데이터 처리 모듈(215)은 센싱 데이터를 로컬리제이션 처리 모듈(214)로 전송하고, 경로 계획 처리 모듈(211)와 맵핑 처리 모듈(212)을 통해 경로 데이터를 생성하여 로봇(100)의 자율 주행을 직접 처리할 수도 있다. 예컨대, 제어부(104)는 경로 계획 처리 모듈(211)과 맵핑 처리 모듈(212)을 사용하여 지도로부터 서비스를 제공할 위치를 식별할 수 있고, 식별된 위치에서 서비스를 제공하기 위한 경로를 나타내는 데이터로서의 경로 데이터를 생성할 수 있고, 이러한 경로 데이터에 따른 경로를 주행하도록 로봇(100)의 자율 주행을 제어할 수 있다.When the robot 100 and the robot control system 120 cannot communicate, the data processing module 215 transmits the sensed data to the localization processing module 214, and the path planning processing module 211 and the mapping processing The autonomous driving of the robot 100 may be directly processed by generating path data through the module 212 . For example, the controller 104 may identify a location to provide a service from the map using the route planning processing module 211 and the mapping processing module 212 , and data representing a route for providing a service at the identified location It is possible to generate path data as a , and control autonomous driving of the robot 100 to travel a path according to the path data.

로봇(100)은 클라우드 상에 저장된 지도를 사용하여 서비스를 제공하기 위한 위치로 자율 주행을 통해 이동할 수 있고, 주행 시 장애물 회피, 문턱 넘기, 엘레베이터 승하차, 비상 정지 등을 수행하도록 제어될 수 있다. The robot 100 may move through autonomous driving to a location for providing a service using a map stored in the cloud, and may be controlled to avoid obstacles, cross a threshold, get on and off the elevator, emergency stop, etc. when driving.

로봇(100)은 공간 내의 지도를 생성하기 위해 사용되는 맵핑 로봇과는 구별되는 것일 수 있다. 이 때, 로봇(100)은 고가의 센싱 장비(스캔 장비)를 포함하지 않기 때문에 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서의 출력값을 이용하여 자율 주행을 처리할 수 있다. 한편, 로봇(100)이 기존에 로봇 제어 시스템(120)과의 통신을 통해 자율 주행을 처리한 적이 있다면, 로봇 제어 시스템(120)으로부터 기존에 수신한 경로 데이터가 포함하는 맵핑 데이터 등을 더 활용함으로써 저가의 센서들을 이용하면서도 보다 정확한 자율 주행이 가능하게 될 수 있다. The robot 100 may be distinguished from a mapping robot used to generate a map in space. In this case, since the robot 100 does not include expensive sensing equipment (scan equipment), autonomous driving may be processed using output values of sensors such as a low-cost ultrasonic sensor and/or a low-cost camera. On the other hand, if the robot 100 has previously processed autonomous driving through communication with the robot control system 120 , the mapping data included in the path data previously received from the robot control system 120 is further utilized. This will enable more accurate autonomous driving while using low-cost sensors.

다만, 실시예에 따라 로봇(100)은 상기 맵핑 로봇을 겸할 수도 있다.However, according to an embodiment, the robot 100 may also serve as the mapping robot.

서비스 처리 모듈(216)은 로봇 제어 시스템(120)을 통해 수신되는 명령을 통신부(102)를 통해 또는 통신부(102)와 데이터 처리 모듈(215)을 통해 전달받을 수 있다. 제어부(104)는 전달된 명령에 기반하여 사용자(130)에게 서비스를 제공할 수 있다. The service processing module 216 may receive a command received through the robot control system 120 through the communication unit 102 or through the communication unit 102 and the data processing module 215 . The control unit 104 may provide a service to the user 130 based on the transmitted command.

또는, 로봇(100)은 서비스 처리 모듈(216) 및 데이터 처리 모듈(215)에 의해 사용자(130)에게 서비스를 제공할 수 있다. 말하자면, 제어부(104)는 전술한 것처럼, 사용자(130)에게 서비스를 제공하기 위한 연산을 직접 처리할 수도 있다. Alternatively, the robot 100 may provide a service to the user 130 by the service processing module 216 and the data processing module 215 . That is, as described above, the controller 104 may directly process an operation for providing a service to the user 130 .

구동부(108)는 로봇(100)의 이동을 위한 장비뿐만 아니라, 로봇(100)이 제공하는 서비스와 관련된 장비를 더 포함할 수 있다. 예컨대, 구동부(108)는 전술된 탑재부와, 서비스와 관련된 물건을 파지하거나 이동시키기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다. The driving unit 108 may further include equipment related to a service provided by the robot 100 as well as equipment for moving the robot 100 . For example, the driving unit 108 may include the above-described mounting unit and a component (eg, a robot arm) for gripping or moving an object related to a service.

또한, 로봇(100)은 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이, 또는 LED 등을 더 포함할 수도 있다. 서비스 처리 모듈(216)은 제공해야 할 서비스를 위한 구동 명령을 구동 제어 모듈(213)로 전달할 수 있고, 구동 제어 모듈(213)은 구동 명령에 따라 로봇(100)이나 구동부(108)가 포함하는 구성을 제어하여 서비스가 제공될 수 있도록 할 수 있다.In addition, the robot 100 may further include a speaker and/or a display, or an LED, for providing information/content. The service processing module 216 may transmit a driving command for a service to be provided to the driving control module 213, and the driving control module 213 may include the robot 100 or the driving unit 108 according to the driving command. You can control the configuration so that services can be provided.

아래에서, 로봇(100)에 의한 사용자(130)에의 서비스 제공 방법의 예시를 설명한다.Hereinafter, an example of a service provision method to the user 130 by the robot 100 will be described.

로봇(100)에 대해 서비스의 제공을 요청하는 사용자(130)는 자신의 사용자 단말(110)에서 생성된 대략적인 위치 정보를 로봇(100)(또는 로봇 제어 시스템(120))으로 전달할 수 있다. 로봇(100)은 사용자 단말(110)로부터의 위치 정보를 획득할 수 있고, 획득된 위치 정보가 나타내는 좌표(초기 좌표)로 이동하도록 제어될 수 있다. 로봇(100)의 이동에 따라, 로봇(100)이 사용자에게 접근되면, 로봇(100)의 통신 모듈(240)과 사용자 단말(110)이 서로 통신할 수 있다. 예컨대, 통신 모듈(240)의 인식 범위에 사용자(130)가 들어오게 되면 사용자 단말(110)은 이러한 통신 모듈(240)(예컨대, 로봇(100)에 대응하는 AP, 블루투스 모듈 등)을 감지할 수 있고, 통신 모듈(240)에 접속할 수 있다. 일례로, 사용자(130)가 사용자 단말(110)을 통해 승인하는 경우에만 사용자 단말(110)이 통신 모듈(240)과 통신할 수 있다. 사용자 단말(110)은 통신 모듈(240)로부터 수신되는 신호에 기반하여 로봇(100)과 사용자 단말(110) 간의 거리를 계산할 수 있고, 계산된 거리를 로봇(100)(또는 로봇 제어 시스템(120))으로 지속적으로 전송할 수 있다. 통신 모듈(240)의 인식 범위는 예컨대, 약 40m일 수 있다. The user 130 requesting the provision of a service for the robot 100 may transmit the approximate location information generated by the user terminal 110 to the robot 100 (or the robot control system 120 ). The robot 100 may obtain location information from the user terminal 110 and may be controlled to move to coordinates (initial coordinates) indicated by the obtained location information. As the robot 100 moves, when the robot 100 approaches the user, the communication module 240 of the robot 100 and the user terminal 110 may communicate with each other. For example, when the user 130 enters the recognition range of the communication module 240, the user terminal 110 detects the communication module 240 (eg, AP corresponding to the robot 100, a Bluetooth module, etc.) and may be connected to the communication module 240 . For example, the user terminal 110 may communicate with the communication module 240 only when the user 130 approves through the user terminal 110 . The user terminal 110 may calculate the distance between the robot 100 and the user terminal 110 based on the signal received from the communication module 240 , and use the calculated distance to the robot 100 (or the robot control system 120 ). )) can be continuously transmitted. The recognition range of the communication module 240 may be, for example, about 40 m.

로봇(100)은 지속적으로 획득되는 로봇(100)과 사용자 단말(110) 간의 거리에 기반하여 능동적으로 이동함으로써, 해당 거리를 감소시키도록 제어될 수 있다. 따라서, 로봇(100)은 사용자(130)에게 점점 접근할 수 있다. The robot 100 may be controlled to decrease the distance by actively moving based on the continuously acquired distance between the robot 100 and the user terminal 110 . Accordingly, the robot 100 may gradually approach the user 130 .

또한, 로봇(100)은 카메라(230)를 통해 사용자(130)를 포함하는 사용자들을 인식할 수 있고, 카메라(230)를 사용하여 사용자들 각각과 로봇(100) 간의 거리를 계산할 수 있다. 로봇(100)은 카메라(230)에 기반하여 계산된 사용자와의 거리와 통신 모듈(240)에 기반하여 계산된 사용자 단말(110)과의 거리를 비교함으로써, 카메라(230)에 의해 인식된 사용자들 중 서비스를 요청한 사용자(130)를 결정할 수 있다. 로봇(100)은 결정된 사용자(130)에게 서비스를 제공하도록 제어될 수 있다. In addition, the robot 100 may recognize users including the user 130 through the camera 230 , and may calculate a distance between each of the users and the robot 100 using the camera 230 . The robot 100 compares the distance to the user calculated based on the camera 230 with the distance to the user terminal 110 calculated based on the communication module 240 , and the user recognized by the camera 230 . Among them, the user 130 who requested the service may be determined. The robot 100 may be controlled to provide a service to the determined user 130 .

이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIG. 1 may be applied to FIG. 2 as it is, and thus a redundant description will be omitted.

도 3 및 도 4는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.3 and 4 are block diagrams illustrating a robot control system for controlling a robot providing a service in a space, according to an embodiment.

로봇 제어 시스템(120)은 전술된 로봇(100)의 공간 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 사용자(130)에 대한 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 로봇(100)이 복수인 경우 복수의 로봇들 각각의 이동 및 로봇들 각각의 서비스의 제공을 제어할 수 있다. 로봇 제어 시스템(120)은 로봇(100)과의 통신을 통해, 로봇(100)이 사용자(130)에 대한 서비스를 제공하기 위한 경로를 설정할 수 있고, 이러한 경로에 관한 정보를 로봇(100)에게 전달할 수 있다. 로봇(100)은 수신된 경로에 관한 정보에 따라 주행할 수 있고, 사용자(130)에 대한 서비스를 제공할 수 있다. 로봇 제어 시스템(120)은 상기 설정된 경로에 따라 로봇이 이동(주행)하도록 로봇(100)의 이동을 제어할 수 있다.The robot control system 120 may be a device for controlling the movement (ie, driving) in the space of the robot 100 and the provision of services to the user 130 by the robot 100 . When there are a plurality of robots 100 , the robot control system 120 may control movement of each of the plurality of robots and provision of services of each of the robots. The robot control system 120 may set a path for the robot 100 to provide a service to the user 130 through communication with the robot 100 , and provide information about the path to the robot 100 . can transmit The robot 100 may drive according to the received route information, and may provide a service to the user 130 . The robot control system 120 may control the movement of the robot 100 so that the robot moves (travels) according to the set path.

로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 건물 내 또는 건물 외부에 위치하는 서버로 구현될 수 있다. The robot control system 120 may include at least one computing device, and may be implemented as a server located inside or outside the building.

로봇 제어 시스템(120)은 도시된 것처럼, 메모리(330), 프로세서(320), 통신부(310) 및 입출력 인터페이스(340)를 포함할 수 있다.As shown, the robot control system 120 may include a memory 330 , a processor 320 , a communication unit 310 , and an input/output interface 340 .

메모리(330)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(330)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(330)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(330)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(310)를 통해 메모리(330)에 로딩될 수도 있다. The memory 330 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, the ROM and the non-volatile mass storage device may be separated from the memory 330 and included as separate permanent storage devices. Also, an operating system and at least one program code may be stored in the memory 330 . These software components may be loaded from a computer-readable recording medium separate from the memory 330 . The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, the software components may be loaded into the memory 330 through the communication unit 310 rather than a computer-readable recording medium.

프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(330) 또는 통신부(310)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 이러한 프로세서(320)는 도 4에서 도시된 것과 같은 구성들(410 내지 440)을 포함할 수 있다. The processor 320 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The command may be provided to the processor 320 by the memory 330 or the communication unit 310 . For example, the processor 320 may be configured to execute a received instruction according to a program code loaded into the memory 330 . Such a processor 320 may include components 410 to 440 as shown in FIG. 4 .

프로세서(320)의 구성들(410 내지 440) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 440)에 대해서는 도 4를 참조하여 후술한다.Each of the components 410 to 440 of the processor 320 may be a software and/or hardware module as a part of the processor 320 , and may represent a function (functional block) implemented by the processor. Configurations 410 to 440 of the processor 320 will be described later with reference to FIG. 4 .

통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.The communication unit 310 may be configured for the robot control system 120 to communicate with other devices (such as the robot 100 ). In other words, the communication unit 310 transmits/receives data and/or information to/from other devices, such as an antenna of the robot control system 120, a data bus, a network interface card, a network interface chip and a hardware module such as a networking interface port, or It may be a software module such as a network device driver or a networking program.

입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.The input/output interface 340 may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.

실시예들에 따라 로봇 제어 시스템(120)은 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.According to embodiments, the robot control system 120 may include more components than the illustrated components.

로봇 제어 시스템(120)은, 로봇(100)이 서비스를 제공함에 있어서 요구되는 연산을 (즉, 이러한 연산을 로봇(100)이 수행하지 않는 경우, 예컨대, 로봇(100)이 브레인리스 로봇인 경우) 수행할 수 있다.The robot control system 120 performs an operation required for the robot 100 to provide a service (ie, when the robot 100 does not perform such an operation, for example, when the robot 100 is a brainless robot). ) can be done.

도 4를 참조하여 프로세서(320)의 구성들(410 내지 440)에 대해 더 자세하게 설명한다. 프로세서(320)는 도시된 것처럼, 맵 생성 모듈(410), 로컬리제이션 처리 모듈(420), 경로 계획 처리 모듈(430) 및 서비스 운영 모듈(440)을 포함할 수 있다. 이러한 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)이 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다. The configurations 410 to 440 of the processor 320 will be described in more detail with reference to FIG. 4 . The processor 320 may include a map generation module 410 , a localization processing module 420 , a route planning processing module 430 , and a service operation module 440 as illustrated. Components included in the processor 320 may perform different functions performed by at least one processor included in the processor 320 according to a control instruction according to a code of an operating system or a code of at least one computer program. (different functions).

맵 생성 모듈(410)은 건물 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 건물의 내부)에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 지도를 생성하기 위한 구성요소일 수 있다.The map generation module 410 is a component for generating an indoor map of a target facility using sensing data generated by a mapping robot (not shown) autonomously driving inside a building for a target facility (eg, inside a building). can be

이 때, 로컬리제이션 처리 모듈(420)은 로봇(100)으로부터 네트워크를 통해 수신되는 센싱 데이터와 맵 생성 모듈(410)을 통해 생성된 목표 시설물의 실내 지도를 이용하여 목표 시설물(건물 또는 건물의 층) 내부에서의 로봇(100)의 위치를 결정할 수 있다.At this time, the localization processing module 420 uses the sensing data received from the robot 100 through the network and the indoor map of the target facility generated through the map generation module 410 to the target facility (building or building of the building). The position of the robot 100 in the floor) can be determined.

경로 계획 처리 모듈(430)은 상술한 로봇(100)으로부터 수신된 센싱 데이터와 생성된 실내 지도를 이용하여 로봇(100)의 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 예컨대, 경로 계획 처리 모듈(430)은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇 제어 시스템(120)은 생성된 경로에 관한 정보를 네트워크를 통해 로봇(100)으로 전송할 수 있다. 일례로, 경로에 관한 정보는 로봇(100)의 현재 위치를 나타내는 정보, 현재 위치와 실내 지도를 맵핑하기 위한 정보, 그리고 경로 계획 정보를 포함할 수 있다. 경로 계획 처리 모듈(430)은 로봇(100)을 위한 경로를 생성하여 로봇(100)에 대해 설정할 수 있다. 로봇 제어 시스템(120)은 이러한 설정된 경로에 따라(즉, 설정된 경로를 따라) 로봇(100)이 이동하도록 로봇(100)의 이동을 제어할 수 있다. The path planning processing module 430 may generate a control signal for controlling autonomous driving of the robot 100 using the sensing data received from the robot 100 and the generated indoor map. For example, the path planning processing module 430 may generate a path (ie, path data) of the robot 100 . The generated path (path data) may be set for the robot 100 for the robot 100 to travel along the path. The robot control system 120 may transmit information about the generated path to the robot 100 through a network. For example, the information on the path may include information indicating the current position of the robot 100 , information for mapping the current position and an indoor map, and path planning information. The path planning processing module 430 may create a path for the robot 100 and set the path for the robot 100 . The robot control system 120 may control the movement of the robot 100 so that the robot 100 moves according to the set path (ie, along the set path).

생성된 경로는 공간 내에서 로봇(100)이 서비스를 제공하기 위해 주행하는 경로일 수 있다. 경로 계획 처리 모듈(430)은 지도로부터 공간 내에서 서비스를 제공할 위치를 식별할 수 있고, 해당 위치에서 서비스를 제공할 수 있도록 하는 경로를 생성할 수 있다. The generated path may be a path along which the robot 100 travels to provide a service in space. The route planning processing module 430 may identify a location to provide a service in space from the map, and may generate a route for providing a service at the location.

서비스 운영 모듈(440)은 로봇(100)이 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 건물을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 건물 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈(440)은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다. The service operation module 440 may include a function for controlling a service provided by the robot 100 . For example, a service provider operating the robot control system 120 or a building provides an IDE (Integrated Development Environment) for a service (eg, cloud service) provided by the robot control system 120 to a user or a manufacturer of the robot 100 . ) can be provided. In this case, the user or the manufacturer of the robot 100 may create software for controlling the service provided by the robot 100 in the building through the IDE and register it in the robot control system 120 . In this case, the service operation module 440 may control the service provided by the robot 100 using software registered in association with the robot 100 .

전술된 로봇(100)의 서비스를 제공하기 위한 자율 주행에 있어서 사용되는 공간의 (실내) 지도의 생성과, 이러한 지도에서의 로봇(100)에 대한 측위는 로봇 제어 시스템(120) 또는 별개의 서버가 저장 및 관리하는 측위 데이터에 기반하여 이루어질 수 있다. Generation of an (indoor) map of a space used in autonomous driving for providing the above-described service of the robot 100 and positioning of the robot 100 on the map is performed by the robot control system 120 or a separate server It can be made based on the positioning data stored and managed by the

실시예에서 로봇(100)에 대한 공간 내에서의 측위는 전술된 사용자 단말(110)에 대한 공간 내에서의 측위에 비해 더 정확할 수 있다. 예컨대, 사용자 단말(110)에 대한 공간 내에서의 측위는 5m 내지 10m 내외의 오차를 가짐에 비해, 로봇(100)에 대한 공간 내에서의 측위는 약 1m 이내의 오차를 가질 수 있다. In an embodiment, positioning in space for the robot 100 may be more accurate than positioning in space for the user terminal 110 described above. For example, positioning of the user terminal 110 in space may have an error of about 5 m to 10 m, whereas positioning of the robot 100 in space may have an error of within about 1 m.

전술한 것처럼, 로봇(100)은, 로봇 제어 시스템(120)에 의한 제어에 따라, 사용자 단말(110)로부터 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부(106)로부터의 센싱에 기반하여, 사용자(130)와 로봇 간의 거리를 감소시키도록 사용자(130)를 향해 이동할 수 있다. As described above, the robot 100, according to the control by the robot control system 120, the position information obtained from the user terminal 110, the user 130 and the sensor for at least one of the user terminal 110 Based on sensing from unit 106 , it may move toward user 130 to reduce the distance between user 130 and the robot.

이상 도 1및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3 및 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 and 2 can be applied to FIGS. 3 and 4 as it is, and thus the overlapping description will be omitted.

도 5는 일 실시예에 따른, 사용자의 사용자 단말을 나타내는 블록도이다.5 is a block diagram illustrating a user terminal of a user, according to an embodiment.

도 5를 참조하여, 전술된 사용자 단말(110)에 대해 더 자세하게 설명한다. With reference to FIG. 5 , the above-described user terminal 110 will be described in more detail.

사용자 단말(110)은 PC(personal computer), 노트북 컴퓨터(laptop computer), 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer), 사물 인터넷(Internet Of Things) 기기 등을 포함할 수 있는 여하한 단말 장치 또는 전자 장치를 의미할 수 있다. 사용자 단말(110)은 사용자(130)가 소지하고 있거나 착용하고 있는 장치일 수 있다. The user terminal 110 may include a personal computer (PC), a laptop computer, a smart phone, a tablet, a wearable computer, an Internet Of Things device, and the like. It may mean any terminal device or electronic device that can be The user terminal 110 may be a device possessed or worn by the user 130 .

예컨대, 사용자 단말(110)은, 사용자 단말(110)에 설치된 어플리케이션을 통해, 로봇(100)에 의한 서비스의 제공을 요청할 수 있고, 이러한 요청과 함께 공간 내에서의 사용자 단말(110)의 위치 정보를 생성하여 로봇(100)(또는 로봇 제어 시스템(120))으로 송신할 수 있다.For example, the user terminal 110 may request the provision of a service by the robot 100 through an application installed in the user terminal 110, and location information of the user terminal 110 in the space together with the request. can be generated and transmitted to the robot 100 (or the robot control system 120 ).

사용자 단말(110)은 통신부(510) 및 프로세서(520)를 포함할 수 있다. The user terminal 110 may include a communication unit 510 and a processor 520 .

통신부(510)는 사용자 단말(110)이 로봇(100) 또는 로봇 제어 시스템(120)과 통신하기 위한 장치일 수 있다. 말하자면, 통신부(510)는 이러한 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 사용자 단말(110)의 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다. 사용자 단말(110)은 통신부(510)를 통해 전술된 로봇(100)의 통신 모듈(240)과 통신할 수 있다. 일례로, 사용자(130)가 사용자 단말(110)을 통해 통신 모듈(240)에 대한 접속을 승인하는 경우에만, 통신부(510)는 통신 모듈(240)과 통신할 수 있다.The communication unit 510 may be a device for the user terminal 110 to communicate with the robot 100 or the robot control system 120 . In other words, the communication unit 510 transmits/receives data and/or information to these other devices, such as a network interface card, a network interface chip, and a networking interface port of the user terminal 110, or a hardware module or a network device driver (driver). ) or a software module such as a networking program. The user terminal 110 may communicate with the communication module 240 of the robot 100 described above through the communication unit 510 . For example, only when the user 130 approves access to the communication module 240 through the user terminal 110 , the communication unit 510 may communicate with the communication module 240 .

프로세서(520)는 사용자 단말(110)의 구성 요소들을 관리할 수 있고, 사용자 단말(110)이 사용하는 프로그램 또는 어플리케이션을 실행할 수 있다. 예컨대, 프로세서(520)는, 로봇(100)에 의한 서비스의 제공의 요청을 생성 및 송신하기 위한 어플리케이션/프로그램을 설치 및 실행할 수 있고, 상기 프로그램 또는 어플리케이션의 실행과 데이터의 처리 등에 필요한 연산을 수행할 수 있다. 프로세서(520)는 사용자 단말(110)의 적어도 하나의 프로세서 또는 프로세서 내의 적어도 하나의 코어(core)일 수 있다. 프로세서(520)는 로봇(100)의 통신 모듈(240)로부터 수집된 신호에 기반하여 로봇(100)과 사용자 단말(110) 간의 거리를 계산할 수 있다. The processor 520 may manage components of the user terminal 110 and execute a program or application used by the user terminal 110 . For example, the processor 520 may install and execute an application/program for generating and transmitting a request for provision of a service by the robot 100 , and perform calculations necessary for execution of the program or application and processing of data, etc. can do. The processor 520 may be at least one processor of the user terminal 110 or at least one core in the processor. The processor 520 may calculate a distance between the robot 100 and the user terminal 110 based on the signal collected from the communication module 240 of the robot 100 .

사용자 단말(110)은 도시되지는 않았으나 메모리를 포함할 수 있다. 메모리는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(510)를 통해 메모리에 로딩될 수도 있다.Although not shown, the user terminal 110 may include a memory. The memory is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, the ROM and the non-volatile mass storage device may be separated from the memory and included as separate permanent storage devices. Also, an operating system and at least one program code may be stored in the memory. These software components may be loaded from a computer-readable recording medium separate from the memory. The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, the software components may be loaded into the memory through the communication unit 510 instead of a computer-readable recording medium.

프로세서(520)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리 또는 통신부(510)에 의해 프로세서(520)로 제공될 수 있다. 예를 들어, 프로세서(520)는 메모리에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. The processor 520 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The command may be provided to the processor 520 by the memory or the communication unit 510 . For example, the processor 520 may be configured to execute received instructions according to program code loaded into memory.

또한, 사용자 단말(110)은 도시되지는 않았으나 디스플레이를 포함할 수 있다. 디스플레이는 사용자 단말(110)의 사용자(130)가 입력한 데이터를 출력하거나, 사용자 단말(110)에서 실행된 어플리케이션이 출력하는 데이터를 표시할 수 있다. 디스플레이는 터치 스크린을 포함할 수 있다.Also, although not shown, the user terminal 110 may include a display. The display may output data input by the user 130 of the user terminal 110 or may display data output by an application executed in the user terminal 110 . The display may include a touch screen.

이상, 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.As described above, the description of the technical features described above with reference to FIGS. 1 to 4 can be applied to FIG. 5 as it is, and thus a redundant description will be omitted.

후술될 상세한 설명에서, 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)의 구성(예컨대, 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)의 프로세서)들에 의해 수행되는 동작은 설명의 편의상 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)에 의해 수행되는 동작으로 설명될 수 있다. In the detailed description to be described later, the components of the robot 100 , the robot control system 120 or the user terminal 110 (eg, the processor of the robot 100 , the robot control system 120 or the user terminal 110 ) An operation performed by the robot 100 may be described as an operation performed by the robot 100 , the robot control system 120 , or the user terminal 110 for convenience of description.

또한, 후술될 상세한 설명에서 로봇 제어 시스템(120)에 의해 수행되는 것으로 설명되는 단계들의 적어도 일부와 로봇 제어 시스템(120)에 의해 수행되는 동작들의 적어도 일부는 로봇(100)에 의해서도 수행될 수 있다. 그 반대 또한 마찬가지이다. 이에 관해서는 중복되는 설명은 생략하는 경우가 있다. In addition, at least some of the steps described as being performed by the robot control system 120 in the detailed description to be described later and at least some of the operations performed by the robot control system 120 may also be performed by the robot 100 . . The opposite is also true. In this regard, overlapping description may be omitted.

도 6은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of controlling a robot that provides a service to a user in a space, according to an embodiment.

단계(S610)에서, 로봇 제어 시스템(120)은 로봇(100)으로부터 서비스를 제공 받는 사용자(130)의 사용자 단말(110)로부터, 공간 내에서의 사용자(130)의 위치 정보를 획득할 수 있다. 사용자(130)는, 예컨대, 사용자(130)는 사용자 단말(110)에 설치된 어플리케이션을 통해 로봇(100)에 의한 서비스의 제공을 요청할 수 있다. 사용자(130)에 의해 로봇(100)에 의한 서비스의 제공이 요청되면, 해당 서비스의 요청 및 사용자 단말(110)의 위치 정보(즉, 사용자의 위치 정보)가 로봇 제어 시스템(120)(또는, 실시예에 따라서는 로봇(100))으로 전달될 수 있다. 단계(S610)에서 획득되는 위치 정보는 사용자 단말(110)이 위치하는 것으로 결정된 좌표를 포함할 수 있다. 해당 위치 정보는 공간 내에서의 사용자 단말(110)의 위치를 대략적으로 나타내는 것일 수 있다.In step S610 , the robot control system 120 may obtain location information of the user 130 in the space from the user terminal 110 of the user 130 receiving the service from the robot 100 . . The user 130 may, for example, request the provision of a service by the robot 100 through an application installed in the user terminal 110 . When provision of a service by the robot 100 is requested by the user 130 , the request for the service and location information of the user terminal 110 (ie, location information of the user) are transmitted to the robot control system 120 (or, Depending on the embodiment, it may be transmitted to the robot 100). The location information obtained in step S610 may include coordinates determined as the location of the user terminal 110 . The corresponding location information may roughly indicate the location of the user terminal 110 in space.

단계(S620)에서, 로봇 제어 시스템(120)은 단계(S610)에서 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 로봇(100)의 센서부(106)로부터의 센싱에 기반하여, 사용자(130)와 로봇(100) 간의 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다. In step S620 , the robot control system 120 receives the position information obtained in step S610 and the sensor unit 106 of the robot 100 for at least one of the user 130 and the user terminal 110 . Based on the sensing of , the movement of the robot 100 may be controlled to reduce the distance between the user 130 and the robot 100 .

로봇 제어 시스템(120)은 획득된 위치 정보가 포함하는 좌표로의 로봇(100)이 이동하도록 로봇(100)을 제어할 수 있다. 이 때, 로봇 제어 시스템(120)은 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부(106)로부터의 센싱에 따라 결정되는 사용자(130)(또는 사용자 단말(110))와 로봇(100) 간의 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다.The robot control system 120 may control the robot 100 to move the robot 100 to the coordinates included in the obtained position information. At this time, the robot control system 120 is determined according to the sensing from the sensor unit 106 for at least one of the user 130 and the user terminal 110 with the user 130 (or the user terminal 110) and The movement of the robot 100 may be controlled to reduce the distance between the robots 100 .

예컨대, 로봇 제어 시스템(120)은, 센서부(106)의 통신 모듈(240)과 사용자 단말(110)의 통신에 따라, 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다. 로봇(100)과 사용자 단말(110) 간의 거리는 통신 모듈(240)이 포함하는 AP 모듈 또는 블루투스 모듈로부터 사용자 단말(110)에 의해 수집된 신호의 세기 및 상태 정보 중 적어도 하나에 기반하여 계산될 수 있다. 예컨대, 사용자 단말(110)은 수집된 신호의 세기를 거리로 변환함으로써 로봇(100)과 사용자 단말(110) 간의 거리를 계산할 수 있다. 로봇 제어 시스템(120)은 사용자 단말(110)로부터 주기적으로 로봇(100)과 사용자 단말(110) 간의 거리를 수신할 수 있고, 이에 따라, 해당 거리를 줄이도록 로봇(100)의 이동을 제어할 수 있다. 한편, 로봇(100)과 사용자 단말(110) 간의 거리는 사용자 단말(110)에 의해 수집된 상태 정보에 기반하여 계산될 수도 있다. 상태 정보는 예컨대, CSI (Channel State Information)를 포함할 수 있다. CSI는 사용자 단말(110)에 대해 서브 반송파로 들어오는 다양한 채널의 위상과 진폭 정보를 나타낼 수 있다. 이러한 상태 정보를 핑거프린트(fingerprint)로서 사용함으로써 로봇(100)과 사용자 단말(110) 간의 거리가 추정될 수 있다. 또한, 상태 정보는 예컨대, FTM (Fine Time Measurement) 정보를 포함할 수 있다. 일례로, 이러한 FTM는 사용자 단말(110)이 신호를 수신한 시각과 사용자 단말(110)으로 신호가 송신된 시각의 차를 나타낼 수 있다. 로봇(100)과 사용자 단말(110) 간의 거리는 이러한 FTM으로부터 추정될 수도 있다.For example, the robot control system 120 is based on a signal collected by the user terminal 110 from the communication module 240 according to communication between the communication module 240 of the sensor unit 106 and the user terminal 110 . Thus, the movement of the robot 100 can be controlled to reduce the calculated distance between the robot 100 and the user terminal 110 . The distance between the robot 100 and the user terminal 110 may be calculated based on at least one of the signal strength and state information collected by the user terminal 110 from the AP module or the Bluetooth module included in the communication module 240 . have. For example, the user terminal 110 may calculate the distance between the robot 100 and the user terminal 110 by converting the intensity of the collected signal into a distance. The robot control system 120 may periodically receive the distance between the robot 100 and the user terminal 110 from the user terminal 110, and thus control the movement of the robot 100 to reduce the corresponding distance. can Meanwhile, the distance between the robot 100 and the user terminal 110 may be calculated based on the state information collected by the user terminal 110 . The state information may include, for example, Channel State Information (CSI). The CSI may indicate phase and amplitude information of various channels coming into the subcarrier for the user terminal 110 . By using this state information as a fingerprint, the distance between the robot 100 and the user terminal 110 can be estimated. Also, the state information may include, for example, Fine Time Measurement (FTM) information. For example, the FTM may represent a difference between the time when the user terminal 110 receives the signal and the time at which the signal is transmitted to the user terminal 110 . The distance between the robot 100 and the user terminal 110 may be estimated from this FTM.

실시예에 의해, 로봇(100)은 사용자 단말(110)로부터 획득되는 대략적인 위치 정보가 나타내는 위치로 이동하는 것에 그치지 않고, 센서부(106)에 의한 센싱을 통해 계산된 사용자(130)(또는 사용자 단말(110))와 로봇(100) 간의 거리에 기반하여 사용자(130)를 정확하게 특정할 수 있다. 따라서, 로봇(100)은 정확하게 특정된 사용자(130)의 위치에서 서비스를 제공할 수 있다.According to the embodiment, the robot 100 does not stop at moving to a position indicated by the approximate position information obtained from the user terminal 110, but the user 130 calculated through sensing by the sensor unit 106 (or The user 130 may be accurately specified based on the distance between the user terminal 110 and the robot 100 . Accordingly, the robot 100 can provide a service at the precisely specified location of the user 130 .

한편, 단계(S615)에서처럼, 로봇 제어 시스템(120)은 사용자 단말(110)에 대해, 사용자(130)의 이동을 자제하도록 요청하는 메시지를 송신할 수 있다. 말하자면, 서비스를 요청한 사용자(130)가 이동하거나 위치를 이탈하지 않도록 요청하는 메시지가 사용자 단말(110)에 대해 송신될 수 있다. 메시지는 예컨대, 팝업 창 또는 알림 바 등의 UI를 통해 사용자 단말(110)에서 출력될 수 있다. Meanwhile, as in step S615 , the robot control system 120 may transmit a message to the user terminal 110 , requesting to refrain from moving the user 130 . In other words, a message requesting that the user 130 requesting the service not to move or leave the location may be transmitted to the user terminal 110 . The message may be output from the user terminal 110 through a UI such as a pop-up window or a notification bar.

단계(S615)에서의 메시지의 송신은 사용자 단말(110)로부터 서비스 제공의 요청이 수신된 후에 이루어질 수 있다.Transmission of the message in step S615 may be performed after a request for service provision is received from the user terminal 110 .

사용자(130)는 주기적으로 또는 이동이 있을 때마다 사용자 단말(110)을 통해 (단계(S610)에서의) 위치 정보를 로봇 제어 시스템(120)으로 송신할 수 있다. 로봇 제어 시스템(120)은 이러한 갱신된 위치 정보에 따라 로봇(100)의 이동을 제어할 수 있다. The user 130 may transmit location information (in step S610) to the robot control system 120 through the user terminal 110 periodically or whenever there is movement. The robot control system 120 may control the movement of the robot 100 according to the updated position information.

한편, 단계(S610)에서 사용자 단말(110)로부터 획득되는 위치 정보는 사용자(130)(사용자 단말(110))가 위치하는 공간 내의 층을 나타내는 정보를 포함할 수 있다. 이에 따라, 단계(S620)에서 로봇(100)은 사용자(130)가 위치하는 공간 내의 층(즉, 층을 나타내는 정보에 따른 층)을 이동하도록 제어될 수 있다. 로봇(100)이 해당 층이 아닌 다른 층에 위치하는 경우 로봇(100)은 엘리베이터 등에 탑승하는 것을 통해 사용자(130)가 위치하는 공간 내의 층으로 이동할 수 있다. Meanwhile, the location information obtained from the user terminal 110 in step S610 may include information indicating a floor in a space in which the user 130 (user terminal 110) is located. Accordingly, in step S620 , the robot 100 may be controlled to move a floor in the space where the user 130 is located (ie, a floor according to the information indicating the floor). When the robot 100 is located on a floor other than the corresponding floor, the robot 100 may move to a floor in the space where the user 130 is located by riding an elevator or the like.

사용자(130)가 로봇(100)과 공간 내의 다른 층에 위치하는 경우에도 센서부(106)에 의한 센싱에 따른 사용자(130)와 로봇(100) 간의 거리는 가까운 것으로 결정될 수 있다. 상기와 같이, 사용자 단말(110)로부터 획득되는 위치 정보가 사용자(130)가 위치하는 공간 내의 층을 나타내는 정보를 포함함으로써, 로봇(100)이 사용자(130)가 위치하는 층과 다른 층을 이동하는 것을 방지할 수 있다. Even when the user 130 is located on a different floor from the robot 100 in the space, the distance between the user 130 and the robot 100 according to the sensing by the sensor unit 106 may be determined to be close. As described above, since the location information obtained from the user terminal 110 includes information indicating a floor in the space where the user 130 is located, the robot 100 moves a floor different from the floor where the user 130 is located. can be prevented from doing

이상, 도 1 내지 도 5를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.As described above, the description of the technical features described above with reference to FIGS. 1 to 5 can be applied to FIG. 6 as it is, and thus a redundant description will be omitted.

도 7은 일 예에 따른, 로봇의 이동을 제어함에 있어서, 통신 모듈을 사용하여 사용자 단말의 위치 좌표를 계산하는 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a method of calculating position coordinates of a user terminal using a communication module in controlling movement of a robot, according to an example.

로봇 제어 시스템(120)은 사용자(130)를 향해 로봇(100)이 이동하도록 로봇(100)을 제어함에 있어서, 사용자(130)의 위치를 알아낼 수 있다.The robot control system 120 may find out the position of the user 130 in controlling the robot 100 so that the robot 100 moves toward the user 130 .

후술될 단계들(S710 및 S720)에 의한 사용자(130)의 측위에는 카메라(230)는 사용되지 않을 수 있다. 즉, 이 때 센서부(106)는 카메라(230)를 포함하지 않을 수 있다. The camera 230 may not be used for positioning the user 130 by steps S710 and S720 to be described later. That is, at this time, the sensor unit 106 may not include the camera 230 .

단계(S710)에서, 로봇 제어 시스템(120)은 로봇(100)의 이동에 따른, 로봇(100)의 위치 좌표 및 해당 로봇(100)의 위치 좌표에서의 로봇(100)과 사용자 단말(110) 간의 거리로 구성된 복수의 쌍들을 결정할 수 있다. In step S710, the robot control system 120 according to the movement of the robot 100, the robot 100 and the user terminal 110 in the position coordinates of the robot 100 and the position coordinates of the robot 100. It is possible to determine a plurality of pairs composed of a distance between them.

로봇(100)과 사용자 단말(110) 간의 거리는 전술된 센서부(106)의 통신 모듈(240)을 사용하여 계산된 것으로서, 통신 모듈(240)과 사용자 단말(110)의 통신에 따라, 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 것일 수 있다. The distance between the robot 100 and the user terminal 110 is calculated using the communication module 240 of the sensor unit 106 described above, and according to the communication between the communication module 240 and the user terminal 110 , the communication module It may be calculated based on a signal collected by the user terminal 110 from 240 .

로봇(100)의 위치 좌표는 공간 내에서의 로봇(100)에 대한 측위의 결과로서 로봇 제어 시스템(120)이 이미 알고 있는 값일 수 있다. The position coordinates of the robot 100 may be values already known to the robot control system 120 as a result of positioning the robot 100 in space.

단계(S720)에서, 로봇 제어 시스템(120)은 단계(S710)에서 결정된 복수의 쌍들에 기반하여 사용자 단말(110)의 위치 좌표를 계산할 수 있다. 계산된 사용자 단말(110)의 위치 좌표는 사용자(130)의 위치 좌표에 대응할 수 있다. In step S720 , the robot control system 120 may calculate the position coordinates of the user terminal 110 based on the plurality of pairs determined in step S710 . The calculated position coordinates of the user terminal 110 may correspond to the position coordinates of the user 130 .

로봇 제어 시스템(120)은 복수의 위치들에서의 로봇(100)의 위치 좌표들과 로봇(100)과 사용자 단말(110) 간의 거리를 알고 있으므로 사용자 단말(110)의 위치 좌표를 계산할 수 있다. 사용자 단말(110)의 위치 좌표는 예컨대, 삼각측량법 또는 삼변측량법에 의해 계산될 수 있다. The robot control system 120 may calculate the position coordinates of the user terminal 110 because it knows the position coordinates of the robot 100 at a plurality of positions and the distance between the robot 100 and the user terminal 110 . The location coordinates of the user terminal 110 may be calculated by, for example, triangulation or trilateration.

관련하여, 도 13은 일 예에 따른, 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110)(사용자(130)) 간의 거리 및 로봇(100)의 위치에 기반하여, 서비스를 제공 받는 사용자(130)의 위치를 결정하는 방법을 나타낸다.In relation to this, FIG. 13 is based on the distance between the robot 100 and the user terminal 110 (user 130) calculated using the communication module 240 and the position of the robot 100, according to an example. A method of determining the location of the user 130 receiving the service is shown.

도시된 사용자 A는 사용자(130)에 대응할 수 있다.The illustrated user A may correspond to the user 130 .

도시된 것처럼, 로봇(100)은 <A>, <B> 및 <C>를 이동할 수 있고, 각 지점에서의 로봇(100)의 위치 좌표와 해당 위치 좌표에서의 사용자 A와의 거리(통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리)의 쌍을 사용하여, 사용자 A의 위치 좌표가 계산될 수 있다. As shown, the robot 100 can move <A>, <B> and <C>, and the distance between the position coordinates of the robot 100 at each point and the user A at the corresponding position coordinates (communication module ( 240), using the pair of the distance between the robot 100 and the user terminal 110), the position coordinates of the user A may be calculated.

예컨대, <A>에서의 로봇(100)의 위치 좌표가 (x1, y1, z1)이며 사용자 A까지의 거리가 d1이고; <B>에서의 로봇(100)의 위치 좌표가 (x2, y2, z2)이며 사용자 A까지의 거리자 d2이고; <C>에서의 로봇(100)의 위치 좌표가 (x3, y3, z3)이며 사용자 A까지의 거리자 d3이면, 사용자 A의 위치 좌표(x, y, z)를 아래의 수학식 1을 사용하여 계산할 수 있다.For example, the position coordinates of the robot 100 in <A> are (x 1 , y 1 , z 1 ) and the distance to user A is d 1 ; The position coordinates of the robot 100 in <B> are (x 2 , y 2 , z 2 ) and the distance distance d 2 to the user A; If the position coordinates of the robot 100 in <C> are (x 3 , y 3 , z 3 ) and the distance ruler d 3 to the user A, the position coordinates (x, y, z) of the user A are calculated using the following math It can be calculated using Equation 1.

[수학식 1] [Equation 1]

Figure 112021068392993-pat00001
Figure 112021068392993-pat00001

실시예에 의해서는, 서비스를 제공 받는 사용자(130)의 위치가 정확하게 파악될 수 있는 바, 로봇(100)이 정확하게 사용자(130)에게 이동하여 서비스를 제공할 수 있다. According to the embodiment, the location of the user 130 receiving the service can be accurately identified, the robot 100 can accurately move to the user 130 and provide the service.

이상, 도 1 내지 도 6을 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 및 도 13에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 6 can be applied to FIGS. 7 and 13 as it is, and thus overlapping descriptions will be omitted.

도 8은 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a method of controlling the movement of the robot to reduce the distance between the user and the robot in controlling the movement of the robot to provide a service to the user, according to an example.

도 8을 참조하여, 센서부(106)의 카메라(230)를 사용하여 계산된 로봇(100)과 사용자(130) 간의 거리 및 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110)(사용자(130)) 간의 거리에 기반하여 로봇(100)에 의해 서비스를 제공 받을 사용자(130)를 결정하는 방법이 설명된다. 8, the distance between the robot 100 and the user 130 calculated using the camera 230 of the sensor unit 106 and the robot 100 and the user terminal calculated using the communication module 240 A method of determining a user 130 to be provided with a service by the robot 100 based on a distance between 110 (users 130) is described.

단계(S810)에서, 로봇 제어 시스템(120)(또는 로봇(100))은 카메라(230)에 의한 인식에 기반하여, 사용자(들)과 로봇(100) 간의 제1 거리를 계산할 수 있다. 사용자와 로봇(100) 간의 제1 거리는 예컨대, 깊이(depth) 카메라를 사용하여 계산될 수 있다. In step S810 , the robot control system 120 (or the robot 100 ) may calculate a first distance between the user(s) and the robot 100 based on the recognition by the camera 230 . The first distance between the user and the robot 100 may be calculated using, for example, a depth camera.

예컨대, 카메라(230)에 의해 서비스를 제공 받는 사용자(130)를 포함하는 복수의 사용자들이 인식되는 경우, 로봇 제어 시스템(120)은 카메라(230)에 의한 인식에 기반하여 복수의 사용자들의 각 사용자와 로봇(100) 간의 제1 거리를 계산할 수 있다. 로봇 제어 시스템(120)은 카메라(230)의 화각 범위 내에 존재하는 사용자들의 각각에 대해 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다.For example, when a plurality of users including the user 130 provided with the service by the camera 230 are recognized, the robot control system 120 is each user of the plurality of users based on the recognition by the camera 230 . A first distance between and the robot 100 may be calculated. The robot control system 120 may calculate a distance to the robot 100 as the first distance for each of the users existing within the range of the angle of view of the camera 230 .

단계(S820)에서, 로봇 제어 시스템(120)은 단계(S810)에서 계산된 제1 거리와 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 로봇(100)과 사용자 단말(110) 간의 제2 거리를 비교할 수 있다. 말하자면, 로봇 제어 시스템(120)은 카메라(230)를 사용하여 계산된 로봇(100)과 각 사용자 간의 거리(제1 거리)와, 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리(제2 거리)를 비교할 수 있다. In step S820 , the robot control system 120 performs the first distance calculated in step S810 and the robot 100 calculated based on the signal collected by the user terminal 110 from the communication module 240 and A second distance between the user terminals 110 may be compared. In other words, the robot control system 120 calculates the distance (first distance) between the robot 100 and each user calculated using the camera 230 , and the robot 100 and the user calculated using the communication module 240 . A distance (a second distance) between the terminals 110 may be compared.

단계(S830)에서, 로봇 제어 시스템(120)은 카메라(230)를 통해 인식된 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 존재하는지 여부를 판정할 수 있다. In step S830 , the robot control system 120 determines whether a candidate user associated with the first distance whose difference from the second distance is equal to or less than a predetermined value exists among users recognized through the camera 230 . can do.

상기 소정의 값은 카메라(230)를 사용하여 계산된 로봇(100)과 각 사용자 간의 거리 및 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리가 가질 수 있는 오차 범위를 나타낼 수 있다. The predetermined value is the distance between the robot 100 and each user calculated using the camera 230 and the distance between the robot 100 and the user terminal 110 calculated using the communication module 240 can have It can indicate the margin of error.

단계(S840)에서, 로봇 제어 시스템(120)은 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 복수인지 여부를 판정할 수 있다. In step S840 , the robot control system 120 may determine whether there are a plurality of candidate users associated with the first distance in which a difference from the second distance is equal to or less than a predetermined value.

단계(S840)에서의 판정 결과가 복수가 아닌 경우, 단계(S850)에서, 로봇 제어 시스템(120)은 카메라(230)를 통해 인식된 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. If the determination result in step S840 is not a plurality, in step S850, the robot control system 120 determines that the difference from the second distance among users recognized through the camera 230 is a predetermined value. It may be determined that the candidate user associated with the first distance equal to or less than the first distance is the user 130 provided with the service by the robot 100 .

말하자면, 로봇 제어 시스템(120)은 상기 제2 거리와 동일한(또는 오차 범위에 있는) 제1 거리를 갖는 사용자를 서비스를 제공 받는 사용자(130)로서 결정할 수 있다. In other words, the robot control system 120 may determine a user having a first distance equal to (or within an error range) of the second distance as the user 130 receiving the service.

단계(S860)에서, 로봇 제어 시스템(120)은 단계(S850)에서 결정된 후보 사용자로 로봇(100)이 이동하도록 로봇을 제어할 수 있다. In step S860, the robot control system 120 may control the robot so that the robot 100 moves to the candidate user determined in step S850.

관련하여, 도 10은, 일 예에 따른, 상기 제1 거리 및 상기 제2 거리에 기반하여 로봇(100)에 의해 서비스를 제공 받는 사용자(130)를 결정하는 방법을 나타낸다. 도 10에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었다. In relation to this, FIG. 10 illustrates a method of determining a user 130 provided with a service by the robot 100 based on the first distance and the second distance, according to an example. In FIG. 10 , it is illustrated that user A corresponds to user 130 .

로봇(100)의 카메라(230)는 사용자 A 내지 D를 인식할 수 있고, 사용자 A 내지 D 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다. The camera 230 of the robot 100 may recognize users A to D, and may calculate a distance between each of the users A to D and the robot 100 as the first distance. The robot 100 may compare the first distance with the second distance that is the distance between the user terminal 110 and the robot 100 calculated using the communication module 240 .

로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여 사용자 A에게 서비스를 제공할 수 있다. The robot 100 may identify that the first distance associated with the user A is the same as the second distance or at least the difference is less than or equal to a predetermined value, and may determine that the user A is the user 130 receiving the service. Accordingly, the robot 100 may move toward the user A and provide a service to the user A.

설명한 것처럼, 사용자 A 내지 D에 관한 정보(예컨대, 안면 정보)가 등록되어 있지 않은 경우에도, 로봇(100)은 제1 거리 및 제2 거리를 비교하는 것을 통해 사용자 A가 서비스를 제공 받는 사용자(130)인 것으로 정확하게 결정할 수 있다.As described, even when information (eg, facial information) about users A to D is not registered, the robot 100 compares the first distance and the second distance to the user ( 130) can be accurately determined.

즉, 실시예에서는, 로봇(100)이 사용자 단말(110)로부터 획득된 대략적인 위치 정보에 기반하여 이동한 후, 카메라(230)에 의해 복수의 사용자들(사용자 A 내지 D)이 인식되는 경우, 통신 모듈(240)을 사용하여 계산된 제2 거리와 일치하는 (카메라(230)를 사용하여 계산된) 제1 거리를 갖는 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다.That is, in the embodiment, when a plurality of users (users A to D) are recognized by the camera 230 after the robot 100 moves based on the approximate location information obtained from the user terminal 110 . , it may be determined that user A having a first distance (calculated using the camera 230 ) matching the second distance calculated using the communication module 240 is the user 130 receiving the service.

한편, 단계(S850)에서 결정된 후보 사용자로 로봇(100)이 이동하는 동안, 제2 거리가 증가하는 경우가 존재할 수 있다. 이는 해당 후보 사용자가 서비스를 제공 받는 사용자(130)가 아님을 의미할 수 있다. Meanwhile, while the robot 100 moves to the candidate user determined in step S850, there may be a case in which the second distance increases. This may mean that the corresponding candidate user is not the user 130 receiving the service.

단계(S870)에서, 로봇 제어 시스템(120)은, 후보 사용자로의 로봇(100)의 이동에 따라, 제2 거리가 증가하거나 해당 후보 사용자와 연관된 제1 거리와 제2 거리의 차이가 소정의 값을 초과하게 되는지를 판정할 수 있다. In step S870, the robot control system 120 determines that, as the robot 100 moves to the candidate user, the second distance increases or the difference between the first distance and the second distance associated with the candidate user is a predetermined value. It can be determined whether the value is exceeded.

단계(S870)에서의 판정의 결과가 부정인 경우, 단계(S880)에서, 로봇 제어 시스템(120)은 해당 후보 사용자로 이동하도록 로봇(100)을 제어할 수 있다. 이 때, 후보 사용자는 서비스를 제공 받는 사용자(130)인 것으로 결정될 수 있다.When the result of the determination in step S870 is negative, in step S880, the robot control system 120 may control the robot 100 to move to the corresponding candidate user. In this case, the candidate user may be determined to be the user 130 receiving the service.

단계(S870)에서의 판정의 결과가 긍정인 경우, 전술된 단계(S810) 이하의 동작들이 다시 수행될 수 있다. 말하자면, 로봇 제어 시스템(120)은 카메라(230)를 통해 다른 사용자를 인식하여 (전술된 거리 비교 등의 단계들을 통해) 해당 다른 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 로봇 제어 시스템(120)은 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 로봇(100)을 이동시킬 수 있다. When the result of the determination in step S870 is affirmative, the above-described operations in step S810 and subsequent operations may be performed again. In other words, the robot control system 120 recognizes another user through the camera 230 (through steps such as distance comparison described above) and converts the other user to the user 130 provided with the service by the robot 100 . it can be decided that The robot control system 120 may move the robot 100 toward the other user so that the second distance is reduced.

관련하여, 도 11은, 단계(S870)에서의 판정의 결과가 긍정인 경우 서비스를 제공 받는 사용자(130)를 결정하는 방법의 예시를 나타낸다. 도 10에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었으며, 사용자 B가 최초로 로봇(100)이 이동하는 후보 사용자로서 도시되었다. In relation to this, FIG. 11 shows an example of a method of determining the user 130 to be provided with the service when the result of the determination in step S870 is affirmative. In FIG. 10 , user A is illustrated as corresponding to the user 130 , and user B is illustrated as a candidate user to which the robot 100 moves for the first time.

도시된 예시에서, 로봇(100)의 카메라(230)는 화각 범위 내에 있는 사용자 B 내지 D를 인식할 수 있고, 사용자 A는 인식하지 못할 수 있다. 이 때, 카메라(230)는 로봇(100)의 일방에 설치된 것일 수 있다. In the illustrated example, the camera 230 of the robot 100 may recognize users B to D within the range of the field of view, but user A may not recognize it. In this case, the camera 230 may be installed on one side of the robot 100 .

로봇(100)은 사용자 B 내지 D 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다. The robot 100 may calculate the distance between each of the users B to D and the robot 100 as the first distance. The robot 100 may compare the first distance with the second distance that is the distance between the user terminal 110 and the robot 100 calculated using the communication module 240 .

로봇(100)은 사용자 B와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 B를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 B를 향해 이동할 수 있다. The robot 100 may identify that the first distance associated with the user B is the same as the second distance or at least the difference is less than or equal to a predetermined value, and may determine that the user B is the user 130 receiving the service. Accordingly, the robot 100 may move toward the user B.

이 때, 로봇(100)은 이동하는 동안 사용자 B와 연관된 제1 거리는 감소함에 비해 상기 제2 거리는 증가함을 확인할 수 있고, 이 때, 사용자 B는 서비스를 제공 받는 사용자(130)가 아닌 것으로 결정할 수 있다. At this time, the robot 100 may confirm that the second distance increases while the first distance associated with the user B decreases while the robot 100 moves, and at this time, it is determined that the user B is not the user 130 receiving the service. can

로봇(100)의 카메라(230)는 (필요하다면 로봇(100)을 회전시키거나 이동시켜) 사용자 A를 식별할 수 있다. 로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여, 사용자 A에게 서비스를 제공할 수 있다. The camera 230 of the robot 100 may identify user A (by rotating or moving the robot 100 if necessary). The robot 100 may identify that the first distance associated with the user A is the same as the second distance or at least the difference is less than or equal to a predetermined value, and may determine that the user A is the user 130 receiving the service. Accordingly, the robot 100 may move toward the user A and provide a service to the user A.

말하자면, 로봇 제어 시스템(120)은 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리(제2 거리) 및 카메라(230)에 의한 인식에 기반하여 계산된 사용자(130)와 로봇(100) 간의 거리(제1 거리)를 함께 감소시키도록 로봇(100)의 이동을 제어할 수 있다. 로봇(100)이 후보 사용자를 향해 이동할 때, 제1 거리 및 제2 거리가 함께 감소하는 경우, 해당 후보 사용자는 서비스를 제공 받는 사용자(130)인 것으로 간주될 수 있다. In other words, the robot control system 120 calculates the distance (second distance) between the robot 100 and the user terminal 110 based on the signal collected by the user terminal 110 from the communication module 240 and the camera ( The movement of the robot 100 may be controlled to reduce the distance (the first distance) between the user 130 and the robot 100 calculated based on the recognition by the 230 . When the robot 100 moves toward the candidate user, if the first distance and the second distance decrease together, the candidate user may be considered to be the user 130 receiving the service.

또한, 관련하여, 도 14a 내지 도 14c는, 단계(S870)에서의 판정의 결과가 긍정인 경우 서비스를 제공 받는 사용자(130)를 결정하는 방법의 다른 예시를 나타낸다. 도 14a 내지 도 14c에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었으며, 사용자 B가 최초로 로봇(100)이 이동하는 후보 사용자로서 도시되었다. Also, in connection with, FIGS. 14A to 14C show another example of a method of determining the user 130 to be provided with the service when the result of the determination in step S870 is affirmative. 14A to 14C , it is shown that user A corresponds to the user 130 , and user B is shown as a candidate user to which the robot 100 moves for the first time.

도시된 예시에서, 로봇(100)의 카메라(230)는 화각 범위 내에 있는 사용자 B 내지 E를 인식할 수 있고, 사용자 A는 인식하지 못할 수 있다. 이 때, 사용자 C가 사용자 A를 가로막고 있기 때문에 카메라(230)는 사용자A를 인식하지 못할 수 있다. 사용자 C는 사람이 아닌 여하한 장애물로서 대체될 수 있다(도 14a 참조). In the illustrated example, the camera 230 of the robot 100 may recognize users B to E within the range of the field of view, but user A may not recognize it. At this time, since user C is blocking user A, the camera 230 may not recognize user A. User C may be replaced by any non-human obstacle (see FIG. 14A ).

로봇(100)은 사용자 B 내지 E 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다. The robot 100 may calculate the distance between each of the users B to E and the robot 100 as the first distance. The robot 100 may compare the first distance with the second distance that is the distance between the user terminal 110 and the robot 100 calculated using the communication module 240 .

로봇(100)은 사용자 B와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 B를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 B를 향해 이동할 수 있다. The robot 100 may identify that the first distance associated with the user B is the same as the second distance or at least the difference is less than or equal to a predetermined value, and may determine that the user B is the user 130 receiving the service. Accordingly, the robot 100 may move toward the user B.

도 14b 및 도 14c에서 도시된 것처럼, 로봇(100)가 사용자 B를 향해 이동하는 동안 사용자 B와 연관된 제1 거리 및 제2 거리는 함께 감소할 수 있다. 그러나, 도 14c에서 도시된 경우와 같이 로봇(100)가 사용자 B를 향해 이동한 경우, 사용자 B와 연관된 제1 거리와 제2 거리가 다시 불일치하게 될 수 있다. 즉, 사용자 B와 연관된 제1 거리와 제2 거리 간의 차이가 소정의 값을 초과하게 될 수 있다. 로봇(100)은 사용자 B와 연관된 제1 거리와 제2 거리 간의 차이가 소정의 값을 초과함을 식별할 수 있고, 이 때, 로봇(100)은 사용자 B는 서비스를 제공 받는 사용자(130)가 아닌 것으로 결정할 수 있다. 14B and 14C , while the robot 100 moves toward the user B, the first distance and the second distance associated with the user B may decrease together. However, when the robot 100 moves toward the user B as illustrated in FIG. 14C , the first distance and the second distance associated with the user B may again be inconsistent. That is, the difference between the first distance and the second distance associated with user B may exceed a predetermined value. The robot 100 may identify that the difference between the first distance and the second distance associated with the user B exceeds a predetermined value, and at this time, the robot 100 indicates that the user B is the user 130 receiving the service. It can be determined that not

로봇(100)의 카메라(230)는 (필요하다면 로봇(100)을 회전시키거나 이동시켜) 사용자 A를 식별할 수 있다. 로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여, 사용자 A에게 서비스를 제공할 수 있다. The camera 230 of the robot 100 may identify user A (by rotating or moving the robot 100 if necessary). The robot 100 may identify that the first distance associated with the user A is the same as the second distance or at least the difference is less than or equal to a predetermined value, and may determine that the user A is the user 130 receiving the service. Accordingly, the robot 100 may move toward the user A and provide a service to the user A.

이와 같이, 실시예에 의해서는, 사용자 A의 주위에 존재하는 장애물에 의해 사용자 A가 카메라(230)를 통해 식별될 수 없더라도, 사용자 A가 서비스를 제공 받는 사용자(130)로서 정확하게 결정될 수 있다. As such, according to the embodiment, even if the user A cannot be identified through the camera 230 due to an obstacle existing around the user A, the user A can be accurately determined as the user 130 receiving the service.

한편, 전술한 단계(S830)에서 카메라(230)에 의해 인식된 사용자들 중 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 존재하지 않는 것으로 판정될 수 있다. Meanwhile, it may be determined that there is no candidate user associated with the first distance whose difference from the second distance is less than or equal to a predetermined value among users recognized by the camera 230 in the aforementioned step S830 .

이러한 경우, 단계(S835)에서, 로봇 제어 시스템(120)은 카메라(230)에 의해 인식된 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 로봇을 이동시킬 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 회전시키거나, 로봇(100)을 수직(vertical) 방향 및 수평(horizontal) 방향으로 이동시킬 수 있다. 즉, 로봇 제어 시스템(120)은 기 인식된 복수의 사용자들 외의 (서비스를 제공 받는 사용자(130)가 될 수 있는) 다른 사용자를 인식하기 위해 로봇(100)을 이동시킬 수 있다. In this case, in step S835 , the robot control system 120 may move the robot in a first direction independent of the direction in which the plurality of users recognized by the camera 230 are located. For example, the robot control system 120 may rotate the robot 100 or move the robot 100 in a vertical direction and a horizontal direction. That is, the robot control system 120 may move the robot 100 to recognize another user (which may be the user 130 receiving the service) other than the plurality of previously recognized users.

다른 사용자가 카메라(230)에 의해 인식됨에 따라 전술된 단계(S810) 이하의 단계들이 다시 수행될 수 있다. 말하자면, 제1 방향으로의 로봇(100)의 이동 후, 로봇 제어 시스템(120)은 카메라(230)에 의한 인식에 기반한 다른 사용자와 로봇(100) 간의 제1 거리와 상기 제2 거리를 비교할 수 있다. As another user is recognized by the camera 230 , the steps below the above-described step S810 may be performed again. That is, after moving the robot 100 in the first direction, the robot control system 120 may compare the first distance and the second distance between the robot 100 and another user based on the recognition by the camera 230 . have.

한편, 전술한 단계(S840)에서 카메라(230)에 의해 인식된 사용자들 중에서 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 복수인 것으로 판정될 수 있다. Meanwhile, it may be determined that a plurality of candidate users associated with the first distance whose difference from the second distance is less than or equal to a predetermined value among users recognized by the camera 230 in the above-described step S840 may be determined.

이러한 경우, 단계(S842)에서, 로봇 제어 시스템(120)은 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 로봇(100)을 이동시킬 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 수직(vertical) 방향 및 수평(horizontal) 방향으로 이동시킬 수 있다. 즉, 로봇 제어 시스템(120)은제2 거리와, 복수의 후보 사용자들의 각각과 연관된 제1 거리를 변화시키기 위해 로봇(100)을 이동시킬 수 있다.In this case, in step S842 , the robot control system 120 may move the robot 100 in a first direction independent of the direction in which the plurality of candidate users are located. For example, the robot control system 120 may move the robot 100 in a vertical direction and a horizontal direction. That is, the robot control system 120 may move the robot 100 to change the second distance and the first distance associated with each of the plurality of candidate users.

단계(S844)에서, 로봇 제어 시스템(120)은 로봇(100)의 이동에 따라 변화하는, (후보 사용자들의 각각과 연관된) 제1 거리 및 제2 거리를 모니터링할 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)의 제1 방향으로의 이동에 따라 변화하는, (후보 사용자들의 각각과 연관된) 제1 거리 및 제2 거리를 모니터링할 수 있다. 이러한 모니터링의 결과에 대해 전술된 단계(S820)에 따른 비교가 수행될 수 있다. 또는, 로봇 제어 시스템(120)은 로봇(100)의 후보 사용자들 중 어느 하나로의 이동에 따라 변화하는 제1 거리 및 제2 거리를 모니터링할 수도 있다.In step S844 , the robot control system 120 may monitor a first distance and a second distance (associated with each of the candidate users) that change according to the movement of the robot 100 . For example, the robot control system 120 may monitor a first distance and a second distance (associated with each of the candidate users) that change as the robot 100 moves in the first direction. A comparison according to the above-described step S820 may be performed with respect to the result of such monitoring. Alternatively, the robot control system 120 may monitor the first distance and the second distance that change according to the movement of the robot 100 to any one of the candidate users.

로봇 제어 시스템(120)은 단계(S844)에서의 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 복수의 후보 사용자들 중 서비스를 제공 받는 사용자(130)가 특정될 수 있다. The robot control system 120 assigns, to the robot 100, a candidate user associated with a first distance whose difference from the second distance is less than or equal to a predetermined value among a plurality of candidate users, based on the monitoring result in step S844. It may be determined that the user 130 is provided with the service by the service. Accordingly, the user 130 receiving the service from among the plurality of candidate users may be specified.

관련하여, 도 12는 일 예에 따른, 후보 사용자들이 복수인 경우에 있어서, 로봇(100)에 의해 서비스를 제공 받는 사용자(130)를 결정하는 방법을 나타낸다. 도 12에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었다.In relation to this, FIG. 12 shows a method of determining a user 130 provided with a service by the robot 100 in the case where there are a plurality of candidate users, according to an example. In FIG. 12 , it is illustrated that user A corresponds to user 130 .

로봇(100)의 카메라(230)는 사용자 A 내지 C를 인식할 수 있고, 사용자 A 내지 C 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다. The camera 230 of the robot 100 may recognize users A to C, and may calculate a distance between each of the users A to C and the robot 100 as the first distance. The robot 100 may compare the first distance with the second distance that is the distance between the user terminal 110 and the robot 100 calculated using the communication module 240 .

로봇(100)은 사용자 A 내지 C 모두와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있다. 즉, 사용자 A 내지 C가 모두 후보 사용자가 될 수 있다. The robot 100 may identify that the first distance associated with all of the users A to C is the same as the second distance, or at least the difference is less than or equal to a predetermined value. That is, users A to C may all be candidate users.

이 때, 로봇(100)은 소정의 제1 방향(도시된 것처럼 수직 또는 수평 방향 혹은 불특정의 방향)으로 이동될 수 있고, 이에 따라, 제2 거리 및 사용자 A 내지 C 각각과 연관된 제1 거리가 변경될 수 있다. At this time, the robot 100 may be moved in a predetermined first direction (vertical or horizontal direction or an unspecified direction as shown), and accordingly, the second distance and the first distance associated with each of users A to C are can be changed.

로봇(100)은 변경된 제2 거리 및 제1 거리를 기준으로, 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 제1 거리와 연관된 사용자를 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다.Based on the changed second distance and the first distance, the robot 100 may determine the user associated with the first distance that is equal to or at least the difference between the second distance and the predetermined value or less. Accordingly, the robot 100 may determine that the user A is the user 130 receiving the service.

즉, 실시예에서는, 복수의 후보 사용자들이 존재하는 경우에도 서비스를 제공 받는 사용자(130)를 정확하게 특정할 수 있다. That is, in the embodiment, even when a plurality of candidate users exist, the user 130 receiving the service can be accurately specified.

이상, 도 1 내지 도 7을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8 및 도 10 내지 도 14에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.As described above, the description of the technical features described above with reference to FIGS. 1 to 7 can be applied to FIGS. 8 and 10 to 14 as it is, and thus a redundant description will be omitted.

도 9는 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 카메라를 사용하여 계산된 사용자와 로봇 간의 거리에 기반하여 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of controlling movement of a robot based on a distance between a user and a robot calculated using a camera in controlling movement of a robot to provide a service to a user, according to an example.

도 9를 참조하여, 센서부(106)의 카메라(230)를 사용하여 사용자(130)와 로봇(100) 간의 거리를 계산하고, 로봇(100)의 이동을 제어하는 방법을 설명한다. A method of calculating the distance between the user 130 and the robot 100 using the camera 230 of the sensor unit 106 and controlling the movement of the robot 100 will be described with reference to FIG. 9 .

단계(S910)에서, 로봇 제어 시스템(120)은 카메라(230)를 사용하여, 사용자(130)를 인식하고, 인식된 사용자(130)와 로봇(100) 간의 거리를 계산할 수 있다. 사용자(130)와 로봇(100) 간의 거리는 깊이 카메라를 사용하여 사용자(130)를 인식함으로써 계산될 수 있다. 또는, 카메라(230)가 일반적인 RGB 또는 단안 카메라인 경우에 있어서, 슬램을 통해 사용자(130)와 로봇(100) 간의 거리가 계산될 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 이동시킬 수 있고, 로봇(100)의 이동에 따라 변화하는 카메라(230)에 의해 촬영된 사용자(130)의 영상을 분석함으로써 사용자(130)와 로봇(100) 간의 거리를 계산할 수 있다. In step S910 , the robot control system 120 may use the camera 230 to recognize the user 130 and calculate a distance between the recognized user 130 and the robot 100 . The distance between the user 130 and the robot 100 may be calculated by recognizing the user 130 using a depth camera. Alternatively, when the camera 230 is a general RGB or monocular camera, the distance between the user 130 and the robot 100 may be calculated through the slam. For example, the robot control system 120 may move the robot 100 , and the user 130 by analyzing the image of the user 130 captured by the camera 230 that changes according to the movement of the robot 100 . and the distance between the robot 100 may be calculated.

단계(S920)에서, 로봇 제어 시스템(120)은 단계(S910)에서 계산된 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다. 따라서, 로봇(100)은 사용자(130)를 향해 이동할 수 있다. In step S920 , the robot control system 120 may control the movement of the robot 100 to reduce the distance calculated in step S910 . Accordingly, the robot 100 may move toward the user 130 .

한편, 로봇 제어 시스템(120)은 사용자(130)를 향해 로봇(100)이 이동하도록 로봇(100)을 제어함에 있어서, 사용자(130)의 위치(즉, 위치 좌표)를 알아낼 수 있다. 이러한 사용자(130)의 측위에는 통신 모듈(240)은 사용되지 않을 수 있다. 즉, 이 때 센서부(106)는 통신 모듈(240)을 포함하지 않을 수 있다.Meanwhile, when the robot control system 120 controls the robot 100 so that the robot 100 moves toward the user 130 , the position (ie, position coordinates) of the user 130 may be found. The communication module 240 may not be used for such positioning of the user 130 . That is, at this time, the sensor unit 106 may not include the communication module 240 .

카메라(230)에 의한 사용자(130)의 인식에 기반하여 사용자(130)의 위치 좌표를 계산하는 방법에 대해서는, 도 7 및 도 13을 참조하여 전술된 사용자(130)의 위치 좌표를 계산하는 방법이 유사하게 적용될 수 있다. 따라서, 중복되는 설명은 생략한다. For a method of calculating the position coordinates of the user 130 based on the recognition of the user 130 by the camera 230 , the method of calculating the position coordinates of the user 130 described above with reference to FIGS. 7 and 13 . This can be applied similarly. Accordingly, overlapping descriptions are omitted.

로봇 제어 시스템(120)은 카메라(230)의 센서 노이즈에 기반하여 사용자(130)와 로봇(100) 간의 거리 및 사용자(130)의 위치 좌표를 계산할 수 있다. 또한, 로봇 제어 시스템(120)은 사용자(130)와 로봇(100) 간의 거리 및 사용자(130)의 측위의 정확도/신뢰도를 높이기 위해 센서 노이즈 및 시차(카메라(230)의 각도)에 따른 신뢰도를 고려할 수 있다. The robot control system 120 may calculate the distance between the user 130 and the robot 100 and the position coordinates of the user 130 based on the sensor noise of the camera 230 . In addition, the robot control system 120 measures the reliability according to the sensor noise and parallax (angle of the camera 230) in order to increase the distance between the user 130 and the robot 100 and the accuracy / reliability of the positioning of the user 130. can be considered

이상, 도 1 내지 도 8 및 도 10 내지 도 14를 참조하여 전술된 기술적 특징에 대한 설명은, 도 9에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 8 and FIGS. 10 to 14 can be applied to FIG. 9 as it is, and thus a redundant description will be omitted.

실시예를 통해서는, 로봇(100)이 서빙 로봇인 경우, 로봇(100)이 고정된 테이블로 이동하여 서비스를 제공하는 것에 그치지 않고, 스탠딩 파티가 진행되는 공간과 같은, 지정된 테이블이 없고 사용자(130)가 자유롭게 이동할 수 있는 환경에서도, 사용자(130)를 특정하여 사용자(130)에게 서비스를 제공할 수 있다. In the embodiment, when the robot 100 is a serving robot, the robot 100 moves to a fixed table and provides a service, and there is no designated table, such as a space where a standing party is held, and there is no user ( Even in an environment in which the user 130 can freely move, a service can be provided to the user 130 by specifying the user 130 .

또한, 실시예를 통해서는, 로봇(100)이 사용자(130)에게 길 안내 서비스를 제공함에 있어서, 사용자(130)가 미리 등록된 사용자가 아니더라도 사용자(130)를 다른 사용자들로부터 특정하여 추적할 수 있다. In addition, through the embodiment, when the robot 100 provides a navigation service to the user 130 , the user 130 can be specifically tracked from other users even if the user 130 is not a pre-registered user. can

실시예의, 로봇(100)은 자율주행 이동체(자율주행 차량(택시 등), 무인비행체, 선박)로 대체될 수 있다. 즉, 전술된 실시예는, 이러한 이동체를 이용하는 사용자의 위치가 제공되지만 그 정확도가 떨어지는 경우에 있어서, 사용자의 위치를 정확하게 결정하여 해당 사용자의 위치로 자율주행 이동체를 이동시키기 위해(즉, 사용자의 위치에서 자율주행 이동체를 정차시키기 위해) 활용될 수 있다.In an embodiment, the robot 100 may be replaced with an autonomous moving object (self-driving vehicle (taxi, etc.), unmanned aerial vehicle, ship). That is, in the above-described embodiment, when the location of a user using such a moving object is provided, but the accuracy is low, in order to accurately determine the user's location and move the autonomously moving object to the user's location (that is, the user's to stop the autonomous moving vehicle at the location).

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component. For example, devices and components described in the embodiments may 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), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be permanently or temporarily embody in The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. 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 specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (10)

건물에 있어서,
상기 건물 내를 주행하며 서비스를 제공하는 적어도 하나의 로봇
이 배치되고,
상기 로봇은 로봇 제어 시스템에 의해 제어되고,
상기 로봇 제어 시스템은,
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 건물 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하고,
상기 센서부는, 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈을 포함하도록 구성되고,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서, 상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우,
상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하고, 상기 제1 거리와, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하고, 상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는, 건물.
in the building,
At least one robot that provides a service while driving within the building
is placed,
The robot is controlled by a robot control system,
The robot control system,
at least one processor implemented to execute computer-readable instructions
including,
the at least one processor,
A sensor unit of the robot for at least one of the obtained location information and the user and the user terminal to obtain the location information of the user in the building from the user terminal of the user who is provided with the service from the robot Controlling the movement of the robot to reduce the distance between the user and the robot based on the sensing from
The sensor unit includes a communication module used to measure the distance between the robot and the user terminal by communicating with a camera and the user terminal used to measure the distance between the user and the robot by recognizing the user configured to do
the at least one processor,
In controlling the movement of the robot, when a plurality of users including the user are recognized by the camera,
Based on the recognition by the camera, calculate a first distance between each user of the plurality of users and the robot, and the robot calculated based on the first distance and communication between the communication module and the user terminal Comparing a second distance between the user terminals, and among the plurality of users, a candidate user associated with the first distance having a difference from the second distance equal to or less than a predetermined value is the user provided with the service by the robot. to be determined, the building.
삭제delete 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 제2 거리를 감소시키도록 상기 로봇의 이동을 제어하되,
상기 로봇의 이동에 따라, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여, 상기 로봇의 위치 좌표 및 상기 로봇의 위치 좌표에서의 상기 로봇과 상기 사용자 단말 간의 제2 거리들의 각각으로 구성된 복수의 쌍들을 결정하고, 상기 결정된 복수의 쌍들에 기반하여 상기 사용자 단말의 위치 좌표를 계산하는, 건물.
According to claim 1,
the at least one processor,
In controlling the movement of the robot,
Controlling the movement of the robot to reduce the second distance,
According to the movement of the robot, based on the communication between the communication module and the user terminal, a plurality of pairs consisting of each of the position coordinates of the robot and the second distances between the robot and the user terminal in the position coordinates of the robot and to calculate the location coordinates of the user terminal based on the determined plurality of pairs, the building.
삭제delete 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되,
상기 로봇의 이동에 따라 상기 제2 거리가 증가함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하고, 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는, 건물.
According to claim 1,
the at least one processor,
In controlling the movement of the robot,
Controlling the movement of the robot so that the robot moves toward the candidate user,
If it is identified that the second distance increases according to the movement of the robot, another user is recognized through the camera and the other user is determined to be the user provided with the service by the robot, and the second distance is moving the robot towards the other user to be reduced.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되,
상기 로봇의 이동에 따라 상기 제2 거리와 상기 후보 사용자와 연관된 상기 제1 거리 간의 차이가 소정의 값을 초과함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하고, 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는, 건물.
According to claim 1,
the at least one processor,
In controlling the movement of the robot,
Controlling the movement of the robot so that the robot moves toward the candidate user,
When it is identified that the difference between the second distance and the first distance associated with the candidate user exceeds a predetermined value according to the movement of the robot, the other user is recognized through the camera and the other user is transferred to the robot by the robot. A building that determines that it is the user receiving the service, and moves the robot toward the other user so that the second distance is reduced.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 존재하지 않는 경우,
상기 카메라를 통해 다른 사용자를 인식하기 위해 상기 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키고, 상기 제1 방향으로의 상기 로봇의 이동 후, 상기 카메라에 의한 인식에 기반한 상기 다른 사용자와 상기 로봇 간의 제1 거리와 상기 제2 거리를 비교하는, 건물.
According to claim 1,
the at least one processor,
In controlling the movement of the robot,
When, among the plurality of users, there is no candidate user associated with the first distance whose difference from the second distance is less than or equal to a predetermined value;
In order to recognize another user through the camera, the robot is moved in a first direction independent of the direction in which the plurality of users are located, and after movement of the robot in the first direction, recognition by the camera Comparing the first distance and the second distance between the robot and the other user based on the building.
제1항에 있어서,
상기 복수의 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 복수인 경우,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하고, 상기 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하고,
상기 적어도 하나의 프로세서는,
상기 모니터링을 위해,
상기 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키고, 상기 제1 방향으로의 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는, 건물.
According to claim 1,
When there are a plurality of candidate users associated with the first distance whose difference from the second distance is less than or equal to a predetermined value among the plurality of users,
the at least one processor,
In controlling the movement of the robot,
The first distance and the second distance, which change according to the movement of the robot, are monitored, and based on a result of the monitoring, the second distance from among a plurality of candidate users is equal to or less than a predetermined value. 1 Determine the candidate user associated with the distance to be the user provided with the service by the robot,
the at least one processor,
For the monitoring,
moving the robot in a first direction independent of the direction in which the plurality of candidate users are located, and monitoring the first distance and the second distance that change according to the movement of the robot in the first direction , building.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 로봇의 이동을 제어함에 있어서,
상기 제2 거리 및 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리를 함께 감소시키도록 상기 로봇의 이동을 제어하는, 건물.
According to claim 1,
the at least one processor,
In controlling the movement of the robot,
and controlling the movement of the robot so that the second distance and the first distance in which a difference between the second distance is equal to or less than a predetermined value are reduced together.
제1항에 있어서,
상기 위치 정보는 상기 사용자가 위치하는 상기 건물 내의 층을 나타내는 정보를 포함하고, 상기 로봇은 상기 사용자가 위치하는 상기 건물 내의 층을 이동하도록 제어되는, 건물.
According to claim 1,
The location information includes information indicating a floor in the building where the user is located, and the robot is controlled to move a floor in the building where the user is located.
KR1020210076893A 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed KR102322048B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210076893D KR20210118773A (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed
KR1020210076893A KR102322048B1 (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200035014A KR102325703B1 (en) 2020-03-23 2020-03-23 Method and apparatus for controlling robot which provides users with services in a space
KR1020210076893A KR102322048B1 (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200035014A Division KR102325703B1 (en) 2020-03-23 2020-03-23 Method and apparatus for controlling robot which provides users with services in a space

Publications (1)

Publication Number Publication Date
KR102322048B1 true KR102322048B1 (en) 2021-11-04

Family

ID=78115465

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200035014A KR102325703B1 (en) 2020-03-23 2020-03-23 Method and apparatus for controlling robot which provides users with services in a space
KR1020210076893A KR102322048B1 (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed
KR1020210076893D KR20210118773A (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200035014A KR102325703B1 (en) 2020-03-23 2020-03-23 Method and apparatus for controlling robot which provides users with services in a space

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210076893D KR20210118773A (en) 2020-03-23 2021-06-14 Building in which robot providing service and autonomously driving building by locating user is disposed

Country Status (1)

Country Link
KR (3) KR102325703B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569181B1 (en) * 2022-11-21 2023-08-22 이재형 ROS-based robot integrated management system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101060988B1 (en) * 2009-01-23 2011-09-01 성균관대학교산학협력단 Apparatus and method for tracking moving objects using intelligent signal strength of Zigbee

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021010502A1 (en) * 2019-07-12 2021-01-21 엘지전자 주식회사 Robot and method for managing article by using same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101060988B1 (en) * 2009-01-23 2011-09-01 성균관대학교산학협력단 Apparatus and method for tracking moving objects using intelligent signal strength of Zigbee

Also Published As

Publication number Publication date
KR20210118580A (en) 2021-10-01
KR102325703B1 (en) 2021-11-12
KR20210118773A (en) 2021-10-01

Similar Documents

Publication Publication Date Title
JP6279125B2 (en) A method for requesting an autonomous vehicle to the current location of a mobile device and a product to request an autonomous vehicle to the current location of a computer device
KR101948728B1 (en) Method and system for collecting data
US10422645B2 (en) Electronic apparatus providing indoor navigation and method thereof
KR102096875B1 (en) Robot for generating 3d indoor map using autonomous driving and method for controlling the robot
US20200096598A1 (en) Dynamic, cognitive hybrid method and system for indoor sensing and positioning
KR102631147B1 (en) Robot for airport and method thereof
US9462423B1 (en) Qualitative and quantitative sensor fusion for indoor navigation
KR101758093B1 (en) Apparatus and method for controlling unmanned aerial vehicle
KR102042046B1 (en) An Autonomous System and Method based on Distributed Cloud Environment
CN114761894A (en) UAV balcony delivery to multi-storey buildings
KR20170032147A (en) A terminal for measuring a position and method thereof
KR102322048B1 (en) Building in which robot providing service and autonomously driving building by locating user is disposed
CN112085445A (en) Robot destination arrival determining method and device, electronic equipment and storage medium
KR20160090199A (en) Apparatus and method for measuring indoor position using wireless signal
KR102112162B1 (en) Robot for generating 3d indoor map using autonomous driving and method for controlling the robot
KR20200046161A (en) Indoor position recognition system of transpotation robot
KR102555924B1 (en) Method and apparatus for route guidance using augmented reality view
JP6347533B1 (en) LOCATION METHOD, LOCATION DEVICE, AND PROGRAM
KR101900812B1 (en) Method for controlling movement of drone using low energy bluetooth and appartus for supporting the same
KR102292052B1 (en) Method and apparatus for collecting location information of robot and sensing information of mobile terminal
KR20210003065A (en) Method and system for collecting data
US20210263531A1 (en) Mapping and simultaneous localisation of an object in an interior environment
KR20200043329A (en) Method and system for collecting data
KR101917362B1 (en) Indoor location based service system and method for visually-impaired person
KR101994542B1 (en) Pedestrian Movement Tracking Web System, Method and Recording Medium thereof

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right