KR102325703B1 - 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치 - Google Patents

공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치 Download PDF

Info

Publication number
KR102325703B1
KR102325703B1 KR1020200035014A KR20200035014A KR102325703B1 KR 102325703 B1 KR102325703 B1 KR 102325703B1 KR 1020200035014 A KR1020200035014 A KR 1020200035014A KR 20200035014 A KR20200035014 A KR 20200035014A KR 102325703 B1 KR102325703 B1 KR 102325703B1
Authority
KR
South Korea
Prior art keywords
robot
user
distance
user terminal
service
Prior art date
Application number
KR1020200035014A
Other languages
English (en)
Other versions
KR20210118580A (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 KR1020200035014A priority Critical patent/KR102325703B1/ko
Priority to KR1020210076893D priority patent/KR20210118773A/ko
Priority to KR1020210076893A priority patent/KR102322048B1/ko
Publication of KR20210118580A publication Critical patent/KR20210118580A/ko
Application granted granted Critical
Publication of KR102325703B1 publication Critical patent/KR102325703B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

공간 내에서 서비스를 제공하는 로봇에게 서비스를 제공 받는 사용자의 사용자 단말로부터 사용자의 위치 정보를 획득하고, 획득된 위치 정보와, 로봇의 센서부로부터의 센싱에 기반하여, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 로봇 제어 방법이 제공된다.

Description

공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING ROBOT WHICH PROVIDES USERS WITH SERVICES IN A SPACE}
아래의 설명은 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치에 관한 것으로, 서비스를 제공 받는 사용자를 정확하게 찾아갈 수 있도록 로봇을 제어하는 방법 및 장치에 관한 것이다.
자율 주행 로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾아가는 로봇으로, 자율 주행 차량이나, 물류, 호텔 서비스, 로봇 청소기 등 다양한 분야를 위해 개발 및 활용되고 있다.
건물의 실내와 같은 공간 내에서 로봇을 통해 사용자에게 서비스를 제공하기 위해서는, 로봇의 위치와 로봇으로부터 서비스를 제공 받는 사용자(즉, 사용자의 모바일 단말)의 위치를 정확하게 측위하는 것이 중요하다. 특히, 로봇이 직접 사용자의 위치로 이동하여 사용자에게 서비스를 제공하는 경우에 있어서, 공간 내의 여러 사용자들 중 서비스를 제공 받는 사용자가 누구인지가 정확하게 식별되어야 하며, 로봇은 이러한 식별된 사용자의 위치로 이동하도록 제어되어야 한다.
로봇이 서비스를 요청한 사용자를 식별하는 방법으로는 사용자의 얼굴(안면)을 인식하여, 서비스를 요청한 사용자를 식별하는 것이 있다. 그러나, 안면 인식을 통한 사용자의 식별은 사용자의 안면 정보가 미리 데이터베이스 등에 구축되어 있는 경우에만 가능하다. 따라서, 이러한 안면 인식을 통한 사용자의 식별은 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서는 적용되기가 어렵다.
또한, 서비스를 제공 받는 사용자는 로봇에게 자신의 정확한 위치를 전달하기가 어렵다. 5~10m의 오차를 갖는 실내 측위 기술을 이용하는 것으로는 로봇이 사용자의 위치를 정확하게 파악하기가 어렵고, 특히, 공간 내에 사용자의 수가 많은 경우, 로봇에 의한 서비스의 제공은 더 비효율적이게 된다.
따라서, 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서도 서비스를 제공 받는 사용자의 위치를 정확하게 식별할 수 있으며, 로봇에 의한 서비스의 제공을 효율화할 수 있도록 하는 방법 및 장치가 요구된다.
한국공개특허 제10-2005-0024840호는 자율 이동 로봇을 위한 경로 계획 방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동 로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
공간 내에서 서비스를 제공하는 로봇에게 서비스를 제공 받는 사용자의 사용자 단말로부터 사용자의 위치 정보를 획득하고, 획득된 위치 정보와, 로봇의 센서부로부터의 센싱에 기반하여, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 로봇 제어 방법을 제공할 수 있다.
로봇이 포함하는 카메라에 기반하여 측정된 사용자와 로봇 간의 거리 및 로봇이 포함하는 통신 모듈에 기반하여 측정된 사용자 단말과 로봇 간의 거리를 비교함으로써, 사용자의 위치를 정확하게 측위하여 해당 사용자에게 로봇을 통한 서비스를 제공할 수 있다.
일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇 또는 상기 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하는 단계 및 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는 단계를 포함하는, 로봇 제어 방법이 제공된다.
상기 센서부는 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈 중 적어도 하나를 포함할 수 있다.
상기 통신 모듈은 상기 사용자 단말과 통신하기 위한 AP (Access Point) 모듈 또는 블루투스 모듈을 포함하고, 상기 로봇과 상기 사용자 단말 간의 거리는 상기 위한 AP 모듈 또는 블루투스 모듈로부터 상기 사용자 단말에 의해 수집된 신호의 세기 및 상태 정보 중 적어도 하나에 기반하여 계산될 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 거리를 감소시키도록 상기 로봇의 이동을 제어할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 로봇의 이동에 따른, 상기 로봇의 위치 좌표 및 상기 로봇의 위치 좌표에서의 상기 로봇과 상기 사용자 단말 간의 거리로 구성된 복수의 쌍들을 결정하는 단계 및 상기 결정된 복수의 쌍들에 기반하여 상기 사용자 단말의 위치 좌표를 계산하는 단계를 포함할 수 있다.
상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우, 상기 로봇의 이동을 제어하는 단계는, 상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하는 단계, 상기 제1 거리와 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하는 단계 및 상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계를 포함할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되, 상기 로봇의 이동에 따라 상기 제2 거리가 증가함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계 및 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계를 포함할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되, 상기 로봇의 이동에 따라 상기 제2 거리와 상기 후보 사용자와 연관된 상기 제1 거리 간의 차이가 소정의 값을 초과함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계 및 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계를 포함할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 존재하지 않는 경우, 상기 카메라를 통해 다른 사용자를 인식하기 위해 상기 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계 및 상기 제1 방향으로의 상기 로봇의 이동 후, 상기 카메라에 의한 인식에 기반한 상기 다른 사용자와 상기 로봇 간의 제1 거리와 상기 제2 거리를 비교하는 단계를 포함할 수 있다.
상기 복수의 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 복수인 경우, 상기 로봇의 이동을 제어하는 단계는, 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계 및 상기 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계를 포함할 수 있다.
상기 모니터링하는 단계는, 상기 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계 및 상기 제1 방향으로의 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계를 포함할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 통신 모듈로부터 상기 사용자 단말에 의해 수집된 신호에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 거리 및 상기 카메라에 의한 인식에 기반하여 계산된 상기 사용자와 상기 로봇 간의 거리를 함께 감소시키도록 상기 로봇의 이동을 제어할 수 있다.
상기 로봇의 이동을 제어하는 단계는, 상기 카메라를 사용하여, 상기 사용자를 인식하고, 상기 인식된 사용자와 상기 로봇 간의 거리를 계산하는 단계 및 상기 계산된 거리를 감소시키도록 상기 로봇의 이동을 제어하는 단계를 포함할 수 있다.
상기 로봇 제어 방법은 상기 사용자 단말에 대해, 상기 사용자의 이동을 자제하도록 요청하는 메시지를 송신하는 단계를 더 포함할 수 있다.
상기 위치 정보는 상기 사용자가 위치하는 상기 공간 내의 층을 나타내는 정보를 포함하고, 상기 로봇은 상기 사용자가 위치하는 상기 공간 내의 층을 이동하도록 제어될 수 있다.
상기 위치 정보는 상기 사용자 단말이 위치하는 좌표를 포함하고, 상기 로봇의 이동을 제어하는 단계는, 상기 좌표로의 상기 로봇의 이동을 제어하되, 상기 센서부로부터의 센싱에 따라 결정되는 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어할 수 있다.
다른 일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서 및 센서부를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는 로봇이 제공된다.
상기 센서부는 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈 중 적어도 하나를 포함할 수 있다.
다른 일 측면에 있어서, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는, 로봇 제어 시스템이 제공된다.
로봇의 카메라에 기반하여 측정된 사용자와 로봇 간의 거리 및 로봇의 통신 모듈에 기반하여 측정된 사용자 단말과 로봇 간의 거리를 비교하여, 로봇을 통해 서비스를 제공 받을 사용자 및 해당 사용자의 위치를 결정함으로써 로봇을 통한 서비스 제공의 효율성을 높일 수 있다.
안면 인식을 통해 사용자를 식별하는 방법을 사용하는 경우처럼 사용자 정보를 미리 등록할 필요 없이, 개방된 공간에서 불특정의(미등록) 사용자에 대해 로봇을 통한 서비스를 제공할 수 있다.
서비스를 제공 받는 사용자의 주변에 장애물이 존재하거나, 사용자가 소지하는 사용자 단말의 측위 정확도가 낮은 경우에도, 해당 사용자의 위치를 정확하게 측위하여 로봇을 통한 서비스를 제공할 수 있다.
도 1은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타낸다.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.
도 3 및 도 4는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
도 5는 일 실시예에 따른, 사용자의 사용자 단말을 나타내는 블록도이다.
도 6은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 로봇의 이동을 제어함에 있어서, 통신 모듈을 사용하여 사용자 단말의 위치 좌표를 계산하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 9는 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 카메라를 사용하여 계산된 사용자와 로봇 간의 거리에 기반하여 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 10 내지 도 12는 일 예에 따른, 카메라를 사용하여 계산된 로봇과 사용자 간의 거리 및 통신 모듈을 사용하여 계산된 로봇과 사용자 단말(사용자) 간의 거리에 기반하여 로봇에 의해 서비스를 제공 받을 사용자를 결정하는 방법을 나타낸다.
도 13은 일 예에 따른, 통신 모듈을 사용하여 계산된 로봇과 사용자 단말(사용자) 간의 거리 및 로봇의 위치에 기반하여, 서비스를 제공 받는 사용자의 위치를 결정하는 방법을 나타낸다.
도 14a 내지 도 14c는 일 예에 따른, 서비스를 제공 받을 사용자의 전방에 카메라의 시야를 방해하는 장애물이 있는 경우에 있어서, 로봇에 의해 서비스를 제공 받을 사용자를 결정하는 방법을 나타낸다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타낸다.
도 1에서는 로봇 제어 시스템(120)과, 로봇 제어 시스템(120)에 의한 제어를 통해 제어되는 로봇(100)이 도시되었다. 로봇(100)은 예컨대, 건물의 실내 등과 같은 공간 내에서 로봇 제어 시스템(120)에 의한 제어에 따라 서비스를 제공하는 서비스 로봇일 수 있다. 공간은 실내의 공간으로 한정되지 않고 실외의 공간을 나타낼 수도 있다. 말하자면, 공간은 범위가 특정되어 있는 실내 또는 실외의 공간이나 실내 및 실외가 함께 포함된 공간일 수 있다.
공간은 예컨대, 로봇(100)을 통해, 물건의 배달이 수행되는 건물(회사 등), 음식물의 배달이 수행되는 카페, (스탠딩) 파티장 등일 수 있다.
로봇(100)은 이와 같은 공간을 주행함으로써 공간 내의 사용자 단말(110)의 사용자(130)에게 서비스를 제공할 수 있다. 사용자 단말(110)은 사용자가 소지하는 모바일 단말일 수 있다. 로봇(100)은 사용자(130)와 연관된 사용자 단말(110)의 위치를 파악하거나 사용자들 중 서비스를 제공 받을 사용자(130)를 직접 인식하는 것을 통해 사용자(130)의 위치로 이동하여 사용자(130)에게 서비스를 제공할 수 있다.
한편, 로봇(100)은 서비스를 제공함에 있어서 요구되는 구체적인 연산을 수행하지 않고, 이를 수행하기 위한 센싱 데이터를 로봇 제어 시스템(120)으로 제공할 뿐이라는 점에서, 브레인리스 로봇에 해당할 수도 있다.
로봇(100)이 제공하는 서비스는 공간 내에서 음료와 같은 음식물이나 공산품과 같은 상품 또는 택배를 배달하는 배달 서비스를 포함할 수 있다. 즉, 로봇(100)은 배달 서비스 로봇 또는 서빙 서비스 로봇일 수 있다. 또한, 로봇(100)이 제공하는 서비스는 사용자(130)를 공간 내의 특정한 위치로 안내하는 길 안내 서비스를 포함할 수 있다. 또한, 로봇(100)이 제공하는 서비스는 경비 서비스, 이벤트/뉴스 등의 정보 제공 서비스, 및 공간 내에 위치된 식물들에 대한 관리 서비스를 포함할 수 있다.
실시예에 있어서, 로봇(100)은, 기 등록되거나 데이터베이스 내에 구축된, 사용자(130) 및 다른 사용자들(140)을 비롯한 사용자들에 대한 정보(예컨대, 사용자들 각각의 안면 정보)를 사용하지 않고, 서비스를 제공 받을 사용자(130)를 다른 사용자들(140)과 구분하여 식별할 수 있고, 식별된 사용자(130)에게 서비스를 제공할 수 있다.
사용자(130)는 사용자 단말(110)을 소지한 사람으로, 공간 내에서 로봇(100)으로부터 서비스를 제공 받는 대상일 수 있다. 예컨대, 사용자(130)는 도시된 것처럼, 로봇(100)으로부터 로봇(100)에 탑재된 음료 또는 택배물과 같은 물건을 배달 받는 사용자일 수 있다.
아래에서, 도 1을 참조하여, 공간 내에서 로봇(100)의 이동을 제어하여 서비스를 요청한 사용자(130)에게 서비스를 제공하는 방법에 대해 더 자세하게 설명한다.
도시된 실시예에서처럼, 로봇(100)은 탑재된 음료 또는 택배물과 같은 물건을 사용자(130)에게 배달하는 서비스를 제공할 수 있다. 사용자(130)는 사용자 단말(110)을 조작함으로써 로봇(100)에 의한 서비스의 제공을 요청할 수 있다. 예컨대, 사용자(130)는 사용자 단말(110)에 설치된 어플리케이션을 통해 로봇(100)에 의한 서비스의 제공을 요청할 수 있다.
사용자(130)에 의해 로봇(100)에 의한 서비스의 제공이 요청되면, 해당 서비스의 요청 및 사용자 단말(110)의 위치 정보(즉, 사용자의 위치 정보)는 로봇 제어 시스템(120)(또는, 실시예에 따라서는 로봇(100))으로 전달될 수 있다.
로봇(100)은 로봇 제어 시스템(120)에 의한 제어에 따라, 수신된 사용자 단말(110)의 위치 정보에 따른 공간 내의 위치로 이동할 수 있다. 이 때, 로봇(100)은 로봇(100)에 포함된 센서부를 통해 사용자(130)와 로봇(100) 간의 거리를 식별할 수 있고, 사용자(130)와 로봇(100) 간의 거리가 감소되도록 이동이 제어될 수 있다. 예컨대, 로봇(100)은 사용자 단말(110)로부터 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부로부터의 센싱에 기반하여, 사용자(130)와 로봇(100) 간의 거리를 감소시키도록 이동이 제어될 수 있다.
즉, 로봇(100)은 사용자 단말(110)로부터 획득된 위치 정보에 기반하여 해당 위치 정보가 나타내는 위치로 이동할 수 있고, 센서부에 의한 센싱에 기반하여 사용자(130) 및 다른 사용자들(140)을 비롯한 사용자들 중에서 서비스를 제공 받는 사용자(130)를 결정할 수 있으며, 해당 사용자(130)에게 서비스를 제공할 수 있다.
사용자 단말(110)로부터 획득되는 위치 정보는 공간 내에서의 사용자 단말(110)의 위치를 대략적으로 나타내는 것일 수 있다. 예컨대, 상기 위치 정보는 GPS를 통해 획득되는 공간 내에서의 사용자 단말(110)의 위치를 나타낼 수 있다. 또는/추가적으로, 상기 위치 정보는 실내 측위 기술에 기반하여 획득된 공간 내에서의 사용자 단말(110)의 위치를 나타낼 수 있다. 이러한 위치 정보는 사용자 단말(110)이 공간 내의 블루투스 모듈 및/또는 AP (Access Point)와 통신함으로써 결정된 위치이거나, 사용자 단말(110)이 사용하는 셀룰러 네트워크에 관한 정보(예컨대, LTE 네트워크 정보 또는 5G 네트워크 정보)에 기반하여 결정된 위치를 나타낼 수 있다. 위치 정보는 위치 좌표를 포함할 수 있다.
이와 같은 사용자 단말(110)로부터 획득되는 위치 정보는 상대적으로 정확도가 낮을 수 있다. 예컨대, 위치 정보는 5m 내지 10m 내외의 오차를 가지는 것으로서, 공간 내에서의 사용자(130) 또는 사용자 단말(110)의 정확한 측위에는 적합하지 않을 수 있다.
실시예에서, 로봇(100)은 사용자 단말(110)로부터 획득되는 이러한 위치 정보에 기반하여 사용자(130)를 향해 이동하되, 센서부에 의한 사용자(130) 및/또는 사용자 단말(110)에 대한 센싱에 기반하여 서비스를 제공 받는 사용자(130)를 다른 사용자들(140)과는 구분하여 특정할 수 있고, 특정된 사용자(130)에게 서비스를 제공할 수 있다.
따라서, 실시예를 통해서는, 로봇(100)이 개방된 공간에서 (미리 등록되지 않은) 불특정의 사용자에게 서비스를 제공함에 있어서도, 서비스를 제공 받는 사용자(130)를 정확하게 특정하여 특정된 사용자(130)에게 서비스를 제공할 수 있다.
로봇(100)의 센서부에 의한 센싱에 따라, 사용자(130)(또는 사용자 단말(110))과 로봇(100) 간의 거리가 계산되는 방법 및 사용자들 중 서비스를 제공 받는 사용자(130)가 결정되는 방법과, 이에 따라 로봇(100)이 제어되는 구체적인 방법에 대해서는 후술될 도 2 내지 도 14를 참조하여 더 자세하게 설명된다.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.
전술한 것처럼, 로봇(100)은 공간 내에서 사용자(130)에게 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다.
로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 제어부(104), 구동부(108), 센서부(106) 및 통신부(102)를 포함할 수 있다. 또한, 로봇(100)은 도 1을 참조하여 전술한 것처럼 물건을 탑재하기 위한 탑재부를 포함할 수 있다.
제어부(104)는 로봇(100)에 내장된 물리적인 프로세서일 수 있으며, 경로 계획 처리 모듈(211), 맵핑 처리 모듈(212), 구동 제어 모듈(213), 로컬리제이션 처리 모듈(214), 데이터 처리 모듈(215) 및 서비스 처리 모듈(216)을 포함할 수 있다. 이 때, 경로 계획 처리 모듈(211), 맵핑 처리 모듈(212) 및 로컬리제이션 처리 모듈(214)은 로봇 제어 시스템(120)과 통신이 이루어지지 않는 경우에도 로봇(100)의 자율 주행이 이루어질 수 있도록 하기 위해 실시예에 따라 선택적으로 제어부(104)에 포함되는 것일 수 있다.
통신부(102)는 로봇(100)이 다른 장치(다른 로봇, 사용자 단말(110), 서버(115) 또는 로봇 제어 시스템(120) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(102)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
구동부(108)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비를 포함할 수 있다. 예컨대, 구동부(108)는 바퀴를 포함할 수 있다.
센서부(106)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성일 수 있다. 센서부(106)는 고가의 센싱 장비(스캔 장비)를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. 센서부(106)는 주행 방향에 위치하는 장애물/사람을 식별하기 위한 센서를 포함할 수 있다.
또한, 센서부(106)는 카메라(230)를 포함할 수 있다. 카메라는 로봇(100)의 주위에 위치하는 사용자(130)를 인식할 수 있도록 배치될 수 있다. 카메라는 RGB 카메라 또는 단안 카메라일 수 있다. 또는, 카메라(230)는 깊이(depth) 카메라를 포함할 수 있다. 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(130)에 의해 인식된 사용자(130)와 로봇(100) 간의 위치 관계를 결정할 수 있다. 카메라(230)는 사용자를 인식함으로써 사용자와 로봇(100) 간의 거리를 측정하기 위해 사용될 수 있다.
예컨대, 로봇(100)(또는, 로봇 제어 시스템(120))은 사용자(130)의 영상으로부터 로봇(100)과 사용자(130) 간의 거리 및 로봇(100)에 대한 사용자(130)의 방향을 결정할 수 있다. 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(130)에 의해 촬영된 사용자(130)의 영상에 기반하여 사용자(130)를 인식하고, 사용자(130)를 추적할 수 있다. 카메라(130)는 복수 개일 수 있고, 예컨대, 로봇(100)의 전방 및 후방에 각각 설치될 수도 있다. 카메라(230)에 의해 다른 사용자들(140)이 인식되는 경우에도 다른 사용자들(140)의 각각에 대해 유사한 설명이 적용될 수 있다. 말하자면, 로봇(100)(또는, 로봇 제어 시스템(120))은 카메라(230)의 화각 범위에 존재하는 사용자들의 각각과 로봇(100) 간의 위치 관계를 결정할 수 있다.
또한, 센서부(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)에서 수행될 수도 있다.
통신 모듈(240)은 사용자 단말(110)과 일대일로 통신함으로써, 로봇(100)과 사용자 단말(110) 간의 거리를 지속적으로 수집할 수 있다.
실시예에 따라, 통신 모듈(240)은 NFC 모듈 또는 비콘과 같은 사용자 단말(110)과의 근거리 무선 통신을 위한 장치를 포함할 수도 있다.
한편, 도시된 것과는 달리 통신 모듈(240)은 전술된 통신부(102)에 포함될 수도 있다.
제어부(104)의 처리 예시로서, 제어부(104)의 데이터 처리 모듈(215)은 센서부(106)로부터의 센싱 값(예컨대, 센서들로부터의 출력 값)을 포함하는 센싱 데이터를 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송할 수 있다. 로봇 제어 시스템(120)은 공간 내의 (실내) 지도를 사용하여 생성된 경로 데이터를 로봇(100)으로 전송할 수 있다. 상기 경로 데이터는 로봇(100)이 서비스를 제공하기 위한 경로를 나타내는 데이터일 수 있다. 경로 데이터는 통신부(102)를 통해 데이터 처리 모듈(215)로 전달될 수 있다. 데이터 처리 모듈(215)은 경로 데이터를 바로 구동 제어 모듈(213)로 전달할 수 있고, 구동 제어 모듈(213)은 경로 데이터에 따라 구동부(108)를 제어하여 로봇(100)의 자율 주행을 제어할 수 있다.
로봇(100)과 로봇 제어 시스템(120)이 통신할 수 없는 경우, 데이터 처리 모듈(215)은 센싱 데이터를 로컬리제이션 처리 모듈(214)로 전송하고, 경로 계획 처리 모듈(211)와 맵핑 처리 모듈(212)을 통해 경로 데이터를 생성하여 로봇(100)의 자율 주행을 직접 처리할 수도 있다. 예컨대, 제어부(104)는 경로 계획 처리 모듈(211)과 맵핑 처리 모듈(212)을 사용하여 지도로부터 서비스를 제공할 위치를 식별할 수 있고, 식별된 위치에서 서비스를 제공하기 위한 경로를 나타내는 데이터로서의 경로 데이터를 생성할 수 있고, 이러한 경로 데이터에 따른 경로를 주행하도록 로봇(100)의 자율 주행을 제어할 수 있다.
로봇(100)은 클라우드 상에 저장된 지도를 사용하여 서비스를 제공하기 위한 위치로 자율 주행을 통해 이동할 수 있고, 주행 시 장애물 회피, 문턱 넘기, 엘레베이터 승하차, 비상 정지 등을 수행하도록 제어될 수 있다.
로봇(100)은 공간 내의 지도를 생성하기 위해 사용되는 맵핑 로봇과는 구별되는 것일 수 있다. 이 때, 로봇(100)은 고가의 센싱 장비(스캔 장비)를 포함하지 않기 때문에 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서의 출력값을 이용하여 자율 주행을 처리할 수 있다. 한편, 로봇(100)이 기존에 로봇 제어 시스템(120)과의 통신을 통해 자율 주행을 처리한 적이 있다면, 로봇 제어 시스템(120)으로부터 기존에 수신한 경로 데이터가 포함하는 맵핑 데이터 등을 더 활용함으로써 저가의 센서들을 이용하면서도 보다 정확한 자율 주행이 가능하게 될 수 있다.
다만, 실시예에 따라 로봇(100)은 상기 맵핑 로봇을 겸할 수도 있다.
서비스 처리 모듈(216)은 로봇 제어 시스템(120)을 통해 수신되는 명령을 통신부(102)를 통해 또는 통신부(102)와 데이터 처리 모듈(215)을 통해 전달받을 수 있다. 제어부(104)는 전달된 명령에 기반하여 사용자(130)에게 서비스를 제공할 수 있다.
또는, 로봇(100)은 서비스 처리 모듈(216) 및 데이터 처리 모듈(215)에 의해 사용자(130)에게 서비스를 제공할 수 있다. 말하자면, 제어부(104)는 전술한 것처럼, 사용자(130)에게 서비스를 제공하기 위한 연산을 직접 처리할 수도 있다.
구동부(108)는 로봇(100)의 이동을 위한 장비뿐만 아니라, 로봇(100)이 제공하는 서비스와 관련된 장비를 더 포함할 수 있다. 예컨대, 구동부(108)는 전술된 탑재부와, 서비스와 관련된 물건을 파지하거나 이동시키기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다.
또한, 로봇(100)은 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이, 또는 LED 등을 더 포함할 수도 있다. 서비스 처리 모듈(216)은 제공해야 할 서비스를 위한 구동 명령을 구동 제어 모듈(213)로 전달할 수 있고, 구동 제어 모듈(213)은 구동 명령에 따라 로봇(100)이나 구동부(108)가 포함하는 구성을 제어하여 서비스가 제공될 수 있도록 할 수 있다.
아래에서, 로봇(100)에 의한 사용자(130)에의 서비스 제공 방법의 예시를 설명한다.
로봇(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일 수 있다.
로봇(100)은 지속적으로 획득되는 로봇(100)과 사용자 단말(110) 간의 거리에 기반하여 능동적으로 이동함으로써, 해당 거리를 감소시키도록 제어될 수 있다. 따라서, 로봇(100)은 사용자(130)에게 점점 접근할 수 있다.
또한, 로봇(100)은 카메라(230)를 통해 사용자(130)를 포함하는 사용자들을 인식할 수 있고, 카메라(230)를 사용하여 사용자들 각각과 로봇(100) 간의 거리를 계산할 수 있다. 로봇(100)은 카메라(230)에 기반하여 계산된 사용자와의 거리와 통신 모듈(240)에 기반하여 계산된 사용자 단말(110)과의 거리를 비교함으로써, 카메라(230)에 의해 인식된 사용자들 중 서비스를 요청한 사용자(130)를 결정할 수 있다. 로봇(100)은 결정된 사용자(130)에게 서비스를 제공하도록 제어될 수 있다.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 3 및 도 4는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
로봇 제어 시스템(120)은 전술된 로봇(100)의 공간 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 사용자(130)에 대한 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 로봇(100)이 복수인 경우 복수의 로봇들 각각의 이동 및 로봇들 각각의 서비스의 제공을 제어할 수 있다. 로봇 제어 시스템(120)은 로봇(100)과의 통신을 통해, 로봇(100)이 사용자(130)에 대한 서비스를 제공하기 위한 경로를 설정할 수 있고, 이러한 경로에 관한 정보를 로봇(100)에게 전달할 수 있다. 로봇(100)은 수신된 경로에 관한 정보에 따라 주행할 수 있고, 사용자(130)에 대한 서비스를 제공할 수 있다. 로봇 제어 시스템(120)은 상기 설정된 경로에 따라 로봇이 이동(주행)하도록 로봇(100)의 이동을 제어할 수 있다.
로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 건물 내 또는 건물 외부에 위치하는 서버로 구현될 수 있다.
로봇 제어 시스템(120)은 도시된 것처럼, 메모리(330), 프로세서(320), 통신부(310) 및 입출력 인터페이스(340)를 포함할 수 있다.
메모리(330)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(330)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(330)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(330)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(310)를 통해 메모리(330)에 로딩될 수도 있다.
프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(330) 또는 통신부(310)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 이러한 프로세서(320)는 도 4에서 도시된 것과 같은 구성들(410 내지 440)을 포함할 수 있다.
프로세서(320)의 구성들(410 내지 440) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 440)에 대해서는 도 4를 참조하여 후술한다.
통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.
실시예들에 따라 로봇 제어 시스템(120)은 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.
로봇 제어 시스템(120)은, 로봇(100)이 서비스를 제공함에 있어서 요구되는 연산을 (즉, 이러한 연산을 로봇(100)이 수행하지 않는 경우, 예컨대, 로봇(100)이 브레인리스 로봇인 경우) 수행할 수 있다.
도 4를 참조하여 프로세서(320)의 구성들(410 내지 440)에 대해 더 자세하게 설명한다. 프로세서(320)는 도시된 것처럼, 맵 생성 모듈(410), 로컬리제이션 처리 모듈(420), 경로 계획 처리 모듈(430) 및 서비스 운영 모듈(440)을 포함할 수 있다. 이러한 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)이 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다.
맵 생성 모듈(410)은 건물 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 건물의 내부)에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 지도를 생성하기 위한 구성요소일 수 있다.
이 때, 로컬리제이션 처리 모듈(420)은 로봇(100)으로부터 네트워크를 통해 수신되는 센싱 데이터와 맵 생성 모듈(410)을 통해 생성된 목표 시설물의 실내 지도를 이용하여 목표 시설물(건물 또는 건물의 층) 내부에서의 로봇(100)의 위치를 결정할 수 있다.
경로 계획 처리 모듈(430)은 상술한 로봇(100)으로부터 수신된 센싱 데이터와 생성된 실내 지도를 이용하여 로봇(100)의 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 예컨대, 경로 계획 처리 모듈(430)은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇 제어 시스템(120)은 생성된 경로에 관한 정보를 네트워크를 통해 로봇(100)으로 전송할 수 있다. 일례로, 경로에 관한 정보는 로봇(100)의 현재 위치를 나타내는 정보, 현재 위치와 실내 지도를 맵핑하기 위한 정보, 그리고 경로 계획 정보를 포함할 수 있다. 경로 계획 처리 모듈(430)은 로봇(100)을 위한 경로를 생성하여 로봇(100)에 대해 설정할 수 있다. 로봇 제어 시스템(120)은 이러한 설정된 경로에 따라(즉, 설정된 경로를 따라) 로봇(100)이 이동하도록 로봇(100)의 이동을 제어할 수 있다.
생성된 경로는 공간 내에서 로봇(100)이 서비스를 제공하기 위해 주행하는 경로일 수 있다. 경로 계획 처리 모듈(430)은 지도로부터 공간 내에서 서비스를 제공할 위치를 식별할 수 있고, 해당 위치에서 서비스를 제공할 수 있도록 하는 경로를 생성할 수 있다.
서비스 운영 모듈(440)은 로봇(100)이 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 건물을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 건물 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈(440)은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다.
전술된 로봇(100)의 서비스를 제공하기 위한 자율 주행에 있어서 사용되는 공간의 (실내) 지도의 생성과, 이러한 지도에서의 로봇(100)에 대한 측위는 로봇 제어 시스템(120) 또는 별개의 서버가 저장 및 관리하는 측위 데이터에 기반하여 이루어질 수 있다.
실시예에서 로봇(100)에 대한 공간 내에서의 측위는 전술된 사용자 단말(110)에 대한 공간 내에서의 측위에 비해 더 정확할 수 있다. 예컨대, 사용자 단말(110)에 대한 공간 내에서의 측위는 5m 내지 10m 내외의 오차를 가짐에 비해, 로봇(100)에 대한 공간 내에서의 측위는 약 1m 이내의 오차를 가질 수 있다.
전술한 것처럼, 로봇(100)은, 로봇 제어 시스템(120)에 의한 제어에 따라, 사용자 단말(110)로부터 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부(106)로부터의 센싱에 기반하여, 사용자(130)와 로봇 간의 거리를 감소시키도록 사용자(130)를 향해 이동할 수 있다.
이상 도 1및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3 및 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 5는 일 실시예에 따른, 사용자의 사용자 단말을 나타내는 블록도이다.
도 5를 참조하여, 전술된 사용자 단말(110)에 대해 더 자세하게 설명한다.
사용자 단말(110)은 PC(personal computer), 노트북 컴퓨터(laptop computer), 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer), 사물 인터넷(Internet Of Things) 기기 등을 포함할 수 있는 여하한 단말 장치 또는 전자 장치를 의미할 수 있다. 사용자 단말(110)은 사용자(130)가 소지하고 있거나 착용하고 있는 장치일 수 있다.
예컨대, 사용자 단말(110)은, 사용자 단말(110)에 설치된 어플리케이션을 통해, 로봇(100)에 의한 서비스의 제공을 요청할 수 있고, 이러한 요청과 함께 공간 내에서의 사용자 단말(110)의 위치 정보를 생성하여 로봇(100)(또는 로봇 제어 시스템(120))으로 송신할 수 있다.
사용자 단말(110)은 통신부(510) 및 프로세서(520)를 포함할 수 있다.
통신부(510)는 사용자 단말(110)이 로봇(100) 또는 로봇 제어 시스템(120)과 통신하기 위한 장치일 수 있다. 말하자면, 통신부(510)는 이러한 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 사용자 단말(110)의 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다. 사용자 단말(110)은 통신부(510)를 통해 전술된 로봇(100)의 통신 모듈(240)과 통신할 수 있다. 일례로, 사용자(130)가 사용자 단말(110)을 통해 통신 모듈(240)에 대한 접속을 승인하는 경우에만, 통신부(510)는 통신 모듈(240)과 통신할 수 있다.
프로세서(520)는 사용자 단말(110)의 구성 요소들을 관리할 수 있고, 사용자 단말(110)이 사용하는 프로그램 또는 어플리케이션을 실행할 수 있다. 예컨대, 프로세서(520)는, 로봇(100)에 의한 서비스의 제공의 요청을 생성 및 송신하기 위한 어플리케이션/프로그램을 설치 및 실행할 수 있고, 상기 프로그램 또는 어플리케이션의 실행과 데이터의 처리 등에 필요한 연산을 수행할 수 있다. 프로세서(520)는 사용자 단말(110)의 적어도 하나의 프로세서 또는 프로세서 내의 적어도 하나의 코어(core)일 수 있다. 프로세서(520)는 로봇(100)의 통신 모듈(240)로부터 수집된 신호에 기반하여 로봇(100)과 사용자 단말(110) 간의 거리를 계산할 수 있다.
사용자 단말(110)은 도시되지는 않았으나 메모리를 포함할 수 있다. 메모리는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(510)를 통해 메모리에 로딩될 수도 있다.
프로세서(520)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리 또는 통신부(510)에 의해 프로세서(520)로 제공될 수 있다. 예를 들어, 프로세서(520)는 메모리에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
또한, 사용자 단말(110)은 도시되지는 않았으나 디스플레이를 포함할 수 있다. 디스플레이는 사용자 단말(110)의 사용자(130)가 입력한 데이터를 출력하거나, 사용자 단말(110)에서 실행된 어플리케이션이 출력하는 데이터를 표시할 수 있다. 디스플레이는 터치 스크린을 포함할 수 있다.
이상, 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서, 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)의 구성(예컨대, 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)의 프로세서)들에 의해 수행되는 동작은 설명의 편의상 로봇(100), 로봇 제어 시스템(120) 또는 사용자 단말(110)에 의해 수행되는 동작으로 설명될 수 있다.
또한, 후술될 상세한 설명에서 로봇 제어 시스템(120)에 의해 수행되는 것으로 설명되는 단계들의 적어도 일부와 로봇 제어 시스템(120)에 의해 수행되는 동작들의 적어도 일부는 로봇(100)에 의해서도 수행될 수 있다. 그 반대 또한 마찬가지이다. 이에 관해서는 중복되는 설명은 생략하는 경우가 있다.
도 6은 일 실시예에 따른, 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법을 나타내는 흐름도이다.
단계(S610)에서, 로봇 제어 시스템(120)은 로봇(100)으로부터 서비스를 제공 받는 사용자(130)의 사용자 단말(110)로부터, 공간 내에서의 사용자(130)의 위치 정보를 획득할 수 있다. 사용자(130)는, 예컨대, 사용자(130)는 사용자 단말(110)에 설치된 어플리케이션을 통해 로봇(100)에 의한 서비스의 제공을 요청할 수 있다. 사용자(130)에 의해 로봇(100)에 의한 서비스의 제공이 요청되면, 해당 서비스의 요청 및 사용자 단말(110)의 위치 정보(즉, 사용자의 위치 정보)가 로봇 제어 시스템(120)(또는, 실시예에 따라서는 로봇(100))으로 전달될 수 있다. 단계(S610)에서 획득되는 위치 정보는 사용자 단말(110)이 위치하는 것으로 결정된 좌표를 포함할 수 있다. 해당 위치 정보는 공간 내에서의 사용자 단말(110)의 위치를 대략적으로 나타내는 것일 수 있다.
단계(S620)에서, 로봇 제어 시스템(120)은 단계(S610)에서 획득된 위치 정보와, 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 로봇(100)의 센서부(106)로부터의 센싱에 기반하여, 사용자(130)와 로봇(100) 간의 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다.
로봇 제어 시스템(120)은 획득된 위치 정보가 포함하는 좌표로의 로봇(100)이 이동하도록 로봇(100)을 제어할 수 있다. 이 때, 로봇 제어 시스템(120)은 사용자(130) 및 사용자 단말(110) 중 적어도 하나에 대한 센서부(106)로부터의 센싱에 따라 결정되는 사용자(130)(또는 사용자 단말(110))와 로봇(100) 간의 거리를 감소시키도록 로봇(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으로부터 추정될 수도 있다.
실시예에 의해, 로봇(100)은 사용자 단말(110)로부터 획득되는 대략적인 위치 정보가 나타내는 위치로 이동하는 것에 그치지 않고, 센서부(106)에 의한 센싱을 통해 계산된 사용자(130)(또는 사용자 단말(110))와 로봇(100) 간의 거리에 기반하여 사용자(130)를 정확하게 특정할 수 있다. 따라서, 로봇(100)은 정확하게 특정된 사용자(130)의 위치에서 서비스를 제공할 수 있다.
한편, 단계(S615)에서처럼, 로봇 제어 시스템(120)은 사용자 단말(110)에 대해, 사용자(130)의 이동을 자제하도록 요청하는 메시지를 송신할 수 있다. 말하자면, 서비스를 요청한 사용자(130)가 이동하거나 위치를 이탈하지 않도록 요청하는 메시지가 사용자 단말(110)에 대해 송신될 수 있다. 메시지는 예컨대, 팝업 창 또는 알림 바 등의 UI를 통해 사용자 단말(110)에서 출력될 수 있다.
단계(S615)에서의 메시지의 송신은 사용자 단말(110)로부터 서비스 제공의 요청이 수신된 후에 이루어질 수 있다.
사용자(130)는 주기적으로 또는 이동이 있을 때마다 사용자 단말(110)을 통해 (단계(S610)에서의) 위치 정보를 로봇 제어 시스템(120)으로 송신할 수 있다. 로봇 제어 시스템(120)은 이러한 갱신된 위치 정보에 따라 로봇(100)의 이동을 제어할 수 있다.
한편, 단계(S610)에서 사용자 단말(110)로부터 획득되는 위치 정보는 사용자(130)(사용자 단말(110))가 위치하는 공간 내의 층을 나타내는 정보를 포함할 수 있다. 이에 따라, 단계(S620)에서 로봇(100)은 사용자(130)가 위치하는 공간 내의 층(즉, 층을 나타내는 정보에 따른 층)을 이동하도록 제어될 수 있다. 로봇(100)이 해당 층이 아닌 다른 층에 위치하는 경우 로봇(100)은 엘리베이터 등에 탑승하는 것을 통해 사용자(130)가 위치하는 공간 내의 층으로 이동할 수 있다.
사용자(130)가 로봇(100)과 공간 내의 다른 층에 위치하는 경우에도 센서부(106)에 의한 센싱에 따른 사용자(130)와 로봇(100) 간의 거리는 가까운 것으로 결정될 수 있다. 상기와 같이, 사용자 단말(110)로부터 획득되는 위치 정보가 사용자(130)가 위치하는 공간 내의 층을 나타내는 정보를 포함함으로써, 로봇(100)이 사용자(130)가 위치하는 층과 다른 층을 이동하는 것을 방지할 수 있다.
이상, 도 1 내지 도 5를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 7은 일 예에 따른, 로봇의 이동을 제어함에 있어서, 통신 모듈을 사용하여 사용자 단말의 위치 좌표를 계산하는 방법을 나타내는 흐름도이다.
로봇 제어 시스템(120)은 사용자(130)를 향해 로봇(100)이 이동하도록 로봇(100)을 제어함에 있어서, 사용자(130)의 위치를 알아낼 수 있다.
후술될 단계들(S710 및 S720)에 의한 사용자(130)의 측위에는 카메라(230)는 사용되지 않을 수 있다. 즉, 이 때 센서부(106)는 카메라(230)를 포함하지 않을 수 있다.
단계(S710)에서, 로봇 제어 시스템(120)은 로봇(100)의 이동에 따른, 로봇(100)의 위치 좌표 및 해당 로봇(100)의 위치 좌표에서의 로봇(100)과 사용자 단말(110) 간의 거리로 구성된 복수의 쌍들을 결정할 수 있다.
로봇(100)과 사용자 단말(110) 간의 거리는 전술된 센서부(106)의 통신 모듈(240)을 사용하여 계산된 것으로서, 통신 모듈(240)과 사용자 단말(110)의 통신에 따라, 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 것일 수 있다.
로봇(100)의 위치 좌표는 공간 내에서의 로봇(100)에 대한 측위의 결과로서 로봇 제어 시스템(120)이 이미 알고 있는 값일 수 있다.
단계(S720)에서, 로봇 제어 시스템(120)은 단계(S710)에서 결정된 복수의 쌍들에 기반하여 사용자 단말(110)의 위치 좌표를 계산할 수 있다. 계산된 사용자 단말(110)의 위치 좌표는 사용자(130)의 위치 좌표에 대응할 수 있다.
로봇 제어 시스템(120)은 복수의 위치들에서의 로봇(100)의 위치 좌표들과 로봇(100)과 사용자 단말(110) 간의 거리를 알고 있으므로 사용자 단말(110)의 위치 좌표를 계산할 수 있다. 사용자 단말(110)의 위치 좌표는 예컨대, 삼각측량법 또는 삼변측량법에 의해 계산될 수 있다.
관련하여, 도 13은 일 예에 따른, 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110)(사용자(130)) 간의 거리 및 로봇(100)의 위치에 기반하여, 서비스를 제공 받는 사용자(130)의 위치를 결정하는 방법을 나타낸다.
도시된 사용자 A는 사용자(130)에 대응할 수 있다.
도시된 것처럼, 로봇(100)은 <A>, <B> 및 <C>를 이동할 수 있고, 각 지점에서의 로봇(100)의 위치 좌표와 해당 위치 좌표에서의 사용자 A와의 거리(통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리)의 쌍을 사용하여, 사용자 A의 위치 좌표가 계산될 수 있다.
예컨대, <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을 사용하여 계산할 수 있다.
[수학식 1]
Figure 112020030265226-pat00001
실시예에 의해서는, 서비스를 제공 받는 사용자(130)의 위치가 정확하게 파악될 수 있는 바, 로봇(100)이 정확하게 사용자(130)에게 이동하여 서비스를 제공할 수 있다.
이상, 도 1 내지 도 6을 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 및 도 13에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 8은 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 사용자와 로봇 간의 거리를 감소시키도록 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 8을 참조하여, 센서부(106)의 카메라(230)를 사용하여 계산된 로봇(100)과 사용자(130) 간의 거리 및 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110)(사용자(130)) 간의 거리에 기반하여 로봇(100)에 의해 서비스를 제공 받을 사용자(130)를 결정하는 방법이 설명된다.
단계(S810)에서, 로봇 제어 시스템(120)(또는 로봇(100))은 카메라(230)에 의한 인식에 기반하여, 사용자(들)과 로봇(100) 간의 제1 거리를 계산할 수 있다. 사용자와 로봇(100) 간의 제1 거리는 예컨대, 깊이(depth) 카메라를 사용하여 계산될 수 있다.
예컨대, 카메라(230)에 의해 서비스를 제공 받는 사용자(130)를 포함하는 복수의 사용자들이 인식되는 경우, 로봇 제어 시스템(120)은 카메라(230)에 의한 인식에 기반하여 복수의 사용자들의 각 사용자와 로봇(100) 간의 제1 거리를 계산할 수 있다. 로봇 제어 시스템(120)은 카메라(230)의 화각 범위 내에 존재하는 사용자들의 각각에 대해 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다.
단계(S820)에서, 로봇 제어 시스템(120)은 단계(S810)에서 계산된 제1 거리와 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 로봇(100)과 사용자 단말(110) 간의 제2 거리를 비교할 수 있다. 말하자면, 로봇 제어 시스템(120)은 카메라(230)를 사용하여 계산된 로봇(100)과 각 사용자 간의 거리(제1 거리)와, 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리(제2 거리)를 비교할 수 있다.
단계(S830)에서, 로봇 제어 시스템(120)은 카메라(230)를 통해 인식된 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 존재하는지 여부를 판정할 수 있다.
상기 소정의 값은 카메라(230)를 사용하여 계산된 로봇(100)과 각 사용자 간의 거리 및 통신 모듈(240)을 사용하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리가 가질 수 있는 오차 범위를 나타낼 수 있다.
단계(S840)에서, 로봇 제어 시스템(120)은 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 복수인지 여부를 판정할 수 있다.
단계(S840)에서의 판정 결과가 복수가 아닌 경우, 단계(S850)에서, 로봇 제어 시스템(120)은 카메라(230)를 통해 인식된 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다.
말하자면, 로봇 제어 시스템(120)은 상기 제2 거리와 동일한(또는 오차 범위에 있는) 제1 거리를 갖는 사용자를 서비스를 제공 받는 사용자(130)로서 결정할 수 있다.
단계(S860)에서, 로봇 제어 시스템(120)은 단계(S850)에서 결정된 후보 사용자로 로봇(100)이 이동하도록 로봇을 제어할 수 있다.
관련하여, 도 10은, 일 예에 따른, 상기 제1 거리 및 상기 제2 거리에 기반하여 로봇(100)에 의해 서비스를 제공 받는 사용자(130)를 결정하는 방법을 나타낸다. 도 10에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었다.
로봇(100)의 카메라(230)는 사용자 A 내지 D를 인식할 수 있고, 사용자 A 내지 D 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다.
로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여 사용자 A에게 서비스를 제공할 수 있다.
설명한 것처럼, 사용자 A 내지 D에 관한 정보(예컨대, 안면 정보)가 등록되어 있지 않은 경우에도, 로봇(100)은 제1 거리 및 제2 거리를 비교하는 것을 통해 사용자 A가 서비스를 제공 받는 사용자(130)인 것으로 정확하게 결정할 수 있다.
즉, 실시예에서는, 로봇(100)이 사용자 단말(110)로부터 획득된 대략적인 위치 정보에 기반하여 이동한 후, 카메라(230)에 의해 복수의 사용자들(사용자 A 내지 D)이 인식되는 경우, 통신 모듈(240)을 사용하여 계산된 제2 거리와 일치하는 (카메라(230)를 사용하여 계산된) 제1 거리를 갖는 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다.
한편, 단계(S850)에서 결정된 후보 사용자로 로봇(100)이 이동하는 동안, 제2 거리가 증가하는 경우가 존재할 수 있다. 이는 해당 후보 사용자가 서비스를 제공 받는 사용자(130)가 아님을 의미할 수 있다.
단계(S870)에서, 로봇 제어 시스템(120)은, 후보 사용자로의 로봇(100)의 이동에 따라, 제2 거리가 증가하거나 해당 후보 사용자와 연관된 제1 거리와 제2 거리의 차이가 소정의 값을 초과하게 되는지를 판정할 수 있다.
단계(S870)에서의 판정의 결과가 부정인 경우, 단계(S880)에서, 로봇 제어 시스템(120)은 해당 후보 사용자로 이동하도록 로봇(100)을 제어할 수 있다. 이 때, 후보 사용자는 서비스를 제공 받는 사용자(130)인 것으로 결정될 수 있다.
단계(S870)에서의 판정의 결과가 긍정인 경우, 전술된 단계(S810) 이하의 동작들이 다시 수행될 수 있다. 말하자면, 로봇 제어 시스템(120)은 카메라(230)를 통해 다른 사용자를 인식하여 (전술된 거리 비교 등의 단계들을 통해) 해당 다른 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 로봇 제어 시스템(120)은 상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 로봇(100)을 이동시킬 수 있다.
관련하여, 도 11은, 단계(S870)에서의 판정의 결과가 긍정인 경우 서비스를 제공 받는 사용자(130)를 결정하는 방법의 예시를 나타낸다. 도 10에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었으며, 사용자 B가 최초로 로봇(100)이 이동하는 후보 사용자로서 도시되었다.
도시된 예시에서, 로봇(100)의 카메라(230)는 화각 범위 내에 있는 사용자 B 내지 D를 인식할 수 있고, 사용자 A는 인식하지 못할 수 있다. 이 때, 카메라(230)는 로봇(100)의 일방에 설치된 것일 수 있다.
로봇(100)은 사용자 B 내지 D 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다.
로봇(100)은 사용자 B와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 B를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 B를 향해 이동할 수 있다.
이 때, 로봇(100)은 이동하는 동안 사용자 B와 연관된 제1 거리는 감소함에 비해 상기 제2 거리는 증가함을 확인할 수 있고, 이 때, 사용자 B는 서비스를 제공 받는 사용자(130)가 아닌 것으로 결정할 수 있다.
로봇(100)의 카메라(230)는 (필요하다면 로봇(100)을 회전시키거나 이동시켜) 사용자 A를 식별할 수 있다. 로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여, 사용자 A에게 서비스를 제공할 수 있다.
말하자면, 로봇 제어 시스템(120)은 통신 모듈(240)로부터 사용자 단말(110)에 의해 수집된 신호에 기반하여 계산된 로봇(100)과 사용자 단말(110) 간의 거리(제2 거리) 및 카메라(230)에 의한 인식에 기반하여 계산된 사용자(130)와 로봇(100) 간의 거리(제1 거리)를 함께 감소시키도록 로봇(100)의 이동을 제어할 수 있다. 로봇(100)이 후보 사용자를 향해 이동할 때, 제1 거리 및 제2 거리가 함께 감소하는 경우, 해당 후보 사용자는 서비스를 제공 받는 사용자(130)인 것으로 간주될 수 있다.
또한, 관련하여, 도 14a 내지 도 14c는, 단계(S870)에서의 판정의 결과가 긍정인 경우 서비스를 제공 받는 사용자(130)를 결정하는 방법의 다른 예시를 나타낸다. 도 14a 내지 도 14c에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었으며, 사용자 B가 최초로 로봇(100)이 이동하는 후보 사용자로서 도시되었다.
도시된 예시에서, 로봇(100)의 카메라(230)는 화각 범위 내에 있는 사용자 B 내지 E를 인식할 수 있고, 사용자 A는 인식하지 못할 수 있다. 이 때, 사용자 C가 사용자 A를 가로막고 있기 때문에 카메라(230)는 사용자A를 인식하지 못할 수 있다. 사용자 C는 사람이 아닌 여하한 장애물로서 대체될 수 있다(도 14a 참조).
로봇(100)은 사용자 B 내지 E 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다.
로봇(100)은 사용자 B와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 B를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 B를 향해 이동할 수 있다.
도 14b 및 도 14c에서 도시된 것처럼, 로봇(100)가 사용자 B를 향해 이동하는 동안 사용자 B와 연관된 제1 거리 및 제2 거리는 함께 감소할 수 있다. 그러나, 도 14c에서 도시된 경우와 같이 로봇(100)가 사용자 B를 향해 이동한 경우, 사용자 B와 연관된 제1 거리와 제2 거리가 다시 불일치하게 될 수 있다. 즉, 사용자 B와 연관된 제1 거리와 제2 거리 간의 차이가 소정의 값을 초과하게 될 수 있다. 로봇(100)은 사용자 B와 연관된 제1 거리와 제2 거리 간의 차이가 소정의 값을 초과함을 식별할 수 있고, 이 때, 로봇(100)은 사용자 B는 서비스를 제공 받는 사용자(130)가 아닌 것으로 결정할 수 있다.
로봇(100)의 카메라(230)는 (필요하다면 로봇(100)을 회전시키거나 이동시켜) 사용자 A를 식별할 수 있다. 로봇(100)은 사용자 A와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있고, 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 향해 이동하여, 사용자 A에게 서비스를 제공할 수 있다.
이와 같이, 실시예에 의해서는, 사용자 A의 주위에 존재하는 장애물에 의해 사용자 A가 카메라(230)를 통해 식별될 수 없더라도, 사용자 A가 서비스를 제공 받는 사용자(130)로서 정확하게 결정될 수 있다.
한편, 전술한 단계(S830)에서 카메라(230)에 의해 인식된 사용자들 중 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 존재하지 않는 것으로 판정될 수 있다.
이러한 경우, 단계(S835)에서, 로봇 제어 시스템(120)은 카메라(230)에 의해 인식된 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 로봇을 이동시킬 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 회전시키거나, 로봇(100)을 수직(vertical) 방향 및 수평(horizontal) 방향으로 이동시킬 수 있다. 즉, 로봇 제어 시스템(120)은 기 인식된 복수의 사용자들 외의 (서비스를 제공 받는 사용자(130)가 될 수 있는) 다른 사용자를 인식하기 위해 로봇(100)을 이동시킬 수 있다.
다른 사용자가 카메라(230)에 의해 인식됨에 따라 전술된 단계(S810) 이하의 단계들이 다시 수행될 수 있다. 말하자면, 제1 방향으로의 로봇(100)의 이동 후, 로봇 제어 시스템(120)은 카메라(230)에 의한 인식에 기반한 다른 사용자와 로봇(100) 간의 제1 거리와 상기 제2 거리를 비교할 수 있다.
한편, 전술한 단계(S840)에서 카메라(230)에 의해 인식된 사용자들 중에서 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자가 복수인 것으로 판정될 수 있다.
이러한 경우, 단계(S842)에서, 로봇 제어 시스템(120)은 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 로봇(100)을 이동시킬 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 수직(vertical) 방향 및 수평(horizontal) 방향으로 이동시킬 수 있다. 즉, 로봇 제어 시스템(120)은제2 거리와, 복수의 후보 사용자들의 각각과 연관된 제1 거리를 변화시키기 위해 로봇(100)을 이동시킬 수 있다.
단계(S844)에서, 로봇 제어 시스템(120)은 로봇(100)의 이동에 따라 변화하는, (후보 사용자들의 각각과 연관된) 제1 거리 및 제2 거리를 모니터링할 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)의 제1 방향으로의 이동에 따라 변화하는, (후보 사용자들의 각각과 연관된) 제1 거리 및 제2 거리를 모니터링할 수 있다. 이러한 모니터링의 결과에 대해 전술된 단계(S820)에 따른 비교가 수행될 수 있다. 또는, 로봇 제어 시스템(120)은 로봇(100)의 후보 사용자들 중 어느 하나로의 이동에 따라 변화하는 제1 거리 및 제2 거리를 모니터링할 수도 있다.
로봇 제어 시스템(120)은 단계(S844)에서의 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 제2 거리와의 차이가 소정의 값 이하인 제1 거리와 연관된 후보 사용자를 로봇(100)에 의해 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다. 따라서, 복수의 후보 사용자들 중 서비스를 제공 받는 사용자(130)가 특정될 수 있다.
관련하여, 도 12는 일 예에 따른, 후보 사용자들이 복수인 경우에 있어서, 로봇(100)에 의해 서비스를 제공 받는 사용자(130)를 결정하는 방법을 나타낸다. 도 12에서는 사용자 A가 사용자(130)에 해당하는 것으로 도시되었다.
로봇(100)의 카메라(230)는 사용자 A 내지 C를 인식할 수 있고, 사용자 A 내지 C 각각과 로봇(100)과의 거리를 제1 거리로서 계산할 수 있다. 로봇(100)은 통신 모듈(240)을 사용하여 계산된 사용자 단말(110)과 로봇(100) 간의 거리인 제2 거리와 제1 거리를 비교할 수 있다.
로봇(100)은 사용자 A 내지 C 모두와 연관된 제1 거리가 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 것을 식별할 수 있다. 즉, 사용자 A 내지 C가 모두 후보 사용자가 될 수 있다.
이 때, 로봇(100)은 소정의 제1 방향(도시된 것처럼 수직 또는 수평 방향 혹은 불특정의 방향)으로 이동될 수 있고, 이에 따라, 제2 거리 및 사용자 A 내지 C 각각과 연관된 제1 거리가 변경될 수 있다.
로봇(100)은 변경된 제2 거리 및 제1 거리를 기준으로, 제2 거리와 동일하거나 적어도 그 차이가 소정의 값 이하인 제1 거리와 연관된 사용자를 결정할 수 있다. 따라서, 로봇(100)은 사용자 A를 서비스를 제공 받는 사용자(130)인 것으로 결정할 수 있다.
즉, 실시예에서는, 복수의 후보 사용자들이 존재하는 경우에도 서비스를 제공 받는 사용자(130)를 정확하게 특정할 수 있다.
이상, 도 1 내지 도 7을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8 및 도 10 내지 도 14에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 9는 일 예에 따른, 사용자에게 서비스를 제공하기 위해 로봇의 이동을 제어함에 있어서, 카메라를 사용하여 계산된 사용자와 로봇 간의 거리에 기반하여 로봇의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 9를 참조하여, 센서부(106)의 카메라(230)를 사용하여 사용자(130)와 로봇(100) 간의 거리를 계산하고, 로봇(100)의 이동을 제어하는 방법을 설명한다.
단계(S910)에서, 로봇 제어 시스템(120)은 카메라(230)를 사용하여, 사용자(130)를 인식하고, 인식된 사용자(130)와 로봇(100) 간의 거리를 계산할 수 있다. 사용자(130)와 로봇(100) 간의 거리는 깊이 카메라를 사용하여 사용자(130)를 인식함으로써 계산될 수 있다. 또는, 카메라(230)가 일반적인 RGB 또는 단안 카메라인 경우에 있어서, 슬램을 통해 사용자(130)와 로봇(100) 간의 거리가 계산될 수 있다. 예컨대, 로봇 제어 시스템(120)은 로봇(100)을 이동시킬 수 있고, 로봇(100)의 이동에 따라 변화하는 카메라(230)에 의해 촬영된 사용자(130)의 영상을 분석함으로써 사용자(130)와 로봇(100) 간의 거리를 계산할 수 있다.
단계(S920)에서, 로봇 제어 시스템(120)은 단계(S910)에서 계산된 거리를 감소시키도록 로봇(100)의 이동을 제어할 수 있다. 따라서, 로봇(100)은 사용자(130)를 향해 이동할 수 있다.
한편, 로봇 제어 시스템(120)은 사용자(130)를 향해 로봇(100)이 이동하도록 로봇(100)을 제어함에 있어서, 사용자(130)의 위치(즉, 위치 좌표)를 알아낼 수 있다. 이러한 사용자(130)의 측위에는 통신 모듈(240)은 사용되지 않을 수 있다. 즉, 이 때 센서부(106)는 통신 모듈(240)을 포함하지 않을 수 있다.
카메라(230)에 의한 사용자(130)의 인식에 기반하여 사용자(130)의 위치 좌표를 계산하는 방법에 대해서는, 도 7 및 도 13을 참조하여 전술된 사용자(130)의 위치 좌표를 계산하는 방법이 유사하게 적용될 수 있다. 따라서, 중복되는 설명은 생략한다.
로봇 제어 시스템(120)은 카메라(230)의 센서 노이즈에 기반하여 사용자(130)와 로봇(100) 간의 거리 및 사용자(130)의 위치 좌표를 계산할 수 있다. 또한, 로봇 제어 시스템(120)은 사용자(130)와 로봇(100) 간의 거리 및 사용자(130)의 측위의 정확도/신뢰도를 높이기 위해 센서 노이즈 및 시차(카메라(230)의 각도)에 따른 신뢰도를 고려할 수 있다.
이상, 도 1 내지 도 8 및 도 10 내지 도 14를 참조하여 전술된 기술적 특징에 대한 설명은, 도 9에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
실시예를 통해서는, 로봇(100)이 서빙 로봇인 경우, 로봇(100)이 고정된 테이블로 이동하여 서비스를 제공하는 것에 그치지 않고, 스탠딩 파티가 진행되는 공간과 같은, 지정된 테이블이 없고 사용자(130)가 자유롭게 이동할 수 있는 환경에서도, 사용자(130)를 특정하여 사용자(130)에게 서비스를 제공할 수 있다.
또한, 실시예를 통해서는, 로봇(100)이 사용자(130)에게 길 안내 서비스를 제공함에 있어서, 사용자(130)가 미리 등록된 사용자가 아니더라도 사용자(130)를 다른 사용자들로부터 특정하여 추적할 수 있다.
실시예의, 로봇(100)은 자율주행 이동체(자율주행 차량(택시 등), 무인비행체, 선박)로 대체될 수 있다. 즉, 전술된 실시예는, 이러한 이동체를 이용하는 사용자의 위치가 제공되지만 그 정확도가 떨어지는 경우에 있어서, 사용자의 위치를 정확하게 결정하여 해당 사용자의 위치로 자율주행 이동체를 이동시키기 위해(즉, 사용자의 위치에서 자율주행 이동체를 정차시키기 위해) 활용될 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 공간 내에서 서비스를 제공하는 로봇 또는 상기 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서,
    상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하는 단계; 및
    상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하는 단계
    를 포함하고,
    상기 센서부는, 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈을 포함하도록 구성되고,
    상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우,
    상기 로봇의 이동을 제어하는 단계는,
    상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하는 단계;
    상기 제1 거리와, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하는 단계; 및
    상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계
    를 포함하는, 로봇 제어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 통신 모듈은 상기 사용자 단말과 통신하기 위한 AP (Access Point) 모듈 또는 블루투스 모듈을 포함하고,
    상기 로봇과 상기 사용자 단말 간의 상기 제2 거리는 상기 AP 모듈 또는 블루투스 모듈로부터 상기 사용자 단말에 의해 수집된 신호의 세기 및 상태 정보 중 적어도 하나에 기반하여 계산되는, 로봇 제어 방법.
  4. 제1항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 제2 거리를 감소시키도록 상기 로봇의 이동을 제어하는, 로봇 제어 방법.
  5. 제4항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 로봇의 이동에 따라, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여, 상기 로봇의 위치 좌표 및 상기 로봇의 위치 좌표에서의 상기 로봇과 상기 사용자 단말 간의 제2 거리들의 각각으로 구성된 복수의 쌍들을 결정하는 단계; 및
    상기 결정된 복수의 쌍들에 기반하여 상기 사용자 단말의 위치 좌표를 계산하는 단계
    를 포함하는, 로봇 제어 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되,
    상기 로봇의 이동에 따라 상기 제2 거리가 증가함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계; 및
    상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계
    를 포함하는, 로봇 제어 방법.
  8. 제1항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 후보 사용자를 향해 상기 로봇이 이동하도록 상기 로봇의 이동을 제어하되,
    상기 로봇의 이동에 따라 상기 제2 거리와 상기 후보 사용자와 연관된 상기 제1 거리 간의 차이가 소정의 값을 초과함이 식별되면, 상기 카메라를 통해 다른 사용자를 인식하여 상기 다른 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계; 및
    상기 제2 거리가 감소되도록 상기 다른 사용자를 향해 상기 로봇을 이동시키는 단계
    를 포함하는, 로봇 제어 방법.
  9. 제1항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 존재하지 않는 경우,
    상기 카메라를 통해 다른 사용자를 인식하기 위해 상기 복수의 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계; 및
    상기 제1 방향으로의 상기 로봇의 이동 후, 상기 카메라에 의한 인식에 기반한 상기 다른 사용자와 상기 로봇 간의 제1 거리와 상기 제2 거리를 비교하는 단계
    를 포함하는, 로봇 제어 방법.
  10. 제1항에 있어서,
    상기 복수의 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자가 복수인 경우,
    상기 로봇의 이동을 제어하는 단계는,
    상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계; 및
    상기 모니터링의 결과에 기반하여, 복수의 후보 사용자들 중에서 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는 단계
    를 포함하는, 로봇 제어 방법.
  11. 제10항에 있어서,
    상기 모니터링하는 단계는,
    상기 복수의 후보 사용자들이 위치하는 방향과는 독립적인 제1 방향으로 상기 로봇을 이동시키는 단계; 및
    상기 제1 방향으로의 상기 로봇의 이동에 따라 변화하는, 상기 제1 거리 및 상기 제2 거리를 모니터링하는 단계
    를 포함하는, 로봇 제어 방법.
  12. 제1항에 있어서,
    상기 로봇의 이동을 제어하는 단계는,
    상기 제2 거리 및 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리를 함께 감소시키도록 상기 로봇의 이동을 제어하는, 로봇 제어 방법.
  13. 삭제
  14. 제1항에 있어서,
    상기 사용자 단말에 대해, 상기 사용자의 이동을 자제하도록 요청하는 메시지를 송신하는 단계
    를 더 포함하는, 로봇 제어 방법.
  15. 제1항에 있어서,
    상기 위치 정보는 상기 사용자가 위치하는 상기 공간 내의 층을 나타내는 정보를 포함하고,
    상기 로봇은 상기 사용자가 위치하는 상기 공간 내의 층을 이동하도록 제어되는, 로봇 제어 방법.
  16. 제1항에 있어서,
    상기 위치 정보는 상기 사용자 단말이 위치하는 좌표를 포함하고,
    상기 로봇의 이동을 제어하는 단계는, 상기 좌표로의 상기 로봇의 이동을 제어하되, 상기 제2 거리를 감소시키도록 상기 로봇의 이동을 제어하는, 로봇 제어 방법.
  17. 제1항, 제3항 내지 제5항, 제7항 내지 제12항 및 제14항 내지 제16항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 컴퓨터에서 판독 가능한 기록매체에 기록된 프로그램.
  18. 공간 내에서 서비스를 제공하는 로봇에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서; 및
    센서부
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하고,
    상기 센서부는,
    상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라; 및
    상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈
    을 포함하고,
    상기 프로세서는,
    상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우,
    상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하고,
    상기 제1 거리와, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하고,
    상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는, 로봇.
  19. 삭제
  20. 공간 내에서 서비스를 제공하는 로봇을 제어하는 로봇 제어 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 로봇으로부터 서비스를 제공 받는 사용자의 사용자 단말로부터, 상기 공간 내에서의 상기 사용자의 위치 정보를 획득하고, 상기 획득된 위치 정보와, 상기 사용자 및 상기 사용자 단말 중 적어도 하나에 대한 상기 로봇의 센서부로부터의 센싱에 기반하여, 상기 사용자와 상기 로봇 간의 거리를 감소시키도록 상기 로봇의 이동을 제어하고,
    상기 센서부는, 상기 사용자를 인식함으로써, 상기 사용자와 상기 로봇 간의 거리를 측정하기 위해 사용되는 카메라 및 상기 사용자 단말과 통신함으로써, 상기 로봇과 상기 사용자 단말 간의 거리를 측정하기 위해 사용되는 통신 모듈을 포함하도록 구성되고,
    상기 프로세서는,
    상기 카메라에 의해 상기 사용자를 포함하는 복수의 사용자들이 인식되는 경우,
    상기 카메라에 의한 인식에 기반하여, 상기 복수의 사용자들의 각 사용자와 상기 로봇 간의 제1 거리를 계산하고,
    상기 제1 거리와, 상기 통신 모듈과 상기 사용자 단말 간의 통신에 기반하여 계산된 상기 로봇과 상기 사용자 단말 간의 제2 거리를 비교하고,
    상기 복수의 사용자들 중에서, 상기 제2 거리와의 차이가 소정의 값 이하인 상기 제1 거리와 연관된 후보 사용자를 상기 로봇에 의해 서비스를 제공 받는 상기 사용자인 것으로 결정하는, 로봇 제어 시스템.
KR1020200035014A 2020-03-23 2020-03-23 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치 KR102325703B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200035014A KR102325703B1 (ko) 2020-03-23 2020-03-23 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치
KR1020210076893D KR20210118773A (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물
KR1020210076893A KR102322048B1 (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200035014A KR102325703B1 (ko) 2020-03-23 2020-03-23 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210076893A Division KR102322048B1 (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물

Publications (2)

Publication Number Publication Date
KR20210118580A KR20210118580A (ko) 2021-10-01
KR102325703B1 true KR102325703B1 (ko) 2021-11-12

Family

ID=78115465

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200035014A KR102325703B1 (ko) 2020-03-23 2020-03-23 공간 내에서 사용자에게 서비스를 제공하는 로봇을 제어하는 방법 및 장치
KR1020210076893A KR102322048B1 (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물
KR1020210076893D KR20210118773A (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020210076893A KR102322048B1 (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물
KR1020210076893D KR20210118773A (ko) 2020-03-23 2021-06-14 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물

Country Status (1)

Country Link
KR (3) KR102325703B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569181B1 (ko) * 2022-11-21 2023-08-22 이재형 로봇 운용 체제(ros) 기반 로봇 통합 관리 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101060988B1 (ko) * 2009-01-23 2011-09-01 성균관대학교산학협력단 지그비의 수신신호세기를 이용한 지능형 이동로봇의 이동 대상물 추적 제어 장치 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021010502A1 (ko) * 2019-07-12 2021-01-21 엘지전자 주식회사 로봇 및 그를 이용한 물품 관리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101060988B1 (ko) * 2009-01-23 2011-09-01 성균관대학교산학협력단 지그비의 수신신호세기를 이용한 지능형 이동로봇의 이동 대상물 추적 제어 장치 및 그 방법

Also Published As

Publication number Publication date
KR20210118580A (ko) 2021-10-01
KR102322048B1 (ko) 2021-11-04
KR20210118773A (ko) 2021-10-01

Similar Documents

Publication Publication Date Title
JP6279125B2 (ja) 自律型車輌をモバイル機器の現在の場所へと要請する方法、及び自律型車輌をコンピュータ・デバイスの現在の場所へと要請する製品
KR101948728B1 (ko) 데이터 수집 방법 및 시스템
US10422645B2 (en) Electronic apparatus providing indoor navigation and method thereof
KR101676571B1 (ko) 실내 측위 서비스 제공 방법 및 시스템
KR102096875B1 (ko) 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법
KR102631147B1 (ko) 공항용 로봇 및 그의 동작 방법
US9462423B1 (en) Qualitative and quantitative sensor fusion for indoor navigation
US20170349402A1 (en) An intelligent building system for implementing actions based on user device detection
KR101758093B1 (ko) 무인항공기 제어 시스템 및 방법
KR102042046B1 (ko) 분산 클라우드 기반의 자율주행 시스템 및 방법
CN111123340A (zh) 物流配送导航方法及系统、近场定位导航装置、存储介质
KR20170032147A (ko) 단말 및 이의 위치 측정 방법
KR102322048B1 (ko) 사용자를 측위하여 건물을 자율주행하고 서비스를 제공하는 로봇이 배치되는 건물
CN112085445A (zh) 机器人目的地到达确定方法、装置、电子设备和存储介质
KR20200035930A (ko) 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법
KR20220156740A (ko) 자율 주행 차량에 대한 승객 인증 및 탑승
KR20200046161A (ko) 운송 로봇의 실내 위치 인식 시스템
KR101900812B1 (ko) 저전력 블루투스를 이용한 드론의 움직임 제어 방법 및 이를 지원하기 위한 장치
JP6347533B1 (ja) 位置特定方法、位置特定装置およびプログラム
KR102292052B1 (ko) 로봇의 위치 정보와 모바일 단말의 센싱 정보를 수집하는 방법 및 장치
KR20210003065A (ko) 데이터 수집 방법 및 시스템
KR101917362B1 (ko) 시각 장애인용 실내 위치기반 서비스 시스템
KR20200043329A (ko) 데이터 수집 방법 및 시스템
US20210263531A1 (en) Mapping and simultaneous localisation of an object in an interior environment
EP4060448A1 (en) Methods of controlling a mobile robot device to follow or guide a person

Legal Events

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