KR20230046080A - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20230046080A
KR20230046080A KR1020210129114A KR20210129114A KR20230046080A KR 20230046080 A KR20230046080 A KR 20230046080A KR 1020210129114 A KR1020210129114 A KR 1020210129114A KR 20210129114 A KR20210129114 A KR 20210129114A KR 20230046080 A KR20230046080 A KR 20230046080A
Authority
KR
South Korea
Prior art keywords
robot
identified
uwb signal
beacon
same space
Prior art date
Application number
KR1020210129114A
Other languages
English (en)
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 KR1020210129114A priority Critical patent/KR20230046080A/ko
Priority to EP22876843.8A priority patent/EP4321310A1/en
Priority to CN202280044886.2A priority patent/CN117545600A/zh
Priority to PCT/KR2022/014555 priority patent/WO2023055071A1/ko
Publication of KR20230046080A publication Critical patent/KR20230046080A/ko
Priority to US18/134,080 priority patent/US20230256612A1/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
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • 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/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0284Relative positioning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/028Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/12Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves by co-ordinating position lines of different shape, e.g. hyperbolic, circular, elliptical or radial

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇이 개시된다. 본 로봇은 구동부, UWB 모듈을 포함하는 통신 터페이스, 거리 센서, 적어도 하나의 명령어를 저장하는 메모리, 및 적어도 하나의 명령어를 실행함으로써, 오브젝트로부터 UWB 모듈을 통해 제1 UWB 신호를 수신하고, 수신된 제1 UWB 신호에 기초하여, 오브젝트와 동일한 공간에 위치하는지 여부를 식별하고, 오브젝트와 동일한 공간에 위치하는 것으로 식별되면 수신된 제1 UWB 신호에 기초하여 오브젝트로 주행하고, 오브젝트와 상이한 공간에 위치하는 것으로 식별되면 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 로봇 및 오브젝트의 좌표 정보 및 거리 센서로부터 획득된 센싱값을 이용하여 오브젝트와 동일한 공간으로 이동하도록 상기 주행부를 제어하는 프로세서를 포함한다.

Description

로봇 및 그 제어 방법 { ROBOT AND CONTROLLING METHOD THEREOF }
본 발명은 로봇 및 그 제어 방법에 관한 것으로 오브젝트로부터 수신한 UWB 신호에 기초하여 오브젝트로 주행하는 방법을 달리하는 로봇 및 그 제어 방법에 관한 것이다.
종래의 로봇은 오브젝트로 주행하기 위해 라이다(Lidar)를 통해 로봇의 위치를 파악하고 비전(Vision) 기반의 오브젝트 인식 기술을 이용하여 구현이 가능하다.
종래의 로봇은 오브젝트로 주행하는 기능을 구현하기 위해 Lidar, 오브젝트를 인식하기 위한 연산을 위한 NPU 등을 필요로 하고 이를 위해 많은 비용이 소요되었다.
종래의 로봇은 로봇과 오브젝트 사이에 벽, 가구 등 장애물이 위치하는 경우 오브젝트로 찾아가는 기능이 불가능하고, 비전 기반의 오브젝트 인식은 조명, 채광 상태에 따라 오브젝트로 주행하는 기능의 구현률이 영향을 받았다.
본 발명은 종래의 문제를 해결하기 위해, 저비용인 UWB 모듈을 이용하여 공간 제약 없이 오브젝트로 주행하는 로봇 및 그 제어 방법을 제공한다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇의 제어 방법은 오브젝트로부터 제1 UWB 신호를 수신하는 단계; 상기 수신된 제1 UWB 신호에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하는 단계; 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면 상기 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보, 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 포함할 수 있다.
상기 로봇의 위치를 식별하는 단계는, 상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값 이하이면, 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별하고, 상기 수신된 제1 UWB 신호의 감쇄량이 상기 제1 임계 값을 초과하면, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별할 수 있다.
상기 오브젝트로 주행하는 단계는, 상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트에 대한 거리 및 방향을 식별하고, 상기 식별된 거리 및 방향에 기초하여 상기 오브젝트로 주행할 수 있다.
상기 오브젝트로 주행하는 단계는, 상기 식별된 거리 및 방향에 기초하여, 상기 오브젝트에 대한 거리 및 각도가 기설정된 값인 지점으로 이동하도록 주행할 수 있다.
상기 로봇의 제어 방법은 상기 오브젝트로부터 상기 오브젝트의 활동량 정보를 수신하는 단계; 상기 수신된 활동량 정보 및 상기 식별된 거리에 기초하여 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하는지 여부를 식별하는 단계; 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하지 않는 것으로 식별되면, 회전하는 단계;를 더 포함할 수 있다.
상기 로봇의 제어 방법은, 상기 오브젝트로 주행하는 동안 상기 거리 센서를 통해 장애물이 식별되면, 주행 속도를 감소하고 회전하는 단계;를 더 포함할 수 있다.
상기 로봇의 제어 방법은, 상기 비컨으로부터 제2 UWB 신호를 수신하는 단계; 상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 제2 임계 값 이하이면, 상키 비컨과 동일한 공간에 위치하는 것으로 식별하고, 상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 상기 제2 임계 값을 초과하면, 상기 비컨과 상이한 공간에 위치하는 것으로 식별하는 단계;를 더 포함할 수 있다.
상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계는, 상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 동일한 공간에 위치하는 것으로 식별되면, 상기 비컨으로부터 상기 로봇의 좌표 정보 및 상기 오브젝트의 좌표 정보를 수신하고, 상기 거리 센서로부터 획득된 센싱 값을 이용하여 상기 로봇의 주변 맵 정보를 획득하고, 상기 로봇의 좌표 정보, 상기 오브젝트의 좌표 정보 및 상기 맵 정보에 기초하여, 상기 오브젝트와 동일한 공간으로 이동하도록 주행할 수 있다.
상기 로봇의 제어 방법은 상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 상이한 공간에 위치하는 것으로 식별되면, 상기 거리 센서를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고, 상기 식별된 적어도 하나의 후보 지점에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 더 포함할 수 있다.
본 개시의 일 실시 예에 따른 로봇은 주행부, UWB 모듈을 포함하는 통신 인터페이스, 거리 센서, 적어도 하나의 명령어를 저장하는 메모리, 및 상기 메모리와 연결되어 상기 로봇을 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 상기 오브젝트로부터 상기 UWB 모듈을 통해 제1 UWB 신호를 수신하고, 상기 수신된 제1 UWB 신호에 기초하여, 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하고, 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면, 상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값 이하이면, 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별하고, 상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값을 초과하면, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별할 수 있다.
상기 프로세서는, 상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트에 대한 거리 및 방향을 식별하고, 상기 식별된 거리 및 방향에 기초하여 상기 오브젝트로 주행하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 식별된 거리 및 방향에 기초하여, 상기 오브젝트에 대한 거리 및 각도가 기설정된 값인 지점으로 이동하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 통신 인터페이스를 통해 상기 오브젝트로부터 상기 오브젝트의 활동량 정보를 수신하고, 상기 수신된 활동량 정보 및 상기 식별된 거리에 기초하여 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하는지 여부를 식별하고, 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하지 않는 것으로 식별되면, 회전하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 오브젝트로 주행하는 동안 상기 거리 센서를 통해 장애물이 식별되면, 주행 속도를 감소하고 회전하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 비컨으로부터 제2 UWB 신호를 상기 통신 인터페이스를 통해 수신하고, 상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 제2 임계 값 이하이면, 상키 비컨과 동일한 공간에 위치하는 것으로 식별하고, 상기 비컨으로부터 수신된 UWB 신호의 감쇄량이 상기 제2 임계 값을 초과하면, 상기 비컨과 상이한 공간에 위치하는 것으로 식별할 수 있다.
상기 프로세서는, 상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 동일한 공간에 위치하는 것으로 식별되면, 상기 비컨으로부터 상기 로봇의 좌표 정보 및 상기 오브젝트의 좌표 정보를 수신하고, 상기 거리 센서로부터 획득된 센싱 값을 이용하여 상기 로봇의 주변 맵 정보를 획득하고, 상기 로봇의 좌표 정보, 상기 오브젝트의 좌표 정보 및 상기 맵 정보에 기초하여, 상기 오브젝트와 동일한 공간으로 이동하도록 상기 주행부를 제어할 수 있다.
상기 프로세서는, 상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 상이한 공간에 위치하는 것으로 식별되면, 상기 거리 센서를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고, 상기 식별된 적어도 하나의 후보 지점에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간에 위치하도록 상기 주행부를 제어할 수 있다.
본 개시의 일 실시 예에 따른 로봇의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 상기 로봇의 제어 방법은 오브젝트로부터 제1 UWB 신호를 수신하는 단계; 상기 수신된 제1 UWB 신호에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하는 단계; 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면 상기 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보, 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 포함할 수 있다.
상술한 실시 예들을 통해, 로봇이 UWB 모듈을 이용하여 오브젝트로 주행하여, 오브젝트로 주행하는 로봇을 저비용으로 구현하고 공간 제약 없이 오브젝트로 주행할 수 있는 개선 효과가 있다.
도 1은 로봇의 본 개시의 일 실시예에 따른 로봇의 구성을 설명하기 위한 구성을 설명하기 위한 블록도이다.
도 2는 로봇의 본 개시의 일 실시예에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 3a 내지 도 3b는 본 개시의 일 실시예에 따른 로봇과 오브젝트과 동일한 공간에 위치할 때, 로봇이 오브젝트로 주행하는 방법을 설명하기 위한 도면이다.
도 4a 내지 도 4d는 본 개시의 일 실시예에 따른 로봇과 오브젝트가 상이한 공간에 위치하고, 로봇과 비컨이 동일한 공간에 위치할 때, 로봇이 오브젝트와 동일한 공간으로 이동하도록 주행하는 방법을 설명하기 위한 도면이다.
도 5a 내지 도 5d는 본 개시의 일 실시예에 따른 로봇이 오브젝트 및 비컨과 상이한 공간에 위치할 때, 로봇이 오브젝트와 동일한 공간으로 이동하도록 주행하는 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 로봇의 제어 방법을 설명하기 위한 순서도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1을 참조하면, 로봇(100)은 메모리(110), 통신 인터페이스(120), UWB 모듈(121), 거리 센서(130), 주행부(140), 사용자 인터페이스(150), 디스플레이(160), 프로세서(170)을 포함할 수 있다. 로봇(100)은 구성요소 중 적어도 일부가 생략될 수 있으며, 다른 구성요소를 더 포함할 수 있다.
메모리(110)는 로봇(100)에 관한 적어도 하나의 명령어(instruction)를 저장할 수 있다. 메모리(110)는 로봇(100)를 구동시키기 위한 O/S(Operating System)를 저장할 수 있다. 또한, 메모리(110)는 본 개시의 다양한 실시 예들에 따라 로봇(100)가 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션을 저장할 수 있다. 그리고, 메모리(110)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(110)는 본 개시의 다양한 실시 예에 따라 로봇(100)가 동작하기 위한 각종 소프트웨어 모듈을 저장할 수 있으며, 프로세서(170)는 메모리(110)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(110)는 프로세서(170)에 의해 액세스되며, 프로세서(170)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 메모리(110)는 기설정된 적어도 하나의 임계값에 대한 정보를 저장할 수 있다.
한편, 본 개시에서 메모리(110)라는 용어는 메모리(110), 프로세서(170) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
통신 인터페이스(120)는 회로(circuitry)를 포함하며, 외부 기기 및 서버와 통신할 수 있는 구성이다. 통신 인터페이스(120)는 유선 또는 무선 통신 방식에 기초하여 외부 기기 및 서버와 통신을 수행할 수 있다. 특히, 통신 인터페이스(120)는 오브젝트(200) 및 비컨(300)과 통신을 수행할 수 있다. 일 실시 예에 따라, 다른 실시 예에 따라, 통신 인터페이스(120)는 무선 통신을 통하여 외부 기기 및 서버와 통신을 수행할 수 있다. 이 경우, 통신 인터페이스(120)는 와이파이 모듈(미도시), 블루투스 모듈(미도시), IR(infrared) 모듈, LAN(Local Area Network) 모듈, 이더넷(Ethernet) 모듈 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다. 무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), USB(Universal Serial Bus), MIPI CSI(Mobile Industry Processor Interface Camera Serial Interface), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다. 다만 이는 일 실시 예에 불과하며 통신 인터페이스(120)는 다양한 통신 모듈 중 적어도 하나의 통신 모듈을 이용할 수 있다.
특히, 통신 인터페이스(120)는 UWB 모듈(131)을 포함할 수 있다. UWB 모듈(131)는 오브젝트(200) 및 비컨(300)에 포함된 UWB 모듈과 UWB 신호를 송수신 할 수 있다. UWB(Ultra Wideband) 신호란, UWB(Ultra-Wideband, 초광대역 통신)를 이용한 신호로써, UWB는 중심 주파수의 20% 이상의 점유 대역폭을 차지하는 시스템이나 500MHz 이상의 점유 대역폭을 차지하는 무선 전송기술을 의미할 수 있다. 로봇(100)은 오브젝트(100)로부터 수신된 UWB 신호를 이용하여, 오브젝트(200)에 대한 거리 및 각도를 식별할 수 있다.
거리 센서(130)는 거리 센서(130)와(또는 로봇과) 객체(예를 들어, 오브젝트 또는 장애물) 간의 거리를 계산할 수 있다. 로봇(100)은 거리 센서(130)를 통해 로봇(100)의 주변 환경을 스캔하여 맵 정보를 획득하고, 장애물을 식별할 수 있다. 로봇(100)은 제자리에서 한 바퀴 회전하며 로봇(100)의 주변 환경을 스캔하여 거리 센서(130)를 통해 로봇(100) 주변의 맵 정보를 획득할 수 있다. 또는, 로봇(100)에 포함된 거리 센서(130)가 자체적으로 한 바퀴 회전하여 로봇(100)의 주변 환경을 스캔하여 로봇(100) 주변의 맵 정보를 획득할 수 있다. 이 때, 거리 센서(130)는 ToF(Time of Flight)센서, 레이저 센서, 라이다 센서, 초음파 센서 등 로봇(100)과 객체와의 거리를 측정하기 위한 다양한 센서를 통해 구현될 수 있다.
주행부(140)는 모터(141) 및 모터(141)에 연결된 구동부(142)를 포함하는 구성으로써, 구동부(142)는 바퀴 또는 로봇의 다리 등으로 구현될 수 있고, 모터(141)는 프로세서(140)의 제어에 따라 구동부(142)를 제어함으로써, 로봇(100)을 이동시킬 수 있다. 일 예로, 구동부(142)가 좌측 바퀴 및 우측 바퀴로 구현되는 경우, 프로세서(170)는 좌측 바퀴를 회전시키는 모터에는 제1 회전력을 발생시키기 위한 제어 신호를 전송하고, 우측 바퀴를 회전시키는 모터에는 제1 회전력과는 상이한 제2 회전력을 발생시키기 위한 제어 신호를 전송함으로써, 로봇(100)의 주행 방향을 변경하거나 회전시킬 수 있다.
사용자 인터페이스(150)는 로봇(100)을 제어하기 위한 사용자 명령을 입력받기 위한 구성이다. 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 로봇(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다. 로봇(100)는 사용자 인터페이스(150)를 통해 다양한 사용자 입력을 획득할 수 있다.
디스플레이(160)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(160) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 프로세서(170)는 로봇(100)의 상태 정보를 출력하도록 디스플레이(160)를 제어할 수 있다. 여기서, 상태 정보는, 로봇(100)의 주행 모드, 배터리 관련 정보, 도킹 스테이션(미도시)으로 복귀 여부 등 로봇(100)의 구동에 관련된 다양한 정보를 포함할 수 있다.
프로세서(170)는 로봇(100)의 전반적인 동작 및 기능을 제어할 수 있다. 구체적으로, 프로세서(170)는 메모리(110)를 포함하는 로봇(100)의 구성과 연결되며, 상술한 바와 같은 메모리(110)에 저장된 적어도 하나의 명령어를 실행함으로써, 로봇(100)의 동작을 전반적으로 제어할 수 있다.
프로세서(170)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(170)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(170)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
프로세서(170)는 위치 식별 모듈(171), 주행 제어 모듈(172)을 포함할 수 있다. 본 개시에 따른 복수의 모듈은 소프트웨어 모듈 또는 하드웨어 모듈로 구현될 수 있으며, 복수의 모듈이 소프트웨어 모듈로 구현되는 경우, 프로세서(170)는 메모리(110)에 저장된 소프트웨어 모듈을 로딩함으로써 소프트웨어 모듈에 엑세스할 수 있다.
위치 식별 모듈(171)은 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다. 동일한 공간에 위치한다는 것은 벽으로 구분되지 않은 공간 내에 위치하는 것을 의미할 수 있다. 예를 들어, 침실과 거실이 벽으로 구분되어 있을 때, 로봇(100)이 침실에 있고 오브젝트(200)가 거실에 있으면, 로봇(100)과 오브젝트(200)는 상이한 공간에 위치하고, 로봇(100)과 오브젝트(200) 모두 거실에 위치하면, 로봇(100)과 오브젝트(200)는 동일한 공간에 위치한다. 이 때, 로봇(100)이 오브젝트(200) 또는 비컨(300)과 동일한 공간에 위치하는 상태는 LOS(Line of Sight) 상태 일 수 있다. 로봇(100)이 오브젝트(200) 또는 비컨(300)과 상이한 공간에 위치하는 상태는 NLOS(Non-Line of Sight) 상태 일 수 있다.
위치 식별 모듈(171)은 오브젝트(200)로부터 수신한 제1 UWB신호에 기초하여 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다. 예를 들어, 위치 식별 모듈(171)은 오브젝트(200)로부터 수신한 제1 UWB 신호의 감쇄량이 제1 임계값 이하이면, 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별할 수 있다. 위치 식별 모듈(171)은 오브젝트(200)로부터 수신한 제1 UWB 신호의 감쇄량이 제1 임계값을 초과하면 로봇(100)이 오브젝트(200)와 상이한 공간에 위치하는 것으로 식별할 수 있다. 제1 임계값은 메모리(110)에 저장된 기설정된 값일 수 있다.
위치 식별 모듈(171)은 로봇(100)이 비컨(300)과 동일한 공간에 위치하는지 여부를 식별할 수 있다. 위치 식별 모듈(171)은 비컨(300)으로부터 수신한 제2 UWB신호에 기초하여 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다. 예를 들어, 위치 식별 모듈(171)은 비컨(300)으로부터 수신한 제2 UWB 신호의 감쇄량이 제2 임계값 이하이면, 로봇(100)이 비컨(300)과 동일한 공간에 위치하는 것으로 식별할 수 있다. 위치 식별 모듈(171)은 오브젝트(200)로부터 수신한 제2 UWB 신호의 감쇄량이 제2 임계값을 초과하면 로봇(100)이 비컨(300)과 상이한 공간에 위치하는 것으로 식별할 수 있다. 제2 임계값은 메모리(110)에 저장된 기설정된 값일 수 있다.
주행 제어 모듈(172)은 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부에 기초하여 로봇(100)이 오브젝트(200)로 주행하도록 제어할 수 있다. 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별되면, 주행 제어 모듈(172)은 오브젝트(200)로부터 수신된 UWB 신호에 기초하여 상기 로봇(100)이 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다. 로봇(100)이 오브젝트(200)와 상이한 공간에 위치하는 것으로 식별되면, 주행 제어 모듈(172)은 비컨(300)으로부터 수신되는 로봇(100) 및 오브젝트(200)의 좌표 정보 또는 거리 센서(130)로부터 획득된 센싱값을 이용하여 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 오브젝트(200)와 상이한 공간에 위치하고, 비컨(300)과 동일한 공간에 위치하는 것으로 식별되면, 주행 제어 모듈(172)은 비컨(300)으로부터 로봇(100)의 좌표 정보 및 오브젝트(200)의 좌표 정보를 수신하고, 상기 거리 센서(130)로부터 획득된 센싱 값을 이용하여 로봇(100)의 주변 맵 정보를 획득하고, 로봇(100)의 좌표 정보, 오브젝트(200)의 좌표 정보 및 로봇(100)의 주변 맵 정보에 기초하여, 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 오브젝트(200) 및 비컨(300)과 상이한 공간에 위치하는 것으로 식별되면, 주행 제어 모듈(172)은 거리 센서(130)를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고, 식별된 적어도 하나의 후보 지점에 기초하여 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다.
주행 제어 모듈(172)이 주행부(140)를 제어하는 구체적인 방법은 도 2를 통해 자세히 설명하도록 한다.
도 2를 참조하면, 프로세서(170)는 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다(S210). 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별되면(S210-Y), 프로세서(170)는 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 오브젝트로 주행할 수 있다(S220).
프로세서(170)는 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 로봇(100)과 오브젝트(200) 사이의 거리 및 각도를 식별하고, 식별된 거리 및 각도에 기초하여 로봇(100)이 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다.
프로세서(170)는 오브젝트(200)에 대한 거리를 식별할 수 있다. 오브젝트(200)에 대한 거리는 로봇(100)과 오브젝트(200)간의 거리를 의미할 수 있다. 프로세서(170)는 적어도 하나 이상의 안테나를 활용하여 오브젝트(200)와 UWB 신호를 송수신할 수 있다. 프로세서(170)는 오브젝트(200)와 송수신한 UWB 신호의 RTT(Round Trip Time), RSSI(Radio Signal Strength Indicator), MCS(Modulation and Coding Scheme) information, TOF(Time of Flight), AoA(Angle of Arrival), AoD(Angle of Departure) 등의 방법을 이용하여 오브젝트(200)에 대한 거리를 식별할 수 있다. 예를 들어, 프로세서(170)는 UWB 모듈(121)을 통해 오브젝트(200)에서 송신되는 제1 UWB 신호를 수신할 수 있다. 프로세서(170)는 일정 시간 주기로 송신된 제1 UWB 신호를 수신함으로써, 제1 UWB 신호가 송신된 시간으로부터 수신된 시간까지 소요된 시간 정보를 획득할 수 있다. 프로세서(170)는 소요된 시간 정보를 이용하여 로봇(100)과 오브젝트(200) 사이의 거리 정보를 연산하여, 로봇(100)과 오브젝트(200) 사이의 거리를 식별할 수 있다.
프로세서(170)는 오브젝트(200)에 대한 방향을 식별할 수 있다. 오브젝트(200)에 대한 방향은 로봇(100)의 주행 방향을 기준으로 오브젝트(200)가 위치하는 방향 또는 각도를 의미할 수 있다. 프로세서(170)는 두 개 이상의 안테나에서 오브젝트(200)로부터 신호의 위상(phase)차가 생기는 UWB 신호를 수신할 수 있다. 프로세서(170)는 위상차가 생기는 UWB 신호의 위상 차이를 분석하여 오브젝트(200)의 방향을 식별할 수 있다. 예를 들어, 프로세서(170)는 AoA(angle of arrival)를 활용하여 오브젝트(200)의 방향을 식별할 수 있다.
도 3a를 참조하면, 프로세서(170)가 식별할 수 있는 오브젝트(200)에 대한 방향은 제한될 수 있다. 예를 들어, 프로세서(170)가 식별할 수 있는 오브젝트(200)에 대한 방향은 -70°~ 70°일 수 있다. 프로세서(170)가 식별할 수 없는 방향(Null point)에 오브젝트(200)가 위치하는 경우 프로세서(170)는 오브젝트(200)의 방향을 식별할 수 없는 문제가 발생할 수 있다. 이 때, 프로세서(170)는 오브젝트(200)가 프로세서(170)가 식별할 수 있는 방향에 위치하도록 로봇(100)이 회전하도록 주행부(140)를 제어할 수 있다.
프로세서(170)가 오브젝트(200)에 대한 방향을 식별하였을 때, 로봇(100)의 전방 또는 후방에 위치하는지 식별할 수 없는 문제가 발생할 수 있다. 오브젝트(200)는 관성 측정 센서(IMU sensor)를 포함할 수 있다. 관성 측정 센서는 오브젝트(200)의 시간 변화에 따른 활동량을 측정하여 오브젝트(200)의 활동량 정보를 획득할 수 있다. 프로세서(170)는 통신 인터페이스(120)를 통해 오브젝트(200)에 포함된 관성 측정 센서로부터 오브젝트(200)의 활동량 정보를 수신할 수 있다. 프로세서(170)는 수신된 오브젝트(200)의 활동량 정보를 이용하여 오브젝트(200)에 대한 방향이 로봇(100)의 전방 또는 후방인지 여부를 식별할 수 있다.
프로세서(170)는 오브젝트(200) 대한 거리가 특정 시간 동안 특정 거리 이상 멀어지면 로봇(100)이 후방 또는 오브젝트(200)의 반대 방향으로 주행하는 것으로 식별할 수 있다. 예를 들어, 오브젝트(200)에 대한 거리가 3초 동안 1m 이상 멀어지면, 프로세서(170)는 로봇(100)이 오브젝트(200)와 반대 방향으로 주행 중임을 식별할 수 있다. 이 때, 프로세서(170)는 오브젝트(200)로부터 수신한 활동량 정보에 따라 특정 시간과 특정 시간을 식별할 수 있다.
도 3b를 참조하면, 로봇(100)이 후방 또는 오브젝트(200)와 반대 방향으로 주행 중인 것으로 식별되면, 프로세서(170)는 로봇(100)이 회전하거나 현재 주행 방향과 반대 방향(오브젝트 방향)으로 주행하도록 주행부(140)를 제어할 수 있다.
프로세서(170)는 식별된 오브젝트(200)에 대한 거리 및 방향에 기초하여 로봇(100)이 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다. 프로세서(170)는 식별된 오브젝트(200)에 대한 거리 및 방향에 기초하여, 오브젝트(200)에 대한 거리 및 각도가 기설정된 값인 지점으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다 예를 들어, 기설정된 거리 값은 1m, 기설정된 방향 값은 0°일 수 있다. 이 때, 프로세서(170)는 오브젝트(200)에 대한 거리가 1m, 오브젝트(200)에 대한 방향이 0°가 되는 위치(로봇(100)의 주행 방향과 오브젝트(200)에 대한 방향이 일치)로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다. 이 때, 로봇(100)이 오브젝트(200)에 대한 거리 및 각도가 기설정된 값인 제1 지점으로 이동하는 동안 오브젝트(200)의 위치가 변하면, 프로세서(170)는 오브젝트(200)의 변경된 위치를 기준으로 오브젝트(200)에 대한 거리 및 각도가 기설정된 값인 제2 지점으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다. 기설정된 거리 값 및 기설정된 방향 값은 메모리(110)에 기저장된 값일 수 있고, 사용자 인터페이스(150)를 통해 입력된 값일 수 있다.
도 3c를 참조하면, 로봇(100)이 오브젝트(200)로 주행하는 동안, 프로세서(170)는 거리 센서(130)를 이용하여 획득된 센싱 값에 기초하여 장애물을 식별할 수 있다. 로봇(100)의 주행 방향에 장애물이 존재하는 것으로 식별되면, 프로세서(170)는 로봇(100)의 주행 속도가 감소하고 로봇(100)이 회전하도록 주행부(140)를 제어할 수 있다. 로봇(100)이 회전하고 로봇(100)의 주행 방향에 장애물이 존재하지 않는 것으로 식별되면, 프로세서(170)는 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 오브젝트(200)와 상이한 공간에 위치하는 것으로 식별되면(S210-N), 프로세서(170)는 로봇(100)이 비컨(300)과 동일한 공간에 위치하는지 여부를 식별할 수 있다(S230). 로봇(100)이 비컨(300)과 동일한 공간에 위치하는 것으로 식별되면(S230-Y), 프로세서(170)는 비컨(300)으로부터 수신된 로봇(100)의 좌표 정보 및 오브젝트(200)의 좌표 정보 및 거리 센서(130)로부터 획득된 센싱값을 이용하여 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다(S240).
비컨(300)은 로봇(100)과 오브젝트(200)로부터 수신한 UWB 신호에 기초하여 로봇(100)과 오브젝트(200)의 좌표 정보를 식별할 수 있다. 구체적으로, 비컨(300)은 제1 안테나 및 제2 안테나를 포함하는 UWB 모듈에 기초하여 로봇(100)으로부터 제1 안테나 및 제2 안테나로 수신된 UWB 신호의 송수신 시간과 위상 차이를 이용하여 로봇(100)의 좌표 정보를 식별할 수 있다. 비컨(300)은 로봇(100)의 좌표 정보를 식별하는 방법과 동일한 방법으로 오브젝트(200)의 좌표 정보를 획득할 수 있다. 프로세서(170)는 통신 인터페이스(121)를 통해 비컨(300)으로부터 로봇(100)의 좌표 정보 및 오브젝트(200)의 좌표 정보를 획득할 수 있다.
도 4b에 도시된 바와 같이 프로세서(170)는 비컨(300)으로부터 수신된 로봇(100)의 좌표 정보 및 오브젝트(200)의 좌표 정보에 기초하여 제1 지점(410), 제2 지점(420) 및 제3 지점(430)을 거쳐 제4 지점(440)으로 이동할 수 있다. 제4 지점(440)으로 이동 중 제5 지점(450)에서 프로세서(170)는 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별할 수 있다. 이 때, 프로세서(170)는 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 오브젝트(200)로 주행할 수 있다. 로봇(100)이 제1 지점(410)부터 제4 지점(440)까지 이동하는 구체적인 방법은 도 4c 및 도 4d를 통해 설명하도록 한다.
도 4c를 참조하면, 로봇(100)은 최초에 제1 지점(410)에 위치할 수 있다. 이 때, 프로세서(170)는 제1 지점(410)에서 오브젝트(200)에 대한 방향으로 직진 주행할 수 있다. 로봇(100)은 제2 지점(420)에서 장애물을 식별하거나 장애물에 의해 더 이상 직진 주행할 수 없는 상태일 수 있다. 이 때, 프로세서(170)는 거리 센서(130)를 통해 로봇(100)의 주변 환경을 스캔하여 획득된 센싱 값에 기초하여 로봇(100)이 위치하는 공간의 맵 정보를 획득할 수 있다.
프로세서(170)는 거리 센서(130)를 통해 로봇(100)의 주변 환경을 스캔하여 획득된 센싱 값에 기초하여 획득된 맵 정보, 비컨(300)으로부터 수신된 로봇(100)의 좌표 정보 및 오브젝트(200)의 좌표 정보에 기초하여 후보 지점에 대한 방향과 오브젝트(200)에 대한 방향 사이의 각도, 스캔 지점과 후보지점 까지의 거리 및 후보 지점에 대한 방향과 이전 스캔 지점에 대한 방향 사이의 각도를 획득할 수 있다.
프로세서(170)는 적어도 하나의 후보 지점에 대하여 하기 수학식 1에 의해 스코어를 획득할 수 있다. 프로세서(170)는 적어도 하나의 후보 지점 중 스코어가 가장 높은 지점을 이동 지점으로 식별할 수 있다. 프로세서(170)는 식별된 이동 지점으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다. 프로세서(170)는 식별된 이동 지점으로 이동 후 로봇(100)의 주변 환경을 스캔하여 다음 이동 지점을 식별할 수 있다. 또는, 프로세서(170)는 식별된 이동 지점으로 이동 중 주행 방향에 장애물이 식별되거나 장애물로 인해 더 이상 주행이 불가능하면, 장애물이 식별된 지점에서 거리 센서(130)를 통해 로봇(100)의 주변 환경을 스캔할 수 있다. 다만, 이는 일 실시예에 불과할 뿐 다양한 방법에 기초하여 프로세서(170)는 적어도 하나의 후보 지점 중 이동 지점을 식별할 수 있다.
Figure pat00001
상기 수학식1은 로봇(100)이 n번째 스캔 지점에 위치할 때, 적어도 하나의 후보 지점에 대한 스코어를 획득하기 위한 수학식을 의미할 수 있다. 프로세서(180)는 n번째 스캔 지점에서, 적어도 하나의 후보 지점에 대한 스코어를 획득하고, 적어도 하나의 후보 지점 중 가장 높은 스코어에 대응되는 지점을 이동 지점으로 식별할 수 있다. 예를 들어, 제2 지점(420)은 첫 번째 스캔 지점일 수 있다.
α는 n번째 스캔 지점을 기준으로, 적어도 하나의 후보 지점에 대한 방향과 오브젝트(200)에 대한 방향 사이의 각도를 의미할 수 있다.
d는 n번째 스캔 지점과 적어도 하나의 후보 지점간의 거리를 의미할 수 있다. d는 n번째 스캔 지점으로부터 적어도 하나의 후보 지점까지 주행 가능한 최대 거리를 의미할 수 있다.
θn은 n번째 스캔 지점을 기준으로, (n-1)번째 스캔 지점에 대한 방향과 적어도 하나의 후보 지점에 대한 방향 사이의 각도를 의미할 수 있다. 예를 들어, 로봇(100)이 현재 제2 스캔 지점(또는 제3 지점)(430)에 위치하는 경우, θ2는 제2 스캔 지점(430)을 기준으로 제1 스캔 지점(420)에 대한 방향과 적어도 하나의 후보 지점에 대한 방향 사이의 각도를 의미할 수 있다. 이 때, θ1은 1번째 스캔 지점을 기준으로, 이전 스캔 포인트가 존재하지 않기 때문에 θ1은 0일 수 있다.
ω1, ω2, …, ωn은 각 항목들의 가중비(weight ratio)를 의미할 수 있다. 가중비는 이동 횟수, 이동 시간, 로봇(100)의 주변 맵 정보, 로봇(100)의 좌표 정보, 오브젝트(200)의 좌표 정보 등에 따라 달라질 수 있고, 이때 가중비는 메모리(110)에 저장된 값일 수 있다.
도 4c를 참조하면 제2 지점(420)에서 수학식 1을 통해 가장 스코어가 높다고 식별된 후보 지점은 제3 지점(430)일 수 있다. 제3 지점(430)이 적어도 하나의 후보 지점 중 가장 스코어가 높은 후보 지점으로 식별되면, 프로세서(170)는 제3 지점(430)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
도 4d를 참조하면, 제3 지점(430)에서 수학식 1을 통해 가장 스코어가 높다고 식별된 후보 지점은 제4 지점(440)일 수 있다. 제4 지점(430)이 가장 스코어가 높은 후보 지점으로 식별되면, 프로세서(170)는 제4 지점(430) 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다. 로봇(100)이 제4 지점(430)으로 이동하는 동안, 로봇(100)은 오브젝트(200)와 동일한 공간에 위치하게 될 수 있다. 이 때, 프로세서(170)는 로봇(100)이 제4 지점(430)으로의 이동을 중단하고 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 로봇(100)이 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 비컨(300)과 상이한 공간에 위치하는 것으로 식별되면(S230-N), 프로세서(170)는 거리 센서(130)를 통해 획득된 센싱 값에 기초하여 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다(S250).
예를 들어, 도 5a에 도시된 바와 같이 로봇(100)은 안방에 위치하고, 오브젝트(200)와 비컨(300)은 거실에 위치할 수 있다. 이 때, 프로세서(170)는 거리 센서(130)를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고, 식별된 적어도 하나의 후보 지점에 기초하여, 로봇(100)이 오브젝트(200)와 동일한 공간으로 이동하도록 주행부(140)를 제어할 수 있다.
본 개시의 일 실시 예에 따르면, 도 5b에 도시된 바와 같이, 로봇(100)은 제1 지점(510)에서 출발하여, 제2 지점(520), 제3 지점(530), 제4지점(531)으로 이동 후, 더 이동이 불가하면, 제2지점(520)으로 복귀하고 제5 지점(540)으로 이동할 수 있다. 이 때, 로봇(100)이 주행하는 구체적인 방법은 도 5c 및 도 5d를 통해 설명하도록 한다.
도 5c를 참조하면, 로봇(100)이 오브젝트(200) 및 비컨(300)과 상이한 공간에 위치하는 것으로 식별되면, 프로세서(170)는 거리 센서(130)를 통해 획득된 센싱값을 이용하여 로봇(100)의 주행 방향을 기준으로 좌측 영역(551) 방향 및 우측 영역(552) 방향으로부터 가장 멀리 떨어진 지점을 후보 지점으로 식별할 수 있다. 이 때, 프로세서(170)는 후보 지점까지의 거리가 제3 임계 값 미만인 지점은 후보 지점에서 배제할 수 있다. 프로세서(170)는 로봇(100)의 위치를 기준으로, 좌측 영역(551) 방향을 기준으로 식별된 후보 지점에 대한 방향과 우측 영역(552) 방향을 기준으로 식별된 후보 지점에 대한 방향간의 각도 차이가 기설정된 제4 임계 값 미만이면, 두 후보 지점을 하나의 후보 지점으로 통합할 수 있다. 로봇(100)의 이전 위치를 후보 지점으로 식별하는 것을 방지하기 위해, 로봇(100)의 좌측 영역(551)과 우측 영역(552)은 로봇(100)의 주행 방향을 기준으로 후방의 일정 각도를 제외한 영역일 수 있다.
후보 지점이 식별되면, 프로세서(170)는 로봇(100)이 식별된 후보 지점으로 이동하도록 주행부(140)를 제어할 수 있다. 두 지점이 후보 지점으로 식별되면, 두 지점 중 로봇(100)으로부터 거리가 더 먼 지점으로 먼저 이동할 수 있으나, 이는 일 실시예에 불과할 뿐, 좌측 영역(551)에서 식별된 후보 지점으로 먼저 이동하거나, 우측 영역(552)에서 식별된 후보 지점으로 먼저 이동할 수 있다.
도 5d를 참조하면, 프로세서(170)는 식별된 후보 지점을 TREE 구조로 저장할 수 있다. TREE 구조에서 각 NODE는 식별된 후보 지점을 의미할 수 있다. 이 때, 상위 NODE에서 식별된 후보 지점은 하위 NODE로 상위 NODE와 연결될 수 있다.
0 지점(510)은 로봇이 현재 위치하고 있는 지점을 의미할 수 있다. 0 지점(510)에서 식별된 후보 지점은 1 지점(520)일 수 있다. 이 때, 프로세서(170)는 로봇(100)이 0 지점(510)에서 1 지점(520)으로 이동하도록 주행부(140)를 제어할 수 있다. 1지점(520)에서 식별된 후보 지점은 1-1 지점(530) 및 1-2 지점(540)일 수 있다. 프로세서(170)는 1-1 지점(530) 및 1-2 지점(540) 중 거리가 더 먼 지점인 1-1 지점(530)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
프로세서(170)는 1-1 지점(530)에서 1-1-1 지점(550)을 후보 지점으로 식별할 수 있다. 이 때, 식별된 지점의 수는 1개 이므로, 프로세서(170)는 로봇(100)이 1-1-1 지점(550)로 이동하도록 주행부(140)를 제어할 수 있다.
1-1-1 지점(550) 에서는 식별되는 후보 지점이 없을 수 있다. 예를 들어, 1-1-1 지점(550)에서 로봇(100)의 좌측 영역(551)과 우측 영역(552)으로부터 제3 임계 값 이상 거리가 떨어진 지점이 없으면, 1-1-1 지점(550) 에서는 식별되는 후보 지점이 없을 수 있다. 식별되는 후보 지점이 없으면, 프로세서(170)는 1-1-1 지점(550)의 상위 노드인 1-1 지점(530)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
1-1 지점(530)에서 식별된 후보 지점은 1-1-1 지점(550)이고, 1-1-1 지점(550)은 식별되는 후보 지점이 없는 지점으로 판단되었으므로, 프로세서(170)는 1-1 지점(530)의 상위 지점인 1 지점(520)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다. 즉, 특정 지점에서 식별되는 후보 지점이 없거나 로봇(100)이 특정 지점의 후보 지점(또는 하위 노드)을 모두 주행한 이력이 있는 경우, 프로세서(170)는 상위 노드에 해당하는 지점으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
1 지점(520)에서 식별된 후보 지점은 1-1 지점(530) 및 1-2 지점(540)이고, 로봇(100)이 1-1 지점(530)을 주행한 이력이 있으므로, 프로세서(170)는 식별된 후보 지점 중 주행 이력이 있는 1-1 지점(530)을 제외한 1-2 지점(540)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 1-2 지점(540)으로 이동하면, 프로세서(170)는 1-2 지점(540)에서 후보 지점을 식별할 수 있다. 1-2 지점(540)에서 식별되는 후보 지점은 1-2-1 지점(560)일 수 있다. 프로세서(170)는 1-2-1 지점(560)으로 로봇(100)이 이동하도록 주행부(140)를 제어할 수 있다.
로봇(100)이 1-2-1 지점(560)으로 이동하는 동안, 로봇(100)은 오브젝트(200)와 동일한 공간에 위치하게 될 수 있다. 이 때, 프로세서(170)는 로봇(100)이 1-2-1 지점(560)으로의 이동을 중단하고 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 로봇(100)이 오브젝트(200)로 주행하도록 주행부(140)를 제어할 수 있다.
도 6은 본 개시의 일 실시예에 따른 로봇(100)의 제어 방법을 설명하기 위한 순서도이다.
로봇(100)은 오브젝트(200)로부터 제1 UWB 신호를 수신할 수 있다(S610). 로봇(100)은 통신 인터페이스(120)에 포함된 UWB 모듈(121)을 통해 제1 UWB 신호를 수신할 수 있다.
로봇(100)은 수신된 제1 UWB 신호에 기초하여, 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다(S620). 로봇(100)은 제1 UWB 신호의 감쇄량과 임계 값을 비교하여 로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는지 여부를 식별할 수 있다.
로봇(100)은 제1 UWB 신호의 감쇄량이 제1 임계 값 미만이면 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별할 수 있다. 로봇(100)은 제1 UWB 신호의 감쇄량이 제1 임계 값을 초과하면 오브젝트(200)와 상이한 공간에 위치하는 것으로 식별할 수 있다.
로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별되면 로봇(100)은 수신된 제1 UWB 신호에 기초하여 오브젝트로 주행하고, 오브젝트(200)와 상이한 공간에 위치하는 것으로 식별되면 로봇(100)은 비컨(300)으로부터 수신된 로봇(100) 및 오브젝트(200)의 좌표 정보 및 거리 센서(130) 로부터 획득된 센싱 값을 이용하여 오브젝트(200)와 동일한 공간으로 이동하도록 주행할 수 있다(S630).
로봇(100)이 오브젝트(200)와 동일한 공간에 위치하는 것으로 식별되면, 로봇(100)은 오브젝트(200)로부터 수신된 제1 UWB 신호에 기초하여 오브젝트(200)에 대한 거리 및 방향을 식별하고, 식별된 거리 및 방향에 기초하여 오브젝트(200)로 주행할 수 있다.
로봇(100)이 오브젝트(200)와 상이한 공간에 위치하고 비컨(300)과 동일한 공간에 위치하는 것으로 식별되면, 로봇(100)은 비컨(300)으로부터 수신한 로봇(100)의 좌표 정보, 오브젝트(200)의 좌표 정보 및 거리 센서(130)로부터 획득된 센싱 값을 이용하여 로봇(100)의 주변 맵 정보를 획득하고, 로봇(100)의 좌표 정보, 오브젝트(200)의 좌표 정보 및 로봇(100)의 주변 맵 정보에 기초하여, 오브젝트(200)와 동일한 공간으로 이동하도록 주행할 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 로봇(100)를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100 : 로봇 110 : 메모리
120 : 통신 인터페이스 130 : 거리 센서
140 : 주행부 150 : 사용자 인터페이스
160 : 디스플레이 170 : 프로세서
200 : 오브젝트 300 : 비컨

Claims (19)

  1. 로봇의 제어 방법에 있어서,
    오브젝트로부터 제1 UWB 신호를 수신하는 단계;
    상기 수신된 제1 UWB 신호에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하는 단계;
    상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면 상기 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 포함하는 로봇의 제어 방법.
  2. 제1항에 있어서,
    상기 로봇의 위치를 식별하는 단계는,
    상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값 이하이면, 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별하고,
    상기 수신된 제1 UWB 신호의 감쇄량이 상기 제1 임계 값을 초과하면, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별하는 로봇의 제어 방법.
  3. 제1항에 있어서,
    상기 오브젝트로 주행하는 단계는,
    상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트에 대한 거리 및 방향을 식별하고, 상기 식별된 거리 및 방향에 기초하여 상기 오브젝트로 주행하는 로봇의 제어 방법.
  4. 제3항에 있어서,
    상기 오브젝트로 주행하는 단계는,
    상기 식별된 거리 및 방향에 기초하여, 상기 오브젝트에 대한 거리 및 각도가 기설정된 값인 지점으로 이동하도록 주행하는 로봇의 제어 방법.
  5. 제2항에 있어서,
    상기 로봇의 제어 방법은
    상기 오브젝트로부터 상기 오브젝트의 활동량 정보를 수신하는 단계;
    상기 수신된 활동량 정보 및 상기 식별된 거리에 기초하여 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하는지 여부를 식별하는 단계;
    상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하지 않는 것으로 식별되면, 회전하는 단계;를 더 포함하는 로봇의 제어 방법.
  6. 제1항에 있어서,
    상기 로봇의 제어 방법은,
    상기 오브젝트로 주행하는 동안 상기 거리 센서를 통해 장애물이 식별되면, 주행 속도를 감소하고 회전하는 단계;를 더 포함하는 로봇의 제어 방법.
  7. 제1항에 있어서,
    상기 로봇의 제어 방법은,
    상기 비컨으로부터 제2 UWB 신호를 수신하는 단계;
    상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 제2 임계 값 이하이면, 상키 비컨과 동일한 공간에 위치하는 것으로 식별하고,
    상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 상기 제2 임계 값을 초과하면, 상기 비컨과 상이한 공간에 위치하는 것으로 식별하는 단계;를 더 포함하는 로봇의 제어 방법.
  8. 제1항에 있어서,
    상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계는,
    상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 동일한 공간에 위치하는 것으로 식별되면, 상기 비컨으로부터 상기 로봇의 좌표 정보 및 상기 오브젝트의 좌표 정보를 수신하고, 상기 거리 센서로부터 획득된 센싱 값을 이용하여 상기 로봇의 주변 맵 정보를 획득하고,
    상기 로봇의 좌표 정보, 상기 오브젝트의 좌표 정보 및 상기 맵 정보에 기초하여, 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 로봇의 제어 방법.
  9. 제1항에 있어서,
    상기 로봇의 제어 방법은
    상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 상이한 공간에 위치하는 것으로 식별되면, 상기 거리 센서를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고, 상기 식별된 적어도 하나의 후보 지점에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 더 포함하는 로봇의 제어 방법.
  10. 로봇에 있어서,
    주행부,
    UWB 모듈을 포함하는 통신 인터페이스,
    거리 센서,
    적어도 하나의 명령어를 저장하는 메모리, 및
    상기 메모리와 연결되어 상기 로봇을 제어하는 프로세서를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써,
    상기 오브젝트로부터 상기 UWB 모듈을 통해 제1 UWB 신호를 수신하고,
    상기 수신된 제1 UWB 신호에 기초하여, 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하고,
    상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면, 상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 상기 주행부를 제어하는 로봇.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값 이하이면, 상기 오브젝트와 동일한 공간에 위치하는 것으로 식별하고,
    상기 수신된 제1 UWB 신호의 감쇄량이 제1 임계 값을 초과하면, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별하는 로봇.
  12. 제10항에 있어서,
    상기 프로세서는,
    상기 수신된 제1 UWB 신호에 기초하여 상기 오브젝트에 대한 거리 및 방향을 식별하고, 상기 식별된 거리 및 방향에 기초하여 상기 오브젝트로 주행하도록 상기 주행부를 제어하는 로봇.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 식별된 거리 및 방향에 기초하여, 상기 오브젝트에 대한 거리 및 각도가 기설정된 값인 지점으로 이동하도록 상기 주행부를 제어하는 로봇.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 통신 인터페이스를 통해 상기 오브젝트로부터 상기 오브젝트의 활동량 정보를 수신하고,
    상기 수신된 활동량 정보 및 상기 식별된 거리에 기초하여 상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하는지 여부를 식별하고,
    상기 로봇의 주행방향과 상기 오브젝트의 주행 방향이 일치하지 않는 것으로 식별되면, 회전하도록 상기 주행부를 제어하는 로봇.
  15. 제10항에 있어서,
    상기 프로세서는,
    상기 오브젝트로 주행하는 동안 상기 거리 센서를 통해 장애물이 식별되면, 주행 속도를 감소하고 회전하도록 상기 주행부를 제어하는 로봇.
  16. 제10항에 있어서,
    상기 프로세서는,
    상기 비컨으로부터 제2 UWB 신호를 상기 통신 인터페이스를 통해 수신하고,
    상기 비컨으로부터 수신된 제2 UWB 신호의 감쇄량이 제2 임계 값 이하이면, 상키 비컨과 동일한 공간에 위치하는 것으로 식별하고,
    상기 비컨으로부터 수신된 UWB 신호의 감쇄량이 상기 제2 임계 값을 초과하면, 상기 비컨과 상이한 공간에 위치하는 것으로 식별하는 로봇.
  17. 제10항에 있어서,
    상기 프로세서는,
    상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 동일한 공간에 위치하는 것으로 식별되면, 상기 비컨으로부터 상기 로봇의 좌표 정보 및 상기 오브젝트의 좌표 정보를 수신하고, 상기 거리 센서로부터 획득된 센싱 값을 이용하여 상기 로봇의 주변 맵 정보를 획득하고,
    상기 로봇의 좌표 정보, 상기 오브젝트의 좌표 정보 및 상기 맵 정보에 기초하여, 상기 오브젝트와 동일한 공간으로 이동하도록 상기 주행부를 제어하는 로봇.
  18. 제10항에 있어서,
    상기 프로세서는,
    상기 오브젝트와 상이한 공간에 위치하고 상기 비컨과 상이한 공간에 위치하는 것으로 식별되면, 상기 거리 센서를 통해 획득된 센싱 값에 기초하여 적어도 하나의 후보 지점을 식별하고,
    상기 식별된 적어도 하나의 후보 지점에 기초하여, 상기 로봇이 상기 오브젝트와 동일한 공간에 위치하도록 상기 주행부를 제어하는 로봇.
  19. 로봇의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서,
    상기 로봇의 제어 방법은,
    오브젝트로부터 제1 UWB 신호를 수신하는 단계;
    상기 수신된 제1 UWB 신호에 기초하여, 상기 상기 오브젝트와 동일한 공간에 위치하는지 여부를 식별하는 단계;
    상기 오브젝트와 동일한 공간에 위치하는 것으로 식별되면, 상기 제1 UWB 신호에 기초하여 상기 오브젝트로 주행하고, 상기 오브젝트와 상이한 공간에 위치하는 것으로 식별되면, 상기 로봇과 동일한 공간에 위치하는 비컨으로부터 수신되는 상기 로봇 및 상기 오브젝트의 좌표 정보 또는 거리 센서로부터 획득된 센싱값을 이용하여 상기 오브젝트와 동일한 공간으로 이동하도록 주행하는 단계;를 포함하는 컴퓨터 판독 가능 기록매체.
KR1020210129114A 2021-09-29 2021-09-29 로봇 및 그 제어 방법 KR20230046080A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210129114A KR20230046080A (ko) 2021-09-29 2021-09-29 로봇 및 그 제어 방법
EP22876843.8A EP4321310A1 (en) 2021-09-29 2022-09-28 Robot and controlling method thereof
CN202280044886.2A CN117545600A (zh) 2021-09-29 2022-09-28 机器人及其控制方法
PCT/KR2022/014555 WO2023055071A1 (ko) 2021-09-29 2022-09-28 로봇 및 그 제어 방법
US18/134,080 US20230256612A1 (en) 2021-09-29 2023-04-13 Robot and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210129114A KR20230046080A (ko) 2021-09-29 2021-09-29 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20230046080A true KR20230046080A (ko) 2023-04-05

Family

ID=85783206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210129114A KR20230046080A (ko) 2021-09-29 2021-09-29 로봇 및 그 제어 방법

Country Status (5)

Country Link
US (1) US20230256612A1 (ko)
EP (1) EP4321310A1 (ko)
KR (1) KR20230046080A (ko)
CN (1) CN117545600A (ko)
WO (1) WO2023055071A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201807523A (zh) * 2016-08-22 2018-03-01 金寶電子工業股份有限公司 移動式機器人的即時導航方法
KR102269851B1 (ko) * 2019-01-31 2021-06-28 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102267690B1 (ko) * 2019-02-20 2021-06-22 엘지전자 주식회사 복수의 자율주행 이동 로봇
KR20210039869A (ko) * 2019-10-02 2021-04-12 삼성전자주식회사 이동 로봇 및 그 제어방법
KR102257445B1 (ko) * 2019-11-12 2021-05-31 주식회사 오딘로보틱스 Uwb 태그를 추적하는 객체 추적 이동 로봇의 객체 위치 인식률 향상을 위한 uwb 앵커 제어 시스템

Also Published As

Publication number Publication date
EP4321310A1 (en) 2024-02-14
CN117545600A (zh) 2024-02-09
WO2023055071A1 (ko) 2023-04-06
US20230256612A1 (en) 2023-08-17

Similar Documents

Publication Publication Date Title
US11787543B2 (en) Image space motion planning of an autonomous vehicle
US10641899B2 (en) Detecting sensor orientation characteristics using marker-based localization
US10739784B2 (en) Radar aided visual inertial odometry initialization
US20200004253A1 (en) Systems and methods for dynamic route planning in autonomous navigation
KR100703692B1 (ko) 공간상에 존재하는 오브젝트들을 구별하기 위한 시스템,장치 및 방법
US20210026368A1 (en) Apparatus, system, and method of using depth assessment for autonomous robot navigation
US11529736B2 (en) Systems, apparatuses, and methods for detecting escalators
CN106950534B (zh) 一种空间位置检测方法、系统及vr穿戴设备
US11886198B2 (en) Systems and methods for detecting blind spots for robots
US20190162842A1 (en) Radar aided visual inertial odometry outlier removal
US20200116856A1 (en) Collision warning using ultra wide band radar
US20200380699A1 (en) Moving body
US11331801B2 (en) System and method for probabilistic multi-robot positioning
US10901085B2 (en) System and method for mobile platform operation
US20210356972A1 (en) Electronic apparatus and controlling method thereof
WO2022174545A1 (zh) 路径优化方法、水下航行器以及计算机可读存储介质
KR20230046080A (ko) 로봇 및 그 제어 방법
US11653808B2 (en) Robot cleaner and controlling method thereof
KR20220065774A (ko) 이동체, 시스템, 프로그램, 및 제어 방법
WO2023100514A1 (ja) 情報処理方法、プログラム、位置測定装置及び位置測定システム
KR101914829B1 (ko) 다수의 전자 장치들을 이용하여 목적지로 이동하기 위한 장치 및 방법
CN114147711B (zh) 机器人控制方法、装置、终端设备及存储介质
US20240134391A1 (en) Robot and controlling method of robot
JP2021184014A (ja) 地図表示装置及び地図表示プログラム
CN117826808A (zh) 清洁设备的避障方法、装置和存储介质