KR102864685B1 - Method of slam based on salient object in image and robot and cloud server implementing thereof - Google Patents
Method of slam based on salient object in image and robot and cloud server implementing thereofInfo
- Publication number
- KR102864685B1 KR102864685B1 KR1020190111013A KR20190111013A KR102864685B1 KR 102864685 B1 KR102864685 B1 KR 102864685B1 KR 1020190111013 A KR1020190111013 A KR 1020190111013A KR 20190111013 A KR20190111013 A KR 20190111013A KR 102864685 B1 KR102864685 B1 KR 102864685B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- characteristic
- robot
- objects
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- 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/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- 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/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1656—Program controls characterised by programming, planning systems for manipulators
- B25J9/1664—Program controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1679—Program controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1694—Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/14—Measuring arrangements characterised by the use of optical techniques for measuring distance or clearance between spaced objects or spaced apertures
-
- 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
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Image Analysis (AREA)
- Manipulator (AREA)
Abstract
본 발명은 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버에 관한 것으로, 본 발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇은 슬램을 수행하는데 필요한 이미지를 획득하는 카메라 센서와, 로봇이 SLAM을 수행하는 필요한 정보를 저장하는 맵 저장부와, 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 제어부를 포함한다. The present invention relates to a method for performing SLAM based on a characteristic object in an image, and to a robot and a cloud server implementing the same. According to one embodiment of the present invention, a robot for performing SLAM based on a characteristic object in an image includes a camera sensor for acquiring an image required for performing SLAM, a map storage unit for storing information required for the robot to perform SLAM, and a control unit for verifying and extracting a characteristic object from an image and storing location information at which the image was acquired, the characteristic object, and coordinate information of the characteristic object in the image in the map storage unit.
Description
본 발명은 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버에 관한 기술이다.The present invention relates to a method for performing slam based on a characteristic object in an image and a robot and cloud server implementing the same.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 실내 또는 실내에 연결되는 실외 공간에 로봇이 배치되어 이동할 수 있다. 또한, 로봇은 차량의 형상을 가지거나 인도 위를 주행하는 방식으로 실외를 이동할 수 있다. 이들 로봇은 배송, 치안, 청소, 안내 등의 기능을 할 수 있다. In spaces with high levels of human and material interaction, such as large supermarkets, department stores, airports, and golf courses, robots can be deployed and moved indoors or in outdoor spaces connected to indoor spaces to provide information or convenience to people. Furthermore, robots can move outdoors in the form of vehicles or by driving on sidewalks. These robots can perform functions such as delivery, security, cleaning, and guidance.
한편, 이러한 로봇들이 사람의 제어가 없이 자율 주행하거나, 혹은 사람의 일시적 제어에 기반한 반자율 주행을 수행하기 위해서는 로봇의 현재 위치를 확인하고 주변에 배치된 장애물을 회피하며 목적한 지점으로 이동하는데 필요한 정보를 저장하거나 외부로부터 수신하는 것일 필요하다. Meanwhile, in order for these robots to drive autonomously without human control or to drive semi-autonomously based on temporary human control, they need to store or receive from the outside the information necessary to confirm the robot's current location, avoid obstacles placed around it, and move to the destination.
이�� 위해서, 로봇은 공간에 대한 정보인 맵 정보를 저장할 수 있으며, 맵 정보를 실시간으로 서버나 인접한 다른 로봇으로부터 수신할 수 있다. To this end, the robot can store map information, which is information about space, and receive map information in real time from a server or other nearby robots.
그런데, 이러한 과정에서 로봇이 현재 위치를 정확하게 확인하기 위해서는 현재 위치에서 취득한 정보를 맵 정보와 비교하는 것이 필요하다. 이를 위해 맵 정보는 공간에 대한 정밀한 정보를 보유해야 한다. 또한, 맵 정보는 검색에 용이한 정보를 보유하는 것을 필요로 한다. However, in order for the robot to accurately determine its current location during this process, it needs to compare the information obtained from its current location with map information. To achieve this, the map information must contain precise spatial information. Furthermore, it must contain information that is easy to search.
이에, 본 명세서��서는 로봇이 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 적합한 맵을 생성하는 방안을 제시한다. Accordingly, this specification proposes a method for generating a map suitable for a robot to perform simultaneous localization and mapping (SLAM).
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 맵을 생성하여 위치 추정을 수행하는데 필요한 이미지 정보들과 특징적 객체를 로봇이나 클라우드 서버가 저장할 수 있도록 한다.In order to solve the aforementioned problem, this specification allows a robot or a cloud server to store image information and characteristic objects necessary for a robot to generate a map and perform location estimation.
또한, 본 명세서에서는 위치 추정의 정확도와 속도를 높이는데 적합한 특징적 객체를 이미지 내에서 추출하고자 한다. Additionally, in this specification, we aim to extract characteristic objects suitable for increasing the accuracy and speed of location estimation within an image.
또한, 본 명세서에서는 특징적 객체의 이미지 내의 위치를 함께 저장하여 로봇이 보다 정확하게 위치를 추정할 수 있도록 한다. Additionally, the present specification stores the location of a characteristic object within an image so that the robot can estimate the location more accurately.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objectives of the present invention are not limited to those mentioned above. Other objectives and advantages of the present invention not mentioned above can be understood through the following description and will be more clearly understood through the embodiments of the present invention. Furthermore, it will be readily apparent that the objectives and advantages of the present invention can be realized by the means and combinations thereof set forth in the claims.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서와, 로봇이 SLAM을 수행하는 필요한 정보를 저장하는 맵 저장부와, 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 제어부를 포함한다. A robot performing SLAM based on a characteristic object in an image according to one embodiment of the invention includes a camera sensor for acquiring an image required for performing SLAM (simultaneous localization and mapping), a map storage unit for storing information required for the robot to perform SLAM, and a control unit for verifying and extracting a characteristic object from the image and storing location information where the image was acquired, the characteristic object, and coordinate information of the characteristic object in the image in the map storage unit.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 이미지 내에서 하나 이상의 객체를 감지하여, 감지된 객체가 특징적 객체에 해당하는지 검증하여 검증된 결과에 따라 객체를 특징적 객체로 맵저장부에 저장한다. A robot performing SLAM based on a characteristic object in an image according to one embodiment of the invention detects one or more objects in the image, verifies whether the detected object corresponds to a characteristic object, and stores the object as a characteristic object in a map storage unit based on the verification result.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 제1시점에 획득한 제1이미지 및 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증한다. A robot performing SLAM based on a characteristic object in an image according to one embodiment of the invention verifies an object commonly included in a first image acquired at a first time point and a second image acquired at a second time point subsequent to the first time point as a characteristic object.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 이미지와 감지된 객체 및 객체의 주변에 배치된 바운딩 박스를 인터페이스부에서 출력하고 그에 대한 선택을 입력받는다. A robot performing SLAM based on a characteristic object in an image according to one embodiment of the invention outputs an image, a detected object, and a bounding box placed around the object from an interface unit and receives an input for selecting the same.
발명의 일 실시예에 의한 클라우드 서버는 로봇으로부터 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 수신하여 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장한다. A cloud server according to one embodiment of the invention receives an image required for performing simultaneous localization and mapping (SLAM) from a robot, verifies and extracts a characteristic object from the image, and stores the location information where the image was acquired, the characteristic object, and the coordinate information of the characteristic object within the image in a map storage unit.
발명의 일 실시예에 의한 클라우드 서버는 이미지 내에서 하나 이상의 객체를 감지하여, 감지된 객체가 특징적 객체에 해당하는지 검증하여 검증된 결과에 따라 객체를 특징적 객체로 맵저장부에 저장한다. A cloud server according to one embodiment of the invention detects one or more objects in an image, verifies whether the detected objects correspond to characteristic objects, and stores the objects as characteristic objects in a map storage unit based on the verification result.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 방법은 로봇의 이동부가 로봇을 이동시키는 과정에서 로봇의 카메라 센서가 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 단계와, 로봇의 제어부가 이미지에서 특징적 객체를 검증 및 추출하는 단계와, 제어부가 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 단계를 포함한다. A method for performing SLAM based on a characteristic object in an image according to one embodiment of the invention includes a step of allowing a camera sensor of a robot to acquire an image necessary for performing SLAM (simultaneous localization and mapping) while a moving part of the robot moves the robot, a step of allowing a control part of the robot to verify and extract a characteristic object from the image, and a step of allowing the control part to store location information where the image was acquired, the characteristic object, and coordinate information of the characteristic object in the image in a map storage unit.
본 발명의 실시예들을 적용할 경우, 로봇이 맵을 생성하여 위치 추정을 수행하는데 필요한 이미지 정보들과 특징적 객체를 로봇 또는 클라우드 서버가 저장할 수 있다. When applying embodiments of the present invention, the robot or cloud server can store image information and characteristic objects necessary for the robot to generate a map and perform location estimation.
또한, 본 발명의 실시예들을 적용할 경우, 로봇 또는 클라우드 서버는 위치 추정의 정확도와 속도를 높이는데 적합한 특징적 객체를 이미지 내에서 추출할 수 있으며, 또한 특징적 객체인지 여부를 검증할 수 있다. In addition, when applying embodiments of the present invention, a robot or cloud server can extract a characteristic object suitable for increasing the accuracy and speed of location estimation from an image, and can also verify whether it is a characteristic object.
또한, 본 발명의 실시예들을 적용할 경우, 특징적 객체의 이미지 내의 위치를 함께 저장하여 로봇이 보다 정확하게 위치를 추정할 수 있도록 한다. In addition, when applying embodiments of the present invention, the location of a characteristic object within an image is stored together so that the robot can estimate the location more accurately.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.The effects of the present invention are not limited to the effects described above, and those skilled in the art can easily derive various effects of the present invention from the composition of the present invention.
도 1은 맵을 생성하는 로봇의 구성을 보여준다.
도 2는 본 발명의 일 실시예에 의한 제어모듈의 세부 구성을 보여준다.
도 3은 본 발명의 일 실시예에 의한 클라우드 서버의 구성을 보여준다.
도 4는 본 발명의 일 실시예에 의한 특징적 객체를 선택하는 과정을 보여준다.
도 5는 본 발명의 일 실시예에 의한 특징적 객체 검증 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 특징적 객체의 주변에 바운딩 박스의 배치를 보여준다.
도 7은 본 발명의 일 실시예에 의한 로봇이 특징적 객체를 판단하는 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 로봇이 이동 과정에서 획득한 이미지를 맵 저장부에 저장된 이미와 비교하는 실시예를 보여준다.
도 9는 본 발명의 일 실시예에 의한 특징적 객체를 이용하여 맵 저장부에서 포즈 정보를 산출하는 로컬라이제이션 과정을 보여준다.
도 10은 본 발명의 일 실시예에 의한 연속 촬영된 이미지에서 로봇이 객체의 이동을 감지하여 특징적 객체를 판단하는 과정을 보여준다.
도 11은 본 발명의 일 실시예에 의한 로봇의 인터페이스부가 특징적 객체를 출력하고 이에 대한 선택을 입력받는 과정을 보여준다.
도 12는 본 발명의 일 실시예에 의한 바운딩 박스를 수정한 결과를 보여준다.
도 13은 본 발명의 일 실시예에 의한 클라우드 서버의 또다른 구성을 보여준다. Figure 1 shows the configuration of a robot that generates a map.
Figure 2 shows a detailed configuration of a control module according to one embodiment of the present invention.
Figure 3 shows the configuration of a cloud server according to one embodiment of the present invention.
Figure 4 shows a process for selecting a characteristic object according to one embodiment of the present invention.
Figure 5 shows a characteristic object verification process according to one embodiment of the present invention.
Figure 6 shows the arrangement of bounding boxes around a characteristic object according to one embodiment of the present invention.
Figure 7 shows a process in which a robot determines a characteristic object according to one embodiment of the present invention.
FIG. 8 shows an example of comparing an image acquired by a robot during a movement process according to one embodiment of the present invention with an image stored in a map storage unit.
Figure 9 shows a localization process for generating pose information from a map storage unit using a characteristic object according to one embodiment of the present invention.
Figure 10 shows a process in which a robot detects movement of an object in continuously captured images according to one embodiment of the present invention and determines a characteristic object.
Figure 11 shows a process in which an interface unit of a robot according to one embodiment of the present invention outputs a characteristic object and receives an input for selecting the same.
Figure 12 shows the result of modifying a bounding box according to one embodiment of the present invention.
Figure 13 shows another configuration of a cloud server according to one embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present invention. The present invention may be implemented in various different forms and is not limited to the embodiments described herein.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.In order to clearly explain the present invention, parts that are not related to the description have been omitted, and the same or similar components are designated by the same reference numerals throughout the specification. In addition, some embodiments of the present invention will be described in detail with reference to exemplary drawings. When adding reference numerals to components in each drawing, the same components may have the same numerals as much as possible even if they are shown in different drawings. In addition, when explaining the present invention, if it is determined that a specific description of a related known configuration or function may obscure the gist of the present invention, the detailed description may be omitted.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.When describing components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only intended to distinguish the components from other components, and the nature, order, sequence, or number of the components are not limited by the terms. When it is described that a component is "connected," "coupled," or "connected" to another component, it should be understood that the component may be directly connected or connected to the other component, but that other components may also be "interposed" between each component, or that each component may be "connected," "coupled," or "connected" through another component.
또한, 본 발명을 구현함에 있어서 설명의 편의를 ���하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.In addition, in implementing the present invention, components may be described in detail for convenience of explanation, but these components may be implemented in one device or module, or one component may be implemented by being divided into multiple devices or modules.
이하, 본 명세서에서 로봇은 다양한 형상을 가지며, 특정한 목적(배송, 청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다. Hereinafter, the term "robot" in this specification includes devices that have various shapes, have specific purposes (delivery, cleaning, security, monitoring, guidance, etc.), or provide functions based on the characteristics of the space in which the robot moves. Therefore, the term "robot" in this specification refers to a device that possesses a means of transportation capable of moving using predetermined information and sensors and provides predetermined functions.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 거리의 이미지, 고정된 벽, 건물, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 이동 장애물, 즉 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다. In this specification, a robot can move while holding a map. The map represents images of streets that are confirmed to not move in space, as well as information about fixed objects such as fixed walls, buildings, and stairs. Additionally, information about periodically placed moving obstacles, i.e., dynamic objects, can also be stored on the map.
본 명세서에서 맵을 생성하는 것은 로봇이 될 수 있다. 다만, 맵을 생성하는 로봇과 해당 맵을 탑재하여 이동하는 로봇은 반드시 동일한 구성을 가질 필요는 없다. 맵을 생성하는 로봇은 맵 생성에 적합한 제1그룹의 구성요소를 포함하며, 맵을 이용하여 이동하는 로봇은 그에 적합한 제2그룹의 구성요소를 포함한다. 그리고 제1그룹의 구성요소와 제2그룹의 구성요소는 반드시 일치할 필요가 없다. In this specification, a robot may be used to generate a map. However, the robot that generates the map and the robot that moves using the map do not necessarily have to have the same configuration. The robot that generates the map includes components from a first group suitable for map generation, and the robot that moves using the map includes components from a second group suitable for this purpose. Furthermore, the components from the first group and the components from the second group do not necessarily have to be identical.
본 명세서에서 로봇은 클라우드 서버와 통신으로 정보를 송수신하며, 이 과정에서 맵 정보를 송수신할 수도 있다. 또는 로봇이 위치한 영역을 포함한 일정 범위 내의 맵 정보를 클라우드 서버가 로봇에게 전송하고, 로봇은 이를 기반으로 슬램을 수행할 수 있다. In this specification, the robot communicates with a cloud server to send and receive information, and may also send and receive map information during this process. Alternatively, the cloud server may transmit map information within a certain range, including the area where the robot is located, to the robot, and the robot may perform SLAM based on this information.
로봇이 SLAM을 수행하기 위해 사물들의 위치를 확인하는 라이다 센서 또는 이미지를 촬영하는 카메라 센서를 사용할 수도 있다. 특히, 실외 공간과 같이 넓은 공간을 주행하는 경우에 로봇은 공간에 대한 이미지 정보를 맵에 저장할 수 있다. 이때, 맵에 저장되는 이미지 정보는 단순한 이미지가 아니라 이미지 내에 특징적인 부분에 대한 정보를 포함한다. To perform SLAM, robots can use lidar sensors to determine the location of objects or camera sensors to capture images. In particular, when navigating in wide spaces, such as outdoor spaces, robots can store image information about the space on a map. The image information stored on the map is not simply an image, but includes information about specific features within the image.
따라서, 로봇이 위치 추정의 속도 또는 정확도를 높이기 위해 맵 생성 과정에서 특징적인 부분을 자동으로 선별하고 자동으로 해당 부분을 맵에 등록할 수 있다. 또는 로봇이 사용자에게 특징적인 부분들에 대한 후보 정보를 제공하여 사용자가 해당 후보들 중에서 선택한 후 해당 특징적인 부분을 맵에 등록할 수 있다. Therefore, to increase the speed or accuracy of location estimation, the robot can automatically select characteristic features during the map generation process and automatically register them on the map. Alternatively, the robot can provide the user with candidate information on characteristic features, allowing the user to select from among these candidates and then register the selected characteristic features on the map.
본 발명의 실시예에서는 슬램(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서가 로봇에 탑재된다. 그리고 로봇은 카메라 센서를 이용하여 맵을 생성하는 과정에서 이미지 내에서 특징적 객체(Salient object)에 대한 정보를 저장하는 과정에 대해 살펴본다. 특징적 객체란 공간을 식별하는데 있어 필요한 정보로, 예를 들어 간판, 표시팻말 등을 의미한다. 특징적 객체는 이미지 내의 특징점(feature)이 될 수 있다.In an embodiment of the present invention, a robot is equipped with a camera sensor that acquires images necessary for performing simultaneous localization and mapping (SLAM). Furthermore, we will examine the process of storing information about salient objects within the image while creating a map using the camera sensor. A salient object is information necessary for identifying a space, such as a sign or a marker. A salient object can be a feature within the image.
���한, 로봇은 누적된 이미지에서 슬램에 적합한 특징적 객체를 추출할 수 있다. 그리고 로봇은 인공지능을 이용하여 누적된 이미지들 중에서 특정 이미지를 쉽게 구분할 수 있는 특징적 객체를 해당 이미지 내에서 추출할 수 있다. Additionally, the robot can extract characteristic objects suitable for SLAM from the accumulated images. Furthermore, the robot can use artificial intelligence to extract characteristic objects within the images that can easily distinguish specific images from the accumulated images.
도 1은 맵을 생성하는 로봇의 구성을 보여준다. 여기서 로봇은 공간을 이동하며 카메라 센서를 이용하여 이미지를 촬영하고, 촬영한 이미지 내에서 특징적 객체를 추출하여 맵에 저장하는 로봇이다. 도 1의 구성은 맵 생성로봇이다. Figure 1 illustrates the configuration of a map-generating robot. The robot moves through space, captures images using a camera sensor, and extracts characteristic objects from the captured images, storing them on a map. The configuration shown in Figure 1 is a map-generating robot.
도 1의 구성은 맵 생성 로봇에도 해당하지만 이와 다른 명칭으로 맵 생성 장치 또는 줄여서 맵퍼 장치(mapper device)로 지칭될 수 있다. 맵 생성 로봇은 특정한 외관의 로봇에 한정되는 것이 아니며, 공간을 이동하며 외부를 촬영하여 이미지를 저장하고, 여기서 특징적 객체를 추출하는 모든 종류의 장치를 포함한다. The configuration of Fig. 1 also applies to map-generating robots, but they may be referred to by a different name: a map-generating device, or simply a mapper device. Map-generating robots are not limited to robots with a specific appearance, but include all types of devices that move through space, capture images of their surroundings, store them, and extract characteristic objects from them.
이하, 본 명세서에서 특징적 객체는 이미지 내에서 확인된 객체를 중심으로 설명한다. 그러나 본 발명은 이에 한정되는 것이 아니다. 3차원 라이다 센서나 2차원 라이다 센서가 생성한 라이다 센싱 데이터 내에서 로봇은 특정한 영역을 특징적 객체로 설정할 수 있다. Hereinafter, the characteristic object described herein will be centered on an object identified within an image. However, the present invention is not limited thereto. Within the lidar sensing data generated by a 3D or 2D lidar sensor, a robot can designate a specific area as a characteristic object.
한편, 로봇(100)은 그 내부에 제어모듈(150)을 더 포함할 수 있다. 제어모듈(150)은 일종의 컴퓨터 또는 프로세서와 같이 로봇(100)을 제어한다. 따라서 제어모듈(150)은 로봇(100)내에 배치되어 메인 프로세서와 유사한 기능을 수행하며, 사용자와의 인터랙션(interaction)을 담당할 수 있다. 또한, 제어모듈(150)은 클라우드 서버와의 통신을 담당한다. Meanwhile, the robot (100) may further include a control module (150) within it. The control module (150) controls the robot (100) like a type of computer or processor. Accordingly, the control module (150) is placed within the robot (100) and performs functions similar to the main processor, and may be responsible for interaction with the user. In addition, the control module (150) is responsible for communication with the cloud server.
로봇의 이동과 주변의 사물을 감지하여 로봇을 제어하기 위해 제어모듈(150)이 로봇(100) 내부에 탑재된다. 로봇제어모듈(150)은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩 등으로 구현 가능하다.A control module (150) is mounted inside the robot (100) to control the robot by detecting its movements and surrounding objects. The robot control module (150) can be implemented as a software module or a chip that implements the same as hardware.
도 1에 도시된 바와 같이 로봇(100)은 제어모듈(150), 수납부(110), 기능부(120), 배터리(180), 이동부(190)를 포함한다. 도 1의 로봇은 사용 목적이나 분야에 따라 산������, 의���용, 가정용, 군사용 등으로 분류할 수 있다.As illustrated in Fig. 1, the robot (100) includes a control module (150), a storage unit (110), a functional unit (120), a battery (180), and a moving unit (190). The robot of Fig. 1 can be classified into industrial, medical, household, and military use types depending on the purpose or field of use.
로봇(100)은 수납부(110)를 선택적으로 포함한다. 수납부(110)는 사용자에 의해 사물이 수납��거나 적재되는 공간이다. 또한, 로봇은 수납부(110)를 가지고 사용자를 추종하여 이동할 수도 있다. The robot (100) optionally includes a storage compartment (110). The storage compartment (110) is a space where objects are stored or loaded by the user. In addition, the robot may follow the user and move while carrying the storage compartment (110).
기능부(120)는 로봇에게 부여된 소정의 기능을 수행하는 구성요소이다. 청소 기능의 로봇에 있어서 기능부(120)는 청소를 위한 물걸레, 흡입기 등을 포함한다. 배송을 위한 로봇에 있어서 기능부(120)는 수납공간, 수납된 짐을 이동시키는 운반부 등을 포함한다. 보안을 위한 로봇에 있어서 기능부(120)는 안전에 필요한 검사기(공기질 검사, 폭발물 검사 등)를 포함한다. The functional unit (120) is a component that performs a specific function assigned to the robot. In a robot with a cleaning function, the functional unit (120) includes a mop, a vacuum cleaner, etc. for cleaning. In a robot for delivery, the functional unit (120) includes a storage space, a transport unit for moving stored cargo, etc. In a robot for security, the functional unit (120) includes a safety inspection device (air quality inspection, explosive inspection, etc.).
배터리(180)는 로봇(100)이 동작하는데 필요한 전기적 에너지를 제공한다. 이동부(190)는 로봇의 이동 기능을 제공한다. The battery (180) provides the electrical energy required for the robot (100) to operate. The moving part (190) provides the robot's movement function.
로봇은 액츄에이터 또는 모터를 포함하는 이동부(190)를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 이동부에 휠, 브레이크, 프로펠러 등이 포함되어, 이동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.The robot is equipped with a moving part (190) including an actuator or motor, and can perform various physical actions, such as moving the robot joints. In addition, the moving part of the mobile robot includes wheels, brakes, propellers, etc., and can drive on the ground or fly in the air through the moving part.
또한 로봇은 자율주행을 수행할 수 있다. 자율 주행은 스스로 주행하는 기술을 의미하며, 자율 주행 로봇은 사용자의 조작 없이 또는 사용자의 최소한의 조작으로 주행한다.Additionally, robots can perform autonomous driving. Autonomous driving refers to the technology of driving on one's own, and autonomous robots drive without or with minimal user intervention.
예컨대, 자율 주행에는 주행 중인 공간의 다른 장애물과 거리를 유지하는 기술, 어댑티브 크루즈 컨트롤과 같이 속도를 자동으로 조절하는 기술, 정해진 경로를 따라 자동으로 주행하는 기술, 목적지가 설정되면 자동으로 경로를 설정하여 주행하는 기술 등이 모두 포함될 수 있다.For example, autonomous driving can include technologies that maintain a distance from other obstacles in the driving space, technologies that automatically adjust speed such as adaptive cruise control, technologies that automatically drive along a set route, and technologies that automatically set a route and drive when a destination is set.
로봇은 자율 주행을 위해 내연 기관 또는 전기 모터를 구비할 수 있으며 이들은 이동부(190)의 하위 구성요소가 된다. The robot may be equipped with an internal combustion engine or an electric motor for autonomous driving, which become sub-components of the moving part (190).
도 2는 본 발명의 일 실시예에 의한 제어모듈의 세부 구성을 보여준다. Figure 2 shows a detailed configuration of a control module according to one embodiment of the present invention.
제어모듈(150)의 구성요소들은 물리적 위치나 결합 방식에 상관없이 논리적으로 제어모듈의 구성요소이다. The components of the control module (150) are logically components of the control module regardless of their physical location or coupling method.
제어모듈(150)은 로봇이 맵을 생성하는 기능과 맵을 이용하여 로봇의 위치를 추정하는 기능 둘 다 수행할 수 있도록 로봇을 제어한다. The control module (150) controls the robot so that the robot can perform both the function of generating a map and the function of estimating the location of the robot using the map.
또는 제어모듈(150)은 로봇이 맵을 생성하는 기능만 제공할 수 있도록 제어한다. Alternatively, the control module (150) controls the robot to provide only the function of generating a map.
또는 제어모듈(150)은 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능만 제공할 수 있도록 제어한다. 즉, 제어모듈(150)은 로봇이 맵을 생성하거나, 또는 맴을 이용하여 위치를 추정하거나, 혹은 전술한 두 기능 모두를 수행하도록 로봇을 제어할 수 있다. Alternatively, the control module (150) controls the robot so that it can only provide the function of estimating the robot's location using a map. That is, the control module (150) can control the robot so that the robot generates a map, estimates the location using a map, or performs both of the aforementioned functions.
로봇은 로봇이 이동 과정에서 센서들이 획득한 정보를 클라우드 서버에 전송할 수 있다. 센서들의 종류에 대해 살펴본다. Robots can transmit information acquired by sensors during their movement to a cloud server. Let's examine the different types of sensors.
먼저 라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위 또는 그보다 작은 범위 ��의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 센서 데이터의 일 실시예가 된다. First, the LiDAR sensor (220) can sense surrounding objects in two or three dimensions. A two-dimensional LiDAR sensor can sense the location of objects within a 360-degree range or smaller around the robot. LiDAR information sensed at a specific location serves as an example of sensor data.
또는 라이다 센서(220)로 확보한 센서 데이터를 라이다 프레임이라고 지칭할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다. Alternatively, sensor data acquired by a lidar sensor (220) may be referred to as a lidar frame. That is, the lidar sensor (220) senses the distance between an object placed outside the robot and the robot to generate a lidar frame.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 이미지 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 생성한 이미지 정보는 센서 데이터의 일 실시예가 된다. The camera sensor (230) is, for example, a standard camera. To address field-of-view limitations, two or more camera sensors (230) can be used. Images captured from specific locations constitute image information. In other words, the image information generated by the camera sensor (230) by capturing an object placed outside the robot constitutes an example of sensor data.
또는, 카메라 센서(230)로 확보한 센서 데이터를 비주얼 프레임이라고 지칭할 수 있다. 즉, 카메라 센서(230)는 로봇의 외부를 촬영하여 비주얼 프레임을 생성한다.Alternatively, sensor data acquired by the camera sensor (230) may be referred to as a visual frame. That is, the camera sensor (230) captures the exterior of the robot to create a visual frame.
이하 본 발명을 적용하는 로봇(100)은 라이다 센서(220) 또는 카메라 센서(230) 중 어느 하나 또는 둘을 이용하여 SLAM(simultaneous localization and mapping)을 수행한다. The robot (100) applying the present invention below performs SLAM (simultaneous localization and mapping) using one or both of a lidar sensor (220) and a camera sensor (230).
SLAM 과정에서 로봇(100)은 라이다 프레임과 비주얼 프레임을 각각 이용하거나 또는 이들을 결합하여 맵을 생성하거나 위치를 추정할 수 있다. In the SLAM process, the robot (100) can create a map or estimate a location by using the lidar frame and the visual frame separately or by combining them.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(100)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다. The interface unit (290) receives information from the user. It receives various types of information, such as touch input and voice input, from the user and outputs the results. In addition, the interface unit (290) can output a map stored by the robot (100) or output the robot's movement process by overlapping it with the map.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다. Additionally, the interface unit (290) can provide certain information to the user.
제어부(250)는 후술할 맵을 생성하고 이 맵을 기반으로 로봇이 이동하는 과정에서 로봇의 위치를 추정한다. 또는 클라우드 서버와 통신하여 정보를 송수신하고 이를 기반으로 맵을 생성하거나 로봇의 위치를 추정할 수 있다. The control unit (250) generates a map, as described below, and estimates the robot's location based on this map as the robot moves. Alternatively, it may communicate with a cloud server to transmit and receive information, and based on this, create a map or estimate the robot's location.
통신부(280)는 로봇(100)이 다른 ���봇 또는 외부의 클라우드 서버와 통신하여 정보를 송수신할 수 있도록 한다. The communication unit (280) enables the robot (100) to communicate with other robots or an external cloud server to transmit and receive information.
맵 저장부(210)는 로봇이 이동하는 공간에 대한 맵을 저장한다. 특히, 이 맵은 로봇이 자체적으로 작성한 맵이 될 수도 있다. 또는 이 맵은 로봇이 클라우드 서버와 동기화시켜 저장한 맵이 될 수 있다. 맵 저장부(210)는 로봇이 선택적으로 보유할 수 있다. 예를 들어 로봇(100)은 맵을 저장하지 않고 클라우드 서버에 저장된 맵을 이용할 수 있다. The map storage unit (210) stores a map of the space in which the robot moves. Specifically, this map may be a map created by the robot itself. Alternatively, this map may be a map synchronized with a cloud server and stored by the robot. The map storage unit (210) may be optionally maintained by the robot. For example, the robot (100) may utilize a map stored on a cloud server without storing a map.
휠 인코더(Wheel Encoder)(260)는 로봇의 이동부를 구성하는 바퀴의 회전이나 방향 등의 정보를 취합하여 휠 오도메트리 정보를 생성하고 이를 제어부(250)에게 제공한다. 제어부(250)는 휠 인코더(260)가 제공한 정보에 기반하여 이동 거리나 이동 방향 등을 산출할 수 있다. The wheel encoder (260) collects information such as rotation and direction of the wheels that constitute the robot's moving part, generates wheel odometry information, and provides it to the control unit (250). The control unit (250) can calculate the movement distance and movement direction based on the information provided by the wheel encoder (260).
인공지능부(255)에 대해서는 후술한다. The artificial intelligence department (255) will be described later.
한편, 로봇이 맵을 작성하는 과정에서 클라우드 서버가 맵 생성의 일부 기능을 수행할 수 있다. 예를 들어, 로봇의 카메라 센서(230)나 라이다 센서(220)가 취득한 데이터(비주얼 프레임, 라이다 프레임)를 로봇(100)이 클라우드 서버에게 전송하고, 클라우드 서버가 데이터를 누적 저장한 후 맵을 생성할 수 있다. Meanwhile, during the map creation process, a cloud server may perform some map creation functions. For example, the robot (100) may transmit data (visual frames, lidar frames) acquired by the robot's camera sensor (230) or lidar sensor (220) to the cloud server, and the cloud server may accumulate and store the data before generating a map.
즉, 맵 저장부(210)는 로봇이 슬램을 수행하는데 필요한 정보를 저장한다. 그리고, 로봇의 제어부(250)는 카메라 센서(230)가 촬영한 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 ��미지 내에서 확인된 특징적 객체, 그리고 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부(210)에 저장한다.That is, the map storage unit (210) stores information necessary for the robot to perform a slam. In addition, the robot's control unit (250) verifies and extracts characteristic objects from the images captured by the camera sensor (230) and stores the location information where the image was acquired, the characteristic objects identified within the images, and the coordinate information of the characteristic objects within the images in the map storage unit (210).
도 3은 본 발명의 일 실시예에 의한 클라우드 서버의 구성을 보여준다. 맵 저장부(310)는 고품질로 생성된 맵을 ���장한다. 맵 저장부(310)의 맵은 로봇(100)에게 일부 또는 전부 전송될 수 있다. 통신부(380)는 로봇(100)과 통신한다. 이 과정에서 로봇(100) 다수들과 통신부(380)가 통신할 수 있다. Figure 3 illustrates the configuration of a cloud server according to one embodiment of the present invention. The map storage unit (310) stores high-quality generated maps. The maps in the map storage unit (310) can be partially or fully transmitted to the robot (100). The communication unit (380) communicates with the robot (100). During this process, multiple robots (100) can communicate with the communication unit (380).
그리고 인공지능부(355)는 맵을 생성하거나 업데이트하는 과정에서 특징을 추출하거나(Feature Extraction), 또는 추출된 특징을 맵 등과 매칭(Matching)할 수 있다. 서버제어부(350)는 전술한 구성요소를 제어하며, 로봇(100)이 SLAM을 수행하는데 필요한 다양한 정보를 생성하여 로봇(100)에게 제공한다. And the artificial intelligence unit (355) can extract features (Feature Extraction) or match the extracted features with the map, etc. during the process of creating or updating the map. The server control unit (350) controls the aforementioned components and creates various information necessary for the robot (100) to perform SLAM and provides it to the robot (100).
클라우드 서버(300)는 클라우드 시스템을 구성한다. 클라우드 시스템은 다수의 로봇들과 하나 이상의 클라우드 서버(300)로 구성된다. 클라우드 서버는 대용량/고성능 연산 처리가 가능하므로, SLAM을 이용한 고품질의 맵을 빠른 시간 내에 작성할 수 있다. The cloud server (300) constitutes a cloud system. The cloud system comprises multiple robots and one or more cloud servers (300). Because the cloud server is capable of high-capacity/high-performance computational processing, it can quickly create high-quality maps using SLAM.
즉, 클라우드 서버(300)는 높은 컴퓨팅 파워를 이용하여 최대한 많은 정보를 이용한 SLAM을 수행할 수 있다. 그 결과 클라우드 서버(300)가 작성한 맵의 품질은 크게 향상할 수 있다. 통신부(380)가 로봇(100)이 전송한 센서 데이터를 수신하면 서버제어부(350)는 이를 기반으로 특징 추출, 맵 생성과 맵 업데이트 등을 수행하고, 로봇이 키드냅(Kidnap)된 경우 다시 로봇의 위치를 복구하거나(Kidnap recovery) 또는 위치 복구에 필요한 정보를 제공할 수 있다. That is, the cloud server (300) can perform SLAM using as much information as possible by utilizing high computing power. As a result, the quality of the map created by the cloud server (300) can be greatly improved. When the communication unit (380) receives the sensor data transmitted by the robot (100), the server control unit (350) performs feature extraction, map creation, and map update based on the data, and when the robot is kidnapped, it can recover the robot's location (kidnap recovery) or provide information necessary for location recovery.
클라우드 서버(300) 역시 맵 저장부(310)를 포함할 수 있다. 그리고 클라우드 서버(300)는 인공지능부(355)를 포함할 수 있다. The cloud server (300) may also include a map storage unit (310). In addition, the cloud server (300) may include an artificial intelligence unit (355).
통신부(380)는 로봇으로부터 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 수신한다. 그리고 맵 저장부(310)는 로봇이 SLAM을 수행하는 필요한 정보를 저장한다. The communication unit (380) receives images required to perform simultaneous localization and mapping (SLAM) from the robot. The map storage unit (310) stores information required for the robot to perform SLAM.
서버 제어부(350)는 수신�� 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부(310)에 저장한다. The server control unit (350) verifies and extracts characteristic objects from the received image and stores the location information where the image was acquired, the characteristic objects, and the coordinate information of the characteristic objects within the image in the map storage unit (310).
클라우드 서버(300)가 저장한 정보들은 이후 로봇들에게 전송되어 로봇들이 위치 추정을 수행할 수 있도록 한다. The information stored by the cloud server (300) is then transmitted to the robots so that the robots can perform location estimation.
이하, 특징적 객체를 이용하여 맵을 생성하는 상세한 과정을 살펴본다. Below, we will look at the detailed process of creating a map using characteristic objects.
로봇(100)의 제어부(250) 또는 클라우드 서버(300)의 서버제어부(350)는 취득한 센서 데이터 내에서 특징적 객체이거나 특징적 객체가 될 가능성이 높은 특징적 객체 후보를 식별한다. 여기서 센서 데이터는 이미지인 비주얼 프레임 또는 라이다 센서 데이터인 라이다 프레임인 것을 일 실시예로 한다. 카메라 센서(230)가 취득한 이미지(비주얼 프레임)을 중심으로 도 4에서 상세히 살펴본다. The control unit (250) of the robot (100) or the server control unit (350) of the cloud server (300) identifies a characteristic object or a candidate for a characteristic object with a high probability of becoming a characteristic object within the acquired sensor data. In this embodiment, the sensor data is a visual frame, which is an image, or a lidar frame, which is lidar sensor data. The image (visual frame) acquired by the camera sensor (230) will be examined in detail in FIG. 4.
도 4는 본 발명의 일 실시예에 의한 특징적 객체를 선택하는 과정을 보여준다. 도 4의 과정은 로봇(100)의 제어부(250)가 수행하는 내용에 기반하여 설명한다. 설명의 편의를 위해 로봇(100)의 제어부(250)를 중심으로 설명하지만, 도 4의 과정 또는 후술할 내용에서 로봇(100)의 제어부(250)가 수행하는 작업들 또는 제공하는 기능들은 클라우드 서버(300)의 서버제어부(350) 역시 동일하게 수행하거나 제공할 수 있다.Fig. 4 illustrates a process for selecting a characteristic object according to one embodiment of the present invention. The process of Fig. 4 is explained based on the content performed by the control unit (250) of the robot (100). For the convenience of explanation, the description focuses on the control unit (250) of the robot (100). However, the tasks performed or functions provided by the control unit (250) of the robot (100) in the process of Fig. 4 or the content described below can also be performed or provided in the same manner by the server control unit (350) of the cloud server (300).
로봇(100)의 제어부(250)는 취득한 제1센서 데이터에서 객체를 감지한다(S11). 일 실시예로 로봇(100)의 이동부(190)가 로봇을 이동시키는 과정에서 카메라 센서(230)가 이미지를 획득할 수 있으며, 제1센서 데이터는 이미지 데이터를 일 실시예로 한다. The control unit (250) of the robot (100) detects an object from the acquired first sensor data (S11). In one embodiment, the camera sensor (230) may acquire an image while the moving unit (190) of the robot (100) moves the robot, and the first sensor data is image data in one embodiment.
예를 들어 카메라 센서가 획득한 이미지 내에서 제어부(250)는 특징이 될 수 있는 객체를 이미지 내에서 감지한다. 이를 위해, 제어부(250)는 미리 저장된 객체들에 대한 개별 이미지를 참조할 수 있다.For example, the control unit (250) detects objects that can be features within an image acquired by a camera sensor. To this end, the control unit (250) may reference individual images of pre-stored objects.
감지된 객체는 특징적 객체인지를 제어부(250)는 추가적으로 검증할 수 있다(S12). 그리고 제어부(250)는 감지된 객체를 특징적 객체로 설정하여 맵 저장부(210)에 저장한다(S13). The control unit (250) can additionally verify whether the detected object is a characteristic object (S12). Then, the control unit (250) sets the detected object as a characteristic object and stores it in the map storage unit (210) (S13).
이때, 제어부(250)는 특징적 객체의 후보의 주변을 이미지 내의 다른 부분과 구별하는 바운딩 박스(bounding box)에 대한 좌표 정보를 추가로 저장할 수 있다. 그리고 제어부(250)는 객체를 특징적 객체로 포함시킬지 여부를 판단할 수 있다. At this time, the control unit (250) may additionally store coordinate information for a bounding box that distinguishes the periphery of a candidate for a characteristic object from other parts within the image. In addition, the control unit (250) may determine whether to include the object as a characteristic object.
도 4는 맵을 생성하는 과정에서 검색 속도와 정확도를 높이기 위해 맵을 구성하는 이미지 내에서 특징적 객체를 추출하는 과정을 제시한다. 이를 위해 제어부(250)는 이미지 내에서 하나 이상의 객체를 감지하여(S11), 감지된 객체가 특징적 객체에 해당하는지 검증한다(S12). 그리고 제어부(250)는 검증된 결과에 따라 객체를 특징적 객체로 맵저장부(210)에 저장한다(S13). Figure 4 presents a process for extracting characteristic objects from images forming a map to increase search speed and accuracy during the map generation process. To this end, the control unit (250) detects one or more objects within the image (S11) and verifies whether the detected objects correspond to characteristic objects (S12). Then, the control unit (250) stores the objects as characteristic objects in the map storage unit (210) based on the verification results (S13).
특징적 객체를 맵 저장부(210)에 저장하면, 후속하여 위치 추정을 할 경우에 로봇이 이동 과정에서 촬영한 이미지 전체를 검색 쿼리로 입력하지 않고, 이미지 내의 특정한 객체를 검색 쿼리로 입력할 수 있다. 이 경우 이미지 검색을 하는데 있어 시간을 단축시키고 검색의 정확도를 높일 수 있다. 그 결과 위치 추정의 속도와 정확도가 증가한다. By storing characteristic objects in the map storage unit (210), when performing subsequent location estimation, rather than entering the entire image captured during the robot's movement as a search query, a specific object within the image can be entered as a search query. This reduces the time required for image searches and improves search accuracy. As a result, the speed and accuracy of location estimation are increased.
도 5는 본 발명의 일 실시예에 의한 특징적 객체 검증 과정을 보여준다. 도 5의 과정은 로봇(100)의 제어부(250)가 수행하는 내용에 기반하여 설명한다. 도 5의 과정은 클라우드 서버(300)의 서버제어부(350) 역시 동일하게 수행할 수 있다. Figure 5 illustrates a characteristic object verification process according to one embodiment of the present invention. The process of Figure 5 is explained based on the content performed by the control unit (250) of the robot (100). The server control unit (350) of the cloud server (300) can also perform the process of Figure 5 in the same manner.
제어부(250)는 센서데이터, 예를 들어 이미지 내에서 고정 객체와 동적 객체를 구별한다. 그리고 근거리 객체와 원거리 객체를 구별하여 객체를 선택한다(S16). 선택 과정에서 각각의 객체에 대해 점수를 부여할 수 있다. 그리고 제어부(250)는 특징적 객체가 될 가능성이 높은 객체들을 특징적 객체로 선택한다. 또는, 정확도를 높이기 위해 제어부(250)는 S17~S19 단계를 선택적으로 수행할 수 있다. The control unit (250) distinguishes between fixed and dynamic objects within sensor data, such as images. It then selects objects by distinguishing between near and far objects (S16). During the selection process, a score may be assigned to each object. Furthermore, the control unit (250) selects objects with a high probability of being characteristic objects as characteristic objects. Alternatively, to enhance accuracy, the control unit (250) may selectively perform steps S17 to S19.
S16은 이미지 내에서 추출된 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 제어부(250)가 확인하는 실시예를 제시한다. 그리고 제어부(250)는 고정된 객체인 경우에만 이를 특징적 객체로 판단하는 실시예이다. 이는 맵에 저장되는 이미지와 특징적 객체는 다음 번 로봇이 이동하는 과정에서 촬영한 이미지 및 여기에서 추출된 특징적 객체와 비교할 대상이 된다. S16 presents an embodiment in which the control unit (250) determines whether each object extracted from an image is a dynamic object or a fixed object. Furthermore, the control unit (250) determines a fixed object as a characteristic object only if the object is a dynamic object. This means that the image and characteristic object stored in the map are compared with the image captured during the next robot movement and the characteristic object extracted from the image.
따라서, 해당 공간 내에 일시적으로만 머무르게 되는 사람, 자동차 등은 동적인 객체이므로 제어부(250)는 이들을 특징적 객체로 저장할 필요가 없다. Accordingly, people, cars, etc. that only temporarily stay within the space are dynamic objects, so the control unit (250) does not need to store them as characteristic objects.
또한, S16은 이미지 내에서 추출된 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 제어부(250)가 확인한다. 그리고 제어부(250)는 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 객체들의 특징적 객체에 대한 적합도를 산출한다. Additionally, S16 determines whether each object extracted from the image is positioned close to the robot or far away from it through the control unit (250). Furthermore, the control unit (250) calculates the fitness for the characteristic objects of the objects based on the order in which they are positioned closest to the robot among one or more objects.
이 역시 맵에 저장되는 이미지와 특징적 객체의 정확도를 높이기 위함이다. 멀리 배치된 객체는 이미지 내에서의 정확도가 낮다. 따라서, 가까이 배치된 객체를 특징적 객체로 저장하는 것이 후속하는 위치 추정에 유리하다. 따라서, S16에서는 고정되고 가까이 있는 객체들이 특징적 객체로 선정된다. This is also intended to improve the accuracy of images and characteristic objects stored on the map. Objects placed farther away have lower accuracy within the image. Therefore, storing objects placed closer together as characteristic objects is advantageous for subsequent location estimation. Therefore, in S16, fixed and nearby objects are selected as characteristic objects.
제어부(250)는 선택된 객체들 중에서 이전의 특징적 객체들과의 유사도를 산출한다(S17). 또한 제어부(250)는 특징적 객체 범용 데이터베이스에 저장된 객체와 유사도를 산출한다(S18). 그리고 제어부(250)는 산출된 결과에 따라 특징적 객체의 검증을 완료한다(S19). The control unit (250) calculates the similarity between the selected objects and previous characteristic objects (S17). In addition, the control unit (250) calculates the similarity with objects stored in the characteristic object universal database (S18). Then, the control unit (250) completes the verification of the characteristic object based on the calculated results (S19).
여기서 S17 및 S18은 S16과 독립적으로 진행될 수 있다. 즉, 제어부(250)는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 이미지 내에서 감지된 객체들 각각과 비교하여 유사도를 산출�� 수 있다. 그리고 제어부(250)는 유사도에 따라 객체들의 특징적 객체에 대한 적합도를 산출할 수 있다. 적합도에 따라 객체들은 특징적 객체로 저장될 수 있다. Here, S17 and S18 can be performed independently of S16. That is, the control unit (250) can calculate a similarity by comparing each of the objects detected within the image with objects stored in the database or previously selected characteristic objects. Furthermore, the control unit (250) can calculate a suitability of the objects to the characteristic object based on the similarity. Depending on the suitability, the objects can be stored as characteristic objects.
여기서 S17 단계는 동일한 맵을 생성하는 과정에서 이전에 제어부(250)가 선택한 특징적 객체들과 비교하는 과정을 의미한다. 예를 들어, 제어부(250)는 맵을 생성하는 과정에서 각각 상이한 제1공간, 제2공간, 제3공간에서 이미지를 취득한다. 그리고 제1공간, 제2공간의 이미지에 대해 각각 제1특징적 객체, 제2특징적 객체를 설정하여 맵 저장부(210)에 저장한 상태이다. Here, step S17 refers to the process of comparing the characteristic objects previously selected by the control unit (250) during the process of generating the same map. For example, the control unit (250) acquires images from different first spaces, second spaces, and third spaces during the process of generating the map. Then, the first characteristic object and the second characteristic object are set for the images of the first space and the second space, respectively, and stored in the map storage unit (210).
그리고 제어부(250)는 제3공간에서 취득한 이미지에서 제3특징적 객체를 선택한다. 그리고 앞의 제1특징적 객체, 제2특징적 객체와 유사도를 비교한다. And the control unit (250) selects a third characteristic object from the image acquired in the third space. And compares the similarity with the first characteristic object and the second characteristic object.
만약 제1특징적 객체와 유사도가 높은 경우, 중요한 특징적 객체인 것으로 판단할 수 있다. If the similarity with the first characteristic object is high, it can be judged to be an important characteristic object.
한편, 유사도가 낮은 경우, 해당 공간에서만 확인 가능한 특징적 객체인 것으로 판단할 수 있다. On the other hand, if the similarity is low, it can be determined that it is a characteristic object that can only be confirmed in that space.
따라서, 제어부(250)는 유사도가 높은 경우, 제1공간과 제3공간의 차이를구분할 수 있는 추가적인 특징적 객체(제4특징적 객체)를 제3공간의 이미지 내에서 확보하여 제3특징적 객체와 제4특징적 객체를 맵 저장부(210)에 저장할 수 있다. Accordingly, when the similarity is high, the control unit (250) can secure an additional characteristic object (fourth characteristic object) that can distinguish the difference between the first space and the third space within the image of the third space and store the third characteristic object and the fourth characteristic object in the map storage unit (210).
또한, 제어부(250)는 유사도가 낮은 경우, 제3특징적 객체가 제1공간 혹은 다른 공간과 제3공간을 구분할 수 있는 특징적 객체로 맵 저장부(210)에 저장할 수 있다.Additionally, if the similarity is low, the control unit (250) can store the third characteristic object in the map storage unit (210) as a characteristic object that can distinguish the third space from the first space or another space.
한편, 제어부(250)는 특징적 객체를 저장하는 데이터베이스(특징적 객체 범용 데이터베이스)에 저장된 객체와 제3특징적 객체를 비교할 수 있다(S18). 특징적 객체 범용 데이터베이스란, 맵을 생성하는 공간이나 그와 유사한 종류의 공간에서 특징이 될 수 있는 객체들에 대한 이미지들을 저장한 데이터베이스이다. Meanwhile, the control unit (250) can compare objects stored in a database (a universal database of characteristic objects) that stores characteristic objects with a third characteristic object (S18). The universal database of characteristic objects is a database that stores images of objects that can be characteristic in a space where a map is created or a similar type of space.
예를 들어, 맵을 생성하려는 공간이 도시인 경우, 특징적 객체 범용 데이터베이스는 도시에서 슬램을 수행하는데 필요한 특정한 간판들에 대한 이���지를 저장할 수 있���. 예를 들어 특���적 객체 범용 데이터베이스는 도시 내에 다수 분포된 커피숍, 백화점 등의 간판의 이미지라거나, 공중전화 부스 이미지, 혹은 편의점의 간판 이미지를 저장할 수 있다. For example, if the space you're creating a map for is a city, a feature-specific object database could store images of specific signage needed to perform SLAM within the city. For example, a feature-specific object database could store images of signs for numerous coffee shops, department stores, public phone booths, or convenience store signs.
그리고 제어부(250)는 저장된 이미지와 현재 촬영한 영상 내의 특징적 객체 사이의 유사도를 산출한다. 만약 유사도가 높다면 영상 내의 특징적 객체의 검증이 이루어진 것으로 판단한다. The control unit (250) then calculates the similarity between the stored image and the characteristic object within the currently captured image. If the similarity is high, it is determined that the characteristic object within the image has been verified.
산출된 결과에 따라 특징적 객체에 대한 검증이 완료되면 검증 결과를 반영하여 해당 영상의 특징적 객체로 맵 저장부(210)에 저장한다(S19).When verification of a characteristic object is completed based on the produced result, the verification result is reflected and stored as a characteristic object of the corresponding image in the map storage unit (210) (S19).
한편, 도 5와 같은 과정에서 관리자가 특징적 객체의 후보들 중에서 어느 하나를 선택할 수 있다. 예를 들어, 이미지 내에서 감지된 객체가 특징적 객체에 해당하는지에 대한 검증 방식은 다양하게 이루어질 수 있다. Meanwhile, in a process similar to that shown in Figure 5, an administrator can select one of the candidate characteristic objects. For example, various methods can be used to verify whether an object detected in an image corresponds to a characteristic object.
일 실시예로, 제어부(250)가 인터페이스부(290)를 제어하여, 인터페이스부(290)가 이미지 상에서 감지된 객체와 이 객체의 주변에 바운딩 박스를 출력한다. 그리고 관리자로부터 특정 객체나 특정 바운딩 박스에 대한 선택 정보가 인터페이스부(290)에 입력되면 제어부(250)는 선택된 객체 또는 선택된 바운딩 박스에 포함된 객체를 특징적 객체로 설정할 수 있다.In one embodiment, the control unit (250) controls the interface unit (290) so that the interface unit (290) outputs an object detected on an image and a bounding box around the object. When selection information regarding a specific object or a specific bounding box is input to the interface unit (290) from an administrator, the control unit (250) can set the selected object or the object included in the selected bounding box as a characteristic object.
또는 제어부(250)는 이미지 내의 객체들 중에서 동적인 객체들(사람, 자동차, 자전거, 동물 등)은 제외시킬 수 있다. 반면, 제어부(250)는 이미지 내의 객체들 중에서 고정된 객체들(공중전화박스, 건물 외벽의 문양, 간판 등)을 특징적 객체로 판단한다.Alternatively, the control unit (250) may exclude dynamic objects (people, cars, bicycles, animals, etc.) from the objects within the image. On the other hand, the control unit (250) determines fixed objects (public telephone booths, patterns on building exterior walls, signs, etc.) from the objects within the image as characteristic objects.
또는 제어부(250)는 이미지 내에서 가까이 배치된 객체를 멀리 배치된 객체보다 우선적으로 특징적 객체로 판단한다. Alternatively, the control unit (250) determines an object placed close to the image as a characteristic object with priority over an object placed far away.
도 6은 본 발명의 일 실시예에 의한 특징적 객체의 주변에 바운딩 박스의 배치를 보여준다. 앞서 살펴본 과정에 따라 제어부(250)는 도 6과 같이 해당 영상 내에서 특징적 객체를 선별한다. Figure 6 illustrates the arrangement of bounding boxes around a characteristic object according to one embodiment of the present invention. Following the process described above, the control unit (250) selects a characteristic object within the image, as shown in Figure 6.
1차적으로 제어부(250)는 21, 22, 23, 24가 지시하는 영역을 특징적 객체의 후보로 판단한다. First, the control unit (250) determines the areas indicated by 21, 22, 23, and 24 as candidates for characteristic objects.
그리고 각 후보에 대해 제어부(250)는 도 5와 같이 판단을 수행한다. 그 결과 제어부(250)는 21에 대해 사람(동적인 영역)으로 판단하고, 22는 차량(동적 영역)으로 판단한다.And for each candidate, the control unit (250) performs a judgment as shown in Fig. 5. As a result, the control unit (250) judges 21 as a person (dynamic area) and 22 as a vehicle (dynamic area).
한편 제어부(250)는 24는 근접한 객체로 공중전화 부스이며 23은 멀리 배치된 객체로 건물의 외관으로 판단한다. 그 결과 제어부(250)는 특징적 객체의 후보들(21, 22, 23, 24) 중에서 근접하며 정적인 객체인 24를 특징적 객체로 결정한다. 그리고 공중전화 부스의 경계선을 포함하도록 바운딩 박스를 설정할 수 있다. Meanwhile, the control unit (250) determines that 24 is a nearby object, a public telephone booth, and that 23 is a distant object, the exterior of a building. As a result, the control unit (250) determines that 24, a nearby and static object among the candidate characteristic objects (21, 22, 23, 24), is the characteristic object. In addition, the bounding box can be set to include the boundary of the public telephone booth.
제어부(250)는 바운딩 박스와 해당 영상을 하나의 이미지로 저장하거나 혹은 분리하여 저장할 수 있다. 바운딩 박스는 영상 내의 좌표 값으로 결정될 수 있다. 따라서, 제어부(250)는 영상을 저장하고, 바운딩 박스에 대한 좌표 값을 별도로 저장할 수 있다.The control unit (250) can store the bounding box and the corresponding image as a single image or separately. The bounding box can be determined by coordinate values within the image. Accordingly, the control unit (250) can store the image and separately store the coordinate values for the bounding box.
바운딩 박스는 향후 로봇이 위치 추정 과정에서 취득한 이미지 내의 특징적 객체를 맵 저장부에서 검색하여 비교하는 과정에서 맵에 저장된 이미지와 맵에 저장된 특징적 객체의 위치를 파악하는데 필요하다. 따라서 맵 저장부는 이미지 내에서 특징적 객체의 바운딩 박스의 위치와 크기를 나타내는 좌표 정보를 저장할 수 있다. Bounding boxes are necessary for identifying the locations of images and characteristic objects stored on the map during the robot's future position estimation process, when the robot searches for and compares characteristic objects within the image from the map storage unit. Therefore, the map storage unit can store coordinate information indicating the location and size of the bounding boxes of characteristic objects within the image.
예를 들어, 맵 저장부(210)는 이미지 내에서 바운딩 박스의 좌상단 좌표 및 우하단 좌표를 저장할 수 있다. 또는 맵 저장부(210)는 이미지 내에서 바운딩 박스의 좌상단 좌표(또는 우하단 좌표 등 특정 꼭지점 좌표) 및 폭/높이 정보를 저장할 수 있다. For example, the map storage unit (210) may store the upper left and lower right coordinates of the bounding box within the image. Alternatively, the map storage unit (210) may store the upper left coordinates (or specific vertex coordinates such as the lower right coordinates) and width/height information of the bounding box within the image.
한편, 로봇은 하나의 영상 내에서 특징적 객체를 판단할 수도 있지만, 둘 이상의 연속하는 영상들 중에서 특징적 객체를 판단할 수도 있다. Meanwhile, the robot can determine a characteristic object within a single image, but it can also determine a characteristic object among two or more consecutive images.
도 7은 본 발명의 일 실시예에 의한 로봇이 특징적 객체를 판단하는 과정을 보여준다. 도 7은 로봇의 제어부(250)가 제1시점에 획득한 제1이미지 및 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는 과정을 보여준다.Figure 7 illustrates a process by which a robot, according to one embodiment of the present invention, determines a characteristic object. Figure 7 illustrates a process by which the robot's control unit (250) verifies an object commonly included in a first image acquired at a first time point and a second image acquired at a second time point subsequent to the first time point as a characteristic object.
26은 로봇(100)이 이동하는 과정에서 획득한 4장의 이미지 및 해당 이미지 내의 특징적 객체(28)를 보여준다. 이동하는 과정에서 시간 t는 1 내지 4의 변화를 가진다. t=1인 시점에서 획득한 이미지는 image1이며, t=2인 시점에서 획득한 이미지는 image2이며, t=3인 시점에서 획득한 이미지는 image3이며, t=4인 시점에서 획득한 이미지는 image4이다. 26 shows four images acquired during the movement of the robot (100) and characteristic objects (28) within the images. During the movement, time t varies from 1 to 4. The image acquired at time t=1 is image1, the image acquired at time t=2 is image2, the image acquired at time t=3 is image3, and the image acquired at time t=4 is image4.
그리고 26은 각 이미지 내에서의 특징적 객체(28)의 위치가 변화하는 것을 보여준다. 이는 로봇(100)이 이동하는 과정에서 특징적 객체와 로봇 사이의 상대적 위치가 달라지기 때문이다. And 26 shows that the position of the characteristic object (28) within each image changes. This is because the relative position between the characteristic object and the robot changes as the robot (100) moves.
따라서, 로봇(100)은 4 장의 이미지에서 공통으로 등장하는 객체(28)를 특징적 객체로 판단하여 저장한다. Accordingly, the robot (100) judges an object (28) that appears commonly in four images as a characteristic object and stores it.
이때, 맵 저장부(210)에 저장하는 방식은 27과 같다. 27은 각 시점에 대한 SLAM 포즈 그래프(SLAM pose-graph)의 예시이다. 포즈 그래프는 27과 같이 각 시점에 대응하는 노드들(N1~N9)과 각 노드들 사이의 에지를 포함한다. 포즈 그래프의 각 노드(N1~N4)에는 각각 3개의 정보가 저장된다. At this time, the method of storing in the map storage unit (210) is as shown in 27. 27 is an example of a SLAM pose graph for each time point. The pose graph includes nodes (N1 to N9) corresponding to each time point and edges between each node, as shown in 27. Three pieces of information are stored in each node (N1 to N4) of the pose graph.
일 실시예로, t=1 시점에서 획득한 이미지, 즉 로우 이미지(raw image)가 저장되고, 로우 이미지 내의 특징적 객체(feature)가 별도로 저장된다. 맵 저장부(210)에 저장되는 특징적 객체는 로우 이미지 내에서 특징적 객체의 외곽선을 따라 추출된 이미지로 저장될 수 있다. In one embodiment, an image acquired at time t=1, i.e., a raw image, is stored, and a characteristic object (feature) within the raw image is stored separately. The characteristic object stored in the map storage unit (210) may be stored as an image extracted along the outline of the characteristic object within the raw image.
그리고 ���운딩 박스 좌표 역시 ��� 저장부에 저장될 수 있다. 이는 특징적 객체가 로우 이미지 내에 어느 위치에 있는지를 알려준다. The bounding box coordinates can also be stored in the map storage, indicating where the characteristic object is located within the raw image.
28의 특징적 객체가 촬영된 포즈의 저장을 위해, 각 시점 별로 노드(N1~N4)에 대응하여 맵 저장부(210)는 특징적 객체와 로우 이미지, 그리고 바운딩 박스 좌표를 저장한다. In order to store the poses in which the 28 characteristic objects were photographed, the map storage unit (210) stores the characteristic objects, raw images, and bounding box coordinates corresponding to nodes (N1 to N4) for each time point.
각 시점(t=1~4) 사이의 노드들 사이의 에지에는 각 노드 사이의 로봇의 이동 과정에서 생성된 휠 오도메트리, 또는 다른 센서를 통해 획득한 정보가 저장될 수 있다. The edges between nodes between each time point (t=1 to 4) can store wheel odometry generated during the robot's movement between each node, or information acquired through other sensors.
마찬가지로 로봇(100)은 다른 공간의 다른 시점(t=k~ t=k+2)에서 이미지를 획득하고 전술한 과정과 동일한 방식으로 새로운 특징적 객체(29)를 추출하고, 맵 저장부에 저장할 수 있다. Likewise, the robot (100) can acquire images at different points in space (t=k~ t=k+2), extract new characteristic objects (29) in the same manner as the aforementioned process, and store them in the map storage.
29는 새로 확인된 특징적 객체이다. 마찬가지로 제어부(250)는 특징적 객체가 확인된 위치 및 이미지 정보를 맵 저장부(210)에 저장한다. 제어부(250)는 N7 내지 N9에서 특징적 객체(29) 및 로우 이미지(image_k~image_k2), 그리고 로우 이미지 내의 특징적 객체(29)의 위치를 알려주는 바운딩박스 좌표를 맵 저장부(210)에 저장한다. 29 is a newly identified characteristic object. Similarly, the control unit (250) stores the location and image information where the characteristic object is identified in the map storage unit (210). The control unit (250) stores the characteristic object (29) and the raw images (image_k to image_k2) from N7 to N9, and the bounding box coordinates indicating the location of the characteristic object (29) within the raw images in the map storage unit (210).
도 7의 27과 같이 저장된 정보들은 이후 로봇(100)이 이동하는 과정에서 획득한 이미지들과 비교의 대상이 된다. The information stored as in 27 of Fig. 7 is compared with the images acquired during the movement of the robot (100).
도 7은 매핑 과정에 해당한다. 이 과정에서 특징적 객체가 확인된 첫번째 이미지(t=1 또는 t=k)들에서 제어부(250)는 객체 감지(object detection) 방법을 통해서 특징적 객체 또는 특징적 객체가 될 수 있는 후보 영역을 결정한다. 이 과정에서 객체 감지를 위한 실시예로 "YOLOv3", "Mask R-CNN" 등을 적용할 수 있다. 특징적 객체가 될 수 있는 후보 영역이 선정되면, 제어부(250)는 도 5에 제시된 바와 같이 특징적 객체에 대한 검증을 수행하여 후보 영역 중에서 맵 저장부(210)에 저장할 특징적 객체를 선택한다.Fig. 7 corresponds to the mapping process. In this process, the control unit (250) determines the characteristic object or candidate regions that can be the characteristic object through an object detection method in the first images (t=1 or t=k) in which the characteristic object is confirmed. In this process, "YOLOv3", "Mask R-CNN", etc. can be applied as embodiments for object detection. Once the candidate regions that can be the characteristic object are selected, the control unit (250) performs verification on the characteristic object as shown in Fig. 5 and selects the characteristic object to be stored in the map storage unit (210) among the candidate regions.
또는 인터페이스부(290)가 후보 영역을 표시하는 후보-바운딩 박스(candidate bounding boxes)들을 출력한다. 그리고 관리자가 이들 출력된 박스들 중에서 특징적 객체에 적합한 박스를 선택할 수 있다. Alternatively, the interface unit (290) outputs candidate bounding boxes indicating candidate areas. Then, the administrator can select a box suitable for a characteristic object from among these output boxes.
또는 관리자가 별도의 선택을 하지 않아도, 인터페이스부(290)는 이미지에서 특징적 객체로 저장하는 영역을 바운딩 박스로 표시하여 로봇(100)의 관리자가 맵이 생성되는 과정 및 특징적 객체가 저장되는 과정을 확인할 수 있다. Alternatively, even if the administrator does not make a separate selection, the interface unit (290) displays the area to be saved as a characteristic object in the image as a bounding box so that the administrator of the robot (100) can check the process of creating a map and saving a characteristic object.
특징적 객체가 이미지 내에 다수 확인될 경우, 도 5와 같이, 이미지 내의 위치나 객체 자체가 가지는 동적 성질 또는 고정성 등에 기반하여 제어부(250)가 특징적 객체를 선별할 수 있다. 또한, 제어부(250)는 과거에 맵 생성 과정에서 선택되었거나, 특징적 객체 범용 데이터베이스에 저장된 이미지와 유사도가 높아 맵 내에서 자주 사용되는 특징적 객체에 대한 이력을 맵 저장부(210) 또는 별도의 저장매체에 저장할 수 있다. 그리고 제어부(250)는 특징적 객체로 적합한 이미지 내의 일부 영역을 특징적 객체로 저장한다. When a number of characteristic objects are identified within an image, as shown in FIG. 5, the control unit (250) can select the characteristic objects based on the location within the image or the dynamic or fixed properties of the objects themselves. In addition, the control unit (250) can store a history of characteristic objects that are frequently used within the map due to their high similarity to images selected in the past during map creation or stored in a general database of characteristic objects, in the map storage unit (210) or a separate storage medium. In addition, the control unit (250) stores a portion of the image suitable as a characteristic object as a characteristic object.
또는 관리자가 바운딩 박스를 선택할 수 있도록, 인터페이스부(290)는 보다 유용한 특징적 객체를 추천할 수 있다. 앞서 도 6에서 24의 바운딩 박스를 더 굵게 또는 더 명확한 선으로 출력하여 관리자가 24의 바운딩 박스를 선택할 수 있도록 유도할 수 있다. Alternatively, the interface unit (290) may recommend more useful characteristic objects to enable the administrator to select a bounding box. The bounding box of Figure 24 in Figure 6 may be output with a thicker or clearer line to encourage the administrator to select the bounding box of Figure 24.
첫번째 이미지(t=1 또는 t=k)들에서 특징적 객체가 추출되면, 후속하는 이미지들(t=2, 3, …, 또는 t=k+1, k+2, …)에서 제어부(250)는 특징적 객체를 다중 객체 트래킹 방법(multiple-object tracking method)을 이용하여 특징적 객체의 다음 번 위치를 예측할 수 ���다. 그리고 예측된 위치에서 인터페이스부(290)가 바운딩 박스를 출력할 수 있다. 또는 자동으로 제어부(250)가 예측된 위치의 영역을 특징적 객체로 저장할 수 있다. When a characteristic object is extracted from the first image (t=1 or t=k), the control unit (250) can predict the next location of the characteristic object in subsequent images (t=2, 3, …, or t=k+1, k+2, …) using a multiple-object tracking method. Then, the interface unit (290) can output a bounding box at the predicted location. Alternatively, the control unit (250) can automatically store the area of the predicted location as a characteristic object.
다중 객체 트래킹 방법으로는 SORT(Simple Online and Realtime Tracking) 또는 POI(Person of Interest) 방법을 사용할 수 있다. 그리고 출력된 바운딩 박스가 실제 특징적 객체의 주변을 벗어날 경우 관리자가 인터페이스부(290)를 터치하여 수정할 수 있다. The Simple Online and Realtime Tracking (SORT) or Person of Interest (POI) method can be used for multi-object tracking. If the output bounding box deviates from the actual characteristic object's perimeter, the administrator can touch the interface (290) to correct it.
도 8은 본 발명의 일 실시예에 의한 로봇이 이동 과정에서 획득한 이미지를 맵 저장부에 저장된 이미와 비교하는 실시예를 보여준다. 31은 로봇이 이미지를 획득하여 특징적 객체가 추출된 결과이다. 32는 로봇이 맵 저장부에 저장된 정보와 비교하여 현재 위치를 확인하는 과정이다. Figure 8 illustrates an example of comparing an image acquired by a robot during a movement process according to one embodiment of the present invention with an image stored in a map storage unit. Figure 31 shows the result of the robot acquiring the image and extracting a characteristic object. Figure 32 shows the process of the robot confirming its current location by comparing it with the information stored in the map storage unit.
로봇(100)은 image_New를 획득한다. 로봇(100)은 획득한 이미지 내에서 특징적 객체를 30과 같이 구분한다. 또한 로봇(100)은 특징적 객체(30)가 image_New 내의 위치 좌표를 추출할 수 있다.The robot (100) obtains image_New. The robot (100) distinguishes a characteristic object, such as 30, within the obtained image. In addition, the robot (100) can extract the location coordinates of the characteristic object (30) within image_New.
로봇(100)은 추출된 특징적 객체(30)를 맵 저장부에서 검색한다. 앞서 도 7에서 특징적 객체는 별도로 저장하므로 맵 저장부(210)에 저장된 특징적 객체들과 30을 비교할 수 있다. 비교 결과 로봇은 N8에 저장된 특징적 객체(35)가 30과 동일한 것으로 검색하였다. 그리고 로봇(100)은 검색된 특징적 객체(35)의 바운딩 박스 좌표를 추출할 수 있다. The robot (100) searches for the extracted characteristic object (30) in the map storage. As shown in FIG. 7, the characteristic object is stored separately, so 30 can be compared with the characteristic objects stored in the map storage (210). As a result of the comparison, the robot finds that the characteristic object (35) stored in N8 is identical to 30. In addition, the robot (100) can extract the bounding box coordinates of the searched characteristic object (35).
그리고 로봇(100)은 N8 노드의 바운딩 박스 좌표와 image_New 내의 특징적 객체(30)의 위치 좌표를 비교한 결과 로봇(100)은 현재 위치가 맵 저장부에 저장된 N8 노드인 것으로 판단한다. And as a result of comparing the bounding box coordinates of the N8 node and the location coordinates of the characteristic object (30) in image_New, the robot (100) determines that the current location is the N8 node stored in the map storage.
도 7 및 도 8에 설명한 과정에서 로봇(100)은 맵을 생성하고 특징적 객체를 저장하며, 이후 슬램 과정에서 로봇의 위치를 특징적 객체에 기반하여 확인할 수 있다. In the process described in FIGS. 7 and 8, the robot (100) creates a map and stores characteristic objects, and then, in the slam process, the location of the robot can be confirmed based on the characteristic objects.
도 9는 본 발명의 일 실시예에 의한 특징적 객체를 이용하여 맵 저장부에서 포즈 정보를 산출하는 로컬라이제이션 과정을 보여준다. Figure 9 shows a localization process for generating pose information from a map storage unit using a characteristic object according to one embodiment of the present invention.
로봇(100)의 카메라 센서(230)가 이���지를 획득한다(S35). 그리고 제어부(250)는 획득한 이미지에서 쿼리 이미지(query image)를 생성한다(S36). 쿼리 이미지란 맵 저장부(210)에 저장된 이미지들과 비교하기 위한 것으로 카메라 센서(230)가 획득한 이미지의 일부를 의미한다. 쿼리 이미지의 일 실시예로 카메라 센서(230)가 획득한 이미지에서 특징적 객체를 추출한 이미지를 포함한다. The camera sensor (230) of the robot (100) acquires an image (S35). Then, the control unit (250) generates a query image from the acquired image (S36). The query image refers to a portion of the image acquired by the camera sensor (230) for comparison with the images stored in the map storage unit (210). One example of the query image includes an image in which a characteristic object is extracted from an image acquired by the camera sensor (230).
제어부(250)는 맵 저장부(210) 내에서 쿼리 이미지와 유사한 후보 이미지를 추출한다(S37). 일 실시예로, 제어부(250)는 쿼리 이미지가 생성되면, VocTree(Vocabulary Tree)와 같은 클러스터링(clustering) 방법을 이용하여 쿼리 이미지와 유사한 후보 이미지들(candidate images)을 추출한다. The control unit (250) extracts candidate images similar to the query image from the map storage unit (210) (S37). In one embodiment, when a query image is generated, the control unit (250) extracts candidate images similar to the query image using a clustering method such as VocTree (Vocabulary Tree).
그리고 제어부(250)는 후보 이미지들 중에서 쿼리 이미지 및 바운딩 박스의 영역을 비교하여 가장 유사하다고 판단된 이미지에 해당하는 노드의 정보, 즉 포즈 정보를 산출한다. 도 9의 과정은 로컬라이제이션(localization), 즉 위치 추정의 과정에 해당한다. The control unit (250) then compares the query image and the bounding box area among the candidate images and calculates the node information, i.e., pose information, corresponding to the image determined to be most similar. The process of Fig. 9 corresponds to localization, i.e., the process of position estimation.
특징적 객체에 기반한 SLAM을 수행할 경우, 이미지의 유사성으로 위치 확인에서 오류가 발생하는 것을 방지하여 SLAM의 정확도를 높일 수 있다. When performing SLAM based on characteristic objects, the accuracy of SLAM can be improved by preventing errors in location confirmation due to image similarity.
도 10은 본 발명의 일 실시예에 의한 연속 촬영된 이미지에서 로봇이 객체의 이동을 감지하여 특징적 객체를 판단하는 과정을 보여준다. Figure 10 shows a process in which a robot detects movement of an object in continuously captured images according to one embodiment of the present invention and determines a characteristic object.
제어부(250)는 도 7에 도시된 바와 같이, 일정한 속도로 이동하며 주변 이미지를 촬영한다. 따라서 두 장의 연속된 이미지 내에는 동일한 객체가 촬영될 가능성이 높으며 도 7은 이러한 객체를 추적하여 특징적 객체로 저장하는 실시예를 보여주었다. As illustrated in FIG. 7, the control unit (250) moves at a constant speed and captures surrounding images. Therefore, there is a high probability that the same object will be captured in two consecutive images, and FIG. 7 illustrates an embodiment of tracking such objects and storing them as characteristic objects.
한편, 제어부(250)는 두 장 이상의 연속된 이미지에서 객체들을 감지한 후, 두 이미지 내의 객체들의 위치 변화와 로봇의 이동 거리를 반영하여 두 이미지 내의 객체들이 동일한 객체인지를 판단할 수 있다. Meanwhile, the control unit (250) can detect objects in two or more consecutive images, and then determine whether the objects in the two images are the same object by reflecting the change in the position of the objects in the two images and the movement distance of the robot.
도 10에서 제1시점(t=1)에서 촬영된 이미지(41)는 하나의 객체(51, 제1객체)을 포함한다. 그리고 제2시점(t=2)에서 촬영된 이미지의 제1실시예는 42이다. 42가 지시하는 이미지에서 점선은 제1이미지(41)에서의 제1객체(51)의 위치를 표시한 것이다. In Fig. 10, an image (41) captured at a first time point (t=1) includes one object (51, first object). And a first embodiment of an image captured at a second time point (t=2) is 42. In the image indicated by 42, the dotted line indicates the position of the first object (51) in the first image (41).
반면, 제2이미지(42)에서의 객체(52, 제2객체)는 51의 위치에서 "dist1" 크기만큼 수평 이동하였다. 제2이미지(42)에서의 제2객체(52)와 제1이미지(41)에서의 제1객체(51)의 유사도가 기준 이상이며, "dist1"이라는 변화가 로봇의 이동 거리에 대응하는 정도의 크기라면, 제어부(250)는 제2이미지(42)에서의 제2객체(52)와 제1이미지(41)에서의 제1객체(51)가 동일한 객체로 판단한다. 그리고 제어부(250)는 이 두 객체(51, 52)를 특징적 객체인지 검증한다. 검증 결과 제어부(250)는 해당 객체를 특징적 객체로 맵에 저장할 수 있다. On the other hand, the object (52, second object) in the second image (42) has moved horizontally by the size "dist1" from the position 51. If the similarity between the second object (52) in the second image (42) and the first object (51) in the first image (41) is above the standard, and the change called "dist1" is of a size corresponding to the movement distance of the robot, the control unit (250) determines that the second object (52) in the second image (42) and the first object (51) in the first image (41) are the same object. Then, the control unit (250) verifies whether these two objects (51, 52) are characteristic objects. As a result of the verification, the control unit (250) can store the corresponding object as a characteristic object in the map.
한편, 제2시점(t=2)에서 촬영된 이미지의 제2실시예는 43이다. 43이 지시하는 이미지에서 점선은 제1이미지(41)에서의 제1객체(51)의 위치를 표시한 것이다. Meanwhile, the second embodiment of the image captured at the second time point (t=2) is 43. In the image indicated by 43, the dotted line indicates the position of the first object (51) in the first image (41).
반면, 제3이미지(43)에서의 객체(53, 제3객체)는 51의 위치에서 "dist2" 크기만큼 이동하였는데 수평 이동이 아니며 경사 방향으로 이동하였다. 제3이미지(43)에서의 제3객체(53)와 제1이미지(41)에서의 제1객체(51)의 유사도가 기준 이상이지만 "dist2"이라는 변화가 로봇의 이동 거리에 대응하지 않는 크기 또는 객체의 이동 방향이 로봇의 이동과 전혀 다른 방향일 수 있다. On the other hand, the object (53, third object) in the third image (43) moved from position 51 by the size "dist2", but it did not move horizontally but in an inclined direction. Although the similarity between the third object (53) in the third image (43) and the first object (51) in the first image (41) is above the standard, the change called "dist2" may be of a size that does not correspond to the movement distance of the robot, or the movement direction of the object may be a completely different direction from the movement of the robot.
이러한 경우, 제어부(250)는 제3이미지(43)에서의 제3객체(53)와 제1이미지(41)에서의 제1객체(51)가 서로 다른 객체로 판단한다. 그리고 제어부(250)는 이 두 객체(51, 53) 각각에 대해 특징적 객체인지 검증한다. 검증 결과 제어부(250)는 해당 객체를 각각 특징적 객체로 맵에 저장하거나 혹은 저장하지 않을 수 있다. In this case, the control unit (250) determines that the third object (53) in the third image (43) and the first object (51) in the first image (41) are different objects. Then, the control unit (250) verifies whether each of these two objects (51, 53) is a characteristic object. Based on the verification result, the control unit (250) may or may not store the corresponding objects in the map as characteristic objects.
왜냐하면 두 시점(t1, t2)에서 제1이미지(41) 및 제3이미지(43)는 상이한 객체를 포함하므로 51 및 53 모두 동적인 객체일 가능성이 높으므로 제어부(250)는 이들을 특징적 객체로 판단하지 않는다. Because the first image (41) and the third image (43) at two points in time (t1, t2) contain different objects, both 51 and 53 are likely to be dynamic objects, so the control unit (250) does not determine them as characteristic objects.
정리하면 다음과 같다. To summarize, it is as follows.
도 7과 같이 촬영 시점 및 위치를 달리하여 두 개의 이미지(제1, 제2 이미지)를 촬영하는 경우, 특징적 객체로 선택될 가능성이 높은 객체는 두 개의 이미지에 포함될 가능성이 높다. 또한 이들 객체들이 두 개의 이미지 내에서 배치된 위치 역시 로봇의 이동 거리나 방향에 대응하게 된다. When two images (images 1 and 2) are captured at different shooting times and locations, as shown in Figure 7, objects likely to be selected as distinctive objects are more likely to be included in both images. Furthermore, the locations of these objects within the two images also correspond to the robot's movement distance and direction.
이를 위해, 제어부(250)는 제1이미지 내에서 제1객체를 감지하고, 제2이미지 내에서 제2객체를 감지한다. 그리고 제어부(250)는 제1객체 및 제2객체의 위치 변화 및 로봇의 이동 거리를 반영하여 제1객체 및 제2객체가 동일한 객체인지를 판단한다. 동일한 객체인 경우, 제어부(250)는 제1객체 및 제2객체에 대해 특징적 객체인지 여부를 검증하여 맵 저장부(210)에 저장한다. To this end, the control unit (250) detects a first object within a first image and a second object within a second image. Furthermore, the control unit (250) reflects changes in the positions of the first and second objects and the distance traveled by the robot to determine whether the first and second objects are the same object. If they are the same object, the control unit (250) verifies whether the first and second objects are characteristic objects and stores the results in the map storage unit (210).
특징적 객체로 검증되면 제어부(250)는 제1객체와 제1이미지, 그리고 제1객체에 대한 바운딩 박스와 제1이미지가 획득된 위치 정보를 하나의 단위로 맵 저장부(210)에 저장한다. 마찬가지로, 제어부(250)는 제2객체와 제2이미지, 그리고 제2객체에 대한 바운딩 박스와 제2이미지가 획득된 위치 정보를 하나의 단위로 맵 저장부(210)에 저장한다.When verified as a characteristic object, the control unit (250) stores the first object, the first image, the bounding box for the first object, and the location information where the first image was acquired as a single unit in the map storage unit (210). Similarly, the control unit (250) stores the second object, the second image, the bounding box for the second object, and the location information where the second image was acquired as a single unit in the map storage unit (210).
도 11은 본 발명의 일 실시예에 의한 로봇의 인터페이스부가 특징적 객체를 출력하고 이에 대한 선택을 입력받는 과정을 보여준다. 인터페이스부(290)는 소정의 시각적 정보 및 청각적 정보를 출력한다. 또한 인터페이스부(290)는 터치 스크린을 포함하여, 사람이 출력된 정보를 선택하거나 표시된 정보를 드래그 등으로 이동시킬 경우 인터페이스부(290)는 이러한 입력 정보를 처리할 수 있다. Figure 11 illustrates a process in which the interface unit of a robot according to one embodiment of the present invention outputs a characteristic object and receives an input for selecting the object. The interface unit (290) outputs predetermined visual and auditory information. Furthermore, the interface unit (290) includes a touch screen, so that when a person selects the output information or moves the displayed information by dragging or other means, the interface unit (290) can process such input information.
제어부(250)는 이미지 내에서 객체를 감지한다(S61). 그리고 제어부(250)는 감지된 객체 주변의 바운딩 박스의 위치를 산출할 수 있다. 그리고 인터페이스부(290)는 감지된 객체 및 객체의 주변에 배치된 바운딩 박스를 출력한다(S62). The control unit (250) detects an object within an image (S61). The control unit (250) can then calculate the location of a bounding box surrounding the detected object. The interface unit (290) then outputs the detected object and the bounding box positioned around the object (S62).
이는 현재 위치에서 특징적 객체가 될 수 있는 영역을 인터페이스부(290)가 출력하여, 사용자나 관리자가 이를 수정하거나 확인할 수 있도록 한다. This allows the interface unit (290) to output an area that can be a characteristic object at the current location, so that a user or administrator can modify or confirm it.
특히, 이미지에서 감지된 객체가 둘 이상인 경우에, 인터페이스부는 둘 이상의 객체에 대응하는 둘 이상의 바운딩 박스를 출력한 후, 둘 이상의 바운딩 박스 중 어느 하나에 대한 선택 정보를 입력받을 수 있다(S63). In particular, when there are two or more objects detected in the image, the interface unit can output two or more bounding boxes corresponding to the two or more objects, and then input selection information for one of the two or more bounding boxes (S63).
여기서 선택 정보는 바운딩 박스 주변 혹은 내부를 사용자가 터치한 정보를 포함한다. 또는 선택 정보는 사용자가 바운딩 박스 주변 혹은 내부를 터치하여 드래그 하여 바운딩 박스의 위치나 크기를 수정한 정보를 포함한다. Here, the selection information includes information about the user touching the area around or inside the bounding box. Alternatively, the selection information includes information about the user touching and dragging the area around or inside the bounding box to modify the position or size of the bounding box.
로봇의 제어부(250)는 선택 정보가 입력된 바운딩 박스 내의 객체를 특징적 객체로 저장한다. 이 과정에서 제어부(250)는 바운딩 박스의 위치나 크기가 수정된 경우에 수정된 바운딩 박스에 기반하여 객체를 추출하는 과정을 진행할 수 있다. The robot's control unit (250) stores objects within a bounding box into which selection information has been input as characteristic objects. In this process, the control unit (250) can extract objects based on the modified bounding box if the location or size of the bounding box has been modified.
도 12는 본 발명의 일 실시예에 의한 바운딩 박스를 수정한 결과를 보여준다. 제어부(250)가 공중전화 부스를 확인하고 68이 지시하는 사각형으로 바운딩 박스를 생성하여 인터페이스부(290)가 제1바운딩박스(68)를 출력한다. Figure 12 shows the result of modifying a bounding box according to one embodiment of the present invention. The control unit (250) identifies a public telephone booth and creates a bounding box in the rectangle indicated by 68, and the interface unit (290) outputs the first bounding box (68).
여기서 사용자나 관리자 등이 인터페이스부(290)에 표시된 제1바운딩박스(68)가 실제 공중전화 부스의 일부 영역만을 포함하는 것을 확인하고, 제1바운딩박스(68)를 드래그 또는 리사이즈 하여 제2바운딩박스(69)로 수정한다. Here, the user or administrator confirms that the first bounding box (68) displayed in the interface section (290) includes only a portion of the actual public telephone booth, and then drags or resizes the first bounding box (68) to modify it into the second bounding box (69).
이러한 수정 과정이 진행되면, 제어부(250)는 제2바운딩 박스를 중심으로 특징적 객체를 추출한 뒤, 특징적 객체, 제2바운딩 박스, 그리고 도 12의 이미지와 이미지가 획득된 로봇의 위치 정보를 맵 저장부(210)에 저장한다.As this modification process progresses, the control unit (250) extracts a characteristic object centered on the second bounding box, and then stores the characteristic object, the second bounding box, and the image of FIG. 12 and the location information of the robot from which the image was acquired in the map storage unit (210).
전술한 실시예들에 기반할 경우, 이미지 내에서 객체를 추출하거나, 혹은 해당 객체가 동적 객체인지 고정 객체인지를 판단하거나 또는 객체의 원근 등을 판단할 때 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)가 입력된 이미지를 분류할 수 있다. Based on the above-described embodiments, the artificial intelligence unit (255) of the robot (100) or the artificial intelligence unit (355) of the cloud server (300) can classify the input image when extracting an object from an image, determining whether the object is a dynamic object or a fixed object, or determining the perspective of the object.
또는 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)는 입력된 이미지에서 특징적 객체의 경계선을 판단하고 바운딩 박스의 영역에 대한 정보를 출력할 수 있다. 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)의 구성에 대해 보다 상세히 살펴본다. Alternatively, the artificial intelligence unit (255) of the robot (100) or the artificial intelligence unit (355) of the cloud server (300) can determine the boundary of a characteristic object in an input image and output information about the area of a bounding box. The configuration of the artificial intelligence unit (255) of the robot (100) or the artificial intelligence unit (355) of the cloud server (300) will be examined in more detail.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.Artificial intelligence (AI) is the study of artificial intelligence or the methodologies for creating it, while machine learning (ML) defines various problems in the field of AI and studies the methodologies for solving them. Machine learning is also defined as an algorithm that improves performance on a task through consistent experience.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패��, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.An artificial neural network (ANN) is a model used in machine learning. It can refer to a model with problem-solving capabilities, comprised of artificial neurons (nodes) formed by the connection of synapses. An ANN can be defined by the connection patterns between neurons in different layers, the learning process that updates model parameters, and the activation function that generates output values.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다. An artificial neural network may include an input layer, an output layer, and optionally one or more hidden layers. Each layer contains one or more neurons, and the artificial neural network may include synapses connecting neurons. In an artificial neural network, each neuron can output a function value of an activation function based on input signals, weights, and biases received through the synapses.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.Model parameters are parameters determined through learning, including synaptic connection weights and neuron biases. Hyperparameters are parameters that must be set before learning in machine learning algorithms, including the learning rate, number of iterations, mini-batch size, and initialization function.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.The goal of artificial neural network training can be seen as determining model parameters that minimize a loss function. The loss function can be used as an indicator for determining optimal model parameters during the artificial neural network training process.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.Machine learning can be classified into supervised learning, unsupervised learning, and reinforcement learning depending on the learning method.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 ��다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어�� ������ 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.Supervised learning refers to a method for training an artificial neural network when given labels for the training data. The labels can refer to the correct answer (or output value) that the artificial neural network must infer when the training data is input to the artificial neural network. Unsupervised learning can refer to a method for training an artificial neural network when the training data is not given labels. Reinforcement learning can refer to a learning method in which an agent defined within a given environment is trained to select actions or action sequences that maximize the cumulative reward in each state.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.Machine learning implemented with a deep neural network (DNN) containing multiple hidden layers among artificial neural networks is also called deep learning, and deep learning is a subset of machine learning. Hereinafter, the term "machine learning" is used to encompass deep learning.
로봇(100)은 앞서 살펴보았던 제어부(250)를 구성하는 하위 구성요소인 인공지능부(255)가 인공지능 기능을 수행할 수 있다. 제어부(250) 내에 인공지능부(255)가 소프트웨어 또는 하드웨어로 구성될 수 있다. The robot (100) can perform artificial intelligence functions through the artificial intelligence unit (255), which is a sub-component of the control unit (250) discussed above. The artificial intelligence unit (255) within the control unit (250) can be configured as software or hardware.
이 경우, 로봇(100)의 통신부(280)는 유무선 통신 기술을 이용하여 다른 AI 기능을 제공하는 로봇이나 또는 도 13에서 살펴볼 클라우드 서버(300) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(280)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.In this case, the communication unit (280) of the robot (100) can transmit and receive data with robots that provide other AI functions or external devices such as a cloud server (300) as discussed in FIG. 13 using wired or wireless communication technology. For example, the communication unit (280) can transmit and receive sensor information, user input, learning models, control signals, etc. with external devices.
이때, 통신부(280)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.At this time, the communication technologies used by the communication unit (280) include GSM (Global System for Mobile communication), CDMA (Code Division Multi Access), LTE (Long Term Evolution), 5G, WLAN (Wireless LAN), Wi-Fi (Wireless-Fidelity), Bluetooth, RFID (Radio Frequency Identification), Infrared Data Association (IrDA), ZigBee, NFC (Near Field Communication), etc.
인터페이스부(290)는 다양한 종류의 데이터를 획득할 수 있다.The interface unit (290) can obtain various types of data.
이때, 인터페이스부(290)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 라이다 센서(220), 카메라 센서(230) 또는 마이크로폰이 획득한 정보들은 센싱 데이터 또는 센서 정보 등을 지칭한다. At this time, the interface unit (290) may include a camera for inputting a video signal, a microphone for receiving an audio signal, a user input unit for receiving information from a user, etc. Here, the information acquired by the lidar sensor (220), camera sensor (230), or microphone refers to sensing data or sensor information, etc.
인터페이스부(290) 및 각종 센서들과 이동부의 휠 인코더(260) 등은 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 전술한 구성요소들은 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 제어부(250) 또는 인공지능부(255)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.The interface unit (290) and various sensors, as well as the wheel encoder (260) of the moving unit, can obtain input data to be used when obtaining output using learning data and learning models for model learning. The aforementioned components can also obtain unprocessed input data, in which case the control unit (250) or the artificial intelligence unit (255) can extract input features as preprocessing for the input data.
인공지능부(255)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 로봇(100)이 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.The artificial intelligence unit (255) can train a model composed of an artificial neural network using training data. Here, the trained artificial neural network can be referred to as a learning model. The learning model can be used to infer result values for new input data other than the training data, and the inferred values can be used as a basis for determining whether the robot (100) should perform a certain action.
이때, 로봇(100)의 인공지능부(255)는 클라우드 서버(300)의 인공지능부(355)와 함께 AI 프로세싱을 수행할 수 있다.At this time, the artificial intelligence unit (255) of the robot (100) can perform AI processing together with the artificial intelligence unit (355) of the cloud server (300).
이때, 로봇(100)의 인공지능부(255)는 로봇(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 로봇(100)의 인공지능부(255)는 별도의 메모리 또는 로봇(100)에 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.At this time, the artificial intelligence unit (255) of the robot (100) may include a memory integrated or implemented in the robot (100). Alternatively, the artificial intelligence unit (255) of the robot (100) may be implemented using a separate memory, an external memory coupled to the robot (100), or a memory maintained in an external device.
로봇(100)은 다양한 센서들을 이용하여 로봇(100)의 내부 정보, 로봇(100)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.The robot (100) can obtain at least one of internal information of the robot (100), information about the surrounding environment of the robot (100), and user information by using various sensors.
로봇(100)에 내장된 메모리는 로봇(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 로봇(100)에 내장된 각종 센서들이나 인터페이스부(290) 등이 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.The memory built into the robot (100) can store data that supports various functions of the robot (100). For example, it can store input data, learning data, learning models, learning history, etc. acquired by various sensors or interface units (290) built into the robot (100).
제어부(250)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(100)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 제어부(250)는 로봇(100)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.The control unit (250) can determine at least one executable operation of the robot (100) based on information determined or generated using a data analysis algorithm or a machine learning algorithm. Then, the control unit (250) can control components of the robot (100) to perform the determined operation.
이를 위해, 제어부(250)는 인공지능부 또는 메모리의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(100)의 구성 요소들을 제어할 수 있다.To this end, the control unit (250) can request, search, receive or utilize data from the artificial intelligence unit or memory, and control components of the robot (100) to execute at least one predicted action among executable actions or an action determined to be desirable.
이때, 제어부(250)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.At this time, if connection of an external device is required to perform a determined operation, the control unit (250) can generate a control signal for controlling the external device and transmit the generated control signal to the external device.
제어부(250)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.The control unit (250) can obtain intention information for user input and determine the user's requirements based on the obtained intention information.
한편, 제어부(250)는 이미지 센서 데이터 또는 라이다 센서 데이터와 같이 실시간으로 획득한 센서 데이터에서 특징점을 추출할 수 있다. 이를 위해 인공지능부(255) 보다 상세히 FEM 서브모듈이 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, 로봇(100)의 인공지능부(255)는 학습된 것이나, 클라우드 서버(300)의 인공지능부(355)에 ��해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.Meanwhile, the control unit (250) can extract feature points from sensor data acquired in real time, such as image sensor data or lidar sensor data. To this end, the FEM sub-module of the artificial intelligence unit (255) can be configured as an artificial neural network trained according to a machine learning algorithm. In addition, the artificial intelligence unit (255) of the robot (100) can be trained, or trained by the artificial intelligence unit (355) of the cloud server (300), or trained by distributed processing of these.
제어부(250)는 로봇(100)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리 또는 인공지능부(255)에 저장하거나, 클라우드 서버(300) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.The control unit (250) can collect history information including the operation details of the robot (100) or the user's feedback on the operation, and store it in the memory or artificial intelligence unit (255), or transmit it to an external device such as a cloud server (300). The collected history information can be used to update the learning model.
도 13은 본 발명의 일 실시예에 의한 클라우드 서버의 또다른 구성을 보여준다. Figure 13 shows another configuration of a cloud server according to one embodiment of the present invention.
인공 지능 서버, 즉 AI 서버의 기능을 제공하는 클라우드 서버(300)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, 클라우드 서버(300)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다. A cloud server (300) that provides the functionality of an artificial intelligence server, or AI server, may refer to a device that trains an artificial neural network using a machine learning algorithm or utilizes a trained artificial neural network. Here, the cloud server (300) may be comprised of multiple servers to perform distributed processing, and may be defined as a 5G network.
클라우드 서버(300)는 통신부(380), 서버제어부(350), 인공지능부(355) 등을 포함하며 각각에 대해 도 3에서 살펴본 바 있다. 한편 클라우드 서버(300)는 메모리(330)를 더 포함할 수 있다. The cloud server (300) includes a communication unit (380), a server control unit (350), an artificial intelligence unit (355), etc., each of which has been described in FIG. 3. Meanwhile, the cloud server (300) may further include a memory (330).
메모리(330)는 모델 저장부(331)를 포함할 수 있다. 모델 저���부(331)는 인공지능부(355)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 331a)을 저장할 수 있다.The memory (330) may include a model storage unit (331). The model storage unit (331) may store a model (or artificial neural network, 331a) being learned or learned through the artificial intelligence unit (355).
인공지능부(355)는 학습 데이터를 이용하여 인공 신경망(331a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 클라우드 서버(300)에 탑재된 상태에서 이용되거나, 로봇(100)등의 외부 장치에 탑재되어 이용될 수도 있다.The artificial intelligence unit (355) can train an artificial neural network (331a) using learning data. The learning model can be used while mounted on the cloud server (300) of the artificial neural network, or can be mounted on an external device such as a robot (100).
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(330)에 저장될 수 있다.The learning model may be implemented in hardware, software, or a combination of hardware and software. If part or all of the learning model is implemented in software, one or more instructions constituting the learning model may be stored in memory (330).
서버제어부(350)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.The server control unit (350) can use a learning model to infer a result value for new input data and generate a response or control command based on the inferred result value.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다. Although all components constituting the embodiments of the present invention have been described as being combined or operating in combination, the present invention is not necessarily limited to such embodiments, and within the scope of the present invention, all components may be selectively combined and operated one or more times. In addition, although all of the components may be implemented as individual independent hardware, some or all of the components may be selectively combined and implemented as a computer program having program modules that perform some or all of the functions combined in one or more hardware pieces. The codes and code segments constituting the computer program may be easily inferred by those skilled in the art of the present invention. Such a computer program may be stored in a computer-readable storage medium and read and executed by a computer, thereby implementing the embodiments of the present invention. Storage media for computer programs include magnetic recording media, optical recording media, and storage media including semiconductor recording devices. In addition, a computer program implementing an embodiment of the present invention includes a program module that is transmitted in real time through an external device.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.While the above description focuses on specific embodiments of the present invention, various modifications and variations can be made within the scope of those skilled in the art. Therefore, it should be understood that such modifications and variations are within the scope of the present invention, as long as they do not depart from its scope.
1: 로봇 150: 제어모듈
210: 맵저장부 220: 라이다 센서
230: 카메라 센서 250: 제어부
300: 클라우드 서버 350: 서버제어부1: Robot 150: Control module
210: Map storage 220: Lidar sensor
230: Camera sensor 250: Control unit
300: Cloud Server 350: Server Control Unit
Claims (20)
상기 로봇이 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서;
상기 로봇이 슬램을 수행하는 필요한 정보를 저장하는 맵 저장부; 및
상기 이미지에서 특징적 객체를 검증 및 추출하여 상기 이미지가 획득된 위치 정보와 상기 특징적 객체, 상기 이미지 내의 상기 특징적 객체의 좌표 정보를 상기 맵 저장부에 저장하는 제어부를 포함하며,
상기 제어부는 상기 이미지에서 특징적 객체를 추출하면 다중 객체 트래킹 방법을 이용하여 후속하는 이미지들에서 상기 특징적 객체의 위치를 예측하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇. A moving part that moves the robot;
A camera sensor that acquires images necessary for the robot to perform simultaneous localization and mapping (SLAM);
A map storage unit that stores the necessary information for the robot to perform a slam; and
A control unit that verifies and extracts a characteristic object from the image and stores the location information where the image was acquired, the characteristic object, and the coordinate information of the characteristic object within the image in the map storage unit,
A robot that performs slam based on a characteristic object in an image, wherein the control unit extracts a characteristic object from the image and predicts the location of the characteristic object in subsequent images using a multi-object tracking method.
상기 제어부는 상기 이미지 내에서 하나 이상의 객체를 감지하여, 상기 감지된 객체가 특징적 객체에 해당하는지 검증하며,
상기 제어부는 상기 검증된 결과에 따라 상기 객체를 특징적 객체로 상기 맵저장부에 저장하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the first paragraph,
The control unit detects one or more objects within the image and verifies whether the detected objects correspond to characteristic objects.
A robot that performs slam based on a characteristic object in an image, wherein the control unit stores the object as a characteristic object in the map storage unit according to the verified result.
상기 제어부는 상기 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 확인하고 상기 객체가 고정된 객체인 경우 특징적 객체로 판단하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the second paragraph,
A robot that performs slam based on a characteristic object in an image, wherein the control unit determines whether each object is a dynamic object or a fixed object, and if the object is a fixed object, determines it as a characteristic object.
상기 제어부는 상기 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 확인하고 상기 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the second paragraph,
A robot that performs slam based on characteristic objects in an image, wherein the control unit determines whether each object is placed close to the robot or far away, and calculates the suitability of the characteristic objects of the objects according to the order in which they are placed closest among the one or more objects.
상기 제어부는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 상기 각각의 객체를 비교하여 유사도를 산출하며,
상기 제어부는 상기 유사도에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the second paragraph,
The above control unit compares each object with objects stored in a database or previously selected characteristic objects and calculates the similarity.
A robot that performs slam based on characteristic objects in an image, wherein the control unit calculates the suitability for characteristic objects of the objects according to the similarity.
상기 제어부는 제1시점에 획득한 제1이미지 및 상기 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the first paragraph,
A robot that performs slam based on a characteristic object in an image, wherein the control unit verifies an object commonly included in a first image acquired at a first time point and a second image acquired at a second time point subsequent to the first time point as a characteristic object.
상기 제어부는 상기 제1이미지 내에서 제1객체를 감지하고,
상기 제어부는 상기 제2이미지 내에서 제2객체를 감지하며,
상기 제1객체 및 상기 제2객체의 위치 변화 및 상기 로봇의 이동 거리를 반영하여 상기 제1객체 및 상기 제2객체가 동일한 객체인 경우, 상기 제1객체 및 상기 제2객체에 대해 특징적 객체인지 여부를 검증하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In paragraph 6,
The above control unit detects a first object within the first image,
The above control unit detects a second object within the second image,
A robot that performs a slam based on a characteristic object in an image, which verifies whether the first object and the second object are characteristic objects when the first object and the second object are the same object by reflecting the change in the position of the first object and the second object and the movement distance of the robot.
상기 좌표 정보는 상기 특징적 객체를 포함하는 바운딩 박스가 상기 이미지 내에 배치되는 위치 및 크기에 대한 정보를 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In the first paragraph,
A robot that performs a slam based on a characteristic object within an image, wherein the coordinate information includes information about the position and size of a bounding box containing the characteristic object within the image.
상기 로봇은 정보를 출력하는 인터페이스부를 더 포함하며,
상기 제어부가 상기 이미지에서 객체를 감지한 후,
상기 인터페이스부는 상기 이미지와 상기 감지된 객체 및 상기 객체의 주변에 배치된 바운딩 박스를 출력하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In paragraph 8,
The above robot further includes an interface unit for outputting information,
After the above control unit detects an object in the image,
A robot that performs slam based on a characteristic object in an image, wherein the interface unit outputs the image, the detected object, and a bounding box placed around the object.
상기 이미지에서 감지된 객체는 둘 이상이며,
상기 인터페이스부는 상기 둘 이상의 객체에 대응하는 둘 이상의 바운딩 박스를 출력한 후, 상기 둘 이상의 바운딩 박스 중 어느 하나에 대한 선택 정보를 입력받으며,
상기 제어부는 상기 선택 정보가 입력된 바운딩 박스 내의 객체를 특징적 객체로 저장하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
In paragraph 9,
There are more than two objects detected in the above image,
The above interface unit outputs two or more bounding boxes corresponding to the two or more objects, and then receives selection information for one of the two or more bounding boxes.
A robot that performs slam based on a characteristic object in an image, wherein the control unit stores an object within a bounding box into which the selection information is input as a characteristic object.
상기 로봇이 슬램을 수행하는 필요한 정보를 저장하는 맵 저장부; 및
상기 이미지에서 특징적 객체를 검증 및 추출하여 상기 이미지가 획득된 위치 정보와 상기 특징적 객체, 상기 이미지 내의 상기 특징적 객체의 좌표 정보를 상기 맵 저장부에 저장하는 서버제어부를 포함하며,
상기 서버제어부는 상기 이미지에서 특징적 객체를 추출하면 다중 객체 트래킹 방법을 이용하여 후속하는 이미지들에서 상기 특징적 객체의 위치를 예측하는, 클라우드 서버. A communication unit that receives images required to perform simultaneous localization and mapping (SLAM) from a robot;
A map storage unit that stores the necessary information for the robot to perform a slam; and
A server control unit that verifies and extracts a characteristic object from the image and stores the location information where the image was acquired, the characteristic object, and the coordinate information of the characteristic object within the image in the map storage unit,
The above server control unit is a cloud server that extracts a characteristic object from the image and predicts the location of the characteristic object in subsequent images using a multi-object tracking method.
상기 서버 제어부는 상기 이미지 내에서 하나 이상의 객체를 감지하여, 상기 감지된 객체가 특징적 객체에 해당하는지 검증하며,
상기 서버 제어부는 상기 검증된 결과에 따라 상기 객체를 특징적 객체로 상기 맵저장부에 저장하는, 클라우드 서버.
In Article 11,
The server control unit detects one or more objects within the image and verifies whether the detected objects correspond to characteristic objects.
A cloud server in which the server control unit stores the object as a characteristic object in the map storage unit according to the verified result.
상기 서버 제어부는 상기 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 확인하고 상기 객체가 고정된 객체인 경우 특징적 객체로 판단하거나, 또는 상기 서버 제어부는 상기 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 확인하고 상기 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 클라우드 서버.
In Article 12,
A cloud server in which the server control unit determines whether each object is a dynamic object or a fixed object, and if the object is a fixed object, determines it as a characteristic object, or the server control unit determines whether each object is an object placed close to the robot or an object placed far away, and calculates the suitability of the objects for the characteristic object according to the order of placement of the closest objects among the one or more objects.
상기 서버 제어부는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 상기 각각의 객체를 비교하여 유사도를 산출하며,
상기 서버 제어부는 상기 유사도에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 클라우드 서버.
In Article 12,
The above server control unit compares each object with objects stored in the database or previously selected characteristic objects and calculates the similarity.
A cloud server in which the server control unit calculates the suitability for characteristic objects of the objects based on the similarity.
상기 서버 제어부는 제1시점에 획득한 제1이미지 및 상기 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는, 클라우드 서버.
In Article 11,
A cloud server in which the server control unit verifies an object commonly included in a first image acquired at a first time point and a second image acquired at a second time point subsequent to the first time point as a characteristic object.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190111013A KR102864685B1 (en) | 2019-09-06 | 2019-09-06 | Method of slam based on salient object in image and robot and cloud server implementing thereof |
| US16/855,979 US11688081B2 (en) | 2019-09-06 | 2020-04-22 | Method of performing simultaneous localization and mapping with respect to a salient object in an image |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190111013A KR102864685B1 (en) | 2019-09-06 | 2019-09-06 | Method of slam based on salient object in image and robot and cloud server implementing thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20210029586A KR20210029586A (en) | 2021-03-16 |
| KR102864685B1 true KR102864685B1 (en) | 2025-09-25 |
Family
ID=74851269
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020190111013A Active KR102864685B1 (en) | 2019-09-06 | 2019-09-06 | Method of slam based on salient object in image and robot and cloud server implementing thereof |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11688081B2 (en) |
| KR (1) | KR102864685B1 (en) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10949940B2 (en) * | 2017-04-19 | 2021-03-16 | Global Tel*Link Corporation | Mobile correctional facility robots |
| US10690466B2 (en) | 2017-04-19 | 2020-06-23 | Global Tel*Link Corporation | Mobile correctional facility robots |
| JP7288393B2 (en) * | 2019-11-28 | 2023-06-07 | 株式会社日立製作所 | Arithmetic system, Arithmetic method |
| WO2021114777A1 (en) * | 2019-12-12 | 2021-06-17 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Target detection method, terminal device, and medium |
| CA3126236A1 (en) * | 2020-07-29 | 2022-01-29 | Uatc, Llc | Systems and methods for sensor data packet processing and spatial memoryupdating for robotic platforms |
| US20220182853A1 (en) * | 2020-12-03 | 2022-06-09 | Faro Technologies, Inc. | Automatic handling of network communication failure in two-dimensional and three-dimensional coordinate measurement devices |
| KR102333642B1 (en) * | 2021-06-04 | 2021-12-01 | 셀렉트스타 주식회사 | Method, Computing Device, and Computer-readable Medium for Providing Guide Information on Contour Information of Objects Included in Images in Crowdsourcing |
| CN113305848B (en) * | 2021-06-11 | 2022-06-07 | 哈尔滨工业大学 | Real-time capture detection method based on YOLO v2 network |
| CN113610819A (en) * | 2021-08-11 | 2021-11-05 | 杭州申昊科技股份有限公司 | Defect detection method and device, electronic equipment and storage medium |
| US12340547B2 (en) | 2021-12-28 | 2025-06-24 | Samsung Electronics Co., Ltd. | Electronic device and method for detecting target objects |
| US12148203B2 (en) * | 2022-05-16 | 2024-11-19 | Microsoft Technology Licensing, Llc. | Content-aware type-on-path generation along object contours |
| GB2620909B (en) * | 2022-07-04 | 2024-09-18 | Opteran Tech Limited | Method and system for determining the structure, connectivity and identity of a physical or logical space or attribute thereof |
| KR102624907B1 (en) * | 2022-07-18 | 2024-01-15 | 주식회사 브이알크루 | Method and apparatus for detecting landmark from three dimensional volume image |
| CN116071538B (en) * | 2023-03-03 | 2023-06-27 | 天津渤海职业技术学院 | Robot positioning system based on SLAM |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170123425A1 (en) * | 2015-10-09 | 2017-05-04 | SZ DJI Technology Co., Ltd | Salient feature based vehicle positioning |
| US20170157766A1 (en) * | 2015-12-03 | 2017-06-08 | Intel Corporation | Machine object determination based on human interaction |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7016532B2 (en) * | 2000-11-06 | 2006-03-21 | Evryx Technologies | Image capture and identification system and process |
| US8271132B2 (en) * | 2008-03-13 | 2012-09-18 | Battelle Energy Alliance, Llc | System and method for seamless task-directed autonomy for robots |
| AU2011305154B2 (en) * | 2010-09-24 | 2015-02-05 | Irobot Corporation | Systems and methods for VSLAM optimization |
| WO2012166814A1 (en) * | 2011-05-31 | 2012-12-06 | Honda Motor Co., Ltd. | Online environment mapping |
| US11282287B2 (en) * | 2012-02-24 | 2022-03-22 | Matterport, Inc. | Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications |
| US9037396B2 (en) * | 2013-05-23 | 2015-05-19 | Irobot Corporation | Simultaneous localization and mapping for a mobile robot |
| US10068373B2 (en) * | 2014-07-01 | 2018-09-04 | Samsung Electronics Co., Ltd. | Electronic device for providing map information |
| US9866815B2 (en) * | 2015-01-05 | 2018-01-09 | Qualcomm Incorporated | 3D object segmentation |
| US9840003B2 (en) * | 2015-06-24 | 2017-12-12 | Brain Corporation | Apparatus and methods for safe navigation of robotic devices |
| US11313684B2 (en) * | 2016-03-28 | 2022-04-26 | Sri International | Collaborative navigation and mapping |
| EP4567734A3 (en) * | 2016-04-12 | 2025-07-30 | Quidient, LLC | Quotidian scene reconstruction engine |
| GB2554633B (en) * | 2016-06-24 | 2020-01-22 | Imperial College Sci Tech & Medicine | Detecting objects in video data |
| US10395117B1 (en) * | 2016-08-29 | 2019-08-27 | Trifo, Inc. | Visual-inertial positional awareness for autonomous and non-autonomous tracking |
| CN115097937B (en) * | 2016-11-15 | 2025-04-29 | 奇跃公司 | Deep learning system for cuboid detection |
| WO2018111920A1 (en) * | 2016-12-12 | 2018-06-21 | The Charles Stark Draper Laboratory, Inc. | System and method for semantic simultaneous localization and mapping of static and dynamic objects |
| US10353390B2 (en) * | 2017-03-01 | 2019-07-16 | Zoox, Inc. | Trajectory generation and execution architecture |
| US10878294B2 (en) * | 2018-01-05 | 2020-12-29 | Irobot Corporation | Mobile cleaning robot artificial intelligence for situational awareness |
| US10695911B2 (en) * | 2018-01-12 | 2020-06-30 | Futurewei Technologies, Inc. | Robot navigation and object tracking |
| US11187536B2 (en) * | 2018-01-12 | 2021-11-30 | The Trustees Of The University Of Pennsylvania | Probabilistic data association for simultaneous localization and mapping |
-
2019
- 2019-09-06 KR KR1020190111013A patent/KR102864685B1/en active Active
-
2020
- 2020-04-22 US US16/855,979 patent/US11688081B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170123425A1 (en) * | 2015-10-09 | 2017-05-04 | SZ DJI Technology Co., Ltd | Salient feature based vehicle positioning |
| US20170157766A1 (en) * | 2015-12-03 | 2017-06-08 | Intel Corporation | Machine object determination based on human interaction |
Also Published As
| Publication number | Publication date |
|---|---|
| US11688081B2 (en) | 2023-06-27 |
| US20210073570A1 (en) | 2021-03-11 |
| KR20210029586A (en) | 2021-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102864685B1 (en) | Method of slam based on salient object in image and robot and cloud server implementing thereof | |
| US11554495B2 (en) | Method of localization using multi sensor and robot implementing same | |
| US11673269B2 (en) | Method of identifying dynamic obstacle and robot implementing same | |
| Leigh et al. | Person tracking and following with 2d laser scanners | |
| US11199852B2 (en) | Mobile robot and control method for controlling the same | |
| US10102429B2 (en) | Systems and methods for capturing images and annotating the captured images with information | |
| US11422566B2 (en) | Artificial intelligence robot cleaner | |
| CN106940186B (en) | A kind of robot autonomous localization and navigation methods and systems | |
| US12085951B2 (en) | Method of updating map in fusion SLAM and robot implementing same | |
| KR102092392B1 (en) | Method and system for automatically collecting and updating information about point of interest in real space | |
| US11385643B2 (en) | Artificial intelligence moving agent | |
| KR102615685B1 (en) | Method for estimating location by synchronizing multi-sensors and robot implementing it | |
| US11188753B2 (en) | Method of using a heterogeneous position information acquisition mechanism in an operating space and robot and cloud server implementing the same | |
| US20200046193A1 (en) | Artificial intelligence robot cleaner | |
| KR102837653B1 (en) | Method of estimating position in local area in large sapce and robot and cloud server implementing thereof | |
| Martinez-Gomez et al. | A taxonomy of vision systems for ground mobile robots | |
| US20200300639A1 (en) | Mobile robots to generate reference maps for localization | |
| KR102106029B1 (en) | Method and system for improving signage detection performance | |
| KR20210026595A (en) | Method of moving in administrator mode and robot of implementing thereof | |
| KR20200052389A (en) | Controlling method for Artificial intelligence Moving robot | |
| KR102189926B1 (en) | Method and system for detecting change point of interest | |
| CN120112934A (en) | Method and electronic device for training a neural network model by enhancing images representing objects captured by multiple cameras | |
| KR102601141B1 (en) | mobile robots and Localization method using fusion image sensor and multiple magnetic sensors | |
| León-Vera et al. | Car monitoring system in apartments’ garages by small autonomous car using deep learning | |
| Ren et al. | 3D Mapping Considering Object Recognition Result Based on 3D LiDAR Information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| F11 | Ip right granted following substantive examination |
Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE) |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| U11 | Full renewal or maintenance fee paid |
Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE) Year of fee payment: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| Q13 | Ip right document published |
Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE) |