WO2022119114A1 - 로봇 및 그의 맵 생성 방법 - Google Patents

로봇 및 그의 맵 생성 방법 Download PDF

Info

Publication number
WO2022119114A1
WO2022119114A1 PCT/KR2021/014533 KR2021014533W WO2022119114A1 WO 2022119114 A1 WO2022119114 A1 WO 2022119114A1 KR 2021014533 W KR2021014533 W KR 2021014533W WO 2022119114 A1 WO2022119114 A1 WO 2022119114A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
wall
processor
walls
map
Prior art date
Application number
PCT/KR2021/014533
Other languages
English (en)
French (fr)
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 EP21900802.6A priority Critical patent/EP4212289A4/en
Publication of WO2022119114A1 publication Critical patent/WO2022119114A1/ko
Priority to US18/135,540 priority patent/US20230251663A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • 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/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
    • 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
    • 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/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
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser

Definitions

  • the processor may control the driving unit to sequentially follow the wall from the wall having the highest priority among the identified walls based on the stored information.
  • the robot when the robot performs the wall following, a boundary between the searched area and the unsearched area is identified, the search point is identified on the identified boundary, and the robot moves to the search point.
  • FIG. 7 and 8 are diagrams for explaining the quality of a generated map when a map is generated according to an embodiment of the present disclosure
  • the processor 140 may recognize the environment around the robot 100 using the obtained information.
  • the robot 100 may search for an area 425 around the robot 100 using the sensor 110 while wall following is performed on the wall 413 .
  • the robot 100 may generate a map for the searched area 425 using information obtained through the sensor 110 .
  • the traveling unit 120 may move the robot 100 .
  • the driving unit 120 may include a motor 121 and a driving unit 122 connected to the motor 121 .
  • the driving unit 122 may be implemented as a wheel or a leg of a robot.
  • the motor 121 may control the driving unit 122 under the control of the processor 140 to control various driving operations such as movement, stopping, speed control, and direction change of the robot 100 .
  • each of the components may be composed of a singular or a plurality of entities, and some of the above-described corresponding sub-components are omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (eg, a module or a program) may be integrated into a single entity to perform the same or similar functions performed by each corresponding component prior to integration.
  • unit or “module” used in the present disclosure includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, part, or circuit.
  • a “unit” or “module” may be an integrally formed component or a minimum unit or a part of performing one or more functions.
  • the module may be configured as an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit

Landscapes

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

Abstract

로봇이 개시된다. 본 로봇은 센서, 주행부, 메모리 및 센서를 통해 적어도 하나의 벽이 식별되면, 로봇이 적어도 하나의 벽을 따라 주행하는 월 팔로잉을 수행하도록 주행부를 제어하고, 로봇이 주행하는 동안에 센서를 통해 로봇 주변의 영역을 탐색하여 탐색된 영역에 대한 맵을 생성하고, 생성된 맵에 대한 정보를 메모리에 저장하고, 로봇이 월 팔로잉을 수행한 후, 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 로봇이 탐색 포인트로 이동하도록 주행부를 제어하는 프로세서를 포함한다.

Description

로봇 및 그의 맵 생성 방법
본 개시는 로봇 및 그의 맵 생성 방법에 관한 것으로, 보다 상세하게는 맵을 생성하는 로봇 및 그의 맵 생성 방법에 관한 것이다.
일반적으로 로봇은 산업용으로 개발되어 여러 산업 현장에서 널리 사용되고 있다. 최근에는 로봇을 이용한 분야가 더욱 확대되어, 일반 가정집 뿐만 아니라, 다양한 매장에서도 활용되고 있다.
로봇은 로봇이 위치하는 공간에 대한 맵을 이용하여 공간 내에서 이동할 수 있는데, 이를 위해, 로봇은 자신이 주변 환경을 탐색하여 맵을 생성할 수 있다.
이 경우, 맵이 정확할수록 로봇이 보다 정확히 주행할 수 있다는 점에서, 보다 정밀하고 정확한 맵을 생성할 수 있는 방안의 모색이 요청된다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 개시의 목적은 맵 생성 시 월 팔로잉을 수행할 수 있는 로봇 및 그의 맵 생성 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇은 센서, 주행부, 메모리 및 상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 로봇이 상기 적어도 하나의 벽을 따라 주행하는 월 팔로잉을 수행하도록 상기 주행부를 제어하고, 상기 로봇이 주행하는 동안에 상기 센서를 통해 상기 로봇 주변의 영역을 탐색하여 상기 탐색된 영역에 대한 맵을 생성하고, 상기 생성된 맵에 대한 정보를 상기 메모리에 저장하고, 상기 로봇이 상기 월 팔로잉을 수행한 후, 상기 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 상기 로봇이 탐색 포인트로 이동하도록 상기 주행부를 제어하는 프로세서를 포함한다.
여기에서, 상기 프로세서는 상기 적어도 하나의 벽에 대한 정보를 상기 메모리에 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행하도록 상기 주행부를 제어할 수 있다.
또한, 상기 프로세서는 상기 센서를 통해 복수의 벽이 식별된 경우, 상기 복수의 벽의 모서리 방향 및 상기 복수의 벽과 상기 로봇 간의 거리에 기초하여 상기 복수의 벽의 우선 순위를 판단하고, 상기 우선 순위에 따라 상기 복수의 벽에 대한 정보를 상기 메모리에 저장할 수 있다.
여기에서, 상기 프로세서는 상기 복수의 미탐색된 벽 중 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽을 식별하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하고, 상기 나마지 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다.
또한, 상기 프로세서는 상기 저장된 정보에 기초하여 상기 식별된 벽 중 상기 우선 순위가 가장 높은 벽부터 순차적으로 상기 월 팔로잉을 수행하도록 상기 주행부를 제어할 수 있다.
그리고, 상기 프로세서는 상기 로봇이 상기 월 팔로잉을 수행하는 동안 상기 센서를 통해 새로운 벽이 식별되면, 상기 식별된 새로운 벽에 대한 정보를 상기 메모리에 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행하도록 상기 주행부를 제어할 수 있다.
또한, 상기 프로세서는 상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 센서를 통해 획득된 정보를 바탕으로 상기 로봇이 상기 벽을 한바퀴 회전하는 루프 클로징이 발생된 것으로 식별되면, 상기 벽에 대한 월 팔로잉이 완료된 것으로 판단할 수 있다.
그리고, 상기 프로세서는 상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 로봇이 상기 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어지거나, 상기 월 팔로잉을 시작한 시간으로부터 기설정된 시간 이상 경과하거나, 상기 월 팔로잉을 시작한 이후 기설정된 시간 동안 상기 로봇의 진행 방향이 변경되지 않는 경우, 상기 벽에 대한 월 팔로잉을 중단하도록 상기 주행부를 제어할 수 있다.
또한, 상기 프로세서는 상기 로봇이 상기 월 팔로잉을 수행하면, 상기 탐색된 영역과 상기 미탐색 영역 간의 경계를 식별하고, 상기 식별된 경계 상에서 상기 탐색 포인트를 식별하고, 상기 로봇이 상기 탐색 포인트로 이동하도록 상기 주행부를 제어할 수 있다.
그리고, 상기 프로세서는 상기 로봇이 상기 탐색 포인트로 이동하는 동안 상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 로봇이 상기 식별된 벽을 따라 주행하는 월 팔로잉을 수행하도록 상기 주행부를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따른 센서를 포함하는 로봇의 맵 생성 방법은 상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 적어도 하나의 벽을 따라 주행하는 월 팔로잉을 수행하는 단계, 상기 로봇이 주행하는 동안에 상기 센서를 통해 상기 로봇 주변의 영역을 탐색하여 상기 탐색된 영역에 대한 맵을 생성하고, 상기 생성된 맵에 대한 정보를 저장하는 단계 및 상기 월 팔로잉을 수행한 후, 상기 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 탐색 포인트로 이동하는 단계를 포함한다.
여기에서, 상기 수행하는 단계는 상기 적어도 하나의 벽에 대한 정보를 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행할 수 있다.
또한, 상기 수행하는 단계는 상기 센서를 통해 복수의 벽이 식별된 경우, 상기 복수의 벽의 모서리 방향 및 상기 복수의 벽과 상기 로봇 간의 거리에 기초하여 상기 복수의 벽의 우선 순위를 판단하고, 상기 우선 순위에 따라 상기 복수의 벽에 대한 정보를 저장할 수 있다.
여기에서, 상기 수행하는 단계는 상기 복수의 미탐색된 벽 중 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽을 식별하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하고, 상기 나마지 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다.
또한, 상기 수행하는 단계는 상기 저장된 정보에 기초하여 상기 식별된 벽 중 상기 우선 순위가 가장 높은 벽부터 순차적으로 상기 월 팔로잉을 수행할 수 있다.
그리고, 상기 수행하는 단계는 상기 월 팔로잉을 수행하는 동안 상기 센서를 통해 새로운 벽이 식별되면, 상기 식별된 새로운 벽에 대한 정보를 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행할 수 있다.
또한, 상기 수행하는 단계는 상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 센서를 통해 획득된 정보를 바탕으로 상기 로봇이 상기 벽을 한바퀴 회전하는 루프 클로징이 발생된 것으로 식별되면, 상기 벽에 대한 월 팔로잉이 완료된 것으로 판단할 수 있다.
그리고, 상기 수행하는 단계는 상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 로봇이 상기 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어지거나, 상기 월 팔로잉을 시작한 시간으로부터 기설정된 시간 이상 경과하거나, 상기 월 팔로잉을 시작한 이후 기설정된 시간 동안 상기 로봇의 진행 방향이 변경되지 않는 경우, 상기 벽에 대한 월 팔로잉을 중단할 수 있다.
또한, 상기 이동하는 단계는 상기 로봇이 상기 월 팔로잉을 수행하면, 상기 탐색된 영역과 상기 미탐색 영역 간의 경계를 식별하고, 상기 식별된 경계 상에서 상기 탐색 포인트를 식별하고, 상기 탐색 포인트로 이동할 수 있다.
그리고, 본 개시에 따르면, 상기 탐색 포인트로 이동하는 동안 상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 식별된 벽을 따라 주행하는 월 팔로잉을 수행하는 단계를 더 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 로봇이 맵을 생성할 때, 월 팔로잉을 통해 루프를 형성하도록 이동하면서 로봇 주변에 대한 맵을 생성한다는 점에서, 정확도가 향상된 맵이 생성될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따라 복수의 벽에 대한 우선 순위를 결정하는 방법을 설명하기 위한 도면,
도 4a 내지 도 4i는 본 개시의 일 실시 예에 따른 월 팔로잉을 통해 맵을 생성하는 방법의 일 예를 설명하기 위한 도면들,
도 5는 본 개시의 일 실시 예에 따라 로봇이 월 팔로잉을 수행하지 않아도, 루프 클로징을 형성하는 방법을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 로봇의 맵 생성 방법을 설명하기 위한 흐름도,
도 7 및 도 8은 본 개시의 일 실시 예에 따라 맵을 생성한 경우, 생성된 맵의 품질을 설명하기 위한 도면들,
도 9는 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도, 그리고
도 10은 본 개시의 일 실시 예에 따른 로봇의 맵 생성 방법을 설명하기 위한 흐름도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(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은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면이다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 다양한 유형의 로봇일 수 있다.
예를 들어, 로봇(100)은 리테일 로봇 또는 가이드 로봇 등으로 구현될 수 있다. 즉, 로봇(100)은 매장 내에서 사용자에게 경로를 안내하거나, 매장 내의 제품을 사용자에게 설명하거나, 또는 사용자의 물건을 들고 매장 내에서 사용자를 따라 이동하는 기능을 수행할 수 있다.
이 경우, 로봇(100)은 로봇(100)이 위치하는 공간에 대한 맵을 이용하여 이동할 수 있다. 예를 들어, 로봇(100)은 센서를 통해 획득된 정보를 바탕으로 맵 상에서 자신의 위치를 식별하고, 맵 및 맵 상에서의 로봇(100)의 위치를 이용하여 공간 내에서 이동할 수 있다.
이를 위해, 로봇(100)은 로봇(100)이 위치하는 공간에 대한 맵을 생성할 수 있다. 특히, 본 개시의 일 실시 예에 따르면, 로봇(100)은 맵을 생성할 때, 월 팔로잉(wall following)에 통한 루프 클로징(loop closing)을 형성하여, 보다 정밀한 맵을 생성할 수 있는데, 이하에서 보다 구체적으로 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 센서(110), 주행부(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다.
센서(110)는 로봇(100) 및 로봇(100)의 주변과 관련된 다양한 정보를 획득할 수 있다.
예를 들어, 센서(110)는 라이다(LiDAR, light detection and ranging) 센서(또는, LDS(laser distance sensor))를 포함할 수 있다. 라이다 센서는 레이저를 조사하고, 조사된 레이저가 로봇(100) 주변의 물체(또는, 장애물)로부터 반사되어 수신되면, 레이저가 수신된 시간에 기초하여 물체와의 거리를 감지하거나, 수신된 레이저의 위상 변화량을 측정하여 물체와의 거리를 감지할 수 있다.
또한, 센서(110)는 비주얼 센서를 포함할 수 있다. 비주얼 센서는 3D 센서 및 카메라 중 적어도 하나를 포함할 수 있다. 3D 센서는 복수의 카메라로 구성된 스테레오 카메라를 이용하여 주변 환경을 감지할 수 있는 센서로, 로봇(100)과 로봇(100) 주변의 물체와의 거리를 감지할 수 있다. 카메라는 로봇(100)의 주변을 촬영하여, 이미지를 획득할 수 있다. 이 경우, 로봇(100)은 카메라를 통해 획득된 이미지에서 물체를 인식하여, 물체의 종류, 형상, 크기 등에 대한 정보를 획득할 수 있다.
또한, 센서(110)는 자이로 센서를 포함할 수 있다. 자이로 센서는 로봇(100)의 각속도를 감지할 수 있다.
또한, 센서(110)는 엔코더(encoder)를 포함할 수 있다. 엔코더는 로봇(100)의 이동을 위해 로봇(100)에 설치된 바퀴의 회전수를 감지할 수 있다.
이와 같이, 본 개시의 일 실시 예에 따르면, 센서(110)는 다양한 센서를 포함할 수 있다.
주행부(120)는 로봇(100)을 이동시키기 위한 구성요소이다. 이를 위해, 주행부(120)는 모터(121) 및 모터(121)에 연결된 구동부(122)를 포함할 수 있다. 구동부(122)는 바퀴 또는 로봇의 다리 등으로 구현될 수 있다. 모터(121)는 구동부(122)를 제어하여 로봇(100)의 이동, 정지, 속도 제어 및 방향 전환 등과 같은 다양한 주행 동작을 제어할 수 있다.
메모리(130)는 로봇(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(130)에는 로봇(100)을 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(130)에는 본 개시의 다양한 실시 예들에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(130)는 프레임 버퍼와 같은 휘발성 메모리, 플래시 메모리 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(130)에는 본 개시의 다양한 실시 예에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(140)는 메모리(130)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(130)는 프로세서(140)에 의해 액세스되며, 프로세서(140)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
한편, 본 개시에서 메모리(130)라는 용어는 메모리(130), 프로세서(140) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
특히, 메모리(130)는 맵의 생성에 이용되는 다양한 데이터 및 생성된 맵에 대한 데이터가 저장될 수 있다.
프로세서(140)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(140)는 센서(110), 주행부(120) 및 메모리(130)를 포함하는 로봇(100)의 구성과 연결되며, 메모리(130)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 로봇(100)의 동작을 전반적으로 제어할 수 있다.
먼저, 프로세서(140)는 로봇(100)이 이동하도록 주행부(120)를 제어할 수 있다. 구체적으로, 프로세서(140)는 모터(121)로 제어 신호를 전송하여, 모터(121)를 통해 구동부(122)를 구동하고, 구동부(122)의 구동에 의해 로봇(100)을 이동시킬 수 있다. 이에 따라, 로봇(100)은 이동, 정지, 속도 제어 및 방향 전환 등과 같은 다양한 주행 동작을 수행할 수 있다.
이 경우, 프로세서(140)는 센서(110)를 통해 획득된 정보에 기초하여 로봇(100)으로부터 물체까지의 거리를 식별하고, 식별된 거리에 기초하여 물체와 충돌하지 않으면서 로봇(100)이 이동하도록 주행부(120)를 제어할 수 있다.
예를 들어, 프로세서(140)는 라이다 센서를 통해 로봇(100)의 전방에서 물체가 감지된 경우, 감지된 물체와의 거리를 이용하여 로봇(100)이 물체와 일정한 거리 떨어진 지점에서 주행 방향을 변경하기 위한 제어 신호를 모터(121)로 전송할 수 있다. 이에 따라, 로봇(100)은 물체와 충돌하지 않고, 물체를 회피하여 이동할 수 있다.
한편, 프로세서(140)는 로봇(100)이 위치하는 공간에 대한 맵을 생성하고, 생성된 맵을 메모리(130)에 저장할 수 있다.
이 경우, 프로세서(140)는 SLAM(simultaneous localization and mapping) 알고리즘을 이용하여 맵을 생성할 수 있다.
예를 들어, 프로세서(140)는 맵을 생성하기 위해 로봇(100)이 주행을 시작하는 위치(가령, 좌표) 및 로봇(100)의 회전각을 각각 기준 위치 및 기준 회전각으로 설정할 수 있다.
그리고, 프로세서(140)는 로봇(100)이 맵을 생성하기 위해 주행하는 동안에, 센서(110)를 통해 획득된 로봇(100)과 로봇(100) 주변에 위치하는 물체와의 거리, 로봇(100) 주변을 촬영하여 획득된 이미지, 로봇(100)의 회전각 및 로봇(100)의 이동 거리 중 적어도 하나를 이용하여, 이동된 로봇(100)의 위치(가령, 좌표) 및 회전각을 획득할 수 있다. 이 경우, 프로세서(140)는 라이다 센서 및 3D 센서 중 적어도 하나를 통해 로봇(100)과 로봇(100) 주변에 위치하는 물체와의 거리에 대한 정보를 획득할 수 있다. 또한, 프로세서(140)는 카메라를 통해 로봇(100) 주변을 촬영하여 이미지를 획득할 수 있다. 또한, 프로세서(140)는 자이로 센서를 통해 획득한 로봇(100)의 각속도에 기초하여 로봇(100)의 회전각을 산출하고, 엔코더를 통해 획득한 바퀴들의 회전수에 기초하여 로봇(100)의 이동 거리를 산출할 수 있다.
한편, 프로세서(140)는 로봇(100)이 기준 위치에서부터 획득된 위치까지 이동하는 동안에, 센서(110)를 통해 로봇(100) 주변의 영역을 탐색(exploration)하고, 탐색된 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다.
예를 들어, 프로세서(140)는 로봇(100)이 기준 위치에서부터 획득된 위치까지 이동하는 동안에, 라이다 센서 및 3D 센서 중 적어도 하나를 통해 로봇(100)과 물체와의 거리를 식별하고, 기준 위치에서부터 획득된 위치까지 로봇(100)이 이동한 좌표 값들을 식별할 수 있다. 그리고, 프로세서(140)는 로봇(100)이 이동한 좌표 값들에 따라, 식별된 물체와의 거리를 이용하여 물체의 위치(가령, 좌표)를 식별하고, 식별된 물체의 위치를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다. 이 경우, 프로세서(140)는 카메라를 통해 획득된 이미지를 이용하여 로봇(100) 주변의 물체의 종류, 형상 및 크기 등에 대한 정보를 획득하고, 획득된 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수도 있다.
또한, 프로세서(140)는 맵을 생성할 때, 탐색 알고리즘(exploration algorithm)을 이용할 수 있다.
여기에서, 탐색 알고리즘은 맵을 생성할 때, 공간에서 영역을 탐색한 후, 아직 탐색되지 않은 영역(즉, 미탐색된 영역)을 탐색하여 맵을 생성하기 위한 알고리즘을 의미할 수 있다. 이 경우, 로봇(100)이 탐색한 영역은 free space라 하고, 탐색하지 않은 영역은 unknown space라 할 수 있다.
이 경우, 프로세서(140)는 로봇(100)이 공간에서 영역을 탐색한 후, 미탐색된 영역으로 이동하도록 주행부(120)를 제어할 수 있다.
구체적으로, 프로세서(140)는 탬색된 영역과 미탐색된 영역 간의 경계(즉, frontier)를 식별하고, 경계 상의 하나의 지점(가령, 좌표)을 탐색 포인트(exploration point)로서 식별하고, 로봇(100)이 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다. 예를 들어, 프로세서(140)는 경계 상의 복수의 지점 중에서 로봇(100)과 가장 가까운 지점을 탐색 포인트인 것으로 식별할 수 있다. 다른 예로, 프로세서(140)는 센서(110)를 통해 탐색 범위, 로봇(100)의 위치, 탐색된 영역의 위치, 미탐색된 영역의 위치 중 적어도 하나에 기초하여, 미탐색된 영역을 최대한 빠르게 탐색할 수 있도록 하는 경계 상의 지점을 탐색 포인트인 것으로 식별할 수도 있다. 다만, 이는 일 예일 뿐이고, 프로세서(140)는 다양한 방법을 이용하여 탐색 포인트를 식별할 수 있다.
그리고, 프로세서(140)는 로봇(100)이 탐색 포인트로 이동하는 동안 또는 로봇(100)이 탐색 포인트로 이동한 후에, 센서(110)를 통해 획득된 정보를 이용하여 로봇(100) 주변의 영역을 탐색하고, 탐색된 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다.
결국, 프로세서(140)는 이러한 방법을 통해 공간에서 영역들을 탐색하여, 공간에 대한 맵을 생성할 수 있다. 그리고, 프로세서(140)는 생성된 맵을 메모리(130)에 저장할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 프로세서(140)는 영역을 탐색할 때, 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
여기에서, 월 팔로잉은 로봇(100)이 공간 내에 존재하는 벽(wall)을 따라 주행하는 것을 동작을 의미할 수 있다.
구체적으로, 프로세서(140)는 센서(110)를 통해 적어도 하나의 벽이 식별되면, 로봇(100)이 식별된 벽을 따라 주행하는 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
여기에서, 벽은 로봇(100)이 아직 탐색을 수행하지 않은 벽 즉, 미탐색된 벽을 의미할 수 있다.
전술한 바와 같이, 프로세서(140)는 센서(110)를 통해 획득되는 정보를 바탕으로 로봇(100) 주변에 위치하는 물체를 감지하여 로봇(100) 주변의 영역을 탐색하고, 감지된 물체에 대한 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다.
이 경우, 프로세서(140)는 센서(110)를 통해 감지된 물체가 로봇(100)이 탐색하지 않았던 벽인 경우, 감지된 물체를 미탐색된 벽인 것으로 판단할 수 있다.
구체적으로, 맵 생성 시, 로봇(100)이 물체를 탐색한 경우, 맵에는 해당 물체에 대한 정보가 포함될 수 있다. 따라서, 프로세서(140)는 감지된 물체에 대한 정보가 맵에 존재하지 않거나, 감지된 물체의 주변을 로봇(100)이 주행하지 않은 경우, 센서(110)를 통해 감지된 물체가 로봇(100)이 탐색하지 않은 물체인 것으로 식별할 수 있다.
또한, 프로세서(140)는 센서(110)를 통해 감지된 물체가 벽에 해당하는지를 식별할 수 있다. 예를 들어, 프로세서(140)는 라이다 센서 및 3D 센서 중 적어도 하나를 이용하여 감지된 물체의 폭을 식별하고, 식별된 폭이 기설정된 값 이상인 경우, 감지된 물체가 벽인 것으로 식별할 수 있다. 다른 예로, 프로세서(140)는 카메라를 통해 획득한 이미지를 이용하여 물체를 인식하여, 감지된 물체가 벽인지를 식별할 수도 있다.
이에 따라, 프로세서(140)는 로봇(100) 주변에 존재하는 미탐색된 벽을 식별할 수 있다.
그리고, 프로세서(140)는 적어도 하나의 벽이 식별되면, 적어도 하나의 벽에 대한 정보를 메모리(130)에 저장할 수 있다.
이 경우, 프로세서(140)는 적어도 하나의 벽에 대한 정보를 큐(queue)에 순차적으로 저장할 수 있다. 여기에서, 큐는 먼저 입력된 데이터가 먼저 출력되는 선입선출(FIFO; First In, First Out) 구조를 가진다는 점에서, 큐는 벽에 대한 정보의 처리 순서를 포함할 수 있다.
예를 들어, 프로세서(140)는 하나의 벽이 식별되는 경우, 식별된 벽의 위치 정보(가령, 벽의 좌표)를 큐에 저장할 수 있다. 이때, 프로세서(140)는 큐에 이미 정보가 저장되어 있는 경우, 기저장된 정보의 다음 순서로 식별된 벽의 위치 정보를 저장할 수 있고, 큐에 정보가 저장되어 있지 않은 경우, 식별된 벽의 위치 정보를 큐에서 첫 번째 순서로 저장할 수 있다.
한편, 프로세서(140)는 복수의 벽이 식별되는 경우, 복수의 벽의 우선 순위를 판단하고, 우선 순위에 따라 복수의 벽에 대한 정보를 메모리(130)에 저장할 수 있다.
이 경우, 프로세서(140)는 복수의 벽의 모서리 방향 및 복수의 벽과 로봇(100) 간의 거리에 기초하여 복수의 벽의 우선 순위를 판단할 수 있다.
구체적으로, 프로세서(140)는 복수의 벽 중 모서리 방향이 로봇(100)을 향하는 적어도 하나의 벽을 식별하고, 모서리 방향이 로봇(100)을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단할 수 있다.
이를 위해, 프로세서(140)는 센서(110)를 통해 획득된 정보에 기초하여 벽의 모서리가 향하는 방향을 식별할 수 있다.
예를 들어, 프로세서(140)는 라이다 센서 및 3D 센서 중 적어도 하나를 통해 획득된 로봇(100)과 벽 간의 거리를 이용하여 벽의 모서리 및 모서리 형상을 식별할 수 있다. 다른 예로, 프로세서(140)는 카메라를 통해 획득된 이미지로부터 벽의 모서리 및 모서리 형상을 식별할 수 있다.
이들 경우에서, 프로세서(140)는 식별된 모서리 형상에 기초하여 벽의 모서리 방향이 로봇(100)을 향하는지를 판단할 수 있다.
예를 들어, 프로세서(140)는 벽의 모서리가 로봇(100) 방향으로 도출된 형상을 갖는 경우, 벽의 모서리가 로봇(100)을 향하는 것으로 판단하고, 벽의 모서리가 로봇(100)으로부터 멀어지는 방향으로 도출된 형상을 갖는 경우, 벽의 모서리가 로봇(100)을 향하지 않는 것으로 판단할 수 있다.
예를 들어, 도 3과 같이, 로봇(100)이 공간(310) 내에 위치하는 경우를 가정한다. 이 경우, 프로세서(140)는 로봇(100) 주변에서 미탐색된 벽들(311, 312, 313)을 식별하고, 미탐색된 벽들(311, 312, 313) 중 모서리가 로봇(100)을 향하는 벽을 식별할 수 있다.
예를 들어, 도 3을 참조하면, 벽(312)의 모서리(322)는 로봇(100)를 향하는 방향(즉, ② 방향)으로 돌출된 반면, 벽(311)의 모서리(321)는 로봇(100)으로부터 멀어지는 방향(즉, ① 방향)으로 돌출되었다. 한편, 벽(313)의 경우에는, 로봇(100)이 벽(313)의 모서리를 검출할 수 없는 위치에 있다는 점에서, 벽(313)의 모서리는 검출되지 않았다.
이 경우, 프로세서(140)는 벽들(311, 312, 313) 중 모서리의 방향이 로봇(100)을 향하는 벽(312)이 나머지 벽들(311, 313) 보다 높은 우선 순위를 갖는 것으로 판단할 수 있다.
한편, 프로세서(140)는 모서리 방향이 로봇(100)을 향하는 적어도 하나의 벽에 대해, 로봇(100)과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다. 즉, 프로세서(140)는 모서리 방향이 로봇(100)을 향하는 벽이 복수 개인 경우, 로봇(100)과 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다. 이를 위해, 프로세서(140)는 라이다 센서 및 3D 센서 중 적어도 하나를 이용하여 벽 각각과 로봇(100) 간의 거리를 획득할 수 있다.
한편, 프로세서(140)는 나머지 벽(여기에서, 나머지 벽은 모서리 방향이 로봇(100)을 향하지 않는 벽 및 모서리가 검출되지 않은 벽 중 적어도 하나를 포함할 수 있다)에 대해, 로봇(100)과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다. 즉, 프로세서(140)는 나머지 벽이 복수 개인 경우, 로봇(100)과 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다. 이를 위해, 프로세서(140)는 라이다 센서 및 3D 센서 중 적어도 하나를 이용하여 벽 각각과 로봇(100) 간의 거리를 획득할 수 있다.
이와 같이, 프로세서(140)는 로봇(100) 주변에서 복수의 벽이 식별된 경우, 모서리 방향이 로봇(100)을 향하면서도 로봇(100)에 가까운 벽일수록 높은 우선 순위를 갖는 것으로 판단하고, 모서리 방향이 로봇(100)을 향하지 않거나 모서리가 검출되지 않으면서 로봇(100)과 먼 벽일수록 낮은 우선 순위를 갖는 것으로 판단할 수 있다.
예를 들어, 도 3을 참조하면, 프로세서(140)는 미탐색된 벽(311, 312, 313) 중 모서리가 로봇(100)을 향하는 벽(312)이 가장 높은 우선 순위를 가지는 것으로 판단할 수 있다. 그리고, 프로세서(140)는 모서리가 로봇(100)을 향하지 않은 벽(311)와 모서리가 검출되지 않은 벽(313) 중 로봇(100)과 상대적으로 거리가 가까운 벽(311)이 벽(312) 다음의 우선 순위를 갖는 것으로 판단하고, 벽(313)이 가장 낮은 우선 순위를 갖는 것으로 판단할 수 있다.
그리고, 프로세서(140)는 식별된 복수의 벽에 대한 정보를 우선 순위에 따라 큐에 순차적으로 저장할 수 있다. 즉, 프로세서(140)는 우선 순위가 높은 순으로, 식별된 복수의 벽의 위치 정보를 큐에 순차적으로 저장할 수 있다. 이때, 프로세서(140)는 큐에 이미 정보가 저장되어 있는 경우, 기저장된 정보의 다음 순서부터 식별된 복수의 벽의 위치 정보를 순차적으로 저장할 수 있고, 큐에 정보가 저장되어 있지 않은 경우, 가장 우선 순위가 높은 벽의 위치 정보를 큐에서 첫 번째 순서로 저장하고, 그 다음으로 우선 순위가 높은 순으로 벽의 위치 정보를 순차적으로 큐에 저장할 수 있다.
한편, 프로세서(140)는 저장된 정보에 기초하여 식별된 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
구체적으로, 프로세서(140)는 저장된 정보에 기초하여 식별된 벽 중 우선 순위가 가장 높은 벽부터 순차적으로 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
즉, 프로세서(140)는 큐에 저장된 벽의 위치 정보의 순서에 따라, 큐에서 첫 번째 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 획득된 위치 정보를 이용하여 벽으로 로봇(100)이 이동하도록 주행부(120)를 제어할 수 있다. 이에 따라, 로봇(100)이 벽에 근접하게 되면, 프로세서(140)는 센서(110)를 통해 획득된 로봇(100)과 벽 간의 거리에 기초하여, 로봇(100)이 벽과 기설정된 거리만큼 떨어진 지점까지 이동하도록 주행부(120)를 제어하고, 로봇(100)이 벽으로부터 기설정된 거리만큼 떨어진 지점에서 벽을 따라 이동하도록 주행부(120)를 제어할 수 있다. 이에 따라, 로봇(100)은 벽에 대한 월 팔로잉을 수행하게 된다.
그리고, 프로세서(140)는 벽에 대한 월 팔로잉이 완료되거나, 또는 벽에 대한 월 팔로잉이 중단되는 경우, 큐에서 다음 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 획득된 위치 정보를 이용하여 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
이와 같은 방식에 따라, 로봇(100)은 큐에 저장된 벽의 위치 정보를 순차적으로 큐로부터 획득하고, 획득된 위치 정보를 이용하여 벽에 대한 월 팔로잉을 순차적으로 수행할 수 있게 된다.
한편, 프로세서(140)는 탐색 포인트의 위치 정보 및 큐로부터 획득된 벽의 위치 정보에 기초하여, 벽에 대한 월 팔로잉을 수행할지 여부를 식별할 수도 있다.
구체적으로, 프로세서(140)는 탬색된 영역과 미탐색된 영역 간의 경계 상에서 탐색 포인트를 식별하고, 탐색 포인트의 위치와 벽의 위치를 비교하여, 벽이 탐색 포인트보다 로봇(100)으로부터 가까운 경우, 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다. 다만, 프로세서(140)는 벽이 탐색 포인트보다 로봇(100)으로부터 먼 경우, 벽에 대한 월 팔로잉을 수행하지 않고, 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
그리고, 프로세서(140)는 벽에 대한 월 팔로잉을 수행하거나, 탐색 포인트로 이동한 후에, 큐에서 다음 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 로봇(100)의 현재 위치에서 식별된 다른 탐색 포인트의 위치 정보 및 큐로부터 획득된 벽의 위치 정보에 기초하여, 벽에 대한 월 팔로잉을 수행할지 여부를 식별하고, 이를 바탕으로 벽에 대한 월 팔로잉을 수행하거나 다른 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
한편, 프로세서(140)는 로봇(100)이 주행하는 동안 즉, 로봇(100)이 월 팔로잉을 수행하는 동안, 센서(110)를 통해 로봇(100) 주변의 영역을 탐색하여 탐색된 영역에 대한 맵을 생성할 수 있다. 그리고, 프로세서(140)는 생성된 맵에 대한 정보를 메모리(130)에 저장할 수 있다.
즉, 프로세서(140)는 로봇(100)이 월 팔로잉을 수행하는 동안에, 센서(110)를 통해 획득되는 로봇(100)과 로봇(100) 주변의 물체와의 거리 및 로봇(100) 주변을 촬영한 이미지 중 적어도 하나를 이용하여 로봇(100) 주변을 탐색하여 로봇(100) 주변에 위치하는 물체를 감지하고, 감지된 물체에 대한 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다. 이 경우, 프로세서(140)는 라이다 센서 및 비주얼 센서 중 적어도 하나를 통해 로봇(100)과 물체와의 거리에 대한 정보를 획득할 수 있다. 또한, 프로세서(140)는 카메라를 통해 로봇(100) 주변을 촬영하여 이미지를 획득할 수 있다.
한편, 프로세서(140)는 로봇(100)이 월 팔로잉을 수행하는 동안 센서(110)를 통해 새로운 벽이 식별되면, 식별된 새로운 벽에 대한 정보를 메모리(130)에 저장하고, 저장된 정보에 기초하여 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
여기에서, 새로운 벽은 월 팔로잉을 수행함에 따라 로봇(100)이 이동하는 과정에서, 센서(110)를 통해 획득되는 로봇(100)과 로봇(100) 주변의 물체와의 거리 및 로봇(100) 주변을 촬영한 이미지 중 적어도 하나에 기초하여 감지되는 미탐색된 벽을 의미할 수 있다.
이 경우, 프로세서(140)는 하나의 새로운 벽이 식별되는 경우, 식별된 벽의 위치 정보를 큐에 저장할 수 있고, 복수의 새로운 벽이 식별되는 경우, 복수의 새로운 벽의 우선 순위를 판단하고, 우선 순위에 따라 복수의 새로운 벽의 위치 정보를 큐에 순차적으로 저장할 수 있다. 한편, 우선 순위를 판단하는 방법 및 벽의 위치에 대한 정보를 큐에 저장하는 방법은 전술한 바와 동일하다는 점에서, 구체적인 설명은 생략하도록 한다.
한편, 전술한 바와 같이, 로봇(100)은 큐로부터 획득한 벽의 위치 정보를 이용하여 벽에 대한 월 팔로잉이 완료되면, 큐에서 다음 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 획득한 정보를 이용하여 벽에 대한 월 팔로잉을 수행할 수 있다.
이와 같이, 로봇(100)은 하나의 벽에 대한 월 팔로잉이 완료되면, 다음 벽에 대한 월 팔로잉을 수행하는데, 이를 위해, 프로세서(140)는 벽에 대한 월 팔로잉이 완료되었는지를 판단할 수 있다.
구체적으로, 프로세서(140)는 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 센서(110)를 통해 획득한 정보를 바탕으로 로봇(100)이 벽을 한바퀴 회전하는 루프 클로징(loop closing)이 발생된 것으로 식별되면, 벽에 대한 월 팔로잉이 완료된 것으로 판단할 수 있다.
즉, 프로세서(140)는 로봇(100)이 월 팔로잉을 시작하는 시점부터 월 팔로잉에 의해 벽을 따라 이동하는 동안에, 센서(110)를 통해 로봇(100)과 로봇(100) 주변의 물체와의 거리 및 로봇(100) 주변을 촬영한 이미지 중 적어도 하나를 획득할 수 있다.
그리고, 프로세서(140)는 획득된 정보를 이용하여 로봇(100) 주변의 환경을 인식할 수 있다.
여기에서, 로봇(100) 주변의 환경을 인식한다는 것은 로봇(100)과 물체와의 거리 및 로봇(100) 주변을 촬영한 이미지를 이용하여, 로봇(100)의 위치에서, 어떠한 형상을 갖는 물체가 어느 방향으로 얼마만큼 떨어진 지점에 위치하는지를 인식하는 것을 의미할 수 있다.
이 경우, 프로세서(140)는 로봇(100)이 월 팔로잉에 의해 벽을 따라 주행하는 동안에, 특정한 시점에서 인식된 로봇(100) 주변의 환경과 특정한 시점 이후의 시점에서 인식된 로봇(100) 주변의 환경이 서로 매칭되는 것으로 판단되면, 로봇(100)이 벽을 한바퀴 회전한 루프 클로징이 발생된 것으로 판단할 수 있다.
즉, 특정한 시점과 그 이후의 시점에서 동일한 주변 환경이 인식되었다는 것은, 월 팔로잉에 의해 벽을 따라 주행하던 로봇(100)이 이후 시점에서 특정한 시점의 위치로 복귀하는 것으로 볼 수 있고, 이는, 로봇(100)이 벽을 한바퀴 회전한 것을 의미할 수 있다.
이에 따라, 프로세서(140)는 로봇(100)이 월 팔로잉에 의해 벽을 따라 주행하는 동안에, 특정한 시점과 그 이후의 시점에서 동일한 주변 환경이 인식되는 경우, 로봇(100)이 벽을 한바퀴 회전하는 루프 클로징이 발생된 것으로 판단할 수 있다.
이와 같이, 프로세서(140)는 루프 클로징이 발생된 것으로 식별되면, 벽에 대한 월 팔로잉이 완료된 것으로 식별할 수 있다.
이 경우, 프로세서(140)는 월 팔로잉이 완료된 벽의 다음 순서를 갖는 벽의 위치 정보가 메모리(130)에 저장되어 있는지에 따라, 로봇(100)이 다음 순서를 갖는 벽에 대한 월 팔로잉을 수행하거나, 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
구체적으로, 프로세서(140)는 월 팔로잉이 완료된 벽의 다음 순서를 갖는 벽의 위치 정보가 큐에 저장되어 있는 경우, 큐에서 다음 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 획득된 위치 정보를 이용하여 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
다만, 프로세서(140)는 월 팔로잉이 완료된 벽의 다음 순서로 갖는 벽의 위치 정보가 큐에 저장되어 있지 않은 경우, 탬색된 영역과 미탐색된 영역 간의 경계 상에서 탐색 포인트를 식별하고, 로봇(100)이 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
한편, 전술한 바와 같이, 로봇(100)은 하나의 벽에 대한 월 팔로잉이 완료되면, 다음 벽에 대한 월 팔로잉을 수행할 수 있고, 또한, 하나의 벽에 대한 월 팔로잉이 중단된 경우에도, 다음 벽에 대한 월 팔로잉을 수행할 수 있다.
구체적으로, 프로세서(140)는 로봇(100)이 벽에 대한 월 팔로잉을 수행하는 동안에, 특정한 조건을 만족하는 경우, 월 팔로잉을 중단하도록 주행부(120)를 제어할 수 있다. 즉, 프로세서(140)는 월 팔로잉을 중단하고, 로봇(100)이 정지하도록 주행부(120)를 제어할 수 있다.
예를 들어, 프로세서(140)는 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안, 로봇(100)이 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어지거나, 월 팔로잉을 시작한 시간으로부터 기설정된 시간 이상 경과하거나, 월 팔로잉을 시작한 이후 기설정된 시간 동안 로봇(100)의 진행 방향이 변경되지 않는 경우, 벽에 대한 월 팔로잉을 중단하도록 주행부(120)를 제어할 수 있다.
예를 들어, 로봇(100)이 월 팔로잉을 시작한 이후, 많은 시간이 지나거나, 로봇(100)이 한 방향으로만 이동하거나 또는 로봇(100)이 월 팔로잉을 시작한 위치로부터 지나치게 멀리 이동한 경우에는, 로봇(100)이 벽을 따라 회전하여 다시 원래 위치로 되돌아오는 루프 클로징이 발생될 수 없다는 점에서, 프로세서(140)는 벽에 대한 월 팔로잉을 중단할 수 있다.
이 경우, 프로세서(140)는 월 팔로잉이 중단된 벽의 다음 순서를 갖는 벽의 위치 정보가 메모리(130)에 저장되어 있는지에 따라, 로봇(100)이 다음 순서를 갖는 벽에 대한 월 팔로잉을 수행하거나, 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
구체적으로, 프로세서(140)는 월 팔로잉이 중단된 벽의 다음 순서를 갖는 벽의 위치 정보가 큐에 저장되어 있는 경우, 큐에서 다음 순서에 배치된 벽의 위치 정보를 큐로부터 획득하고, 획득된 위치 정보를 이용하여 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
다만, 프로세서(140)는 월 팔로잉이 중단된 벽의 다음 순서를 갖는 벽의 위치 정보가 큐에 저장되어 있지 않은 경우, 탬색된 영역과 미탐색된 영역 간의 경계 상에서 탐색 포인트를 식별하고, 로봇(100)이 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
이와 같은 방법을 통해, 로봇(100)은 메모리(130)에 저장된 벽의 위치 정보를 이용하여, 로봇(100) 주변에서 식별된 벽에 대한 월 팔로잉을 순차적으로 수행할 수 있게 된다.
한편, 프로세서(140)는 로봇(100)이 월 팔로잉이 수행한 후, 로봇(100)이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 로봇(100)이 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
여기에서, 로봇(100)이 월 팔로잉이 수행하였다는 것은 메모리(130)에 저장된 벽의 위치 정보를 이용하여 로봇(100) 주변에서 식별된 모든 미탐색된 벽에 대해 월 팔로잉을 수행하는 것을 의미할 수 있다. 이 경우, 로봇(100)은 벽에 대한 월 팔로잉을 수행하여, 월 팔로잉을 완료하거나, 또는 월 팔로잉을 중단할 수 있다.
구체적으로, 프로세서(140)는 로봇(100)이 월 팔로잉을 수행하면, 탐색된 영역과 미탐색 영역 간의 경계를 식별하고, 경계 상에서 탐색 포인트를 식별하고, 로봇(100)이 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
그리고, 프로세서(140)는 로봇(100)이 탐색 포인트로 이동하는 동안 또는 로봇(100)이 탐색 포인트로 이동한 후에, 센서(110)를 통해 적어도 하나의 벽이 식별되면, 로봇(100)이 식별된 벽을 따라 주행하는 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
즉, 프로세서(140)는 큐에 저장된 벽의 위치 정보를 이용하여 로봇(100)이 월 팔로잉을 수행하도록 주행부(120)를 제어하고, 월 팔로잉에 따라 로봇(100)이 이동하는 동안 센서(110)를 통해 로봇(100) 주변의 영역을 탐색하고, 탐색된 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다. 그리고, 프로세서(140)는 월 팔로잉을 수행함에 따라 큐에 저장된 벽의 위치 정보가 더 이상 존재하지 않는 경우, 맵 상에서 탐색된 영역과 미탐색된 영역의 경계를 식별하고, 경계 상에서 탐색 포인트를 식별할 수 있다. 그리고, 프로세서(140)는 탐색 포인트로 이동하는 동안 또는 로봇(100)이 탐색 포인트로 이동한 후에, 센서(110)를 통해 적어도 하나의 벽이 식별되면, 식별된 벽에 대한 정보를 메모리(130)에 저장하고, 저장된 벽에 대한 정보를 이용하여 로봇(100)이 벽에 대한 월 팔로잉을 수행하도록 주행부(120)를 제어할 수 있다.
결국, 프로세서(140)는 이러한 방법을 통해 공간에서 영역들을 탐색하여, 공간에 대한 맵을 생성할 수 있다.
도 4a 내지 도 4i는 본 개시의 일 실시 예에 따른 월 팔로잉을 통해 맵을 생성하는 방법의 일 예를 설명하기 위한 도면들이다.
먼저, 도 4a와 같이, 로봇(100)은 센서(110)를 이용하여 로봇(100) 주변의 영역(421)을 탐색할 수 있다. 이에 따라, 로봇(100)은 미탐색된 벽(411)이 식별되면, 벽(411)의 위치 정보 w1을 큐(430)에 저장할 수 있다. 그리고, 로봇(100)은 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(421)에 대한 맵을 생성할 수 있다.
그리고, 도 4b와 같이, 로봇(100)은 큐(430)로부터 벽(411)의 위치 정보 w1을 획득하고, 벽(411)의 위치 정보 w1을 이용하여 벽(411)에 대한 월 팔로잉을 수행할 수 있다.
이 경우, 도 4c와 같이, 로봇(100)은 벽(411)에 대한 월 팔로잉을 수행하는 동안에, 센서(110)를 이용하여 로봇(100) 주변의 영역(422)을 탐색할 수 있다. 이에 따라, 로봇(100)은 미탐색된 벽(412)이 식별되면, 벽(412)의 위치 정보 w2를 큐(430)에 저장할 수 있다. 그리고, 로봇(100)은 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(421)에 대한 맵을 생성할 수 있다.
한편, 로봇(100)은 벽(411)을 따라 월 팔로잉을 수행하는 동안에, 루프 클로징이 발생된 것으로 식별되면, 벽(411)에 대한 월 팔로잉이 완료된 것으로 판단하고, 도 4d와 같이, 큐(430)로부터 벽(412)의 위치 정보 w2를 획득하고, 벽(412)의 위치 정보 w2를 이용하여 벽(412)에 대한 월 팔로잉을 수행할 수 있다.
이 경우, 도 4d와 같이, 로봇(100)은 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어졌다는 점에서, 벽(412)에 대한 월 팔로잉을 중단할 수 있다. 한편, 도 4e와 같이, 로봇(100)은 벽(412)에 대한 월 팔로잉을 수행하는 동안에, 센서(110)를 이용하여 로봇(100) 주변의 영역(423)을 탐색하고, 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(423)에 대한 맵을 생성할 수 있다.
한편, 로봇(100)은 큐에 저장된 벽에 대한 위치 정보가 존재하지 않는다는 점에서, 탐색 포인트로 이동할 수 있다.
구체적으로, 도 4e와 같이, 로봇(100)은 탐색된 영역(441)과 미탐색된 영역(442) 간의 경계(443) 상에서 탐색 포인트(444)를 식별하고, 탐색 포인트(444)로 이동할 수 있다.
한편, 도 4f와 같이, 로봇(100)은 탐색 포인트(444)로 이동하는 중에, 센서(110)를 이용하여 로봇(100) 주변의 영역(424)을 탐색할 수 있다. 이에 따라, 로봇(100)은 미탐색된 벽들(413, 414)이 식별되면, 벽(413)의 위치 정보 w3 및 벽(414)의 위치 정보 w4를 큐(430)에 저장할 수 있다. 그리고, 로봇(100)은 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(424)에 대한 맵을 생성할 수 있다.
이 경우, 로봇(100)은 복수의 벽(413, 414)이 식별되었다는 점에서, 복수의 벽(413, 414)의 우선 순위를 판단하고, 우선 순위에 따라 벽(413)의 위치 정보 w3 및 벽(414)의 위치 정보 w4를 큐(430)에 저장할 수 있다.
예를 들어, 도 4f와 같이, 벽(413)에서 식별된 모서리의 방향이 로봇(100)을 향하는 반면, 벽(414)에서는 모서리가 식별되지 않았다는 점에서, 로봇(100)은 벽(413)의 우선 순위가 벽(414)의 우선 순위보다 높은 것으로 판단하고, 벽(413)의 위치 정보 w3 및 벽(414)의 위치 정보 w4 순으로 큐(430)에 저장할 수 있다.
그리고, 도 4g와 같이, 로봇(100)은 큐(430)로부터 벽(413)의 위치 정보 w3을 획득하고, 벽(413)의 위치 정보 w3을 이용하여 벽(413)에 대한 월 팔로잉을 수행할 수 있다.
이 경우, 도 4h와 같이, 로봇(100)은 벽(413)에 대한 월 팔로잉을 수행하는 동안에, 센서(110)를 이용하여 로봇(100) 주변의 영역(425)을 탐색할 수 있다. 그리고, 로봇(100)은 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(425)에 대한 맵을 생성할 수 있다.
한편, 로봇(100)은 벽(413)을 따라 월 팔로잉을 수행하는 동안에, 루프 클로징이 발생된 것으로 식별되면, 벽(413)에 대한 월 팔로잉이 완료된 것으로 판단하고, 도 4h와 같이, 큐(430)로부터 벽(414)의 위치 정보 w4를 획득하고, 벽(414)의 위치 정보 w4를 이용하여 벽(414)에 대한 월 팔로잉을 수행할 수 있다.
이 경우, 도 4i와 같이, 로봇(100)은 벽(414)에 대한 월 팔로잉을 수행하는 동안에, 센서(110)를 이용하여 로봇(100) 주변의 영역(426)을 탐색할 수 있다. 그리고, 로봇(100)은 센서(110)를 통해 획득된 정보를 이용하여 탐색된 영역(426)에 대한 맵을 생성할 수 있다.
결국, 로봇(100)은 이러한 방법을 통해 공간에서 영역들을 탐색하여, 공간에 대한 맵을 생성할 수 있다.
이와 같이, 본 개시에서는 로봇(100)이 맵을 생성할 때, 월 팔로잉을 통해 루프를 형성하도록 이동하면서 로봇(100) 주변에 대한 맵을 생성한다는 점에서, 정확도가 향상된 맵이 생성될 수 있게 된다.
특히, 포즈(pose)를 노드로 하고, 노드 들 간의 odometry measurement를 엣지로 하는 포즈 그래프를 기반으로 맵을 생성하는 경우, 각 포즈마다 누적한 센싱 정보를 바탕으로 맵을 생성한다. 이때, 루프 클로징이 수행되면, 노드들 간에 연결된 엣지가 최적화되어 각 포즈가 최적화되고 그에 따라 맵의 정확도가 향상될 수 있게 된다. 이에 따라, 본 개시에서는 맵 생성 시, 월 팔로잉을 통해 로봇(100)이 다시 자신의 위치로 복귀하여 루프를 형성할 가능성을 높일 수 있다는 점에서, 보다 정확한 맵을 생성할 수 있게 된다.
한편, 전술한 예에서는 로봇(100)이 벽을 따라 주행하는 월 팔로잉을 수행하는 것으로 설명하였다. 다만, 실시 예에 따르면, 로봇(100)은 벽을 따라 주행하지 않더라도, 루프 클로징을 형성할 수 있다.
예를 들어, 도 5의 (a)와 같이, 프로세서(140)는 로봇(100)을 탐색 포인트(510)로 이동하도록 주행부(120)를 제어할 수 있다. 그리고, 도 5의 (b)와 같이, 프로세서(140)는 로봇(100)이 탐색 포인트(510)로부터 기설정된 크기와 모양을 갖는 경로(520)를 따라 이동하여 다시 탐색 포인트(510)로 되돌아오도록 주행부(120)를 제어할 수 있다. 이러한 방식의 주행을 루피 모션(loopy motion)이라 할 수 있다. 그리고, 프로세서(140)는 경로(520)를 따라 이동하는 동안에 탐색된 영역을 바탕으로, 탐색 포인트를 다시 식별하고, 탐색 포인트로 이동하도록 주행부(120)를 제어할 수 있다.
결국, 프로세서(140)는 전술한 과정을 수행하여, 로봇(100)이 월 팔로잉을 수행하지 않아도 루프 클로징을 형성하면서 맵을 생성할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 로봇의 맵 생성 방법을 설명하기 위한 흐름도이다.
먼저, 로봇(100)은 벽이 검출되면(S610-Y), 벽으로 이동하고(S620), 벽을 따라 이동하는 월 팔로잉을 수행할 수 있다(S630). 이 경우, 로봇(100)은 월 팔로잉을 수행하는 동안에 센서(110)를 통해 로봇(100) 주변의 영역을 탐색하고, 탐색된 정보를 이용하여 로봇(100) 주변의 영역에 대한 맵을 생성할 수 있다.
그리고, 로봇(100)은 월 팔로잉을 수행하는 동안 루프가 검출되면(S640-Y), 루프 클로징이 발생된 것으로 판단할 수 있다(S650). 이 경우, 로봇(100)은 벽에 대한 월 팔로잉이 완료된 것으로 판단하고, 메모리(130)에 다른 벽에 대한 위치 정보가 저장되어 있는지를 판단할 수 있다(S610).
이 경우, 로봇(100)은 벽에 대한 위치 정보가 저장되어 있는 경우, 해당 벽에 대해 전술한 과정을 수행할 수 있다.
다만, 로봇(100)은 벽에 위치 정보가 저장되어 있지 않은 경우(S610-N), 탐색 포인트를 검색하고(S660), 탐색 포인트로 이동할 수 있다(S670). 그리고, 로봇(100)은 탐색 포인트로 이동하는 동안 또는 탐색 포인트로 이동한 후에, 벽이 검출되면, 검출된 벽에 대해 전술한 과정을 수행할 수 있다.
한편, 로봇(100)은 월 팔로잉을 수행하는 동안 루프가 검출되지 않으면(S640-N), 탐색 포인트를 검색하고(S660), 탐색 포인트로 이동할 수 있다(S670). 그리고, 로봇(100)은 탐색 포인트로 이동하는 동안 또는 탐색 포인트로 이동한 후에, 벽이 검출되면, 검출된 벽에 대해 전술한 과정을 수행할 수 있다. 다만, 월 팔로잉을 수행하는 동안 루프가 검출되지 않는 경우, 로봇(100)은 메모리(130)에 다른 벽에 대한 위치 정보가 저장되어 있는지를 판단하고, 벽에 대한 위치 정보가 저장되어 있는 경우, 해당 벽에 대해 전술한 과정을 수행할 수 있다.
본 개시에서는 이와 같은 월 팔로잉을 통해 정밀한 맵을 생성할 수 있게 된다.
도 7 및 도 8은 본 개시의 일 실시 예에 따라 맵을 생성한 경우, 생성된 맵의 품질을 설명하기 위한 도면들이다.
도 7의 (a) 및 (b)는 로봇이 맵을 생성하기 위해 공간을 주행한 경로 및 그에 따라 생성된 맵을 나타낸다. 구체적으로, 도 7의 (a)에서는 로봇이 공간을 주행할 때, 본 개시에 따라 월 팔로잉을 수행하였고, 도 7의 (b)에서는 로봇이 월 팔로잉을 수행하지 않았다.
이 경우, 도 8의 (a)을 참조하면, 본 개시에 따른 월 팔로잉을 수행하는 경우, 로봇은 작은 사이즈의 루프가 복수 개 형성되도록 주행하였고, 도 8의 (b)을 참조하면, 로봇은 하나의 큰 루프를 형성되도록 주행하였다.
이에 따라, 도 8의 (a)의 맵에서 원이 표시된 부분을 참조하면, 월 팔로잉을 수행하는 경우 정확한 형태의 맵이 생성되는 반면, 도 8의 (b)의 맵에서 원이 표시된 부분을 참조하면, 일그러진 형태의 맵이 생성되는 것을 알 수 있다. 또한, 도 8의 (b)의 맵에서는 작은 사이즈의 루프를 형성하지 못한 부분이 일그러진 형태를 갖는 것을 알 수 있다.
이와 같이, 본 개시에 따른 월 팔로잉을 통해 보다 정밀한 맵을 생성할 수 있게 된다.
도 9는 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도이다.
도 9에 도시된 바와 같이, 본 개시에 따른 로봇(100)는 센서(110), 주행부(120), 메모리(130) 및 프로세서(140) 뿐만 아니라, 통신부(150), 디스플레이(160), 스피커(170) 및 마이크(180) 등을 더 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다. 한편, 도 9를 설명함에 있어, 이미 설명한 부분과 중복되는 부분은 생략하거나 축약하여 설명하도록 한다.
센서(110)는 로봇(100) 및 로봇(100)의 주변과 관련된 다양한 정보를 획득할 수 있다. 이 경우, 센서(110)는 라이다 센서(111), 3D 센서(112), 카메라(113), 자이로 센서(114) 및 엔코더(115)를 포함할 수 있다.
주행부(120)는 로봇(100)를 이동시킬 수 있다. 여기에서, 주행부(120)는 주행부(120)는 모터(121) 및 모터(121)에 연결된 구동부(122)를 포함할 수 있다. 구동부(122)는 바퀴 또는 로봇의 다리 등으로 구현될 수 있다. 모터(121)는 프로세서(140)의 제어에 따라 구동부(122)를 제어하여 로봇(100)의 이동, 정지, 속도 제어 및 방향 전환 등과 같은 다양한 주행 동작을 제어할 수 있다.
통신부(150)는 외부 장치와 통신을 수행하는 구성이다. 프로세서(140)는 통신부(150)를 통해 각종 데이터를 외부 장치로 전송하고, 각종 데이터를 외부 장치로부터 수신할 수 있다.
예를 들어, 통신부(1660)는 BT(Bluetooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee 등과 같은 무선 통신 방식 또는 IR(Infrared) 통신 방식을 통해 다양한 외부 장치와 통신을 수행할 수 있다. 한편, 통신부(150)는 프로세서(140)에 탑재되어 있을 수 있음은 물론, 프로세서(150)와는 별개의 구성으로 로봇(100)에 포함될 수도 있다.
디스플레이(160)는 다양한 화면을 표시할 수 있다. 예를 들어, 프로세서(140)는 로봇(100)이 위치하는 공간에 대한 맵, 맵 상에서의 경로, 공간 내에 위치한 제품에 대한 설명 등을 디스플레이(160)를 통해 표시할 수 있다.
이러한 디스플레이(160)는 LCD(Liquid Crystal Display), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(160) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다.
한편, 디스플레이(160)는 터치 센서와 결합되어 터치 스크린으로 구현될 수 있다. 이 경우, 프로세서(140)는 디스플레이(160)를 통해 사용자 명령을 입력받을 수 있고, 사용자 명령에 따라 다양한 화면을 표시할 수 있다.
스피커(170)는 오디오를 출력할 수 있다. 구체적으로, 프로세서(140)는 로봇(100)의 동작과 관련된 다양한 알림음 또는 음성 안내 메시지를 스피커(170)를 통해 출력할 수 있다. 예를 들어, 프로세서(140)는 맵 상에서의 경로를 안내하는 음성 안내 메시지, 제품에 대한 설명을 위한 음성 안내 메시지 등을 스피커(170)를 통해 출력할 수 있다.
마이크(180)는 음성을 수신할 수 있다. 여기에서, 음성은 로봇(100)의 동작을 제어하기 위한 사용자 명령을 포함할 수 있다. 이 경우, 프로세서(140)는 마이크(180)를 통해 입력된 음성을 인식하고, 인식된 음성에 따라 로봇(100)의 다양한 동작을 제어할 수 있다. 예를 들어, 프로세서(140)는 공간 내의 특정한 위치까지 경로 안내를 요청하기 위한 음성이 수신되면, 맵 상에서의 경로를 디스플레이(160)를 통해 표시할 수 있다.
도 10은 본 개시의 일 실시 예에 따른 로봇의 맵 생성 방법을 설명하기 위한 흐름도이다.
먼저, 센서를 통해 적어도 하나의 벽이 식별되면, 적어도 하나의 벽을 따라 주행하는 월 팔로잉을 수행한다(S1010).
이후, 로봇이 주행하는 동안에 센서를 통해 로봇 주변의 영역을 탐색하여 탐색된 영역에 대한 맵을 생성하고, 생성된 맵에 대한 정보를 저장한다(S1020).
그리고, 월 팔로잉을 수행한 후, 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 탐색 포인트로 이동한다(S1030).
한편, S1010 단계는 적어도 하나의 벽에 대한 정보를 저장하고, 저장된 정보에 기초하여 월 팔로잉을 수행할 수 있다.
여기에서, 센서를 통해 복수의 벽이 식별된 경우, 복수의 벽의 모서리 방향 및 복수의 벽과 로봇 간의 거리에 기초하여 복수의 벽의 우선 순위를 판단하고, 우선 순위에 따라 복수의 벽에 대한 정보를 저장할 수 있다.
이 경우, 복수의 미탐색된 벽 중 모서리 방향이 로봇을 향하는 적어도 하나의 벽을 식별하고, 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단하고, 모서리 방향이 로봇을 향하는 적어도 하나의 벽에 대해, 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하고, 나마지 벽에 대해, 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단할 수 있다.
그리고, S1010 단계는 저장된 정보에 기초하여 식별된 벽 중 우선 순위가 가장 높은 벽부터 순차적으로 월 팔로잉을 수행할 수 있다.
한편, S1010 단계는 월 팔로잉을 수행하는 동안 상기 센서를 통해 새로운 벽이 식별되면, 식별된 새로운 벽에 대한 정보를 저장하고, 저장된 정보에 기초하여 월 팔로잉을 수행할 수 있다.
또한, S1010 단계는 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 센서를 통해 획득된 정보를 바탕으로 로봇이 벽을 한바퀴 회전하는 루프 클로징이 발생된 것으로 식별되면, 상기 벽에 대한 월 팔로잉이 완료된 것으로 판단할 수 있다.
또한, S1010 단계는 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 로봇이 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어지거나, 월 팔로잉을 시작한 시간으로부터 기설정된 시간 이상 경과하거나, 월 팔로잉을 시작한 이후 기설정된 시간 동안 로봇의 진행 방향이 변경되지 않는 경우, 벽에 대한 월 팔로잉을 중단할 수 있다.
한편, S1030 단계는, 로봇이 상기 월 팔로잉을 수행하면, 탐색된 영역과 미탐색 영역 간의 경계를 식별하고, 식별된 경계 상에서 탐색 포인트를 식별하고, 탐색 포인트로 이동할 수 있다.
그리고, 탐색 포인트로 이동하는 동안 센서를 통해 적어도 하나의 벽이 식별되면, 식별된 벽을 따라 주행하는 월 팔로잉을 수행할 수 있다.
한편, 로봇이 맵을 생성하는 과정에서 월 팔로잉을 수행하는 구체적인 방법에 대해서는 전술한 바 있다.
한편, 본 개시에 따른 로봇의 맵 생성 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 로봇(100))를 포함할 수 있다.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (15)

  1. 로봇에 있어서,
    센서;
    주행부;
    메모리; 및
    상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 로봇이 상기 적어도 하나의 벽을 따라 주행하는 월 팔로잉(wall following)을 수행하도록 상기 주행부를 제어하고,
    상기 로봇이 주행하는 동안에 상기 센서를 통해 상기 로봇 주변의 영역을 탐색하여 상기 탐색된 영역에 대한 맵을 생성하고,
    상기 생성된 맵에 대한 정보를 상기 메모리에 저장하고,
    상기 로봇이 상기 월 팔로잉을 수행한 후, 상기 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 상기 로봇이 탐색 포인트로 이동하도록 상기 주행부를 제어하는 프로세서;를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 벽에 대한 정보를 상기 메모리에 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행하도록 상기 주행부를 제어하는 로봇.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 센서를 통해 복수의 벽이 식별된 경우, 상기 복수의 벽의 모서리 방향 및 상기 복수의 벽과 상기 로봇 간의 거리에 기초하여 상기 복수의 벽의 우선 순위를 판단하고, 상기 우선 순위에 따라 상기 복수의 벽에 대한 정보를 상기 메모리에 저장하는 로봇.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 미탐색된 벽 중 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽을 식별하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단하고,
    상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하고,
    상기 나마지 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하는 로봇.
  5. 제3항에 있어서,
    상기 프로세서는,
    상기 저장된 정보에 기초하여 상기 식별된 벽 중 상기 우선 순위가 가장 높은 벽부터 순차적으로 상기 월 팔로잉을 수행하도록 상기 주행부를 제어하는 로봇.
  6. 제2항에 있어서,
    상기 프로세서는,
    상기 로봇이 상기 월 팔로잉을 수행하는 동안 상기 센서를 통해 새로운 벽이 식별되면, 상기 식별된 새로운 벽에 대한 정보를 상기 메모리에 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행하도록 상기 주행부를 제어하는 로봇.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 센서를 통해 획득된 정보를 바탕으로 상기 로봇이 상기 벽을 한바퀴 회전하는 루프 클로징(loop closing)이 발생된 것으로 식별되면, 상기 벽에 대한 월 팔로잉이 완료된 것으로 판단하는 로봇.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 식별된 벽 중 하나의 벽에 대한 월 팔로잉을 수행하는 동안 상기 로봇이 상기 월 팔로잉을 시작한 위치로부터 기설정된 거리 이상 멀어지거나, 상기 월 팔로잉을 시작한 시간으로부터 기설정된 시간 이상 경과하거나, 상기 월 팔로잉을 시작한 이후 기설정된 시간 동안 상기 로봇의 진행 방향이 변경되지 않는 경우, 상기 벽에 대한 월 팔로잉을 중단하도록 상기 주행부를 제어하는 로봇.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇이 상기 월 팔로잉을 수행하면, 상기 탐색된 영역과 상기 미탐색 영역 간의 경계를 식별하고, 상기 식별된 경계 상에서 상기 탐색 포인트를 식별하고, 상기 로봇이 상기 탐색 포인트로 이동하도록 상기 주행부를 제어하는 로봇.
  10. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇이 상기 탐색 포인트로 이동하는 동안 상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 로봇이 상기 식별된 벽을 따라 주행하는 월 팔로잉을 수행하도록 상기 주행부를 제어하는 로봇.
  11. 센서를 포함하는 로봇의 맵 생성 방법에 있어서,
    상기 센서를 통해 적어도 하나의 벽이 식별되면, 상기 적어도 하나의 벽을 따라 주행하는 월 팔로잉을 수행하는 단계;
    상기 로봇이 주행하는 동안에 상기 센서를 통해 상기 로봇 주변의 영역을 탐색하여 상기 탐색된 영역에 대한 맵을 생성하고, 상기 생성된 맵에 대한 정보를 저장하는 단계; 및
    상기 월 팔로잉을 수행한 후, 상기 로봇이 위치하는 공간의 미탐색 영역에 대한 맵을 생성하기 위해, 탐색 포인트로 이동하는 단계;를 포함하는 맵 생성 방법.
  12. 제11항에 있어서,
    상기 수행하는 단계는,
    상기 적어도 하나의 벽에 대한 정보를 저장하고, 상기 저장된 정보에 기초하여 상기 월 팔로잉을 수행하는 맵 생성 방법.
  13. 제12항에 있어서,
    상기 수행하는 단계는,
    상기 센서를 통해 복수의 벽이 식별된 경우, 상기 복수의 벽의 모서리 방향 및 상기 복수의 벽과 상기 로봇 간의 거리에 기초하여 상기 복수의 벽의 우선 순위를 판단하고, 상기 우선 순위에 따라 상기 복수의 벽에 대한 정보를 저장하는 맵 생성 방법.
  14. 제13항에 있어서,
    상기 수행하는 단계는,
    상기 복수의 미탐색된 벽 중 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽을 식별하고, 상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽이 나머지 벽보다 높은 우선 순위를 갖는 것으로 판단하고,
    상기 모서리 방향이 상기 로봇을 향하는 적어도 하나의 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하고,
    상기 나마지 벽에 대해, 상기 로봇과 거리가 가까운 벽 순으로 높은 우선 순위를 갖는 것으로 판단하는 맵 생성 방법.
  15. 제13항에 있어서,
    상기 수행하는 단계는,
    상기 저장된 정보에 기초하여 상기 식별된 벽 중 상기 우선 순위가 가장 높은 벽부터 순차적으로 상기 월 팔로잉을 수행하는 맵 생성 방법.
PCT/KR2021/014533 2020-12-03 2021-10-19 로봇 및 그의 맵 생성 방법 WO2022119114A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21900802.6A EP4212289A4 (en) 2020-12-03 2021-10-19 ROBOT AND METHOD FOR GENERATING A MAP THEREBY
US18/135,540 US20230251663A1 (en) 2020-12-03 2023-04-17 Robot and method for generating map thereby

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0167645 2020-12-03
KR1020200167645A KR20220078278A (ko) 2020-12-03 2020-12-03 로봇 및 그의 맵 생성 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/135,540 Continuation US20230251663A1 (en) 2020-12-03 2023-04-17 Robot and method for generating map thereby

Publications (1)

Publication Number Publication Date
WO2022119114A1 true WO2022119114A1 (ko) 2022-06-09

Family

ID=81854042

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/014533 WO2022119114A1 (ko) 2020-12-03 2021-10-19 로봇 및 그의 맵 생성 방법

Country Status (4)

Country Link
US (1) US20230251663A1 (ko)
EP (1) EP4212289A4 (ko)
KR (1) KR20220078278A (ko)
WO (1) WO2022119114A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524020B1 (ko) * 2009-03-06 2015-05-29 엘지전자 주식회사 로봇 청소기의 점진적 지도 작성 및 위치 보정 방법
US20160271795A1 (en) * 2015-03-18 2016-09-22 Irobot Corporation Localization and Mapping Using Physical Features
KR20170053351A (ko) * 2015-11-06 2017-05-16 삼성전자주식회사 청소 로봇 및 그 제어 방법
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20190119234A (ko) * 2018-04-05 2019-10-22 엘지전자 주식회사 이동 로봇 및 그 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524020B1 (ko) * 2009-03-06 2015-05-29 엘지전자 주식회사 로봇 청소기의 점진적 지도 작성 및 위치 보정 방법
US20160271795A1 (en) * 2015-03-18 2016-09-22 Irobot Corporation Localization and Mapping Using Physical Features
KR20170053351A (ko) * 2015-11-06 2017-05-16 삼성전자주식회사 청소 로봇 및 그 제어 방법
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20190119234A (ko) * 2018-04-05 2019-10-22 엘지전자 주식회사 이동 로봇 및 그 제어방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4212289A4 *

Also Published As

Publication number Publication date
EP4212289A4 (en) 2024-04-10
EP4212289A1 (en) 2023-07-19
KR20220078278A (ko) 2022-06-10
US20230251663A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
WO2016129950A1 (ko) 청소 로봇 및 그 제어방법
WO2022045808A1 (ko) 청소 로봇 및 그 제어 방법
WO2014148692A1 (en) Display device and method for controlling the same
WO2020141900A1 (ko) 이동 로봇 및 그 구동 방법
WO2019143129A1 (ko) 로봇 청소기 및 그 제어 방법
WO2020231153A1 (en) Electronic device and method for assisting with driving of vehicle
WO2019135437A1 (ko) 안내 로봇 및 그의 동작 방법
EP3669181A1 (en) Vision inspection management method and vision inspection system
WO2020145607A1 (en) Electronic apparatus and method of assisting driving of vehicle
WO2020226343A1 (en) Electronic device and method for assisting with driving of vehicle
WO2021002569A1 (en) Electronic apparatus and control method thereof
WO2022092571A1 (ko) 로봇 청소기 및 그의 주행 방법
WO2021006622A1 (en) Electronic apparatus and controlling method thereof
WO2020171561A1 (en) Electronic apparatus and controlling method thereof
WO2019139273A1 (ko) 로봇 청소기 및 그의 제어방법
EP4070169A1 (en) Electronic apparatus and controlling method thereof
WO2020241923A1 (ko) 사용자 환경에서의 음성 인식 모델의 성능을 예측하는 인공 지능 장치 및 그 방법
WO2020017752A1 (ko) 드로잉을 통한 이동 로봇 제어 장치 및 그것의 동작 방법
WO2020251096A1 (ko) 인공 지능 로봇 및 그의 동작 방법
WO2022119114A1 (ko) 로봇 및 그의 맵 생성 방법
WO2020204500A1 (en) Electronic apparatus and method for assisting with driving of vehicle
WO2020116986A1 (ko) 자율 주행 가능한 이동 로봇 및 이의 주행 제어 방법
WO2021091105A1 (en) Electronic apparatus and control method thereof
WO2022019582A1 (ko) 로봇 및 그 제어 방법
WO2022225135A1 (ko) 로봇, 로봇 및 사용자 단말을 포함하는 시스템 및 그 제어 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21900802

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021900802

Country of ref document: EP

Effective date: 20230412

NENP Non-entry into the national phase

Ref country code: DE