KR20230106064A - Robot and method for controlling thereof - Google Patents
Robot and method for controlling thereof Download PDFInfo
- Publication number
- KR20230106064A KR20230106064A KR1020220051071A KR20220051071A KR20230106064A KR 20230106064 A KR20230106064 A KR 20230106064A KR 1020220051071 A KR1020220051071 A KR 1020220051071A KR 20220051071 A KR20220051071 A KR 20220051071A KR 20230106064 A KR20230106064 A KR 20230106064A
- Authority
- KR
- South Korea
- Prior art keywords
- map data
- robot
- driving
- identified
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
- B25J13/089—Determining the position of the robot with reference to its environment
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/022—Optical sensing devices using lasers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Radar, Positioning & Navigation (AREA)
- Optics & Photonics (AREA)
- Human Computer Interaction (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
본 발명은 로봇 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 주행 시작 위치의 변경에 따라 맵 데이터를 생성하는 로봇 및 그의 제어 방법에 관한 것이다. The present invention relates to a robot and a control method thereof, and more particularly, to a robot generating map data according to a change in a driving start position and a control method thereof.
최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 예를 들어, 실내 공간을 청소하는 로봇 청소기가 이에 해당할 수 있다. BACKGROUND OF THE INVENTION [0002] Recently, technology development for robots arranged in indoor spaces to provide services to users has been actively pursued. For example, a robot cleaner cleaning an indoor space may correspond to this.
로봇 청소는, 로봇 청소기가 위치한 실내 공간을 메모리에 저장된 해당 실내 공간에 대응하는 맵 데이터를 이용하여 주행한다. 이때, 로봇 청소기는 주행을 반복할 때마다, 실내 공간에 대한 정보를 반복하여 수집하고, 이를 기초로, 맵 데이터를 업데이트할 수 있다. 즉, 주행이 반복될 때마다 로봇 청소기에 저장된 맵 데이터에 포함된 실내 공간에 대한 정보는 보다 정확해질 수 있으며, 뿐만 아니라 맵 데이터에는 실내 공간 내 오브젝트에 대한 다양한 정보를 포함할 수도 있다. In robot cleaning, the indoor space where the robot cleaner is located is driven using map data corresponding to the indoor space stored in the memory. In this case, the robot cleaner may repeatedly collect information about the indoor space whenever driving is repeated, and update map data based on this. That is, information about the indoor space included in map data stored in the robot cleaner may be more accurate whenever driving is repeated, and the map data may also include various information about objects in the indoor space.
한편, 로봇은 기 저장된 맵 데이터를 기초로 로봇의 주행 시작 위치를 식별한 후 기 설정된 주행 경로에 따라 로봇이 위치한 실내 공간 내에서의 주행을 시작한다. 따라서, 로봇이 특정 주행 공간 내에서 주행을 시작하기 위해서는, 로봇의 주행을 시작하는 위치를 맵 데이터 상에서 식별하는 과정이 선행적으로 수반되어야 한다. 이때, 로봇이 맵 데이터를 기초로 로봇의 최초 주행 시작 위치를 식별하지 못하는 경우에는 로봇은 기존의 맵 데이터가 아닌 새로운 주행 시작 위치를 기준으로 한 맵 데이터를 생성한다. Meanwhile, the robot identifies a driving start position of the robot based on pre-stored map data, and then starts driving in an indoor space where the robot is located according to a predetermined driving route. Therefore, in order for the robot to start traveling within a specific travel space, a process of identifying a location where the robot starts traveling on map data must be preceded. At this time, if the robot cannot identify the first driving start position of the robot based on the map data, the robot generates map data based on the new driving start position instead of the existing map data.
그러나, 동일한 주행 공간 내에서 주행 시작 위치가 변경될 때마다 이러한 과정을 반복하여 수행한다면, 데이터를 생성하기 위하여 불필요하게 시간을 낭비하는 문제점을 야기시킨다. 특히 기존의 맵 데이터의 경우 로봇이 동일한 주행 시작 위치에서의 주행을 반복함에 따라 센서 등을 통해 획득한 데이터를 기초로 업데이트 되고, 이에 따라 다양한 정보가 포함될 수 있는데, 주행 시작 위치의 변경 만으로 활용도가 높은 기존의 맵 데이터의 이용을 중단하는 것은 비효율적이다. 이에 따라 주행 시작 위치가 변경되더라도 기존의 맵 데이터를 활용할 수 있는 방안이 요구되는 실정이다.However, if this process is repeatedly performed every time the driving start position is changed within the same driving space, time is wasted unnecessarily to generate data. In particular, in the case of existing map data, as the robot repeats driving at the same driving start position, it is updated based on data acquired through sensors, etc., and various information can be included accordingly. It is inefficient to stop using high existing map data. Accordingly, there is a demand for a method for utilizing existing map data even if the driving start position is changed.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 저장된 기존의 맵 데이터와 새롭게 획득된 맵 데이터를 비교하여, 주행 공간이 일치한 것으로 식별되면, 기존의 맵 데이터 상에서 새로운 주행 시작 위치를 식별한 후 기존의 맵 데이터를 계속하여 이용하는, 로봇 및 그의 제어 방법을 제공함에 있다.The present invention has been made to solve the above-described problems, and compares stored existing map data with newly acquired map data, and when it is identified that the driving spaces match, a new driving start position is identified on the existing map data. It is to provide a robot and its control method that continue to use the existing map data afterward.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇에 있어서, 로봇은 라이다 센서, 구동부, 제1 주행 공간에 대응되는 제1 맵 데이터가 저장된 메모리 및 상기 로봇의 주행 시작 위치에서 상기 라이다 센서를 통해 센싱 데이터를 획득하고, 상기 획득된 데이터에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우 상기 로봇이 주행하도록 하도록 상기 구동부를 제어하고, 상기 로봇이 주행하는 동안 상기 라이다 센서를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터를 획득하고, 상기 제1 맵 데이터에 포함된 확률 정보 및 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 상기 제2 맵 데이터에 대응되는 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하고, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별되면, 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치 및 상기 오브젝트에 대한 위치 정보에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 프로세서;를 포함할 수 있다. In the robot according to an embodiment of the present invention for achieving the above object, the robot includes a lidar sensor, a drive unit, a memory in which first map data corresponding to the first driving space is stored, and a driving start position of the robot. Acquiring sensing data through a lidar sensor, and controlling the drive unit so that the robot travels when a location corresponding to the driving start location of the robot is not identified on the first map data based on the obtained data , Second map data is acquired based on sensing data obtained through the lidar sensor while the robot is traveling, and probability information included in the first map data and information about an object included in the second map data are obtained. Based on the location information, it is identified whether a second driving space corresponding to the second map data matches the first driving space, and if the second driving space is identified as matching the first driving space, the and a processor for identifying a driving start position of the robot on the first map data based on a driving start position of the robot on second map data and location information on the object.
또한, 상기 프로세서는, 상기 라이다 센서를 통해 상기 제2 주행 공간에 대응하는 포인트 맵 데이터를 획득하고, 상기 포인트 맵 데이터에 포함된 복수의 포인트 중 기 설정된 확률 값 이상인 복수의 포인트를 유효 포인트로 식별하고, 상기 식별된 유효 포인트의 위치 정보를 기초로, 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보를 획득하고, 상기 획득한 오브젝트에 대한 위치 정보 및 상기 확률 정보를 기초로, 상기 제1 맵 데이터와 상기 제2 맵 데이터 간의 매칭 스코어를 획득하고, 상기 획득된 매칭 스코어에 기초하여 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별할 수 있다. In addition, the processor acquires point map data corresponding to the second driving space through the lidar sensor, and sets a plurality of points that are equal to or greater than a predetermined probability value among a plurality of points included in the point map data as valid points. and, based on the location information of the identified effective point, obtains location information on an object included in the second map data, and based on the obtained location information on the object and the probability information, the first A matching score between first map data and the second map data may be obtained, and based on the obtained matching score, whether the second driving space matches the first driving space may be identified.
또한, 상기 제1 맵 데이터는, 기 설정된 크기의 복수의 영역으로 분할되고, 각각의 영역에 대응되는 확률 정보를 포함하고, 상기 프로세서는, 상기 유효 포인트의 위치 정보를 기초로, 상기 제1 맵 데이터 상에서 상기 오브젝트의 위치에 대응하는 영역을 식별하고, 상기 확률 정보에 기초하여, 상기 식별된 영역에 대응하는 확률 값을 식별하고, 상기 식별된 확률 값을 기초로, 상기 매칭 스코어를 획득할 수 있다. In addition, the first map data is divided into a plurality of regions having a predetermined size and includes probability information corresponding to each region, and the processor determines the first map data based on the location information of the effective point. A region corresponding to the location of the object may be identified on data, a probability value corresponding to the identified region may be identified based on the probability information, and the matching score may be obtained based on the identified probability value. there is.
또한, 상기 프로세서는, 상기 확률 값의 평균 값이 임계 값 이상이면, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별할 수 있다. In addition, the processor may identify that the second travel space coincides with the first travel space when the average value of the probability values is greater than or equal to a threshold value.
또한, 상기 프로세서는, 상기 확률 값의 평균 값이 상기 임계 값 미만이면, 상기 메모리에 저장된 상기 제1 맵 데이터를 상기 제2 맵 데이터에 대응하는 맵 데이터로 업데이트할 수 있다. In addition, the processor may update the first map data stored in the memory with map data corresponding to the second map data when the average value of the probability value is less than the threshold value.
또한 상기 프로세서는, 상기 제2 맵 데이터를 기 설정된 각도로 회전 시키고, 상기 제2 맵 데이터를 상기 기 설정된 각도로 회전 시킬 때마다, 상기 확률 값의 평균 값을 획득하고, 상기 획득한 평균 값 중 최대 값을 갖는 평균 값에 대응하는 회전 각도를 식별하고, 상기 식별된 회전 각도 및 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별할 수 있다. In addition, the processor rotates the second map data by a preset angle, and obtains an average value of the probability values each time the second map data is rotated by the preset angle, and among the obtained average values A rotation angle corresponding to an average value having a maximum value is identified, and a driving start position of the robot on the first map data is determined based on the identified rotation angle and a driving start position of the robot on the second map data. can be identified.
또한, 상기 맵 데이터는, 기 설정된 개수의 영역을 포함하는 복수의 서브 영역으로 분할되고, 상기 프로세서는, 상기 서브 영역에 포함된 기 설정된 개수의 영역 중 어느 하나의 영역에 대응하는 확률 값을 식별하고, 상기 식별된 영역이 상기 복수의 영역 중 적어도 하나의 영역에 해당하면, 상기 식별된 확률 값을 적용하여 상기 매칭 스코어를 획득할 수 있다. In addition, the map data is divided into a plurality of sub-regions including a preset number of regions, and the processor identifies a probability value corresponding to any one of the preset number of regions included in the sub-regions. And, if the identified region corresponds to at least one of the plurality of regions, the matching score may be obtained by applying the identified probability value.
여기서, 상기 서브 영역에 포함되는 영역의 개수는, 상기 유효 포인트의 개수에 기초하여 결정될 수 있다. Here, the number of areas included in the sub area may be determined based on the number of effective points.
상술한 목적을 달성하기 위한 본 개시의 다른 실시 예에 따른, 로봇을 제어하는 방법에 있어서, 상기 방법은 상기 로봇의 주행 시작 위치에서 라이다 센서를 통해 센싱 데이터를 획득하는 단계, 상기 획득된 데이터에 기초하여 메모리에 저장된 제1 주행 공간에 대응되는 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우, 상기 로봇이 주행하도록 구동부를 제어하는 단계, 상기 로봇이 주행하는 동안 상기 라이다 센서를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터를 획득하는 단계, 상기 제1 맵 데이터에 포함된 확률 정보 및 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 상기 제2 맵 데이터에 대응되는 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계 및 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별되면, 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치 및 상기 오브젝트에 대한 위치 정보에 기초하여 상기 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 단계를 포함할 수 있다. In a method for controlling a robot according to another embodiment of the present disclosure for achieving the above object, the method includes acquiring sensing data through a lidar sensor at a driving start position of the robot, the obtained data controlling a driving unit so that the robot travels, when a location corresponding to the travel start location of the robot is not identified on the first map data corresponding to the first travel space stored in a memory based on obtaining second map data based on sensing data acquired through the lidar sensor during the first map, based on probability information included in the first map data and location information about an object included in the second map data Identifying whether a second driving space corresponding to the second map data matches the first driving space, and if the second driving space is identified as matching the first driving space, the second map data The method may include identifying a driving start position of the robot on the map data based on a driving start position of the robot on the map and location information on the object.
또한, 상기 방법은, 상기 라이다 센서를 통해 상기 제2 주행 공간에 대응하는 포인트 맵 데이터를 획득하는 단계를 더 포함하고, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는, 상기 포인트 맵 데이터에 포함된 복수의 포인트 중 기 설정된 확률 값 이상인 복수의 포인트를 유효 포인트로 식별하는 단계, 상기 식별된 유효 포인트의 위치 정보를 기초로, 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보를 획득하는 단계, 상기 획득한 오브젝트에 대한 위치 정보 및 상기 확률 정보를 기초로, 상기 제1 맵 데이터와 상기 제2 맵 데이터 간의 매칭 스코어를 획득하는 단계 및 상기 획득된 매칭 스코어에 기초하여 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계를 포함할 수 있다. The method may further include acquiring point map data corresponding to the second driving space through the lidar sensor, and identifying whether the second driving space coincides with the first driving space. The step may include identifying a plurality of points, which are equal to or greater than a preset probability value, among a plurality of points included in the point map data as valid points, based on the location information of the identified valid points, the points included in the second map data Acquiring location information about an object, obtaining a matching score between the first map data and the second map data based on the obtained location information about the object and the probability information, and the obtained matching score It may include identifying whether the second travel space coincides with the first travel space based on.
또한, 상기 제1 맵 데이터는, 기 설정된 크기의 복수의 영역으로 분할되고, 각각의 영역에 대응되는 확률 정보를 포함하고, 상기 매칭 스코어를 획득하는 단계는, 상기 유효 포인트의 위치 정보를 기초로, 상기 제1 맵 데이터 상에서 상기 오브젝트의 위치에 대응하는 영역을 식별하고, 상기 확률 정보에 기초하여, 상기 식별된 영역에 대응하는 확률 값을 식별하고, 상기 식별된 확률 값을 기초로, 상기 매칭 스코어를 획득할 수 있다. In addition, the first map data is divided into a plurality of regions having a predetermined size and includes probability information corresponding to each region, and the obtaining of the matching score comprises based on the location information of the valid points. , Identifying an area corresponding to the location of the object on the first map data, identifying a probability value corresponding to the identified area based on the probability information, and performing the matching based on the identified probability value. score can be obtained.
또한, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는, 상기 확률 값의 평균 값이 임계 값 이상이면, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별할 수 있다. In addition, in the step of identifying whether the second travel space matches the first travel space, if the average value of the probability values is equal to or greater than a threshold value, the second travel space is determined to match the first travel space. can be identified.
또한, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는, 상기 확률 값의 평균 값이 상기 임계 값 미만이면, 상기 메모리에 저장된 상기 제1 맵 데이터를 상기 제2 맵 데이터에 대응하는 맵 데이터로 업데이트할 수 있다. In addition, the step of identifying whether the second driving space matches the first driving space may include, when an average value of the probability values is less than the threshold value, the first map data stored in the memory is converted to the second map data. It can be updated with map data corresponding to the data.
또한, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는, 상기 제2 맵 데이터를 기 설정된 각도로 회전 시키고, 상기 제2 맵 데이터를 상기 기 설정된 각도로 회전 시킬 때마다, 상기 확률 값의 평균 값을 획득하고, 상기 획득한 평균 값 중 최대 값을 갖는 평균 값에 대응하는 회전 각도를 식별하고, 상기 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 단계는, 상기 식별된 회전 각도 및 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별할 수 있다. In the step of identifying whether the second driving space coincides with the first driving space, the second map data is rotated at a preset angle and the second map data is rotated at the preset angle. Each time, obtaining an average value of the probability values, identifying a rotation angle corresponding to an average value having a maximum value among the obtained average values, and identifying a driving start position of the robot on the map data, A driving start position of the robot may be identified on the first map data based on the identified rotation angle and the driving start position of the robot on the second map data.
또한, 상기 맵 데이터는, 기 설정된 개수의 영역을 포함하는 복수의 서브 영역으로 분할되고, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는, 상기 서브 영역에 포함된 기 설정된 개수의 영역 중 어느 하나의 영역에 대응하는 확률 값을 식별하고, 상기 식별된 영역이 상기 복수의 영역 중 어느 하나의 영역에 해당하면, 상기 식별된 확률 값을 적용하여 상기 매칭 스코어를 획득할 수 있다. In addition, the map data is divided into a plurality of sub-regions including a preset number of regions, and the step of identifying whether the second driving space coincides with the first driving space includes: A probability value corresponding to any one area among a predetermined number of areas is identified, and if the identified area corresponds to any one area among the plurality of areas, the identified probability value is applied to obtain the matching score. can do.
여기서, 상기 서브 영역에 포함되는 영역의 개수는, 상기 유효 포인트의 개수에 기초하여 결정될 수 있다.Here, the number of areas included in the sub area may be determined based on the number of effective points.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 로봇은 로봇의 주행 시작 위치가 변경되더라도, 메모리에 저장된 기존의 맵 데이터를 삭제하지 않으며, 기존의 맵 데이터 상에서 새로운 주행 시작 위치를 식별한 후, 다양한 정보가 포함된 활용성이 높은 기존의 맵 데이터를 계속하여 이용할 수 있다. According to various embodiments of the present invention as described above, even if the driving start position of the robot is changed, the robot does not delete the existing map data stored in the memory, and after identifying a new driving starting position on the existing map data, various Existing map data with high usability that contains information can continue to be used.
도 1은 본 개시의 일 실시 예에 따른, 로봇의 예시도이다.
도 2는 동일한 주행 공간에 위치했음에도 불구하고, 주행 시작 위치의 변경으로 맵 데이터를 다시 생성하는 것을 나타낸 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 로봇의 개략적인 구성도이다.
도 4는 본 개시의 일 실시 예에 따른, 라이다 센서를 이용하여 오브젝트에 대한 거리 데이터 및 포인트 클라우드 데이터를 획득하는 것을 나타낸 예시도이다.
도 5는 본 개시의 일 실시 예에 따른 맵 데이터를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른, 유효 포인트를 식별하고, 식별된 유효 포인트를 기초로 제2 맵 데이터 상에서 오브젝트의 위치를 식별하는 것을 나타낸 예시도이다.
도 7은 본 개시의 일 실시 예에 따른, 제1 맵 데이터에 포함된 확률 정보 및 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하는지 여부를 식별하는 것을 설명하기 위한 예시도이다.
도 8은 본 개시의 일 실시 예에 따른, 제1 맵 데이터에 포함된 확률 정보 및 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하지 않는 것으로 식별하는 것을 나타낸 예시도이다.
도 9(a) 내지 9(d)는 본 개시의 일 실시 예에 따른, 제2 맵 데이터를 기 설정된 각도로 회전시켜, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시 예에 따른, 제2 맵 데이터 상에서의 로봇의 주행 시작 위치 및 오브젝트에 대한 위치 정보에 기초하여 제1 맵 데이터 상에서 로봇의 주행 시작 위치를 업 데이트 하는 것을 나타낸 예시도이다.
도 11은 본 개시의 일 실시 예에 따른, 맵 데이터를 서브 영역으로 구분하여, 매칭 스코어를 획득하는 것을 나타낸 예시도이다.
도 12는 본 개시의 일 실시 예에 따른, 유효 포인트의 개수에 기초하여 서브 영역(22)에 포함되는 영역(21)의 개수를 증가시키는 것을 나타낸 예시도이다.
도 13은 본 개시의 일 실시 예에 따른, 로봇의 세부적인 구성도이다.
도 14는 본 개시의 일 실시 예에 따른, 로봇을 제어하는 방법의 개략적인 순서도이다.1 is an exemplary diagram of a robot according to an embodiment of the present disclosure.
FIG. 2 is a diagram illustrating re-creation of map data due to a change in a driving start position, even though they are located in the same driving space.
3 is a schematic configuration diagram of a robot according to an embodiment of the present disclosure.
4 is an exemplary diagram illustrating obtaining distance data and point cloud data for an object using a LIDAR sensor according to an embodiment of the present disclosure.
5 is a diagram for explaining map data according to an embodiment of the present disclosure.
6 is an exemplary view illustrating identifying valid points and identifying a location of an object on second map data based on the identified effective points, according to an embodiment of the present disclosure.
7 illustrates a second driving space corresponding to second map data based on probability information included in first map data and location information on an object included in second map data according to an embodiment of the present disclosure. 1 It is an exemplary diagram for explaining identification of whether or not it coincides with the driving space.
8 illustrates a second driving space corresponding to second map data based on probability information included in first map data and location information about an object included in second map data, according to an embodiment of the present disclosure. 1 It is an exemplary view showing identification that does not match the driving space.
9(a) to 9(d) illustrate a method of identifying whether a first driving space and a second driving space coincide with each other by rotating second map data at a predetermined angle, according to an embodiment of the present disclosure. It is a drawing for
10 is an exemplary diagram illustrating updating of a driving start position of a robot on first map data based on a driving start position of a robot on second map data and location information on an object, according to an embodiment of the present disclosure; am.
11 is an exemplary view illustrating obtaining a matching score by dividing map data into sub-areas, according to an embodiment of the present disclosure.
12 is an exemplary view illustrating increasing the number of
13 is a detailed configuration diagram of a robot according to an embodiment of the present disclosure.
14 is a schematic flowchart of a method for controlling a robot according to an embodiment of the present disclosure.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments of the present disclosure have been selected from general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but they may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technologies, and the like. . In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the disclosure. Therefore, terms used in the present disclosure should be defined based on the meaning of the term and the general content of the present disclosure, not simply the name of the term.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In the present disclosure, expressions such as “has,” “can have,” “includes,” or “can include” indicate the presence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다. The expression at least one of A and/or B should be understood to denote either "A" or "B" or "A and B".
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as "first," "second," "first," or "second," used in the present disclosure may modify various elements regardless of order and/or importance, and may refer to one element as It is used only to distinguish it from other components and does not limit the corresponding components.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is "(operatively or communicatively) coupled with/to" another component (e.g., a second component); When referred to as "connected to", it should be understood that an element may be directly connected to another element, or may be connected through another element (eg, a third element).
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "comprise" or "consist of" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other It should be understood that the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof is not precluded.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In the present disclosure, a “module” or “unit” performs at least one function or operation, and may be implemented in hardware or software or a combination of hardware and software. In addition, a plurality of "modules" or a plurality of "units" may be integrated into at least one module and implemented by at least one processor, except for "modules" or "units" that need to be implemented with specific hardware.
본 명세서에서, 사용자라는 용어는 로봇(100)을 사용하는 사람 또는 로봇(100)을 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.In this specification, the term user may refer to a person using the
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세 하게 설명한다.Hereinafter, an embodiment of the present disclosure will be described in more detail with reference to the accompanying drawings.
도 1은 본 개시의 일 실시 예에 따른, 로봇의 예시도이다. 1 is an exemplary diagram of a robot according to an embodiment of the present disclosure.
도 1을 참조하면, 로봇(100)은 주행 공간 내에서 스스로 이동하고, 다양한 동작을 수행할 수 있다. 여기서 주행 공간이란, 로봇(100)이 주행할 수 있도록 주행 경로가 설정된 공간을 의미한다. 예를 들어, 로봇(100)이 위치한 실내 공간이 이에 해당할 수 있다. Referring to FIG. 1 , the
로봇(100)은 로봇(100)이 위치한 특정 실내 공간 내에서 최초로 주행을 시작하면, 다양한 센서 등을 통하여 특정 실내 공간에 대한 정보를 수집하고, 수집한 정보를 기초로 특정 실내 공간에 대응하는 맵 데이터를 생성할 수 있다. 그리고, 로봇(100)은 맵 데이터를 기초로 특정 실내 공간을 주행하기 위한, 최적의 주행 경로를 설정할 수 있다. 그리고, 설정된 주행 경로와 맵 데이터를 기초로, 특정 실내 공간 내에서 주행을 반복하며, 맵 데이터에 포함된 정보를 업 데이트할 수 있다. When the
한편, 로봇(100)은 맵 데이터를 기초로 주행을 시작하기에 앞서, 맵 데이터 상에서의 로봇(100)의 주행 시작 위치를 식별할 수 있다. 구체적으로, 로봇(100)은 주행을 시작하기 위하여 사용자로부터 주행 시작에 관한 명령어를 입력 받은 시점 또는 주행 시작에 관한 기 설정된 조건(예를 들어, 기 설정된 주행 시작 시간)이 충족된 것으로 식별된 시점에서의 로봇(100)의 주행 시작 위치를 식별한다. Meanwhile, the
이때, 로봇(100)은 맵 데이터에 기반하여 주행 시작 위치를 식별할 수 있다. 구체적으로, 로봇(100)은 주행을 시작하면, 라이다 센서를 통해 주행 시작 위치 주변의 오브젝트에 대한 정보(예를 들어, 오브젝트에 대한 거리 정보 및 오브젝트에 대응하는 포인트 클라우드 데이터)를 실시간으로 획득한다. 그리고, 로봇(100)은 메모리(130)에 저장된 기 설정된 주행 시작 위치에서 획득되는 주변의 오브젝트에 대한 정보와 라이다 센서를 통해 실시간으로 획득한 주변의 오브젝트에 대한 정보를 비교한다. 그리고, 로봇(100)은 메모리(130)에 저장된 주행 시작 위치에서 획득되는 주변의 오브젝트에 대한 정보와 라이다 센서를 통해 실시간으로 획득한 주변의 오브젝트에 대한 정보가 일치하는 것으로 식별되면, 로봇의 주행 시작 위치가 기 설정된 주행 시작 위치와 일치하는 것으로 식별한다. 이로써, 로봇은 맵 데이터 상에서의 주행 시작 위치를 식별할 수 있게 된다. At this time, the
그리고, 로봇(100)은 맵 데이터 상에서 로봇(100)의 주행 시작 위치를 식별한 후 식별된 주행 시작 위치를 기준으로 기 설정된 주행 경로에 따라 주행을 시작할 수 있다. 따라서, 로봇(100)이 주행 공간을 주행을 하기 위해서는, 맵 데이터 상에서 주행 시작 위치를 식별하는 과정이 우선적으로 수행되어야 한다. In addition, the
만약, 주행 시작 위치가 변경된 경우에는 로봇(100)은 기존의 맵 데이터 상에서 변경된 주행 시작 위치를 식별할 수 없다. 기 설정된 주행 시작 위치에서 획득되는 주변의 오브젝트에 대한 정보와 라이다 센서를 통해 실시간으로 획득한 주변의 오브젝트에 대한 정보가 일치하지 않기 때문이다. 이로 인하여, 로봇(100)은 기존의 맵 데이터 상에서 기 설정된 주행 시작 위치를 기준으로 설정된 주행 경로 정보를 더 이상 활용할 수 없게 된다. 즉, 로봇(100)은 주행을 하는데 있어, 기존의 맵 데이터를 더 이상 이용하지 못한다. 이에 따라, 로봇(100)이 기존의 맵 데이터 상에서 로봇(100)의 주행 시작 위치를 식별할 수 없는 경우, 로봇(100)은 새로운 주행 시작 위치를 기준으로 새로운 맵 데이터를 획득한다. 그리고, 로봇(100)은, 새로운 맵 데이터를 기초로 로봇(100)의 주행 공간 내 새로운 주행 경로를 설정할 수 있다. If the driving start position is changed, the
도 2는 동일한 주행 공간에 위치했음에도 불구하고, 주행 시작 위치의 변경으로 맵 데이터를 다시 생성하는 것을 나타낸 도면이다. FIG. 2 is a diagram illustrating re-creation of map data due to a change in a driving start position, even though they are located in the same driving space.
다만, 도 2를 참조하면, 로봇(100)이 동일한 주행 공간(10) 내 위치하고, 동일한 주행 공간(10) 내에서 주행을 시작함에도 불구하고, 주행 시작 위치의 변경 만으로 새로운 맵 데이터를 반복하여 획득하는 비효율 적이다. 구체적으로, 로봇(100)의 주행 시작 위치가 동일한 주행 공간(10) 내에서 제1 위치(1)에서 제2 위치(2)로 변경되었다고 가정한다. 이때, 로봇(100)은 라이다 센서를 이용하여, 기존의 맵 데이터(20-1) 상에서 주행 시작 위치를 식별할 수 없다. 이에 따라, 로봇(100)은 기존의 맵 데이터(20-1)를 활용할 수 없다고 판단하고, 새로운 맵 데이터(20-2)를 획득하게 된다. 다만, 이 경우, 기존의 맵 데이터(20-1)와 새로운 맵 데이터(20-2)는 동일한 주행 공간(10)에 대한 것으로, 이처럼 주행 시작 위치의 변경될 때마다 기존의 맵 데이터(20-1)의 활용을 중단하고 새로운 맵 데이터(20-1)를 생성하는 것은 비효율 적이다. 이에 따라, 본 개시는 주행 시작 위치가 변경되었더라도, 동일한 주행 공간에서 로봇(100)이 주행하는 것으로 식별되면 기존의 맵 데이터를 계속하여 활용할 수 있도록 한다. 이하, 이와 관련된 본 개시에 대하여 자세히 설명하도록 한다.However, referring to FIG. 2 , even though the
도 3은 본 개시의 일 실시 예에 따른, 로봇의 개략적인 구성도이다. 3 is a schematic configuration diagram of a robot according to an embodiment of the present disclosure.
도 3을 참조하면, 로봇(100)은 라이다 센서(110), 구동부(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다. Referring to FIG. 3 , the
본 개시의 일 실시 예로 로봇(100)은 청소기로 구현될 수 있다. 로봇(100)은 로봇(100)이 위치한 실내 공간을 주행하며 청소를 수행할 수 있다. 이때, 로봇(100)의 주행 시작 위치는 로봇(100)의 스테이션(200) 위치일 수 있다. 스테이션(200)은, 로봇(100)의 배터리 충전 기능, 서버와의 통신 기능 등 로봇(100)과 관련하여 다양한 기능을 수행하는 장치일 수 있다. 로봇(100)이 스테이션(200)에 결합된 상태에서, 사용자의 주행 시작 명령어를 입력 받으면, 로봇(100)은 맵 데이터 상에서 스테이션(200)의 위치를 식별하고, 식별된 스테이션의 위치를 주행 시작 위치로 식별할 수 있다. 그리고, 로봇(100)은 스테이션(200)으로부터 분리되어 기 설정된 주행 경로 및 맵 데이터에 기초하여 실내 공간에 대한 주행을 수행할 수 있다. As an embodiment of the present disclosure, the
한편, 다른 예로, 로봇(100)은 리테일 로봇 또는 가이드 로봇 등으로 구현될 수 있다. 예를 들어, 로봇(100)은 매장 내에서 사용자에게 경로를 안내하거나, 매장 내의 제품을 사용자에게 설명하거나, 또는 사용자의 물건을 들고 매장 내에서 사용자를 따라 이동하는 기능을 수행할 수 있다.Meanwhile, as another example, the
라이다 센서(110)(Lidar Sensor)는 로봇(100) 주변의 오브젝트(예를 들어, 장애물 등)와의 거리를 감지할 수 있다. 구체적으로, 라이다 센서(110)는 360° 회전하며 로봇(100) 주변의 오브젝트를 향하여 레이저를 조사하고, 조사된 레이저가 로봇(100) 주변의 오브젝트로부터 반사되어 수신되면, 레이저가 수신된 시간에 기초하여 오브젝트와의 거리를 감지하거나, 수신된 레이저의 위상 변화 량을 측정하여 오브젝트와의 거리를 감지할 수 있다. 여기에서, 오브젝트는 주행 공간 내 벽, 전자 기기 등을 포함할 수 있다. The
구동부(120)는 로봇(100)을 이동시키기 위한 구성요소이다. 구동부(120)는 바퀴 또는 로봇(100)의 다리 등으로 구현될 수 있다. 이를 위해, 구동부(120)는 모터를 포함할 수 있다. 프로세서(140)는 구동부(120)를 제어하여 로봇(100)의 이동, 정지, 속도 제어 및 방향 전환 등과 같은 다양한 주행 동작을 제어할 수 있다.The driving
메모리(130)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(130)는 데이터 저장 용도에 따라 로봇(100)에 임베디드 된 메모리(130) 형태로 구현되거나, 로봇(100)에 탈 부착이 가능한 메모리(130) 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드 된 메모리(130)에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈 부착이 가능한 메모리(130)에 저장될 수 있다. 한편, 로봇(100)에 임베디드 된 메모리(130)의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. The
또한, 로봇(100)에 탈부착이 가능한 메모리(130)의 경우 메모리(130) 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리(130)) 등과 같은 형태로 구현될 수 있다.In addition, in the case of the
본 개시의 일 실시 예로, 메모리(130)에는 맵 데이터가 저장될 수 있다. 맵 데이터란, 로봇(100)이 위치한 주행 공간에 대하여 획득한 맵 데이터를 의미할 수 있다. 맵 데이터에는 주행 공간에 대한 정보가 포함될 수 있다. 예를 들어, 주행 공간 내 오브젝트(예를 들어, 벽, 가전 제품 등)의 위치 정보 등이 포함될 수 있다. As an example of the present disclosure, map data may be stored in the
한편, 메모리(130)에 저장된 맵 데이터는 로봇(100)이 로봇(100)이 위치한 주행 공간에 대한 최초 주행을 시작한 후 획득되어 메모리(130)에 저장된 맵 데이터일 수 있다. 구체적으로, 로봇(100)이 특정 주행 공간 내에서 최초로 주행을 시작하면, 프로세서(140)는 라이다 센서(110)를 이용하여 특정 주행 공간에 대한 센싱 데이터를 획득할 수 있다. 그리고, 프로세서(140)는 획득한 센싱 데이터를 이용하여, 특정 주행 공간에 대한 맵 데이터를 생성하고, 생성된 맵 데이터를 메모리(130)에 저장될 수 있다. Meanwhile, the map data stored in the
한편, 프로세서(140)는 로봇(100)이 위치한 주행 공간이 변경된 것으로 식별되면, 새로운 주행 공간에 대한 신규 맵 데이터를 생성하고, 메모리(130)에 기 저장된 맵 데이터를 삭제한 후 신규 맵 데이터를 저장할 수 있다. 따라서, 메모리(130)에 저장된 맵 데이터는 로봇(100)이 위치한 주행 공간이 변경되지 않는 한, 계속 메모리(130)에 저장될 수 있다.Meanwhile, when it is identified that the driving space where the
이하에서는, 로봇(100)이 위치한 주행 공간이 변경된 것으로 식별됨으로써, 프로세서(140)에 의해 새롭게 생성된 신규 맵 데이터와 메모리(130)에 저장된 맵 데이터를 구별하도록 한다. 이를 위해, 메모리(130)에 저장된 맵 데이터를 제1 맵 데이터(20)로 지칭하고, 로봇(100)이 위치한 주행 공간이 변경된 것으로 식별됨으로써, 프로세서(140)에 의해 새롭게 생성된 신규 맵 데이터를 제2 맵 데이터(30)로 지칭하겠다. Hereinafter, new map data newly generated by the
한편, 로봇(100)은 메모리(130)에 저장된 제1 맵 데이터(20)를 이용하여, 로봇(100)이 위치한 주행 공간을 반복하여 주행할 수 있다. 프로세서(140)는 주행을 반복할 때마다 획득되는 센싱 데이터를 기초로, 메모리(130)에 저장된 제1 맵 데이터(20)를 업 데이트할 수 있다. 뿐만 아니라, 프로세서(140)는 입력 인터페이스를 통해 사용자로부터 제1 주행 공간에 관한 부가 정보(예를 들어, 전자 기기의 식별 정보 등)를 입력 받을 수도 있으며, 입력 받은 부가 정보를 기초로, 제1 맵 데이터(20)를 업 데이트할 수도 있다. Meanwhile, the
프로세서(140)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(140)는 라이다 센서(110), 구동부(120)를 포함하는 로봇(100)의 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. The
이를 위해, 프로세서(140)는 라이다 센서(110) 및 구동부(120)와 전기적으로 연결될 수 있다. 그리고, 프로세서(140)는 중앙처리장치(central processing unit, CPU) 또는 어플리케이션 프로세서(application processor, AP) 등을 포함할 수 있다. 이 경우, 프로세서(140)는 하나 이상의 인스트럭션에 따라 메모리(130)에 저장된 하나 이상의 소프트웨어 프로그램을 실행하여, 로봇(100)에 구비된 각종 하드웨어의 동작들을 제어하고, 각종 기능을 지원할 수 있다. To this end, the
특히, 상술한 바와 같이, 프로세서(140)는 라이다 센서(110)를 통해 획득한 센싱 데이터를 기초로, 로봇(100)이 위치하는 주행 공간에 대한 맵 데이터를 획득할 수 있다. 예를 들어, 로봇(100)이 로봇 청소기로 구현되는 경우, 프로세서(140)는 라이다 센서(110)를 이용하여, 로봇 청소기가 위치하고, 로봇 청소기가 주행하는 것으로 설정된 공간인 사용자의 집, 회사 등에 대한 맵 데이터를 획득할 수 있다. In particular, as described above, the
또 다른 예로, 로봇(100)이 매장 내에서 서비스를 제공하는 로봇(100)으로 구현되는 경우, 프로세서(140)는 라이다 센서(110)를 이용하여, 로봇(100)이 위치한 매장에 대한 맵 데이터를 획득할 수도 있다. 한편, 프로세서(140)는 획득한 맵 데이터를 기반으로 로봇(100)의 실시간 위치를 식별할 수도 있다. 이때, 프로세서(140)의 맵 데이터를 생성하는 과정과 로봇(100)의 위치를 식별하는 과정은 동시에 수행될 수 있다.As another example, when the
프로세서(140)가 맵 데이터를 생성하는 과정에 대하여 보다 구체적으로 설명하면, 프로세서(140)는 라이다 센서(110)를 이용하여 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터와 주변의 오브젝트에 대응하는 포인트 클라우드(Point Cloud) 데이터를 획득할 수 있다. To describe the process of generating map data by the
구체적으로, 프로세서(140)는 오브젝트를 향하여 레이저를 조사하고, 조사된 레이저가 오브젝트로부터 반사되어 수신되면, 레이저가 수신된 시간에 기초하여 오브젝트와의 거리를 식별할 수 있다. 그리고, 프로세서(140)는 식별된 거리에 기초하여 레이저가 반사된 지점에 대응하는 포인트를 식별할 수 있다. 이때, 포인트는 오브젝트의 표면 상에 식별될 수 있다. 그리고, 프로세서(140)는 오브젝트의 표면 상에서 식별되는 복수의 포인트가 군집화 된 포인트 집합을 식별할 수 있다. 이때, 오브젝트의 표면 상에서 식별되는 복수의 포인트의 집합이 클라우드 포인트에 해당할 수 있다. Specifically, the
이때, 프로세서(140)는 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터 및 주변의 오브젝트에 대응하는 포인트 클라우드(Point Cloud) 데이터를 포인트 맵 데이터의 형태로 획득할 수 있다. 포인트 맵 데이터에는 주행 공간에 대응하는 포인트 클라우드 및 주행 공간에 위치한 오브젝트에 대한 포인트 클라우드가 포함될 수 있다. In this case, the
이때, 각각의 포인트 클라우드의 위치는, 획득한 거리 데이터에 기초하여, 주행 공간 내에서의 오브젝트의 위치에 대응하도록, 포인트 맵 데이터 상에서 식별될 수 있다. 한편, 프로세서(140)는 획득된 주행 공간의 맵 데이터에 SLAM(simultaneous localization and mapping) 알고리즘을 적용하여, 주행 공간에 대한 맵 데이터를 획득할 수 있다. 예를 들어, 프로세서(140)는 GraphSLAM, Cartographer, Gmapping, EKF SLAM 등의 기법을 통해 맵 데이터를 생성할 수 있다.In this case, the location of each point cloud may be identified on the point map data to correspond to the location of the object in the driving space based on the acquired distance data. Meanwhile, the
이하에서는, 도 4 내지 도 12를 참조하여, 본 개시의 일 실시 예에 따른 로봇의 동작에 대하여 보다 구체적으로 설명하도록 한다. Hereinafter, with reference to FIGS. 4 to 12 , an operation of a robot according to an embodiment of the present disclosure will be described in more detail.
먼저, 프로세서(140)는 로봇(100)의 주행 시작 위치에서 라이다 센서(110)를 통해 센싱 데이터를 획득한다First, the
여기서, 주행 시작 위치는, 로봇(100)이 주행을 시작하는 시점에서의 로봇(100)의 현재 위치일 수 있다. 예를 들어, 오프 된 상태 또는 기 설정된 시간 동안의 대기 상태에 있는 로봇(100)이 사용자의 주행 시작 명령어를 입력 받은 시점 또는 주행 시작 설정 조건(예를 들어, 기 설정된 주행 시작 시간에 도래한 경우)이 만족된 것으로 식별한 시점에, 로봇(100)의 현재 위치를 의미할 수 있다. Here, the driving start position may be the current position of the
프로세서(140)는 라이다 센서(110)를 이용하여 로봇(100)의 주행 시작 위치에서의 주변 오브젝트에 대한 센싱 데이터를 획득한다. 상술한 바와 같이, 센싱 데이터는 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터 및 주변의 오브젝트에 대한 포인트 클라우드 데이터를 포함할 수 있다. The
구체적으로, 프로세서(140)는 메모리(130)에 저장된 제1 맵 데이터(20) 상에서 로봇(100)의 주행 시작 위치에 대응되는 위치를 식별하기 위한 정보를 획득할 수 있다. 예를 들어, 프로세서(140)는 주행 시작 위치에서 로봇(100)이 360° 회전하도록 구동부(120)를 제어하고, 로봇(100)이 360° 회전하는 동안 주행 시작 위치 주변의 오브젝트에 대한 센싱 데이터를 획득할 수 있다. 또는, 프로세서(140)는 주행 시작 위치에서 기 설정된 반경 내에서, 로봇(100)이 주행하도록 구동부(120)를 제어하고, 로봇이 주행하는 동안 라이다 센서(110)를 이용하여 주행 시작 위치에서의 주변 오브젝트에 대한 센싱 데이터를 획득할 수도 있다. Specifically, the
이처럼, 주행 시작 위치에서 획득한 센싱 데이터는 이후 제1 맵 데이터(20) 상에서 주행 시작 위치에 대응되는 위치를 식별하는데 이용될 수 있다. In this way, the sensing data obtained from the driving start position may be used to identify a location corresponding to the driving start position on the
프로세서(140)는 로봇(100)의 주행 시작 위치에서 센싱 데이터를 획득한 후, 획득된 센싱 데이터에 기초하여 제1 맵 데이터(20) 상에서 로봇의 주행 시작 위치에 대응되는 위치를 식별하고, 제1 맵 데이터(20) 상에서 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우 로봇이 주행하도록 하도록 구동부(120)를 제어할 수 있다. After obtaining sensing data from the driving start position of the
구체적으로, 프로세서(140)는 라이다 센서(110)를 통해 획득된 센싱 데이터를 기초로 제1 맵 데이터(20) 상에서의 로봇(100)의 주행 시작 위치에 대응되는 위치를 식별할 수 있다.Specifically, the
여기에서, 로봇(100)의 주행 시작 위치에 대응되는 위치를 식별한다는 것은 현재 로봇(100)이 제1 맵 데이터(20) 상에 설정된 주행 시작 위치(1)에 위치하는지를 식별하는 것을 의미할 수 있다. 이하에서는, 설명의 편의를 위해, 제1맵 데이터(20) 상에 설정된 주행 시작 위치(1)를 제1 주행 시작 위치라 지칭한다. Here, identifying a position corresponding to the driving start position of the
구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여 로봇(100)의 주변 오브젝트에 대한 정보(즉, 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터 및 주변의 오브젝트에 대응하는 포인트 클라우드 데이터)를 획득한다. 이 경우, 주변 오브젝트에 대한 정보는 로봇(100)이 주행하기 전 또는 로봇(100)이 주행을 시작한 시점에 획득될 수 있다.Specifically, the
그리고, 프로세서(140)는 획득된 주변 오브젝트에 대한 정보를 기초로, 메모리(130)에 저장된 제1 맵 데이터(20) 상에서 로봇(100)의 주행 시작 위치에 대응하는 위치를 식별할 수 있다. Further, the
구체적으로, 프로세서(140)는 로봇(100)의 주행 시작 위치인 로봇(100)의 현재 위치가 제1 맵 데이터(20)상에 설정된 제1 주행 시작 위치(1)와 일치하는지를 식별하고, 그에 따라, 로봇(100)의 주행 시작 위치에 대응하는 위치를 식별할 수 있다. Specifically, the
구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여 로봇(100)의 현재 위치에서 획득한 주변 오브젝트에 대한 정보(예를 들어, 로봇(100) 주변의 오브젝트에 대한 거리 데이터 및 오브젝트에 대응하는 포인트 클라우드 데이터)와 제1 맵 데이터(20)상에서의 제1 주행 시작 위치(1)에서 획득된 정보(예를 들어, 제1 주행 시작 위치(1) 주변의 오브젝트에 대한 거리 데이터 및 오브젝트에 대응하는 포인트 클라우드 데이터)를 비교하여, 로봇(100)의 현재 위치가 제1 주행 시작 위치(1)와 일치하는지를 식별할 수 있다. Specifically, the
이 경우, 제1 주행 시작 위치(1)에서 획득된 정보는 로봇(100)이 제1 주행 시작 위치(1)에 위치할 때, 라이다 센서(110)를 통해 획득되며, 프로세서(140)는 획득된 정보를 메모리(130)에 저장할 수 있다.In this case, the information obtained from the first driving
그리고, 프로세서(140)는 로봇(100)의 현재 위치가 제1 주행 시작 위치(1)와 일치하는 것으로 식별되면, 로봇(100)이 제1 주행 시작 위치(1)에 위치하는 것으로 식별할 수 있다.And, if the
한편, 프로세서(140)는 로봇(100)의 현재 위치가 제1 주행 시작 위치(1)와 일치하는지 않는 경우, 로봇(100)이 제1 주행 시작 위치(1)에 위치하지 않는 것으로 식별할 수 있다. Meanwhile, if the current position of the
한편, 프로세서(140)는 로봇(100)의 현재 위치가 제1 맵 데이터(20) 상에서의 제1 주행 시작 위치(1)와 일치하는지 않는 것으로 식별되면, 프로세서(140)는 로봇(100)이 메모리(130)에 저장된 제1 맵 데이터(20)에 대응하는 제1 주행 공간이 아닌 새로운 주행 공간인, 제2 주행 공간에 위치한 것으로 식별할 수 있다. 즉, 프로세서(140)는 로봇이 위치한 주행 공간이 변경된 것으로 식별할 수 있다. Meanwhile, if the
그리고 프로세서(140)는 제2 주행 공간 내에서 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. 구체적으로, 프로세서(140)는 구동부(120)에 포함된 모터에 제어 신호를 전송하고, 모터를 통해 구동부(120)를 구동하고, 구동부(120)의 구동에 의하여 제2 주행 공간 내에서 로봇(100)을 이동시킬 수 있다. Also, the
그리고, 프로세서(140)는 로봇이 주행하는 동안 라이다 센서(110)를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터(30)를 획득할 수 있다. Also, the
구체적으로, 프로세서(140)는 로봇(100)의 주행 시작 위치가 제1 주행 시작 위치(1)와 일치하지 않는 것으로 식별되면, 로봇(100)이 위치한 공간이 기존의 제1 맵 데이터(20)에 대응하는 제1 주행 공간에서 새로운 주행 공간인, 제2 주행 공간으로 변경된 것으로 식별할 수 있다. 그리고, 프로세서(140)는 로봇(100)의 주행 시작 위치를 새로운 주행 공간인 제2 주행 공간에서의 주행 시작 위치로 식별할 수 있다. 이하에서는, 제2 주행 공간에 대한 주행 시작 위치를 제2 주행 시작 위치(2)라 지칭한다. Specifically, if the
프로세서(140)는 제2 주행 시작 위치(2)에서 로봇(100)이 주행하도록 구동부(120)를 제어하고, 제2 주행 공간에 대한 신규 맵 데이터(즉, 제2 맵 데이터(30))를 생성하기 위한 데이터를 획득할 수 있다. 구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여, 제2 주행 공간 및 제2 주행 공간 내 오브젝트에 대한 센싱 데이터를 획득할 수 있다. 프로세서(140)는 라이다 센서(110)를 이용하여, 제2 주행 공간에서의 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터 및 포인트 클라우드 데이터를 획득하고, 획득된 거리 데이터 및 포인트 클라우드 데이터에 기초하여, 제2 맵 데이터(30)를 생성할 수 있다. The
도 4는 본 개시의 일 실시 예에 따른, 라이다 센서를 이용하여 오브젝트에 대한 거리 데이터 및 포인트 클라우드 데이터를 획득하는 것을 나타낸 예시도이다. 4 is an exemplary diagram illustrating obtaining distance data and point cloud data for an object using a LIDAR sensor according to an embodiment of the present disclosure.
구체적으로, 도 4를 참조하면, 프로세서(140)는 라이다 센서(110)를 이용하여 획득한 거리 데이터 및 포인트 클라우드 데이터에 기초하여, 라인 형태를 갖는 오브젝트에 대응되는 라인 데이터(44)를 획득할 수 있다. 구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여 제2 주행 공간 내에서의 로봇(100)과 로봇(100) 주변의 오브젝트 간의 거리 데이터를 획득할 수 있다. 그리고 프로세서(140)는 라이다 센서(110)에서 조사된 레이저가 오브젝트에 반사된 각 지점들이 2차원 공간에서 좌표 값을 가지는 포인트로 표현된 포인트 클라우드 데이터(42)를 획득할 수 있다. 그리고, 프로세서(140)는 획득한 거리 데이터 및 포인트 클라우드 데이터(42)를 기초로, 제2 주행 공간에 대한 포인트 클라우드 맵을 획득할 수 있다. 이하에서는, 설명의 편의를 위해 포인트 클라우드 맵을 포인트 맵 데이터((예를 들어, 제2 포인트 맵 데이터)(40)라 지칭한다. Specifically, referring to FIG. 4 , the
프로세서(140)는 획득한 포인트 클라우드 맵 상에서, 포인트 클라우드 데이터(42)에 대응하는 복수 개의 직선 성분들을 획득할 수 있다. 구체적으로, 프로세서(140)는 포인트 클라우드 데이터(42)로부터 복수 개의 직선 성분들을 추출할 수 있다. 그리고, 프로세서(140)는 추출한 복수 개의 직선들에 대해 군집화(clustering)를 통하여 라인 형태를 갖는 오브젝트에 대응되는 라인 데이터(44)를 획득할 수 있다. 한편, 프로세서(140)는 포인트 클라우드 데이터(42)에 대하여 다양한 직선 검출 알고리즘(예를 들어, 허프 변환(Hough transform) 또는 HoughLines 함수 등)을 이용하여 직선 성분들을 추출할 수 있다. The
한편, 프로세서(140)는 포인트 맵 데이터(40) 상에서 포인트 클라우드 데이터의 좌표 값을 기초로 라인 데이터(44)의 위치를 식별할 수 있다. 그리고, 프로세서(140)는 식별된 라인 데이터(44)의 위치를 라인 데이터(44)에 대응하는 오브젝트의 위치로 식별할 수도 있다. 그리고, 프로세서(140)는 포인트 클라우드 맵 데이터 상에서, 제2 주행 공간 내 오브젝트에 대응되는 라인 데이터(44)를 획득한 후 포인트 클라우드 맵 데이터에 SLAM 알고리즘을 적용하여 제2 맵 데이터(30)를 획득할 수 있다. Meanwhile, the
한편, 본 개시의 일 실시 예로, 프로세서(140)는 제2 맵 데이터(30)를 획득한 후, 제1 맵 데이터(20)에 포함된 확률 정보 및 제2 맵 데이터(30)에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터(30)에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하는지 여부를 식별할 수 있다.Meanwhile, according to an embodiment of the present disclosure, after acquiring the
구체적으로, 프로세서(140)는 제2 맵 데이터(30)에 포함된 오브젝트에 대한 위치 정보를 기초로, 제2 맵 데이터(30) 상에서의 오브젝트의 위치를 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 맵 데이터(30)에서의 오브젝트의 위치에 대응하는 좌표 값을 식별할 수 있다. In detail, the
그리고, 프로세서(140)는 식별된 제2 맵 데이터(30) 상에서의 오브젝트의 위치와 대응하는 위치를 제1 맵 데이터(20) 상에서 식별할 수 있다. 여기서, 제1 맵 데이터(20) 상에서 오브젝트의 위치와 대응하는 위치를 식별하는 것은, 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하는 것일 수 있다. 즉, 제2 맵 데이터(30)상에서의 오브젝트의 위치를 제1 맵 데이터(20) 상에서의 위치로 인지하는 과정(Localization)으로, 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하는 것일 수 있다.Also, the
한편, 프로세서(140)는 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하기 위해, 제1 맵 데이터(20)에 포함된 확률 정보를 이용할 수 있다. 여기서 확률 정보는 제1 맵 데이터(20) 상에서 특정 위치에 오브젝트가 존재할 수 있는 확률 값일 수 있다. Meanwhile, the
프로세서(140)는 확률 정보에 기초하여, 제1 맵 데이터(20) 상에서 식별된 위치에 오브젝트가 존재하는 것으로 식별되면, 제1 맵 데이터(20)와 제2 맵 데이터(30) 동일한 주행 공간에 대응하는 것으로 식별할 수 있다. 즉, 프로세서(140)는 제1 맵 데이터(20)에 대응하는 제1 주행 공간과 제2 맵 데이터(30)에 대응하는 제2 주행 공간이 일치한 것으로 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 맵 데이터(30) 상에서 식별되는 복수의 벽, 구조물 등이 제1 맵 데이터(20) 상에서도 식별되면, 제1 주행 공간과 제2 주행 공간이 일치하는 것으로 식별할 수 있다. Based on the probability information, the
이하에서는, 도 5를 참조하여, 본 개시의 일 실시 예에 따른 맵 데이터에 대하여 설명하도록 한다. Hereinafter, map data according to an embodiment of the present disclosure will be described with reference to FIG. 5 .
도 5는 본 개시의 일 실시 예에 따른 맵 데이터를 설명하기 위한 도면이다.5 is a diagram for explaining map data according to an embodiment of the present disclosure.
본 개시의 일 실시 예에 따라, 제1 맵 데이터(20)(또는 제2 맵 데이터(30))는 맵 데이터 상에서의 특정 위치에 오브젝트가 존재할 확률에 관한 확률 정보를 포함할 수 있다. 또한, 제2 맵 데이터(30)(또는 제1 맵 데이터(20))는 오브젝트의 위치 정보를 포함할 수 있다. According to an embodiment of the present disclosure, the first map data 20 (or the second map data 30) may include probability information about a probability that an object exists at a specific location on the map data. Also, the second map data 30 (or the first map data 20) may include object location information.
도 5를 참조하면, 라이다 센서(110)를 통해 획득한 포인트 맵 데이터(예를 들어, 제1 포인트 맵 데이터)에 SLAM 알고리즘을 적용하여 획득한 제1 맵 데이터(20)는 기 설정된 크기의 복수의 영역으로 분할될 수 있다. 이때, 제1 맵 데이터(20)는 각각의 영역에 대응되는 확률 정보를 포함할 수 있다. 구체적으로, 프로세서(140)는 라이다 센서(110)를 통해 획득한 센싱 데이터를 기초로, 포인트 맵 데이터를 획득하고, 획득한 포인트 맵 데이터에 SLAM 알고리즘을 적용하여, 제1 주행 공간에 대한 제1 맵 데이터(20)를 획득할 수 있다. Referring to FIG. 5 ,
이때, 획득한 제1 맵 데이터(20)는 복수의 격자 선으로 분할되어, 기 설정된 크기를 갖는 복수의 영역(21)으로 구분된 형태일 수 있다. 그리고, 제1 맵 데이터(20)에는 각각의 영역(21)에 대응하는 확률 정보가 포함될 수 있다. 여기서 각각의 영역(21)에 대응하는 확률 정보란, 각각의 영역에서 오브젝트가 존재할 수 있는 확률 값일 수 있다. 그리고, 프로세서(140)는 확률 값이 기 설정된 값 이상인 영역에 대하여, 해당 영역에 오브젝트가 존재하는 것으로 식별할 수 있다. In this case, the obtained
도 5를 참조하면, 프로세서(140)는 획득한 제1 맵 데이터(20)에 포함된 각각의 영역에 대응하는 확률 정보를 기초로, 확률 값이 0.6 이상인 영역에 대해서만, 해당 영역에 오브젝트가 존재한 것으로 식별할 수 있다. 이에 따라, 프로세서(140)는, 0.1의 확률 값을 갖는 제1 영역(21-1)과 0.2의 확률 값을 갖는 제2 영역(21-2)에는 오브젝트가 존재하지 않는 것으로 식별할 수 있다. 그리고, 프로세서(140)는 오브젝트가 존재한 것으로 식별된 각각의 영역의 위치 정보 또는 좌표 정보를 기초로, 제1 주행 공간 내에서의 오브젝트의 위치를 식별할 수 있다. 따라서, 제1 맵 데이터(20)에 포함된 오브젝트에 대한 위치 정보는, 확률 정보에 기초하여 식별된 각각의 영역의 위치 정보 또는 좌표 정보에 해당할 수 있다. Referring to FIG. 5 , the
한편, 상술한 제1 맵 데이터(20)에 관한 설명은 제2 맵 데이터(30)에 대해서도 동일하게 적용될 수 있다. 따라서, 프로세서(140)는 제2 맵 데이터(30)를 기초로, 제2 주행 공간 내에서의 오브젝트의 위치를 식별할 수 있다. Meanwhile, the above description of the
한편, 본 개시의 일 실시 예에 따라, 제1 맵 데이터(20) 및 제2 맵 데이터(30)는 동일한 개수의 복수의 영역으로 구분될 수 있다. 또한, 제1 맵 데이터(20) 및 제2 맵 데이터(30)를 구분하는 복수의 영역의 형태는 동일할 수 있다. 예를 들어, 메모리(130)에 저장된 제1 맵 데이터(20)가 10 x 10의 형태의 100개의 영역으로 구분된다면, 프로세서(140)가 라이다 센서(110)에 의해 새롭게 획득한 제2 맵 데이터(30) 또한 10 x 10의 형태의 100개의 영역으로 구분될 수 있다. Meanwhile, according to an embodiment of the present disclosure, the
한편, 프로세서(140)는 제2 주행 공간 내 오브젝트의 위치를 식별하기 위하여, 제2 맵 데이터(30)를 생성하는데 이용되는 포인트 클라우드 중 유효 포인트 만을 선별할 수 있다. Meanwhile, the
이를 위해, 본 개시의 일 실시 예에 따라, 프로세서(140)는, 라이다 센서(110)를 통해 제2 주행 공간에 대응하는 포인트 맵 데이터(40)를 획득하고, 포인트 맵 데이터(40)에 포함된 복수의 포인트 중 기 설정된 확률 값 이상인 복수의 포인트를 유효 포인트로 식별하고, 식별된 유효 포인트의 위치 정보를 기초로, 제2 맵 데이터(30)에 포함된 오브젝트에 대한 위치 정보를 획득할 수 있다. 그리고, 프로세서(140)는 유효 포인트의 위치 정보를 기초로 획득한 제2 맵 데이터(30)에 포함된 오브젝트에 대한 위치 정보와 제1 맵 데이터(20)에 포함된 확률 정보를 기초로, 제1 맵 데이터(20)와 제2 맵 데이터(30) 간의 매칭 스코어를 획득할 수 있다. 그리고, 프로세서(140)는 획득된 매칭 스코어에 기초하여 제2 주행 공간이 제1 주행 공간과 일치하는지 여부를 식별할 수 있다. 이하 이와 관련한 본 개시의 실시 예에 대하여 상세히 설명하도록 한다. To this end, according to an embodiment of the present disclosure, the
구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여 제2 주행 공간에 대한 센싱 데이터를 획득하고, 획득된 센싱 데이터를 기초로 제2 주행 공간에 대한 포인트 맵 데이터(40)를 획득할 수 있다. 여기서, 포인트 맵 데이터(40)란, 로봇(100)이 라이다 센서를 통해 획득한 제2 주행 공간에 대한 포인트 클라우드 맵 일 수 있다. 구체적으로, 프로세서(140)는 로봇(100)이 제2 주행 공간을 주행하는 동안, 라이다 센서(110)를 이용하여, 제2 주행 공간에 관한 거리 데이터 및 포인트 클라우드 데이터(42)를 획득할 수 있다. 그리고, 획득된 거리 데이터 및 포인트 클라우드 데이터(42)가 포함된 포인트 클라우드 맵을 획득할 수 있다. 프로세서(140)가 주행 공간에 대한 포인트 클라우드 맵을 획득하는 방법에 대해서는 상술하여 설명한 바 생략하도록 한다. Specifically, the
도 6은 본 개시의 일 실시 예에 따른, 유효 포인트를 식별하고, 식별된 유효 포인트를 기초로 제2 맵 데이터 상에서 오브젝트의 위치를 식별하는 것을 나타낸 예시도이다. 6 is an exemplary view illustrating identifying valid points and identifying a location of an object on second map data based on the identified effective points, according to an embodiment of the present disclosure.
그리고, 프로세서(140)는 획득한 포인트 맵 데이터(40)에 SLAM 알고리즘을 적용하여 제2 맵 데이터(30)를 획득할 수 있다. 그리고 프로세서(140)는 획득된 제2 맵 데이터(30)에 포함된 확률 정보에 기초하여, 포인트 맵 데이터(40)에 포함된 포인트 클라우드 또는 포인트 클라우드를 구성하는 복수의 포인트 중에서 유효 포인트를 식별할 수 있다. In addition, the
예를 들어, 도 6을 참조하면, 유효 포인트를 식별하는 기준인, 기 설정된 확률 값이 0.3 이라고 가정한다. 이때, 프로세서(140)는 제2 맵 데이터(30) 내 복수의 영역(31) 중 확률 값이 0.3 이하의 확률 값을 갖는 영역을 식별할 수 있다. 보다 구체적으로, 제2 맵 데이터(30) 내 복수의 영역(31) 중 0.1의 확률 값을 갖는 4개의 영역(31-1, 31-3, 31-4 및 31-5)과 0.2의 확률 값을 갖는 1개의 영역(31-2)을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 영역(31-1 내지 31-5)에 포함된 포인트(42-1 내지 42-5)를 제외한 나머지 포인트를 포인트 맵 데이터(40) 상에서 유효 포인트로 식별할 수 있다. 즉, 프로세서(140)는 포인트 맵 데이터(40) 상에서 기 설정된 확률 값 미만의 확률 값을 갖는 영역에 포함된 포인트를 제거한 후 나머지 포인트 만을 유효 포인트로 식별할 수 있다. For example, referring to FIG. 6 , it is assumed that a predetermined probability value, which is a criterion for identifying a valid point, is 0.3. In this case, the
그리고, 프로세서(140)는 유효 포인트의 위치 정보를 기초로 제2 맵 데이터(30)에 포함된 오브젝트의 위치를 식별할 수 잇다. 구체적으로, 프로세서(140)는 포인트 맵 데이터(40) 상에서의 유효 포인트의 좌표 값을 식별하고, 식별된 좌표 값에 대응하는 영역의 위치를 제2 맵 데이터(30) 상에서 식별할 수 있다. 그리고, 프로세서(140)는, 제2 맵 데이터(30) 상에서 식별된 영역의 위치에 오브젝트가 위치한 것으로 식별할 수 있다. Also, the
한편, 본 개시의 일 실시 예로, 프로세서(140)는 제2 맵 데이터(30) 상에서 식별된 유효 포인트의 위치 정보 및 제1 맵 데이터(20)에 포함된 확률 정보를 기초로, 제1 맵 데이터(20)와 제2 맵 데이터(30) 간의 매칭 스코어를 획득할 수 있다. Meanwhile, according to an embodiment of the present disclosure, the
여기서, 매칭 스코어는 제1 맵 데이터(20)와 제2 맵 데이터(30)의 일치하는 정도를 나타낸 값일 수 있다. 구체적으로, 매칭 스코어가 임계 값 이상이면, 프로세서(140)는 제2 주행 공간에서 식별된 오브젝트가 제1 주행 공간에도 존재하는 것으로 식별할 수 있다. 그리고, 프로세서(140)는 제2 주행 공간에서 식별된 오브젝트가 제1 주행 공간에도 존재하는 것으로 식별되면, 제1 맵 데이터(20)와 제2 맵 데이터(30)의 일치하는 것으로 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20)와 제2 맵 데이터(30)의 일치하는 것으로 식별되면, 제1 맵 데이터(20)에 대응하는 제1 주행 공간과 제2 맵 데이터(30)에 대응하는 제2 주행 공간이 일치하는 것으로 식별할 수 있다.Here, the matching score may be a value indicating a degree of matching between the
한편, 프로세서(140)는 매칭 스코어가 임계 값 미만이면, 제1 주행 공간과 제2 주행 공간이 일치하지 않는 것으로 식별할 수 있다. Meanwhile, if the matching score is less than the threshold value, the
이하에서는, 매칭 스코어를 획득하는 본 개시의 실시 예에 대하여 설명하도록 한다. Hereinafter, an embodiment of the present disclosure for obtaining a matching score will be described.
도 7은 본 개시의 일 실시 예에 따른, 제1 맵 데이터에 포함된 확률 정보 및 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하는지 여부를 식별하는 것을 설명하기 위한 예시도이다. 7 illustrates a second driving space corresponding to second map data based on probability information included in first map data and location information on an object included in second map data according to an embodiment of the present disclosure. 1 It is an exemplary diagram for explaining identification of whether or not it coincides with the driving space.
본 개시의 일 실시 예로, 프로세서(140)는 유효 포인트의 위치 정보를 기초로, 제1 맵 데이터(20) 상에서 제2 맵 데이터(30) 내 오브젝트의 위치와 대응하는 영역(25)을 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20)에 포함된 확률 정보에 기초하여, 식별된 영역(25)에 대응하는 확률 값을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 확률 값을 기초로, 매칭 스코어를 획득할 수 있다. According to an embodiment of the present disclosure, the
한편, 본 개시의 일 실시 예로, 매칭 스코어는 식별된 복수의 영역(25) 각각에 대응되는 확률 값의 평균 값일 수 있다. 그리고 평균 값은 확률 값의 총 합을 제1 맵 데이터(20) 내 복수의 영역의 개수로 나눈 값일 수 있다. Meanwhile, according to an embodiment of the present disclosure, the matching score may be an average value of probability values corresponding to each of the identified plurality of
구체적으로, 프로세서(140)는 먼저 제2 주행 공간 내에서 식별된 오브젝트의 위치를 제1 맵 데이터(20) 상에서 인지하는 과정을 수행할 수 있다. 이를 위해, 프로세서(140)는 제2 맵 데이터(30)에 포함된 제2 주행 공간 내 오브젝트에 대한 위치 정보를 이용할 수 있다. Specifically, the
구체적으로, 프로세서(140)는 포인트 맵 데이터(40) 내에서의 유효 포인트의 위치 정보를 기초로 제2 맵 데이터(30) 상에서의 오브젝트의 위치와 대응하는 영역을 제2 맵 데이터(30) 상에서 식별할 수 있다. 그리고, 프로세서(140)는 식별된 제2 맵 데이터(30) 상에서의 영역과 대응하는 제1 맵 데이터(20) 상에서의 영역(25)을 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 맵 데이터(30) 상에서 (2, 1) 좌표 값에 대응되는 영역 및 (2, 2) 좌표 값에 오브젝트가 존재한 것으로 식별하였다고 가정한다. 이때, 프로세서(140)는 제1 맵 데이터(20) 상에서도 동일한 (2, 1) 좌표 값에 대응되는 영역 및 (2, 2) 좌표 값에 대응되는 영역에 오브젝트가 위치한 것으로 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20) 상에서 식별된 (2, 1) 좌표 값에 대응되는 영역의 확률 값과 (2, 2) 좌표 값에 대응되는 영역의 확률 값을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 복수의 확률 값의 평균 값을 산출하고, 산출된 평균 값을 제1 맵 데이터(20)와 제2 맵 데이터(30) 간의 매칭 스코어로 식별할 수 있다. Specifically, the
이때, 본 개시의 일 실시 예로, 프로세서(140)는 확률 값의 평균 값이 임계 값 이상이면, 제2 주행 공간이 제1 주행 공간과 일치하는 것으로 식별할 수 있다. In this case, according to an embodiment of the present disclosure, the
구체적으로, 프로세서(140)는 매칭 스코어에 해당하는 확률 값의 평균 값이 기 설정된 값 이상이면, 제2 맵 데이터(30) 내 오브젝트가 제1 맵 데이터(20)에 포함된 것으로 식별할 수 있다. 즉, 제2 주행 공간 내 포함된 오브젝트가 제1 주행 공간에도 동일하게 포함된 것으로 식별될 수 있다. 이에 따라, 프로세서(140)는 제1 주행 공간과 제2 주행 공간이 일치하는 것으로 식별할 수 있다. Specifically, the
보다 구체적으로, 도 7을 참조하면, 제1 맵 데이터(20)내 복수의 영역 중 음영 처리된 영역이 제1 맵 데이터(20) 상에서 식별된 오브젝트의 위치(또는 영역)에 대응하는 위치(또는 영역)(25)일 수 있다. 프로세서(140)는 제1 맵 데이터(20)내 복수의 영역 중 음영 처리된 복수의 영역(25)에 대한 각각의 확률 값을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 복수의 확률 값의 평균 값을 획득할 수 있다. 그리고 프로세서(140)는 획득한 평균 값을 매칭 스코어로 식별할 수 있다. 구체적으로, 프로세서(140)는 식별된 복수의 확률 값의 총 합(3.4)을 제1 맵 데이터(20)를 구분하는 복수의 영역의 개수(100 개)로 나눠 평균 값(0.034)을 획득할 수 있다. 그리고, 프로세서(140)는 획득한 평균 값을 매칭 스코어(0.034)로 획득할 수 있다. 이때, 제1 주행 공간과 제2 주행 공간이 일치하는 것으로 판단하는 기준인, 임계 값이 0.033이라고 가정한다면, 프로세서(140)는 제1 맵 데이터(20)에 대응하는 제1 주행 공간과 제2 맵 데이터(30)에 대응하는 제2 주행 공간이 일치하는 것으로 식별할 수 있다. More specifically, referring to FIG. 7 , a shaded area among a plurality of areas in the
한편, 본 개시의 일 실시 예로, 프로세서(140)는 확률 값의 평균 값이 임계 값 미만인 것으로 식별되면, 메모리(130)에 저장된 제1 맵 데이터(20)를 제2 맵 데이터(30)로 업데이트할 수 있다.Meanwhile, according to an embodiment of the present disclosure, the
구체적으로, 프로세서(140)는 매칭 스코어에 해당하는 확률 값의 평균 값이 임계 값 미만인 것으로 식별되면, 제1 주행 공간과 제2 주행 공간이 일치하지 않는 것으로 식별할 수 있다. 즉, 프로세서(140)는 로봇(100)이 새로운 주행 공간에 위치한 것으로 식별할 수 있다. 이에 따라, 프로세서(140)는 메모리(130)에 저장된 기존의 제1 주행 공간에 대한 제1 맵 데이터(20)를 새로운 주행 공간인 제2 주행 공간에 대한 제2 맵 데이터(30)로 업데이트 할 수 있다. 즉, 프로세서(140)는 메모리(130)에 저장된 제1 맵 데이터(20)를 삭제하고, 제2 맵 데이터(30)를 저장할 수 있다. 이로써, 프로세서(140)는 제2 맵 데이터(30)를 이용하여, 제2 주행 공간 내에서 로봇(100)이 주행하도록 제어할 수 있다. Specifically, the
도 8은 본 개시의 일 실시 예에 따른, 제1 맵 데이터에 포함된 확률 정보 및 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하지 않는 것으로 식별하는 것을 나타낸 예시도이다. 8 illustrates a second driving space corresponding to second map data based on probability information included in first map data and location information about an object included in second map data, according to an embodiment of the present disclosure. 1 It is an exemplary view showing identification that does not match the driving space.
도 8을 참조하면, 프로세서(140)가 획득한 제1 맵 데이터(20)와 제2 맵 데이터(30)에 대한 매칭 스코어는 0.032이다. 이때, 제1 주행 공간과 제2 주행 공간이 일치하는 것으로 판단하는 기준인, 임계 값이 0.033이라고 가정한다면, 프로세서(140)는 획득한 매칭 스코어(0.032)가 기 설정된 값(0.033) 미만인 것으로 식별할 수 있으며, 프로세서(140)는 제1 맵 데이터(20)에 대응하는 제1 주행 공간과 제2 맵 데이터(30)에 대응하는 제2 주행 공간이 일치하지 않은 것으로 식별할 수 있다. 그리고, 프로세서(140)는 메모리(130)에 저장된 제1 맵 데이터(20)를 삭제하고, 제2 맵 데이터(30)를 메모리(130)에 저장할 수 있다. Referring to FIG. 8 , the matching score of the
한편, 프로세서(140)는 복수의 매칭 스코어를 획득하고, 획득한 복수의 매칭 스코어의 최대 값이 기 설정된 값이 이상인 경우에, 제1 주행 공간과 제2 주행 공간이 일치한 것으로 식별할 수 있다. 이하, 이와 관련된 본 개시의 일 실시 예에 대하여 설명하도록 한다. Meanwhile, the
도 9는 본 개시의 일 실시 예에 따른, 제2 맵 데이터를 기 설정된 각도로 회전시켜, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이다. 9 is a diagram for explaining a method of identifying whether a first driving space and a second driving space coincide with each other by rotating second map data at a predetermined angle, according to an embodiment of the present disclosure.
구체적으로, 도 9(a)는 제2 맵 데이터(30)를 회전 시키지 않은 상태에서, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이고, 도 9(b)는 제2 맵 데이터(30)를 반 시계 방향으로 90° 만큼 회전 시킨 상태에서, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이고, 도 9(c)는 제2 맵 데이터(30)를 반 시계 방향으로 180°만큰 회전 시킨 상태에서, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이고, 도 9(d)는 제2 맵 데이터(30)를 반 시계 방향으로 270°만큰 회전 시킨 상태에서, 제1 주행 공간과 제2 주행 공간이 일치하는 지를 식별하는 방법을 설명하기 위한 도면이다.Specifically, FIG. 9(a) is a diagram for explaining a method of identifying whether the first driving space and the second driving space coincide with each other in a state in which the
본 개시의 일 실시예로, 프로세서(140)는, 제2 맵 데이터(30)를 기 설정된 각도로 회전시키고, 제2 맵 데이터(30)를 기 설정된 각도로 회전시킬 때마다, 확률 값의 평균 값을 획득하여 복수의 매칭 스코어를 획득할 수 있다. 그리고, 복수의 매칭 스코어 중 최대 값을 갖는 매칭 스코어 기 설정된 값 이상이면 제1 주행 공간과 제2 주행 공간이 일치하는 것으로 식별할 수 있다. According to an embodiment of the present disclosure, the
구체적으로, 프로세서(140)는 제1 맵 데이터(20)와 제2 맵 데이터(30)의 매칭 스코어를 복수 개 획득할 수 있다. 이를 위해, 프로세서(140)는 제1 맵 데이터(20) 상에서의 기준 점을 기준으로, 제2 맵 데이터(30)를 기 설정된 각도로 회전시킬 수 있다. 그리고, 프로세서(140)는 회전시킨 제2 맵 데이터(30) 내 오브젝트의 위치와 대응하는 위치를 제1 맵 데이터(20) 상에서 식별할 수 있다. Specifically, the
기 설정된 각도가 반 시계 방향으로의 90°라고 가정한다. 도 9(a)를 참조하면, 먼저, 프로세서(140)는 제1 맵 데이터(20)의 기준 점을 기준으로, 제2 맵 데이터(30)를 회전시키지 않은 상태에서 제2 맵 데이터(30)에서의 오브젝트의 위치와 대응하는 제1 맵 데이터(20)에서의 위치를 식별할 수 있다. 구체적으로, 프로세서(140)는 제2 맵 데이터(30)에서의 오브젝트의 위치에 대응하는 제1 맵 데이터(20) 내 영역의 위치(예를 들어, 영역의 좌표 값)를 식별할 수 있다. 그리고, 프로세서(140)는 식별된 영역에 대응하는 확률 값을 식별하고, 식별된 확률 값의 평균 값을 제1 맵 데이터(20)와 제2 맵 데이터(30)의 매칭 스코어를 0.034으로 획득할 수 있다. It is assumed that the preset angle is 90° in a counterclockwise direction. Referring to FIG. 9( a ), first, the
그리고, 도 9(b)를 참조하면, 프로세서(140)는 제1 맵 데이터(20)의 기준 점(3)을 기준으로, 제2 맵 데이터(30)를 반 시계 방향으로 90°회전한 후 제2 맵 데이터(30)에서의 오브젝트의 위치에 대응하는 위치를 제1 맵 데이터(20)상에서 식별할 수 있다. 그리고, 프로세서(140)는 제2 맵 데이터(30)가 반 시계 방향으로 90°회전한 상태에서 식별된 영역에 대응하는 확률 값을 식별할 수 있다. 그리고, 프로세서(140)는 제2 맵 데이터(30)가 반 시계 방향으로 90°회전한 상태에서의 제1 및 제2 맵 데이터(30) 간의 매칭 스코어를 0.209으로 획득할 수 있다. 이처럼, 프로세서(140)는 제2 맵 데이터(30)를 반 시계 방향으로 90°씩 회전시킬 때마다 제1 및 제2 맵 데이터(30) 간의 매칭 스코어를 획득할 수 있다. And, referring to FIG. 9( b ), the
도 9(c)를 참조하면, 프로세서(140)는 제2 맵 데이터(30)가 반 시계 방향으로 180°회전한 상태에서의 제1 및 제2 맵 데이터(30) 간의 매칭 스코어를 0.034으로 획득할 수 있다. 그리고, 도 9(d)를 참조하면, 제2 맵 데이터(30)가 반 시계 방향으로 270°회전한 상태에서의 제1 및 제2 맵 데이터(30) 간의 매칭 스코어를 0.270으로 획득할 수 있다. 그리고, 프로세서(140)는 획득한 복수의 매칭 스코어(0.034, 0.202, 0.034 및 0.270) 중에서 최대 값을 갖는 매칭 스코어(0.270)가 기 설정된 값 이상인지를 식별할 수 있다. 그리고, 프로세서(140)는 최대 값을 갖는 매칭 스코어가 기 설정된 값 이상인 것으로 식별되면, 제1 맵 데이터(20)에 대응하는 제1 주행 공간과 제2 맵 데이터(30)에 대응하는 제2 주행 공간이 일치하는 것으로 식별할 수 있다. Referring to FIG. 9(c), the
한편, 본 개시의 일 실시 예에 따라, 기 설정된 각도는 유효 포인트의 개수에 기초하여 결정될 수 있다. 구체적으로, 유효 포인트의 개수가 적을수록 제2 맵 데이터(30) 상에서 유효 포인트의 위치에 대응하여 식별되는 영역의 개수 또한 적을 수 있다. 그리고, 제2 맵 데이터(30) 상에서 식별되는 영역의 개수가 적으면, 제1 맵 데이터(20) 상에서 식별되는 오브젝트의 위치에 대응하는 영역(25) 또한 적을 수 있다. 따라서, 프로세서(140)는 유효 포인트의 개수가 적을수록 기 설정된 각도를 작게 설정함으로써, 제2 맵 데이터(30)를 제1 맵 데이터(20) 상에서 더 빈번하게 회전시켜 많은 매칭 스코어를 획득할 수 있다. 즉, 프로세서(140)는 기 설정된 각도를 유효 포인트의 개수와 반비례하도록 설정함으로써, 제1 맵 데이터(20)와 제2 맵 데이터(30)의 매칭 여부를 좀 더 세밀하게 식별할 수 있다. Meanwhile, according to an embodiment of the present disclosure, the preset angle may be determined based on the number of effective points. Specifically, as the number of valid points decreases, the number of areas identified corresponding to the positions of valid points on the
한편, 본 개시의 일 실시 예로, 프로세서(140)는 제2 주행 공간이 제1 주행 공간과 일치하는 것으로 식별되면, 제2 맵 데이터(30) 상에서의 로봇의 주행 시작 위치 및 오브젝트에 대한 위치 정보에 기초하여 제1 맵 데이터(20) 상에서 로봇의 주행 시작 위치를 식별할 수 있다. Meanwhile, according to an embodiment of the present disclosure, if the
도 10은 본 개시의 일 실시 예에 따른, 제2 맵 데이터 상에서의 로봇의 주행 시작 위치 및 오브젝트에 대한 위치 정보에 기초하여 제1 맵 데이터 상에서 로봇의 주행 시작 위치를 업 데이트 하는 것을 나타낸 예시도이다. 10 is an exemplary diagram illustrating updating of a driving start position of a robot on first map data based on a driving start position of a robot on second map data and location information on an object, according to an embodiment of the present disclosure; am.
구체적으로, 도 10을 참조하면, 프로세서(140)는 제1 맵 데이터(20)와 제2 맵 데이터(30)가 동일한 주행 공간에 대응하는 것으로 식별되면, 제1 맵 데이터(20) 상에서의 새로운 주행 시작 위치를 설정할 수 있다. 즉, 제1 맵 데이터(20) 상에서의 제1 주행 시작 위치(1)를 새로운 주행 시작 위치로 변경할 수 있다. 이를 위해, 프로세서(140)는 제2 맵 데이터(30) 상에서 식별되는 제2 주행 시작 위치(2)를 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 맵 데이터(30) 상에서 식별되는 제2 주행 시작 위치(2)의 좌표 값을 식별할 수 있다. 그리고, 프로세서(140)는 제2 맵 데이터(30) 상에서의 오브젝트에 대한 위치를 식별하고, 식별된 오브젝트에 대한 위치와 대응하는 위치를 제1 맵 데이터(20) 상에서 식별할 수 있다. Specifically, referring to FIG. 10 , if the
그리고, 프로세서(140)는 제2 맵 데이터(30) 상에서의 오브젝트에 대한 위치 및 제1 맵 데이터(20) 상에서 식별된 오브젝트에 대한 위치를 기초로, 변환 함수를 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 맵 데이터(30) 상에서의 오브젝트에 대한 위치에 대응하는 영역의 좌표 값을 식별할 수 있다. 그리고, 프로세서(140)는 제2 맵 데이터(30)의 영역과 대응하는 영역을 제1 맵 데이터(20) 상에서 식별하고, 식별된 제1 맵 데이터(20) 상에서의 영역의 좌표 값을 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20)의 영역의 좌표 값과 제2 맵 데이터(30)의 영역의 좌표 값을 기초로 변환 함수를 획득하고, 획득된 변환 함수를 이용하여 제2 맵 데이터(30) 상에서 식별된 제2 주행 시작 위치(2)의 좌표 값을 변환할 수 있다. 그리고 프로세서(140)는 변환된 좌표 값을 제1 맵 데이터(20) 상에서의 새로운 주행 시작 위치로 식별할 수 있다. 즉, 프로세서(140)는 제1 주행 시작 위치(1)를 변환된 좌표 값으로 변경하여 식별할 수 있다. Also, the
한편, 본 개시의 일 실시 예로, 프로세서(140)는 제2 맵 데이터(30)를 기 설정된 각도로 회전시킬 때마다 평균 값을 획득하고, 획득한 평균 값 중 최대 값을 갖는 평균 값에 대응하는 회전 각도를 식별하고, 식별된 회전 각도 및 제2 맵 데이터(30) 상에서의 로봇의 주행 시작 위치에 기초하여 제1 맵 데이터(20) 상에서 로봇의 주행 시작 위치를 식별할 수 있다.Meanwhile, according to an embodiment of the present disclosure, the
다시 도 9(a) 내지 9(d)를 참조하면, 프로세서(140)가 제2 맵 데이터(30)를 제1 맵 데이터(20)의 기준 점(3)을 기준으로 반 시계 방향으로 270°회전 시켰을 때 획득한 평균 값, 즉 매칭 스코어가 최대 값을 갖는다. 이때, 프로세서(140)는 최대 값을 갖는 매칭 스코어에 대응하는 회전 각도를 식별할 수 있다. 즉, 프로세서(140)는 반 시계 방향으로 270°의 회전 각도를 식별할 수 있다. 그리고, 프로세서(140)는 식별된 회전 각도(반 시계 방향으로 270°)를 기초로, 제2 맵 데이터(30) 상에서의 제2 주행 시작 위치(2)의 좌표 값을 변환한 후 변환된 좌표 값을 제1 맵 데이터(20)의 새로운 주행 시작 위치로 식별할 수 있다. 예를 들어, 프로세서(140)는 식별된 회전 각도에 대응하는 변환 행렬을 식별한 후 식별된 변환 행렬을 제2 맵 데이터(30) 상에서의 제2 주행 시작 위치(2)의 좌표 값에 적용하여 새로운 주행 시작 위치의 좌표 값을 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20)의 제1 주행 시작 위치(1)를 식별된 새로운 주행 시작 위치의 좌표 값으로 변경할 수 있다.Referring back to FIGS. 9(a) to 9(d) , the
도 11은 본 개시의 일 실시 예에 따른, 맵 데이터를 서브 영역으로 구분하여, 매칭 스코어를 획득하는 것을 나타낸 예시도이다. 11 is an exemplary diagram illustrating obtaining a matching score by dividing map data into sub-areas, according to an embodiment of the present disclosure.
본 개시의 일 실시 예로, 메모리(130)에 저장된 제1 맵 데이터(20)는, 기 설정된 개수의 영역(21)을 포함하는 복수의 서브 영역(22)으로 분할될 수 있다. 여기서 서브 영역(22)이란, 복수의 영역 중 기 설정된 개수의 인접한 복수의 영역을 포함하는 영역을 의미할 수 있다. 이때 복수의 서브 영역(22), 각각에 포함되는 영역의 개수는 동일할 수 있다. As an example of the present disclosure, the
프로세서(140)는 제1 맵 데이터(20)에 기 설정된 크기의 복셀(Voxel Filter)를 적용하여, 하나의 복셀에 포함되는 복수의 영역(21)을 결합하고, 결합된 복수의 영역(21)을 하나의 서브 영역(22)으로 식별할 수 있다. 이때, 복셀 필터의 크기에 따라, 서브 픽셀에 포함되는 영역의 개수는 달라질 수 있다. The
도 11에서는, 제1 맵 데이터(20)가 인접한 4개의 영역(21)을 2 X 2의 매트릭스 형태로 포함하는 복수의 서브 영역(22)으로 구분된 것으로 도시 되었다. 이때, 제1 맵 데이터(20)를 복수의 서브 영역(22)으로 구분하는 경우, 제1 맵 데이터(20)는 5 X 5의 매트릭스 형태의 복수의 서브 영역(22)으로 구분될 수 있다. In FIG. 11 , the
한편, 프로세서(140)는, 서브 영역(22)에 포함된 기 설정된 개수의 영역 중 어느 하나의 영역에 대응하는 확률 값을 식별하고, 식별된 위치에 대응하는 영역이 복수의 영역 중 어느 하나이면, 식별된 확률 값을 적용하여 매칭 스코어를 획득할 수 있다. Meanwhile, the
구체적으로, 프로세서(140)는 서브 영역(22)에 포함된 복수의 영역(21) 각각에 대응하는 확률 정보를 기초로, 각각의 영역(21)에 대한 확률 값을 식별하고, 식별된 복수의 확률 값 중 어느 하나를 서브 영역(22)에 대응하는 확률 값으로 식별할 수 있다. 다시 말해, 프로세서(140)는 서브 영역(22)에 포함된 복수의 영역(21) 중 어느 하나의 영역에 대한 확률 값으로, 서브 영역(22)의 확률 값을 설정할 수 있다. Specifically, the
이때, 프로세서(140)는 서브 영역(22)에 대응하는 확률 값을 식별하기 위하여 복수의 서브 영역(22)에 대하여 동일한 기준을 적용할 수 있다.In this case, the
구체적으로, 도 11을 참조하면, 프로세서(140)가 각각의 서브 영역(22)에 포함된 복수의 영역(21) 중 2행 1열에 위치한 영역의 확률 값을, 각각의 서브 영역(22)에 대응하는 확률 값으로 식별하는 것으로 가정한다. 이때, 프로세서(140)는 제1 서브 영역(22-1)에 포함된 4개의 영역(21-3 내지 21-6) 중 2행 1열에 위치한 영역(21-5)의 확률 값인 0.8을 제1 서브 영역(22-1)에 대응하는 확률 값으로 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20) 상에서 우측 하단에 위치한 제2 서브 영역(22-2)에 대해서도, 제2 서브 영역(22-2)에 포함된 4개의 영역(21-7 내지 21-10) 중 2행 1열에 위치한 영역(21-9)의 확률 값인 '0'을 제2 서브 영역(22-2)에 대응하는 확률 값으로 식별할 수 있다. Specifically, referring to FIG. 11 , the
한편, 프로세서(140)는 식별된 위치에 대응하는 영역이 서브 픽셀이 포함된 복수의 영역 중 어느 하나이면, 식별된 확률 값을 적용하여 매칭 스코어를 획득할 수 있다. Meanwhile, if the region corresponding to the identified position is any one of a plurality of regions including sub-pixels, the
구체적으로, 프로세서(140)는 유효 포인트를 기초로 획득된 라인 데이터의 위치를 포인트 맵 상에서 식별하고, 식별된 위치에 대응하는 위치 또는 좌표 값을 맵 데이터 상에서 식별할 수 있다. 이때, 프로세서(140)는 식별된 위치 또는 좌표 값이 서브 영역(22)을 구성하는 복수의 영역 중 적어도 하나의 영역에 포함되면, 식별된 위치 또는 좌표 값이 서브 영역(22)에 포함된 것을 식별할 수 있다.Specifically, the
또한, 프로세서(140)는 서브 영역(22)에 설정된 확률 값에 대응하는 영역 이외의 나머지 영역에 식별된 위치 또는 좌표 값이 포함되더라도, 식별된 위치 또는 좌표 값이 서브 영역(22)에 포함된 것으로 식별할 수 있다. In addition, the
한편, 프로세서(140)는 식별된 위치 또는 좌표 값이 서브 영역(22)에 포함된 것으로 식별되면, 서브 영역(22)에 대응하여 설정된 확률 값을 획득하고, 획득된 확률 값을 이용하여 매칭 스코어를 획득할 수 있다. Meanwhile, if the identified location or coordinate value is identified as being included in the sub-area 22, the
다시 도 11을 참조하면, 프로세서(140)는 서브 영역(22)으로 구분된 제1 맵 데이터(20)와 제2 맵 데이터(30)의 매칭 스코어를 0.072((0.8Х9)χ100)로 식별하였다. 복수의 서브 영역(22)으로 제1 맵 데이터(20)를 구분하여 매칭 스코어를 획득하는 경우, 프로세서(140)는 기 설정된 개수의 영역에 대한 연산 과정을 하나의 서브 영역(22)에 대한 연산 과정으로 간소화하여, 매칭 스코어를 획득하는 시간을 절감하는 효과를 발휘할 수 있다. Referring back to FIG. 11 , the
다만, 도 7 및 도 11을 비교하였을 때, 복수의 영역(21)으로 제1 맵 데이터(20)를 구분하였을 때보다, 복수의 서브 영역(22)으로 제1 맵 데이터(20)를 구분하는 경우 획득한 매칭 스코어가 더 낮은 값을 갖는 것을 알 수 있다. 따라서, 서브 영역(22)으로 구분된 제1 맵 데이터(20)에 기반하여, 제1 주행 공간과 제2 주행 공간이 일치하는지를 식별하는 경우, 임계 값은 더 낮은 값으로 설정될 수 있다. However, when comparing FIGS. 7 and 11, the
한편, 본 개시의 일 실시 예로, 서브 영역(22)에 포함되는 영역(21)의 개수는, 유효 포인트의 개수에 기초하여 결정될 수 있다. Meanwhile, according to an embodiment of the present disclosure, the number of
도 12는 본 개시의 일 실시 예에 따른, 유효 포인트의 개수에 기초하여 서브 영역에 포함되는 영역의 개수를 증가시키는 것을 나타낸 예시도이다. 12 is an exemplary view illustrating increasing the number of areas included in a sub area based on the number of effective points according to an embodiment of the present disclosure.
구체적으로, 제2 맵 데이터(30) 상에서의 유효 포인트의 개수가 많을수록, 유효 포인트를 기초로 획득되는 라인 데이터의 개수도 증가할 수 있다. 그리고 라인 데이터의 개수가 증가함에 따라, 프로세서(140)가 수행해야 하는, 라인 데이터의 위치와 대응하는 제1 맵 데이터(20) 상에서의 위치를 식별하는 과정의 횟수 또한 증가할 수 있다. 이에 따라, 프로세서(140)는 유효 포인트의 개수가 많을수록, 서브 영역(220)에 포함되는 영역(21)의 개수를 증가시킬 수 있다. 이를 위해, 프로세서(140)는 제2 맵 데이터(30) 상에서의 유효 포인트의 개수를 식별하고, 식별된 유효 포인트 개수에 기초하여 복셀 필터의 크기를 결정할 수 있을 것이다. Specifically, as the number of effective points on the
예를 들어, 프로세서(140)는 유효 포인트의 개수가 제1 값 미만이면, 서브 영역(22)에 포함되는 영역의 개수를 n2(n은 2 이상의 자연수이다.)으로 설정하고, n2 개의 복수의 영역이 n x n의 매트릭스 형태로 서브 영역(22)에 포함되는 것으로 설정할 수 있다. 또한, 프로세서(140)는 유효 포인트의 개수가 제1 값 이상이면, 서브 영역(22)에 포함되는 영역의 개수를 m2(m은 n 이상의 자연수이다.)으로 설정하고, m2 개의 복수의 영역이 m x m의 매트릭스 형태로 서브 영역(22)에 포함되는 것으로 설정할 수 있다.For example, if the number of valid points is less than the first value, the
도 12를 참조하면, 기존의 서브 영역(22)에는 4개의 영역이 2 x 2의 매트릭스 형태로 포함되었다면, 유효 포인트의 개수가 증가함에 따라, 프로세서(140)는 9개의 영역이 3 x 3의 매트릭스 형태로 서브 영역(22)에 포함되도록 변경할 수 있을 것이다. 이처럼, 프로세서(140)는 유효 포인트 개수에 기초하여 서브 영역(22)에 포함되는 영역(21)의 개수를 변경함으로써, 제1 주행 공간과 제2 주행 공간의 일치하는지 여부를 신속히 판단할 수 있을 것이다. Referring to FIG. 12, if four areas are included in a 2x2 matrix form in the existing
한편, 도 1 내지 도 12에서는 프로세서(140)가 라이다 센서(110)를 통해 획득한 센싱 데이터를 기초로 2차원의 맵 데이터(예를 들어, 제1 맵 데이터(20) 및 제2 맵 데이터(30))를 획득하는 것으로 도시 되었으나, 이에 제한되는 것은 아니며, 프로세서(140)는 3D(3-Dimension) 라이다 센서(110)를 통해 획득한 센싱 데이터를 기초로 로봇(100)의 주행 공간 및 주변 환경에 대한 3차원 형태의 맵 데이터를 획득하는 것 또한 가능하다. Meanwhile, in FIGS. 1 to 12 , two-dimensional map data (eg,
도 13은 본 개시의 일 실시 예에 따른 로봇의 세부적인 구성도이다. 13 is a detailed configuration diagram of a robot according to an embodiment of the present disclosure.
본 개시의 일 실시 예에 따라 로봇(100)은 라이다 센서(110), 구동부(120), 메모리(130), 프로세서(140), 디스플레이(150), 입출력 인터페이스(160) 및 통신 인터페이스(170)를 포함할 수 있다. 도 11에 도시된 구성 중 도 3에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다. According to an embodiment of the present disclosure, the
디스플레이(150)는 다양한 시각 정보를 표시할 수 있다. 예를 들어, 프로세서(140)는 디스플레이(150)를 통해 제1 맵 데이터(20), 제2 맵 데이터(30) 및 로봇(100)의 주행 경로 정보를 표시할 수 있을 것이다. 한편, 디스플레이(150)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, QLED(Quantum dot light-emitting diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(150) 내에는 TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(150)는 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다. The
입출력 인터페이스(160)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 이용되는 구성으로, 프로세서(140)는 입 출력 인터페이스(160)를 통해 주행 공간에 대한 다양한 정보를 입력 받을 수 있다. 한편, 입출력 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.The input/
통신 인터페이스(170)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(150)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리(130)), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.The
한편, 도 14는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 개략적으로 나타낸 순서도이다. Meanwhile, FIG. 14 is a flowchart schematically illustrating a method for controlling a robot according to an embodiment of the present disclosure.
도 14를 참조하면, 먼저 프로세서(140)는 로봇의 주행 시작위치에서 라이다 센서를 통해 센싱 데이터를 획득할 수 있다(S1410). 구체적으로, 프로세서(140)는 사용자로부터 로봇의 전원을 키는 명령어 또는 로봇의 주행을 시작하는 명령을 입력 받은 시점에, 라이다 센서(110)를 이용하여 로봇의 주행 시작 위치의 주변 오브젝트에 대한 센싱 데이터를 획득할 수 있다. 이때, 센싱 데이터는 로봇(100)과 주변 오브젝트와의 거리 데이터 및 주변 오브젝트에 대응하는 포인트 클라우드 데이터를 포함할 수 있다. Referring to FIG. 14 , first, the
그리고, 프로세서(140)는 획득된 데이터에 기초하여 메모리(130)에 저장된 제1 주행 공간에 대응되는 제1 맵 데이터(20) 상에서 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우, 로봇이 주행하도록 구동부(120)를 제어할 수 있다(S1420). Then, the
구체적으로, 프로세서(140)는 획득된 센싱 데이터에 기초하여 메모리(130)에 저장된 제1 맵 데이터(20)에 설정된 제1 주행 시작 위치(1)와 로봇(100)의 현재 위치가 일치하는 지를 식별할 수 있다. 그리고, 프로세서(140)는 제1 맵 데이터(20)에 설정된 제1 주행 시작 위치(1)와 로봇(100)의 현재 위치가 일치하지 않는 것으로 식별되면, 로봇이 위치한 주행 공간이 변경된 것으로 식별할 수 있다. 즉, 로봇이 위치한 주행 공간이 제1 주행 공간에서 제2 주행 공간으로 변경된 것으로 식별할 수 있다. 그리고, 프로세서(140)는 새로운 주행 공간으로 식별된 제2 주행 공간을 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. 즉, 프로세서(140)는 새로운 주행 공간인 제2 주행 공간에 대한 맵 데이터를 생성하기 위한 데이터를 수집하는 과정을 수행할 수 있다. Specifically, the
그리고, 프로세서(140)는 로봇이 주행하는 동안 라이다 센서를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터(30)를 획득할 수 있다(S1430).Also, the
구체적으로, 프로세서(140)는 라이다 센서(110)를 이용하여, 제2 주행 공간에 대한 포인트 맵 데이터(40)를 획득하고, 획득된 포인트 맵 데이터(40)에 SLAM 알고리즘을 적용하여 제2 주행 공간에 대응하는 제2 맵 데이터(30)를 획득할 수 있다. 이를 위해, 프로세서(140)는 다양한 SLAM 알고리즘을 이용할 수 있다. Specifically, the
그리고, 프로세서(140)는 제1 맵 데이터(20)에 포함된 확률 정보 및 제2 맵 데이터(30)에 포함된 오브젝트에 대한 위치 정보에 기초하여 제2 맵 데이터(30)에 대응되는 제2 주행 공간이 제1 주행 공간과 일치하는지 여부를 식별할 수 있다(S1340). Also, the
구체적으로, 프로세서(140)는 제2 맵 데이터(30) 상에서의 오브젝트의 위치를 식별하고, 식별된 위치와 대응하는 제1 맵 데이터(20) 상에서의 위치를 식별할 수 있다. 여기서, 제1 맵 데이터(20) 상에서 오브젝트의 위치와 대응하는 위치를 식별하는 것은, 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하는 것일 수 있다. 즉, 제2 맵 데이터(30)상에서의 오브젝트의 위치를 제1 맵 데이터(20) 상에서의 위치로 인지하는 과정(Localization)으로, 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하는 것일 수 있다. Specifically, the
한편, 프로세서(140)는 제2 맵 데이터(30)상에서 식별되는 오브젝트가 제1 맵 데이터(20) 상에서 식별되는지를 판단하기 위해, 제1 맵 데이터(20)에 포함된 확률 정보를 이용할 수 있다. 여기서 확률 정보는 제1 맵 데이터(20) 상에서 특정 위치에 오브젝트가 존재할 수 있는 확률 값일 수 있다. 프로세서(140)는 확률 정보에 기초하여, 제1 맵 데이터(20) 상에서 식별된 위치에 오브젝트가 존재하는 것으로 식별되면, 제1 맵 데이터(20)와 제2 맵 데이터(30) 동일한 주행 공간에 대응하는 것으로 식별할 수 있다.Meanwhile, the
그리고, 프로세서(140)는 제2 주행 공간이 제1 주행 공간과 일치하는 것으로 식별되면, 제2 맵 데이터(30) 상에서의 로봇의 주행 시작 위치 및 오브젝트에 대한 위치 정보에 기초하여 맵 데이터 상에서 로봇의 주행 시작 위치를 식별할 수 있다(S1350).Also, if the
구체적으로, 프로세서(140)는 제1 맵 데이터(20)와 제2 맵 데이터(30)가 동일한 주행 공간에 대한 것임을 식별하면, 제2 맵 데이터(30) 상에서의 제2 주행 시작 위치(2)와 오브젝트의 위치 정보를 기초로, 제1 맵 데이터(20) 상에 설정된 제1 주행 시작 위치(1)를 새로운 주행 시작 위치로 변경할 수 있다. Specifically, if the
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. Meanwhile, the methods according to various embodiments of the present disclosure described above may be implemented in the form of an application that can be installed in an existing electronic device.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. In addition, the methods according to various embodiments of the present disclosure described above may be implemented only by upgrading software or hardware of an existing electronic device.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.In addition, various embodiments of the present disclosure described above may be performed through an embedded server included in an electronic device or an external server of at least one of an electronic device and a display device.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서(140)에 의해 실행될 경우, 프로세서(140)가 직접, 또는 프로세서(140)의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있 다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재 (tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Meanwhile, according to an exemplary embodiment of the present disclosure, the various embodiments described above may be implemented as software including instructions stored in a machine-readable storage media (eg, a computer). can A device is a device capable of calling a stored command from a storage medium and operating according to the called command, and may include an electronic device according to the disclosed embodiments. When a command is executed by the
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실 시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되 어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리(130)와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.In addition, according to an embodiment of the present disclosure, the method according to various embodiments described above may be provided by being included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The computer program product may be distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or online through an application store (eg Play Store™). In the case of online distribution, at least part of the computer program product may be temporarily stored or temporarily created in a storage medium such as a manufacturer's server, an application store server, or a relay server's
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구 성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다 양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소 들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양 한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작 들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.In addition, each of the components (eg, modules or programs) according to various embodiments described above may be composed of a single object or a plurality of entities, and some sub-components among the aforementioned corresponding sub-components may be omitted, or other sub-components may be omitted. Sub-components may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by modules, programs, or other components are executed sequentially, in parallel, iteratively, or heuristically, or at least some operations are executed in a different order, are omitted, or other operations are added. It can be.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하 였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청 구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.Although the preferred embodiments of the present disclosure have been shown and described above, the present disclosure is not limited to the specific embodiments described above, and in the technical fields belonging to the disclosure without departing from the subject matter of the present disclosure claimed in the claims Various modified implementations are possible by those skilled in the art, and these modified implementations should not be individually understood from the technical spirit or perspective of the present disclosure.
100: 로봇
110: 라이다 센서
120: 구동부
130: 메모리
140: 프로세서100: robot
110: lidar sensor
120: driving unit
130: memory
140: processor
Claims (16)
라이다 센서;
구동부;
제1 주행 공간에 대응되는 제1 맵 데이터가 저장된 메모리; 및
상기 로봇의 주행 시작 위치에서 상기 라이다 센서를 통해 센싱 데이터를 획득하고,
상기 획득된 데이터에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우 상기 로봇이 주행하도록 하도록 상기 구동부를 제어하고,
상기 로봇이 주행하는 동안 상기 라이다 센서를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터를 획득하고,
상기 제1 맵 데이터에 포함된 확률 정보 및 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 상기 제2 맵 데이터에 대응되는 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하고,
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별되면, 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치 및 상기 오브젝트에 대한 위치 정보에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 프로세서;를 포함하는, 로봇.in robots,
lidar sensor;
driving unit;
a memory storing first map data corresponding to the first driving space; and
Acquiring sensing data through the lidar sensor at the driving start position of the robot,
Controlling the drive unit so that the robot travels when a location corresponding to a travel start location of the robot is not identified on the first map data based on the obtained data;
Obtaining second map data based on sensing data obtained through the lidar sensor while the robot is driving;
Based on probability information included in the first map data and location information on an object included in the second map data, whether the second driving space corresponding to the second map data coincides with the first driving space is determined. identify,
If it is identified that the second travel space coincides with the first travel space, the location of the robot on the first map data based on the travel start position of the robot on the second map data and the location information on the object. A robot comprising a; processor for identifying a driving start position.
상기 프로세서는,
상기 라이다 센서를 통해 상기 제2 주행 공간에 대응하는 포인트 맵 데이터를 획득하고,
상기 포인트 맵 데이터에 포함된 복수의 포인트 중 기 설정된 확률 값 이상인 복수의 포인트를 유효 포인트로 식별하고,
상기 식별된 유효 포인트의 위치 정보를 기초로, 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보를 획득하고,
상기 획득한 오브젝트에 대한 위치 정보 및 상기 확률 정보를 기초로, 상기 제1 맵 데이터와 상기 제2 맵 데이터 간의 매칭 스코어를 획득하고,
상기 획득된 매칭 스코어에 기초하여 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는, 로봇According to claim 1,
the processor,
Obtaining point map data corresponding to the second driving space through the lidar sensor;
Among the plurality of points included in the point map data, a plurality of points that are equal to or greater than a predetermined probability value are identified as valid points;
Acquiring location information on an object included in the second map data based on the location information of the identified effective point;
Acquiring a matching score between the first map data and the second map data based on the acquired location information and the probability information of the object;
A robot that identifies whether the second travel space matches the first travel space based on the obtained matching score.
상기 제1 맵 데이터는,
기 설정된 크기의 복수의 영역으로 분할되고, 각각의 영역에 대응되는 확률 정보를 포함하고,
상기 프로세서는,
상기 유효 포인트의 위치 정보를 기초로, 상기 제1 맵 데이터 상에서 상기 오브젝트의 위치에 대응하는 영역을 식별하고, 상기 확률 정보에 기초하여, 상기 식별된 영역에 대응하는 확률 값을 식별하고, 상기 식별된 확률 값을 기초로, 상기 매칭 스코어를 획득하는, 로봇According to claim 2,
The first map data,
It is divided into a plurality of regions of a predetermined size and includes probability information corresponding to each region,
the processor,
Based on the location information of the effective point, an area corresponding to the location of the object is identified on the first map data, a probability value corresponding to the identified area is identified based on the probability information, and the identification Based on the probability value obtained, the robot that obtains the matching score
상기 프로세서는,
상기 확률 값의 평균 값이 임계 값 이상이면, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별하는, 로봇.According to claim 3,
the processor,
If the average value of the probability values is greater than or equal to a threshold value, the robot identifies the second travel space as matching the first travel space.
상기 프로세서는,
상기 확률 값의 평균 값이 상기 임계 값 미만이면, 상기 메모리에 저장된 상기 제1 맵 데이터를 상기 제2 맵 데이터에 대응하는 맵 데이터로 업데이트하는, 로봇.According to claim 4,
the processor,
and updating the first map data stored in the memory with map data corresponding to the second map data when the average value of the probability values is less than the threshold value.
상기 프로세서는,
상기 제2 맵 데이터를 기 설정된 각도로 회전 시키고, 상기 제2 맵 데이터를 상기 기 설정된 각도로 회전 시킬 때마다, 상기 확률 값의 평균 값을 획득하고, 상기 획득한 평균 값 중 최대 값을 갖는 평균 값에 대응하는 회전 각도를 식별하고, 상기 식별된 회전 각도 및 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는, 로봇.According to claim 3,
the processor,
The second map data is rotated at a preset angle, and whenever the second map data is rotated at the preset angle, an average value of the probability values is obtained, and an average having a maximum value among the obtained average values identifying a rotation angle corresponding to the value, and identifying a driving start position of the robot on the first map data based on the identified rotation angle and a driving start position of the robot on the second map data.
상기 맵 데이터는,
기 설정된 개수의 영역을 포함하는 복수의 서브 영역으로 분할되고,
상기 프로세서는,
상기 서브 영역에 포함된 기 설정된 개수의 영역 중 어느 하나의 영역에 대응하는 확률 값을 식별하고, 상기 식별된 영역이 상기 복수의 영역 중 적어도 하나의 영역에 해당하면, 상기 식별된 확률 값을 적용하여 상기 매칭 스코어를 획득하는, 로봇.According to claim 3,
The map data is
Divided into a plurality of sub-regions including a preset number of regions;
the processor,
A probability value corresponding to one of a predetermined number of regions included in the sub-region is identified, and if the identified region corresponds to at least one region among the plurality of regions, the identified probability value is applied. To obtain the matching score, the robot.
상기 로봇의 주행 시작 위치에서 라이다 센서를 통해 센싱 데이터를 획득하는 단계;
상기 획득된 데이터에 기초하여 메모리에 저장된 제1 주행 공간에 대응되는 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치에 대응되는 위치가 식별되지 않는 경우, 상기 로봇이 주행하도록 구동부를 제어하는 단계;
상기 로봇이 주행하는 동안 상기 라이다 센서를 통해 획득된 센싱 데이터에 기초하여 제2 맵 데이터를 획득하는 단계;
상기 제1 맵 데이터에 포함된 확률 정보 및 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보에 기초하여 상기 제2 맵 데이터에 대응되는 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계; 및
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별되면, 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치 및 상기 오브젝트에 대한 위치 정보에 기초하여 상기 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 단계를 포함하는, 방법.In the method of controlling the robot,
Acquiring sensing data through a lidar sensor at a driving start position of the robot;
controlling a driving unit so that the robot travels when a location corresponding to a travel start location of the robot is not identified on first map data corresponding to a first travel space stored in a memory based on the obtained data;
acquiring second map data based on sensing data acquired through the lidar sensor while the robot is driving;
Based on probability information included in the first map data and location information on an object included in the second map data, whether the second driving space corresponding to the second map data coincides with the first driving space is determined. identifying; and
If it is identified that the second travel space coincides with the first travel space, the robot starts traveling on the map data based on the driving start position of the robot on the second map data and the location information on the object. A method comprising identifying a location.
상기 라이다 센서를 통해 상기 제2 주행 공간에 대응하는 포인트 맵 데이터를 획득하는 단계를 더 포함하고,
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는,
상기 포인트 맵 데이터에 포함된 복수의 포인트 중 기 설정된 확률 값 이상인 복수의 포인트를 유효 포인트로 식별하는 단계;
상기 식별된 유효 포인트의 위치 정보를 기초로, 상기 제2 맵 데이터에 포함된 오브젝트에 대한 위치 정보를 획득하는 단계;
상기 획득한 오브젝트에 대한 위치 정보 및 상기 확률 정보를 기초로, 상기 제1 맵 데이터와 상기 제2 맵 데이터 간의 매칭 스코어를 획득하는 단계; 및
상기 획득된 매칭 스코어에 기초하여 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계를 포함하는, 방법.According to claim 9,
Further comprising obtaining point map data corresponding to the second driving space through the lidar sensor,
The step of identifying whether the second travel space coincides with the first travel space,
identifying a plurality of points that are greater than or equal to a predetermined probability value among a plurality of points included in the point map data as effective points;
obtaining location information about an object included in the second map data based on the location information of the identified effective point;
obtaining a matching score between the first map data and the second map data based on the acquired location information of the object and the probability information; and
and identifying whether the second driving space matches the first driving space based on the obtained matching score.
상기 제1 맵 데이터는,
기 설정된 크기의 복수의 영역으로 분할되고, 각각의 영역에 대응되는 확률 정보를 포함하고,
상기 매칭 스코어를 획득하는 단계는,
상기 유효 포인트의 위치 정보를 기초로, 상기 제1 맵 데이터 상에서 상기 오브젝트의 위치에 대응하는 영역을 식별하고, 상기 확률 정보에 기초하여, 상기 식별된 영역에 대응하는 확률 값을 식별하고, 상기 식별된 확률 값을 기초로, 상기 매칭 스코어를 획득하는, 방법.According to claim 10,
The first map data,
It is divided into a plurality of regions of a predetermined size and includes probability information corresponding to each region,
The step of obtaining the matching score,
Based on the location information of the effective point, an area corresponding to the location of the object is identified on the first map data, a probability value corresponding to the identified area is identified based on the probability information, and the identification Based on the probability value obtained, the method of obtaining the matching score.
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는,
상기 확률 값의 평균 값이 임계 값 이상이면, 상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는 것으로 식별하는, 방법.According to claim 11,
The step of identifying whether the second travel space coincides with the first travel space,
If the average value of the probability values is greater than or equal to the threshold value, identifying the second driving space as coincident with the first driving space.
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는,
상기 확률 값의 평균 값이 상기 임계 값 미만이면, 상기 메모리에 저장된 상기 제1 맵 데이터를 상기 제2 맵 데이터에 대응하는 맵 데이터로 업데이트하는, 방법.According to claim 12,
The step of identifying whether the second travel space coincides with the first travel space,
and updating the first map data stored in the memory with map data corresponding to the second map data when the average value of the probability values is less than the threshold value.
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는,
상기 제2 맵 데이터를 기 설정된 각도로 회전 시키고, 상기 제2 맵 데이터를 상기 기 설정된 각도로 회전 시킬 때마다, 상기 확률 값의 평균 값을 획득하고, 상기 획득한 평균 값 중 최대 값을 갖는 평균 값에 대응하는 회전 각도를 식별하고,
상기 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는 단계는,
상기 식별된 회전 각도 및 상기 제2 맵 데이터 상에서의 상기 로봇의 주행 시작 위치에 기초하여 상기 제1 맵 데이터 상에서 상기 로봇의 주행 시작 위치를 식별하는, 방법.According to claim 11,
The step of identifying whether the second travel space coincides with the first travel space,
The second map data is rotated at a preset angle, and whenever the second map data is rotated at the preset angle, an average value of the probability values is obtained, and an average having a maximum value among the obtained average values identify the rotation angle corresponding to the value;
The step of identifying the driving start position of the robot on the map data,
Identifying a driving start position of the robot on the first map data based on the identified rotation angle and a driving start position of the robot on the second map data.
상기 맵 데이터는,
기 설정된 개수의 영역을 포함하는 복수의 서브 영역으로 분할되고,
상기 제2 주행 공간이 상기 제1 주행 공간과 일치하는지 여부를 식별하는 단계는,
상기 서브 영역에 포함된 기 설정된 개수의 영역 중 어느 하나의 영역에 대응하는 확률 값을 식별하고, 상기 식별된 영역이 상기 복수의 영역 중 어느 하나의 영역에 해당하면, 상기 식별된 확률 값을 적용하여 상기 매칭 스코어를 획득하는, 방법.According to claim 11,
The map data is
Divided into a plurality of sub-regions including a preset number of regions;
The step of identifying whether the second travel space coincides with the first travel space,
A probability value corresponding to any one area among a preset number of areas included in the sub area is identified, and if the identified area corresponds to any one area among the plurality of areas, the identified probability value is applied. to obtain the matching score.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2023/000181 WO2023132638A1 (en) | 2022-01-05 | 2023-01-04 | Robot and robot control method |
US18/639,611 US20240264605A1 (en) | 2022-01-05 | 2024-04-18 | Robot and robot control method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220001797 | 2022-01-05 | ||
KR1020220001797 | 2022-01-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230106064A true KR20230106064A (en) | 2023-07-12 |
Family
ID=87163598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220051071A KR20230106064A (en) | 2022-01-05 | 2022-04-25 | Robot and method for controlling thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230106064A (en) |
-
2022
- 2022-04-25 KR KR1020220051071A patent/KR20230106064A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102170928B1 (en) | Robot obstacle avoidance control system, method, robot and storage medium | |
JP6949107B2 (en) | Systems and methods for training robots to drive autonomously on the route | |
KR101843866B1 (en) | Method and system for detecting road lane using lidar data | |
US11227434B2 (en) | Map constructing apparatus and map constructing method | |
JP2020500767A (en) | Automatic vehicle parking system and method | |
JP2019532369A5 (en) | ||
US20230195130A1 (en) | Information collection method, device and storage medium | |
US11119498B2 (en) | Systems and methods for simulation utilizing a segmentable monolithic mesh | |
TW201933177A (en) | Mobile robots to generate reference maps for localization | |
JP5902275B1 (en) | Autonomous mobile device | |
CN112904369B (en) | Robot repositioning method, apparatus, robot, and computer-readable storage medium | |
US11880209B2 (en) | Electronic apparatus and controlling method thereof | |
US11079240B2 (en) | Method, system and apparatus for adaptive particle filter localization | |
CN112051847A (en) | Sweeping robot, control method and device of sweeping robot and readable medium | |
US10731970B2 (en) | Method, system and apparatus for support structure detection | |
US20200182623A1 (en) | Method, system and apparatus for dynamic target feature mapping | |
KR20230106064A (en) | Robot and method for controlling thereof | |
US20210101279A1 (en) | Electronic apparatus and controlling method thereof | |
US20240264605A1 (en) | Robot and robot control method | |
US20210272316A1 (en) | Method, System and Apparatus for Object Detection in Point Clouds | |
WO2022259600A1 (en) | Information processing device, information processing system, information processing method, and program | |
US20210132225A1 (en) | Electronic apparatus and control method thereof | |
RU2658092C2 (en) | Method and navigation system of the mobile object using three-dimensional sensors | |
KR20220073282A (en) | AI-based Autonomous Driving Robot System That Supports Gesture Recognition For Autonomous Driving Sales | |
EP3842886A1 (en) | Self-propelled device, and travel control method and travel control program for self-propelled device |