Nothing Special   »   [go: up one dir, main page]

KR101956569B1 - Mobile robot and method for controlling the same - Google Patents

Mobile robot and method for controlling the same Download PDF

Info

Publication number
KR101956569B1
KR101956569B1 KR1020120059413A KR20120059413A KR101956569B1 KR 101956569 B1 KR101956569 B1 KR 101956569B1 KR 1020120059413 A KR1020120059413 A KR 1020120059413A KR 20120059413 A KR20120059413 A KR 20120059413A KR 101956569 B1 KR101956569 B1 KR 101956569B1
Authority
KR
South Korea
Prior art keywords
mobile robot
range
nodes
delete delete
node
Prior art date
Application number
KR1020120059413A
Other languages
Korean (ko)
Other versions
KR20130135652A (en
Inventor
이성수
백승민
안수남
오세영
이태경
임승욱
Original Assignee
엘지전자 주식회사
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사, 포항공과대학교 산학협력단 filed Critical 엘지전자 주식회사
Priority to KR1020120059413A priority Critical patent/KR101956569B1/en
Publication of KR20130135652A publication Critical patent/KR20130135652A/en
Application granted granted Critical
Publication of KR101956569B1 publication Critical patent/KR101956569B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

이동 로봇 및 이의 제어 방법이 개시된다. 본 발명의 실시 예들은, 이동 로봇의 위치를 인식하고 경로를 정밀하게 탐색함에 있어서, 전체 경로를 한번에 보정하지 아니하고, 환경에 따라 최적화 범위의 크기를 적절히 조절하면서 그 범위 내의 경로만을 보정하며, 가변 최적화 범위를 이동하여 점진적으로 경로를 보정한다. 본 발명의 실시 예들은, 가변 최적화 범위를 이용하므로 정보의 손실을 최소화할 수 있고, 환경에 따라 최적화 범위의 크기를 적절하게 결정할 수 있다. 또한, 본 발명의 실시 예들은, 지역 지도의 집합으로 전역 지도를 구성함으로써 전역 지도 보정에 효율적이다.A mobile robot and a control method thereof are disclosed. In the embodiments of the present invention, in recognizing the position of the mobile robot and precisely searching for a path, the entire path is not corrected at a time, and only the path within the range is corrected while appropriately adjusting the size of the optimization range according to the environment, Gradually correct the path by moving the optimization range. Embodiments of the present invention can minimize the loss of information by using the variable optimization range, and can appropriately determine the size of the optimization range according to the environment. In addition, embodiments of the present invention are effective for global map correction by constructing a global map as a set of area maps.

Description

이동 로봇 및 이의 제어 방법{MOBILE ROBOT AND METHOD FOR CONTROLLING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a mobile robot,

본 발명은 센서의 감지 정보를 이용하여 위치를 인식하고 실내 지도를 생성하며 실시간의 경로를 보정할 수 있는 이동 로봇 및 이의 제어 방법에 관한 것이다.The present invention relates to a mobile robot capable of recognizing a location using sensing information of a sensor, generating an indoor map, and correcting a real-time path, and a control method thereof.

일반적으로 로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다.In general, robots have been developed for industrial use and have been part of factory automation. In recent years, medical robots, aerospace robots, and the like have been developed, and household robots that can be used in ordinary homes are being developed.

가정용 로봇의 대표적인 예는 로봇 청소기, 서비스 로봇 등이다. 특히 로봇 청소기는, 일정 영역을 스스로 주행하면서 주변의 먼지 또는 이물질을 흡입하여 청소하는 전자기기의 일종이다. 이러한 로봇 청소기는 일반적으로 충전 가능한 배터리를 구비하고, 주행 중 장애물을 피할 수 있는 장애물 센서를 구비하여 스스로 주행하며 청소할 수 있다.Typical examples of home robots are robot cleaners and service robots. Particularly, the robot cleaner is a kind of electronic equipment that sucks dust and foreign matter around the robot while cleaning a certain area by itself. Such a robot cleaner is generally equipped with a rechargeable battery and has an obstacle sensor capable of avoiding obstacles during traveling, so that it can run and clean by itself.

근래에는 이동 로봇을 이용한 응용 기술이 개발되고 있다. 예를 들어, 네트워킹 기능을 가진 이동 로봇의 개발이 진행되어, 원격지에서 제어 명령을 내릴 수 있도록 하거나 주변 상황을 모니터할 수 있도록 하는 기능이 구현되고 있다. 또, 카메라나 각종 센서들을 이용하여 위치를 인식하거나 경로를 탐색하는 기능을 가진 이동 로봇들이 개발되고 있다.Recently, application technology using a mobile robot has been developed. For example, development of a mobile robot having a networking function has been implemented, and a function for enabling control commands from a remote place or for monitoring the surrounding situation has been implemented. In addition, mobile robots having a function of recognizing a position or searching a route using a camera or various sensors are being developed.

본 발명의 실시 예들은 전체 경로를 한번에 보정하지 아니하고, 환경에 따라 윈도우의 크기를 적절히 조절하면서 윈도우 내의 경로만을 보정하며, 윈도우를 이동하여 점진적으로 경로를 보정할 수 있는 이동 로봇 및 이의 제어 방법을 제공하는 데에 일 목적이 있다.Embodiments of the present invention are directed to a mobile robot and a control method therefor, which do not correct the entire path at once, correct only the path in the window while appropriately adjusting the size of the window according to the environment, and can correct the path gradually by moving the window There is a purpose in providing.

본 발명의 실시 예들은 센서의 감지 정보를 이용하여 위치를 인식하거나 또는 실내 지도를 생성하는 이동 로봇 및 이의 제어 방법을 제공하는 데에 다른 목적이 있다.It is another object of the present invention to provide a mobile robot and a control method thereof for recognizing a position or generating an indoor map using sensing information of a sensor.

본 발명의 실시 예들은 3차원 거리 센서를 이용하고, 3차원 거리 이미지들로부터 하나 이상의 평면을 추출하고 평면들을 정합함으로써 위치를 인식하거나 또는 3차원 지도를 생성할 수 있는 이동 로봇 및 이의 제어 방법을 제공하는 데에 또 다른 목적이 있다.Embodiments of the present invention provide a mobile robot capable of recognizing a position or generating a three-dimensional map by using a three-dimensional distance sensor, extracting one or more planes from three-dimensional distance images, and matching planes, and a control method thereof There is another purpose in providing.

일 실시 예에 따른 이동 로봇은, 이동 로봇의 이동에 따라 연속적으로 주변을 감지하여 감지 정보들을 출력하는 감지 유닛과, 상기 감지 정보들을 이용하여 이동에 따른 위치들을 인식하는 제어 유닛을 포함하고, 상기 제어 유닛은, 상기 인식한 위치들 사이의 위치 관계들을 근거로 상기 인식한 위치들 중 일부를 포함하는 최적화 범위를 가변적으로 설정하고, 상기 최적화 범위 내에서 상기 인식한 위치들을 보정한다.The mobile robot according to an embodiment includes a sensing unit for continuously sensing peripheries according to movement of the mobile robot and outputting sensing information, and a control unit for recognizing positions according to movement using the sensing information, The control unit variably sets an optimization range including a part of the recognized positions based on positional relationships between the recognized positions and corrects the recognized positions within the optimization range.

상기 제어 유닛은, 상기 인식한 위치들을 각각 노드들로 설정하는 노드 설정 모듈과, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정하는 위치 관계 설정 모듈과, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 모듈을 포함하여 구성된다.The control unit includes a node setting module for setting the recognized positions as nodes, a positional relationship setting module for setting positional relationships between the nodes using node information of the nodes, And a range setting module for variably setting the optimization range including a part of the nodes.

또, 상기 제어 유닛은, 상기 최적화 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 모듈을 더 포함하여 구성된다. 또, 상기 제어 유닛은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 모듈을 더 포함할 수 있다.The control unit may further comprise a position correction module for changing node information of the nodes within the optimization range. The control unit may further include a route generation module that generates a route using the node information within the optimization range.

일 실시 예에 따른 이동 로봇의 제어 방법은, 이동 로봇의 이동에 따라 연속적으로 획득한 감지 정보들을 근거로 이동 로봇의 위치들을 인식하고, 상기 인식한 위치들 사이의 위치 관계들을 근거로 상기 인식한 위치들 중 일부를 포함하는 최적화 범위를 가변적으로 설정하며, 상기 최적화 범위 내에서 상기 인식한 위치들을 보정한다.A method of controlling a mobile robot according to an exemplary embodiment of the present invention includes recognizing positions of a mobile robot on the basis of consecutively acquired sensed information according to movement of the mobile robot, Variably setting an optimization range including some of the positions, and correcting the recognized positions within the optimization range.

상기 이동 로봇의 제어 방법은, 상기 감지 정보들을 획득하는 정보 획득 단계와, 상기 위치들을 인식하는 위치 인식 단계와, 상기 인식한 위치들을 각각 노드들로 설정하는 노드 설정 단계와, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정하는 위치 관계 설정 단계와, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 단계를 포함하여 구성된다.The control method of the mobile robot includes an information acquiring step of acquiring the sensing information, a position recognizing step of recognizing the positions, a node setting step of setting the recognized positions as nodes, And a range setting step of variably setting the optimization range including a part of the nodes based on the positional relationships.

상기 제어 방법은, 상기 최적화 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 단계를 더 포함하여 구성된다. 또, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 단계를 더 포함하여 구성될 수 있다.The control method further includes a position correction step of changing node information of the nodes within the optimization range. The method may further include a path generation step of generating a movement path using the node information within the optimization range.

다른 실시 예에 따른 이동 로봇은, 주 바퀴를 회전시키는 소정의 휠 모터를 구비하고, 상기 휠 모터를 구동하여 이동 로봇을 이동시키는 구동 유닛과, 이동 로봇의 이동에 따라 연속적으로 센서 프레임들의 3차원 거리 이미지들을 획득하는 3차원 거리 센서와, 상기 3차원 거리 이미지들을 근거로 이동 로봇의 위치를 인식하는 제어 유닛을 포함하고, 상기 제어 유닛은, 상기 센서 프레임들에서의 상기 3차원 거리 이미지들에 따른 위치들을 각각 노드들로 설정하는 노드 설정 모듈과, 상기 3차원 거리 이미지들에 대한 거리 이미지 정보를 이용하여 각각의 3차원 거리 이미지들로부터 하나 이상의 평면을 추출하는 평면 추출 모듈과, 상기 평면들의 유사도를 근거로 상기 평면들을 정합하는 평면 정합 모듈과, 상기 평면들의 정합 결과를 근거로 상기 노드들의 위치 관계들을 설정하는 위치 관계 설정 모듈과, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 모듈을 포함하여 구성된다.According to another aspect of the present invention, there is provided a mobile robot comprising: a drive unit that includes a predetermined wheel motor for rotating a main wheel and drives the wheel motor to move the mobile robot; And a control unit for recognizing the position of the mobile robot on the basis of the three-dimensional distance images, wherein the control unit controls the three-dimensional distance images in the sensor frames A plane extraction module for extracting one or more planes from each of the three-dimensional distance images using the distance image information for the three-dimensional distance images; A planar matching module for matching the planes based on the similarity, It is configured to include a position relation setting position for setting the relationship module and range setting module for variably setting the optimized range, including some of the nodes on the basis of the positional relation.

본 발명의 실시 예들은, 이동 로봇의 위치를 인식하고 경로를 정밀하게 탐색함에 있어서, 전체 경로를 한번에 보정하지 아니하고, 환경에 따라 최적화 범위의 크기를 적절히 조절하면서 그 범위 내의 경로만을 보정하며, 가변 최적화 범위를 이동하여 점진적으로 경로를 보정한다.In the embodiments of the present invention, in recognizing the position of the mobile robot and precisely searching for a path, the entire path is not corrected at a time, and only the path within the range is corrected while appropriately adjusting the size of the optimization range according to the environment, Gradually correct the path by moving the optimization range.

본 발명의 실시 예들은, 가변 최적화 범위를 이용하므로 정보의 손실을 최소화할 수 있고, 환경에 따라 최적화 범위의 크기를 적절하게 결정할 수 있음으로써 메모리 효율과 계산 효율을 향상시킬 수 있다. 또한, 본 발명의 실시 예들은, 지역 지도의 집합으로 전역 지도를 구성함으로써 전역 지도 보정에 효율적이다.Embodiments of the present invention can minimize the loss of information by using the variable optimization range, and can appropriately determine the size of the optimization range according to the environment, thereby improving the memory efficiency and calculation efficiency. In addition, embodiments of the present invention are effective for global map correction by constructing a global map as a set of area maps.

본 발명의 실시 예들은, 센서의 감지 정보를 이용하여 위치를 인식하거나 또는 실내 지도를 생성할 수 있다. 본 발명의 실시 예들은 3차원 거리 센서를 이용하고, 3차원 거리 이미지들로부터 하나 이상의 평면을 추출하고 평면들을 정합함으로써 위치를 인식하거나 또는 3차원 지도를 생성할 수 있다.Embodiments of the present invention can recognize a position or generate an indoor map using sensing information of a sensor. Embodiments of the present invention may utilize a three-dimensional distance sensor, extract one or more planes from the three-dimensional distance images and match the planes to recognize the position or create a three-dimensional map.

도 1은 일 실시 예에 따른 이동 로봇의 구성 중 제어 유닛을 개략적으로 보인 블록도;
도 2 및 도 3은 실시 예들에 따른 이동 로봇의 구성을 개략적으로 보인 블록도들;
도 4는 3차원 거리 센서를 이용한 이동 로봇의 구성을 개략적으로 보인 블록도;
도 5는 일 실시 예에 따른 이동 로봇의 제어 방법을 개략적으로 보인 흐름도;
도 6은 도 5의 최적화 범위 설정 단계를 상세히 보인 흐름도;
도 7a는 본 발명의 실시 예들에 따른 지역 지도의 구성의 예를 보인 도;
도 7b는 본 발명의 실시 예들에 따라 전역 지도를 보정하는 동작을 설명하기 위한 도;
도 8a는 본 발명의 실시 예들에 따라 최적화 범위를 설정하기 위한 가중치 행렬을 보인 도;
도 8b 및 도 8c는 도 8a의 가중치 행렬을 이용하여 최적화 범위를 설정하는 동작을 설명하기 위한 도들;
도 9a 내지 도 9c는 본 발명의 실시 예들에 따른 최적화 범위의 크기 변화 및 이동을 설명하기 위한 도들;
도 10a 내지 도 10c는 본 발명의 실시 예들에 따라 이동 로봇의 위치(노드)를 재배열하는 동작을 설명하기 위한 도들;
도 11a 및 도 11b는 본 발명의 실시 예들에 따라 이동 로봇의 위치(노드)를 병합하는 동작을 설명하기 위한 도들;
도 12는 3차원 거리 이미지의 일 예를 보인 도;
도 13은 도 12의 3차원 거리 이미지를 변환한 포인트 클라우드를 보인 도; 및
도 14는 도 12 및 도 13으로부터 평면을 추출하여 보인 도이다.
1 is a block diagram schematically illustrating a control unit of a mobile robot according to an embodiment.
FIGS. 2 and 3 are block diagrams schematically showing a configuration of a mobile robot according to embodiments;
4 is a block diagram schematically showing the configuration of a mobile robot using a three-dimensional distance sensor;
FIG. 5 is a flowchart schematically illustrating a control method of a mobile robot according to an embodiment; FIG.
FIG. 6 is a flowchart showing the optimization range setting step of FIG. 5 in detail;
FIG. 7A is a diagram showing an example of the configuration of a region map according to the embodiments of the present invention; FIG.
FIG. 7B is a diagram for explaining an operation of correcting a global map according to embodiments of the present invention; FIG.
Figure 8a shows a weighting matrix for setting an optimization range in accordance with embodiments of the present invention;
FIGS. 8B and 8C are diagrams for explaining an operation of setting an optimization range using the weighting matrix of FIG. 8A; FIG.
FIGS. 9A to 9C are diagrams illustrating a magnitude variation and movement of an optimization range according to embodiments of the present invention; FIG.
10A to 10C are diagrams for explaining an operation of rearranging the position (node) of the mobile robot according to the embodiments of the present invention;
11A and 11B are views for explaining an operation of merging the position (node) of the mobile robot according to the embodiments of the present invention;
12 is a view showing an example of a three-dimensional distance image;
FIG. 13 is a view showing a point cloud converted from the three-dimensional distance image of FIG. 12; FIG. And
Fig. 14 is a diagram showing the planes extracted from Figs. 12 and 13. Fig.

도 1을 참조하면, 일 실시 예에 따른 이동 로봇은, 이동 로봇의 이동에 따라 연속적으로 주변을 감지하여 감지 정보들을 출력하는 감지 유닛(100)과, 상기 감지 정보들을 이용하여 이동에 따른 위치들을 인식하는 제어 유닛(200)을 포함하여 구성된다.Referring to FIG. 1, a mobile robot according to an embodiment includes a sensing unit 100 that continuously senses the surroundings according to movement of a mobile robot and outputs sensed information, And a control unit (200) for recognizing the image.

감지 유닛(100)은, 이동 로봇의 외주면에 일정 간격으로 설치되거나, 또는 본체의 외측으로 돌출되는 면을 갖도록 설치되는 장애물 센서일 수 있다. 장애물 센서의 위치와 종류는 이동 로봇의 기종에 따라 달라질 수 있다. 장애물 센서는 이동 로봇의 이동 경로 상에 존재하는 돌출물, 집안의 집기, 가구, 벽면, 벽 모서리 등을 감지한다. 장애물 센서는, 적외선 센서, 초음파 센서, RF 센서, 지자기 센서, PSD(Position Sensitive Device) 센서 등일 수 있다.The sensing unit 100 may be an obstacle sensor installed at a predetermined interval on the outer circumferential surface of the mobile robot or installed so as to have a surface protruding to the outside of the body. The position and type of the obstacle sensor may vary depending on the type of the mobile robot. The obstacle sensor senses protrusions, household appliances, furniture, walls, wall corners, and the like existing on the moving path of the mobile robot. The obstacle sensor may be an infrared sensor, an ultrasonic sensor, an RF sensor, a geomagnetic sensor, a position sensitive device (PSD) sensor, or the like.

감지 유닛(100)은, 이동 로봇의 배면에 구비되어, 이동 중 하방, 즉 바닥면, 피청소면을 촬영하는 하부 카메라 센서일 수 있다. 하부 카메라 센서는, 옵티컬 플로우 센서(Optical Flow Sensor)로서, 센서 내에 구비된 이미지 센서로부터 입력되는 하방 영상을 변환하여 소정 형식의 영상 데이터를 생성한다. 하부 카메라 센서는, 이동 로봇의 미끄러짐과 무관하게 이동 로봇의 위치를 검출할 수 있다. 제어 유닛(200)은 하부 카메라 센서에 의해 촬영된 영상 데이터를 시간에 따라 비교 분석하여 이동 거리 및 이동 방향을 산출하고, 이동 로봇의 위치를 산출한다. 하부 카메라 센서를 이용하여 이동 로봇의 하방을 관찰하도록 함으로써, 제어 유닛은 다른 수단에 의해 산출한 위치에 대하여 미끄러짐에 강인한 보정이 가능하다.The sensing unit 100 may be a lower camera sensor provided on the back surface of the mobile robot and capturing downward, i.e., a bottom surface and a surface to be cleaned, while moving. The lower camera sensor is an optical flow sensor, and converts a downward image input from an image sensor provided in the sensor to generate image data of a predetermined format. The lower camera sensor can detect the position of the mobile robot irrespective of the slip of the mobile robot. The control unit 200 compares and analyzes the image data photographed by the lower camera sensor over time to calculate the moving distance and the moving direction, and calculates the position of the mobile robot. By observing the lower portion of the mobile robot using the lower camera sensor, the control unit can perform correction that is robust against slippage with respect to the position calculated by other means.

감지 유닛(100)은, 이동 로봇의 속도 변화, 예를 들어, 출발, 정지, 방향 전환, 물체와의 충돌 등에 따른 이동 속도의 변화를 감지하는 가속도 센서(Acceleration Sensor)나, 또는 이동 로봇이 이동하거나 청소할 때 회전 방향을 감지하고 회전각을 검출하는 자이로 센서(Gyro Sensor)일 수 있다. 또, 감지 유닛(100)은, 도 4에 도시한 바와 같이, 3차원 거리 센서(110)일 수 있다. 3차원 거리 센서로는 KINECT (RGB-D 센서), TOF (Structured Light sensor), stereo camera 등이 사용될 수 있다. 이에 대한 상세한 설명은 후술한다.The sensing unit 100 may be an acceleration sensor for sensing a change in the speed of the mobile robot due to a change in the speed of the mobile robot, for example, a start, a stop, a change of direction or a collision with an object, Or a gyro sensor that detects the direction of rotation and detects the rotation angle when cleaning. The sensing unit 100 may be a three-dimensional distance sensor 110, as shown in Fig. As the three-dimensional distance sensor, KINECT (RGB-D sensor), TOF (Structured Light sensor), stereo camera and the like can be used. A detailed description thereof will be described later.

제어 유닛(200)은 가속도 센서, 자이로 센서 등의 감지 유닛(100)을 통해 획득한 감지 정보를 이용하여 이동 로봇의 위치를 인식할 수 있다. 또, 제어 유닛(200)은 인식한 위치를 이용하여 지도를 생성할 수 있다. 이동 로봇의 위치를 인식하기 위한 방식으로서 다양한 방식이 사용되는데, 특히 SLAM(Simultaneous Localization And Mapping) 등의 기술이 사용된다.The control unit 200 can recognize the position of the mobile robot using the sensing information acquired through the sensing unit 100 such as an acceleration sensor or a gyro sensor. Further, the control unit 200 can generate a map by using the recognized position. As a method for recognizing the position of the mobile robot, various methods are used. In particular, techniques such as SLAM (Simultaneous Localization And Mapping) are used.

이동 로봇은 감지 정보, 위치, 지역 지도, 전역 지도 등을 임시로 아니면 지속적으로 저장하는 저장 유닛(300)을 더 포함할 수 있다. 또, 저장 유닛(300)은 이동 로봇을 제어(구동)하는 제어 프로그램 및 그에 따른 데이터를 더 저장할 수 있다. 저장 유닛(300)은, 램(RAM)의 형태를 가질 수 있고, 또는 롬(ROM), 플래시 메모리(Flash Memory) 등의 비휘발성 메모리(Non-Volatile Memory, NVM, NVRAM)의 형태로 구성될 수 있다.The mobile robot may further include a storage unit 300 for storing the sensing information, the position, the area map, the global map, etc. temporarily or continuously. Further, the storage unit 300 may further store a control program for controlling (driving) the mobile robot and data corresponding thereto. The storage unit 300 may have the form of a RAM or may be configured in the form of a non-volatile memory (NVM, NVRAM) such as a ROM, a flash memory .

도 2를 참조하면, 상기 이동 로봇은, 주 바퀴(410)에 연결되어 주 바퀴의 회전수를 감지하는 휠 센서(500)를 더 포함하여 구성된다. 휠 센서는 좌, 우측의 주 바퀴에 연결되어 주 바퀴의 회전수를 감지한다. 일 예로, 휠 센서는 로터리 엔코더(Rotary Encoder)일 수 있다. 로터리 엔코더는 이동 로봇이 이동할 때, 좌측과 우측의 주바퀴의 회전수를 감지하여 출력한다. 제어 유닛은 회전수를 이용하여 좌, 우측 바퀴의 회전 속도를 연산할 수 있다. 이동 로봇은 감지 유닛이 감지한 감지 정보들을 정합하여 상대 위치를 예측한다. 또, 이동 로봇은 주행하면서 휠 센서를 이용하여 대략적인 위치를 예측할 수 있다. 휠 센서의 정보는 부정확하므로 이동 로봇은 감지 정보로부터의 특징점을 활용하여 보정할 수 있다. Referring to FIG. 2, the mobile robot further includes a wheel sensor 500 connected to the main wheel 410 to detect the number of revolutions of the main wheel. The wheel sensor is connected to the left and right main wheels to detect the number of revolutions of the main wheel. As an example, the wheel sensor may be a rotary encoder. When the mobile robot moves, the rotary encoder senses the number of revolutions of the left and right main wheels and outputs them. The control unit can calculate the rotational speeds of the left and right wheels using the number of rotations. The mobile robot predicts the relative position by matching the sensed information sensed by the sensing unit. In addition, the mobile robot can predict an approximate position using the wheel sensor while traveling. Since the information of the wheel sensor is inaccurate, the mobile robot can correct using the minutiae from the sensed information.

구동 유닛(500)은 바퀴들을 회전시키는 소정의 휠 모터(Wheel Motor)를 구비하여, 휠 모터를 구동함으로써 이동 로봇을 이동시킨다. 상기 바퀴는 주 바퀴와 보조 바퀴를 구분될 수 있다. 휠 모터는 각각 주 바퀴에 연결되어 주 바퀴가 회전하도록 하고, 휠 모터는 서로 독립적으로 작동하며 양방향으로 회전이 가능하다. 또, 이동 로봇은 배면에 하나 이상의 보조 바퀴를 구비하여 본체를 지지하고, 본체의 하면과 바닥면 사이의 마찰을 최소화하고 이동 로봇의 이동이 원활하도록 할 수 있다.The drive unit 500 includes a predetermined wheel motor for rotating the wheels, and moves the mobile robot by driving the wheel motor. The wheel may be divided into a main wheel and a sub-wheel. The wheel motors are respectively connected to the main wheels so that the main wheels rotate, and the wheel motors operate independently of each other and can rotate in both directions. In addition, the mobile robot includes at least one auxiliary wheel on its rear surface to support the main body, minimize friction between the bottom surface and the bottom surface of the main body, and smoothly move the mobile robot.

또, 도 3을 참조하면, 상기 이동 로봇은, 상방 또는 전방에 구비되고, 주변을 촬영하여 영상 정보를 획득하는 영상 카메라(600)를 더 포함하여 구성될 수 있다. 영상 카메라(600)는 전방이나 상방을 향하도록 설치된다. 설치 위치는 로봇의 크기, 형태 등에 따라 달라질 수 있다. 영상 카메라(600)는 일정 해상도 이상의 CCD 카메라, CMOS 카메라 등일 수 있다. 영상 카메라(600)는 필요에 따라 렌즈를 구비할 수 있다. 제어 유닛은 영상 정보를 이용하여 로봇의 위치를 계산할 수 있다.Referring to FIG. 3, the mobile robot may further include an image camera 600, which is provided above or in front of the mobile robot and acquires image information by photographing the surroundings. The video camera 600 is installed so as to face forward or upward. The installation position may vary depending on the size and shape of the robot. The image camera 600 may be a CCD camera, a CMOS camera, or the like having a resolution higher than a predetermined resolution. The image camera 600 may include a lens as needed. The control unit can calculate the position of the robot using the image information.

제어 유닛(200)은, 상기 인식한 위치들 사이의 위치 관계들을 근거로 상기 인식한 위치들 중 일부를 포함하는 최적화 범위(window)를 가변적으로 설정하고, 상기 최적화 범위 내에서 상기 인식한 위치들을 보정한다. 제어 유닛(200)은, 최적화 범위의 크기에 대한 최대 크기를 설정한다. 또, 제어 유닛(200)은, 최적화 범위를 분리하기 위한 임계점을 설정한다. 즉, 제어 유닛(200)은, 최대 크기에 이르기까지 최적화 범위를 증가시키다가 분리 조건을 판단하여 임계점에 이르면 최적화 범위를 분리함으로써 최적화 범위의 크기를 가변적으로 설정한다.The control unit (200) variably sets an optimization window including a part of the recognized positions based on positional relationships between the recognized positions, and adjusts the recognized positions . The control unit 200 sets the maximum size for the size of the optimization range. In addition, the control unit 200 sets a critical point for separating the optimization range. That is, the control unit 200 increases the optimization range up to the maximum size, determines the separation condition, and variably sets the size of the optimization range by separating the optimization range when reaching the critical point.

도 1을 참조하면, 제어 유닛(200)은, 상기 인식한 위치들을 각각 노드들로 설정하는 노드 설정 모듈(210)과, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정하는 위치 관계 설정 모듈(220)과, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 모듈(230)을 포함하여 구성된다.Referring to FIG. 1, the control unit 200 includes a node setting module 210 for setting the recognized positions as nodes, and a controller 210 for setting positional relationships between the nodes using node information of the nodes A location relation setting module 220 and a range setting module 230 for variably setting the optimization range including a part of the nodes based on the positional relationships.

노드 설정 모듈(210)은, 감지 정보들을 통해 인식한 이동 로봇의 위치를 노드로 설정한다. 노드 설정 모듈(210)은, 2차원 또는 3차원 좌표계를 이용하여 노드를 표시한다. 위치 관계 설정 모듈(220)은, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정한다. 예를 들어, j 번째 위치와 이전의 i 번째 위치 사이의 상대적 위치 관계의 추정값에 대한 가우시안 분포는 이동 로봇의 이동 정보와 직전 위치에서 구해진 분포를 이용해 구할 수 있다. 이 정보를 이용하면, j 번째 위치를 i 번째 위치로 변환할 수 있다.The node setting module 210 sets the position of the mobile robot recognized through the sensing information as a node. The node setting module 210 displays a node using a two-dimensional or three-dimensional coordinate system. The location relation setting module 220 sets the positional relationships among the nodes using the node information of the nodes. For example, the Gaussian distribution of the estimated value of the relative positional relationship between the j-th position and the previous i-th position can be obtained by using the distribution obtained from the movement information of the mobile robot and the immediately preceding position. With this information, the j-th position can be converted to the i-th position.

범위 설정 모듈(230)은, 위치 관계들을 이용하여 최적화 범위를 설정한다. 여기서, 최적화 범위는 이동 로봇의 위치를 정밀하게 인식하고 위치를 보정하기 위한 범위이다. 이동 로봇은 최적화 범위 내에서의 노드와 노드 간의 위치 관계를 이용하여 이동 로봇의 위치를 인식하거나 보정한다. 최적화 범위의 크기가 증가할수록 정밀한 위치 인식이나 보정이 가능하지만, 연산 시간이 증가하는 단점이 있다. 반면, 최적화 범위가 작을수록 연산 시간은 빨라지나, 정보 손실로 인해 정밀한 위치 인식이나 보정이 여려워진다.The range setting module 230 sets the optimization range using the positional relationships. Here, the optimization range is a range for precisely recognizing the position of the mobile robot and correcting the position. The mobile robot recognizes or corrects the position of the mobile robot using the positional relationship between nodes and nodes within the optimization range. As the size of the optimization range increases, precise position recognition or correction can be performed, but the computation time increases. On the other hand, the smaller the optimization range, the faster the computation time, but the information loss leads to the precise location recognition and correction.

범위 설정 모듈(230)은, 노드의 증가에 따라, 즉 이동 로봇의 이동에 따라 최적화 범위의 크기를 증가시킨다. 이때, 범위 설정 모듈(230)은, 최적화 범위의 크기에 대한 최대 크기를 미리 설정한다. 즉, 범위 설정 모듈은 최대 크기 내에서 최적화 범위의 크기를 증가시킨다. 범위 설정 모듈(230)은, 임계점을 설정하고, 상기 위치 관계들을 근거로 계산된 값이 상기 임계점에 도달하면, 상기 최적화 범위를 분리한다.The range setting module 230 increases the size of the optimization range as the number of nodes increases, that is, as the mobile robot moves. At this time, the range setting module 230 sets the maximum size for the size of the optimization range in advance. That is, the range setting module increases the size of the optimization range within the maximum size. The range setting module 230 sets a critical point and separates the optimization range when the value calculated based on the positional relationships reaches the critical point.

제어 유닛(200)은, 상기 최적화 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 모듈(240)을 더 포함하여 구성된다. 위치 보정 모듈(240)은, 각 노드들의 위치 관계들을 이용하여 비용 함수를 정의하고, 에러를 최소화하는 노드들의 위치를 구하여 위치를 보정한다. 또, 제어 유닛(200)은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 모듈(250)을 더 포함할 수 있다. 이동 경로는 간단하게 노드들을 연결함으로써 설정된다. 경로 생성 모듈(250)은 노드들의 위치가 보정되면 보정된 위치들을 연결하여 이동 경로를 설정한다.The control unit 200 further comprises a position correction module 240 for changing node information of the nodes within the optimization range. The position correction module 240 defines the cost function using the positional relations of the respective nodes, and corrects the position by finding the positions of the nodes that minimize the error. In addition, the control unit 200 may further include a path generation module 250 that generates a movement path using the node information within the optimization range. The movement path is set by simply connecting the nodes. The path generation module 250 establishes a movement path by connecting the corrected positions when the positions of the nodes are corrected.

제어 유닛(200)은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 지역 지도를 생성하는 지역 지도 생성 모듈(260)을 더 포함한다. 또, 상기 제어 유닛은, 이동 로봇의 이동에 따라 생성된 지역 지도들을 연결하여 전역 지도를 생성하는 전역 지도 생성 모듈(270)을 더 포함하여 구성된다. 상기 전역 지도 생성 모듈(270)은, 각 지역 지도들 내의 첫 번째 노드들의 노드 정보들을 이용하여 상기 전역 지도를 보정한다.The control unit 200 further includes a region map generation module 260 for generating a region map using the node information within the optimization range. The control unit further includes a global map generation module 270 for generating a global map by connecting the generated regional maps according to the movement of the mobile robot. The global map generation module 270 corrects the global map using the node information of the first nodes in each region maps.

지역 지도 생성 모듈(260)은 도 7a에 도시한 바와 같이, 복수의 노드들로 이루어진 지역 지도들(a, b, c, d)을 생성한다. 지역 지도가 만들어지면 고정되어 모양이 더 이상 변하지 않는다. 도 7a을 다시 참조하면, 전역 지도 생성 모듈(270)은 여러 개의 지역지도들의 합으로 전역 지도를 생성한다. 전역 지도 생성 모듈(270)은, 도 7b의 왼쪽에 도시한 바와 같이, 각 지역 지도의 첫 번째 노드들만을 보정하여 전역 지도를 생성한다. 그런 다음, 도 7b의 오른쪽에 도시한 바와 같이, 전역 지도 생성 모듈은, 각 지역 지도의 나머지 노드들을 각 지역 지도의 첫 번째 노드를 기준으로 위치를 보정하여, 보정 하기 전의 지역 지도의 모양을 유지한다.The area map generation module 260 generates area maps (a, b, c, d) composed of a plurality of nodes as shown in FIG. 7A. When a local map is created, it is fixed and the shape no longer changes. Referring back to FIG. 7A, the global map generation module 270 generates a global map by summing a plurality of area maps. The global map generation module 270 generates global maps by correcting only the first nodes of each area map, as shown on the left side of FIG. 7B. Then, as shown in the right side of FIG. 7B, the global map generation module corrects the position of the remaining nodes of each area map with reference to the first node of each area map, and maintains the shape of the area map before correction do.

도 8a 내지 도 8c를 참조하여 이동 로봇의 임계점 설정 및 최적화 범위 분리를 예를 들어 설명한다. 범위 설정 모듈(230)은, 각 노드들의 위치 관계에 대한 분산(covariance) 행렬의 역수로 이루어진 행렬로부터, 도 8a에 도시한 바와 같이, 가중치 행렬 (weight matrix)을 구성한다. 그런 다음, 범위 설정 모듈은, 일반화된 특이값 시스템 (generalized eigenvalue system)을 풀어 최소 특이값 (smallest eigenvalue)이 일정 값 이하로 작아지는 부분을 임계점으로 설정한다. 임계점에 도달했을 때, 범위 설정 모듈은 최적화 범위의 영역을 도 8b 또는 도 8c와 같이 분리한다. 이때, 연결이 약한 부분을 중심으로 나누고, 가장 최근 노드가 포함된 곳은 다음 시점의 슬라이딩 윈도우가 되며, 남은 영역은 지역 지도(local map)로 고정된다. 도 8c의 경우는, 위치 관계들이 유사한 영역으로 다시 이동 로봇이 이동한 경우로서, 도 8c에 처음 부분과 끝 부분은 다음 시점의 최적화 범위가 되고, 중간 부분은 지역 지도로 고정된다. The threshold setting and the optimization range separation of the mobile robot will be described with reference to FIGS. 8A to 8C, for example. The range setting module 230 constructs a weight matrix from the matrix consisting of reciprocals of the covariance matrix of the positional relationship of the respective nodes, as shown in FIG. 8A. Then, the range setting module solves the generalized eigenvalue system to set a portion where the smallest eigenvalue becomes smaller than a predetermined value as a critical point. When the critical point is reached, the range setting module separates the area of the optimization range as shown in FIG. 8B or FIG. 8C. At this time, the connection is divided by the weak part, the place where the latest node is included becomes the sliding window of the next time point, and the remaining area is fixed as the local map. In the case of FIG. 8C, the case where the mobile robot moves again to a region where the positional relationships are similar to each other. In FIG. 8C, the initial portion and the end portion are the optimization range for the next time point, and the middle portion is fixed to the region map.

도 9a를 참조하면, 임계점에 도달하기 전까지, 최적화 범위의 크기는 새로운 노드가 추가될 때마다 증가한다. 임계점에 도달하면, 도 9b에 도시한 바와 같이, 지역 지도 영역과 다음 시점의 최적화 범위 영역으로 나눈다. 이때 지역 지도는 고정되고 모양이 더 이상 변화되지 않는다. 그 후 새로운 노드가 추가되면, 도 9c에 도시한 바와 같이, 범위 설정 모듈은, 지역 지도 부분을 제외한 나머지 영역과 새로 추가된 노드를 포함하는 영역으로 최적화 범위를 정하고, 다음 임계점을 만날 때까지 새로운 노드가 추가될 때마다 최적화 범위의 크기를 증가시킨다. 위치 보정 모듈(240)은 각 최적화 범위 내에서는, 예를 들어 마할라노비스의 거리 (Mahalanobis distance)의 합이 최소가 되는 이동 로봇의 위치들을 찾아 보정하고, 경로 생성 모듈(250)은 이러한 위치들을 근거로 경로를 생성한다.Referring to FIG. 9A, until the critical point is reached, the size of the optimization range increases each time a new node is added. When the critical point is reached, as shown in Fig. 9B, the area map is divided into the area map area and the optimization area area at the next time point. At this time, the area map is fixed and the shape is no longer changed. Then, when a new node is added, as shown in FIG. 9C, the range setting module sets the optimization range to the area including the remaining area excluding the area map part and the area including the newly added node, Increases the size of the optimization range every time a node is added. The position correction module 240 finds and corrects the positions of the mobile robot with the minimum sum of the Mahalanobis distances, for example, Mahalanobis distance within each optimization range, and the path generation module 250 calculates Create a path based on

최적화 범위가 임계점에 도달했을 때, 도 10a에 도시한 바와 같이, 두 영역이 나뉘면 일반적으로 노드들의 재배열이 불필요하다. 그러나, 도 10b에 도시한 바와 같이, 두 영역으로 나뉠 경우, 다음 시점의 최적화 범위의 노드들의 인덱스가 불연속적이므로 노드의 재배열이 필요하다. 따라서, 범위 설정 모듈은 지역 지도 영역에 포함된 노드의 인덱스와 다음 시점의 최적화 범위에 해당하는 노드 중 지역 지도 영역에 포함된 노드의 인덱스보다 작은 인덱스를 가지는 노드들의 인덱스를 바꿔 도 10c에 도시한 바와 같이, 최적화 범위 내의 노드들의 인덱스가 연속적이게 만든다.When the optimization range reaches the critical point, as shown in FIG. 10A, when the two regions are divided, the rearrangement of the nodes is generally unnecessary. However, as shown in FIG. 10B, in the case of dividing into two regions, it is necessary to rearrange the nodes because the indexes of the nodes in the optimization range at the next time point are discontinuous. Accordingly, the range setting module may change the index of the node included in the area map area and the index of the node having the index smaller than the index of the node included in the area map area among the nodes corresponding to the optimization range of the next time, As shown, the indexes of the nodes in the optimization range are continuous.

도 1을 다시 참조하면, 제어 유닛(200)은, 노드 정보들을 서로 비교하고, 상기 노드들을 병합하는 노드 병합 모듈(280)을 더 포함하여 구성된다. 도 11a를 참조하면, 이동 로봇이 동일한 지역을 반복해서 여러 번 주행할 경우, 가중치가 약한 부분이 존재하지 않아, 최적화 범위의 크기가 계속해서 증가할 수 있다. 이에 따라 실시간으로 이동 로봇의 경로를 보정하기 어렵고 메모리 사용량이 많아지게 되어 비효율적이다. 따라서 노드 병합 모듈은 동일한 지역에서 비슷하거나 동일한 노드와 위치 관계를 각각 병합하여 도 11b와 같이 노드를 줄여 메모리 효율과 계산 효율을 향상시킨다. 노드 병합 모듈(280)은 가중치 행렬에 약한 부분이 없어 최적화 범위의 크기가 미리 지정된 최대 크기에 도달하는 경우에 병합을 수행한다.Referring back to FIG. 1, the control unit 200 further comprises a node merge module 280 for comparing node information with each other and merging the nodes. Referring to FIG. 11A, when the mobile robot travels repeatedly several times over the same area, there is no weak weighted portion, and the size of the optimization range can continuously increase. Accordingly, it is difficult to correct the path of the mobile robot in real time and the memory usage is increased, which is inefficient. Therefore, the node merging module improves the memory efficiency and calculation efficiency by merging the positional relations with the same or similar nodes in the same region, respectively, as shown in FIG. 11B. The node merging module 280 performs merging when the size of the optimization range reaches a predetermined maximum size because there is no weak portion in the weighting matrix.

도 4를 참조하면, 다른 실시 예에 따른 이동 로봇은, 주 바퀴를 회전시키는 소정의 휠 모터를 구비하고, 상기 휠 모터를 구동하여 이동 로봇을 이동시키는 구동 유닛(400)과, 이동 로봇의 이동에 따라 연속적으로 센서 프레임들의 3차원 거리 이미지들을 획득하는 3차원 거리 센서(110)와, 상기 3차원 거리 이미지들을 근거로 이동 로봇의 위치를 인식하는 제어 유닛(200)을 포함하여 구성된다.Referring to FIG. 4, a mobile robot according to another embodiment includes a drive unit 400 having a predetermined wheel motor for rotating a main wheel and driving the mobile robot to move the mobile robot, And a control unit 200 for recognizing the position of the mobile robot on the basis of the three-dimensional distance images. The three-dimensional distance sensor 110 acquires the three-dimensional distance images of the sensor frames continuously in accordance with the three-dimensional distance images.

여기서, 제어 유닛(200)은, 상기 센서 프레임들에서의 상기 3차원 거리 이미지들에 따른 위치들을 각각 노드들로 설정하는 노드 설정 모듈(210)과, 상기 3차원 거리 이미지들에 대한 거리 이미지 정보를 이용하여 각각의 3차원 거리 이미지들로부터 하나 이상의 평면을 추출하는 평면 추출 모듈(291)과, 상기 평면들의 유사도를 근거로 상기 평면들을 정합하는 평면 정합 모듈(293)과, 상기 평면들의 정합 결과를 근거로 상기 노드들의 위치 관계들을 설정하는 위치 관계 설정 모듈(220)과, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 모듈(230)을 포함하여 구성된다.Here, the control unit 200 may include a node setting module 210 for setting the positions of the three-dimensional distance images in the sensor frames as nodes, and distance image information for the three- A plane extraction module 291 for extracting one or more planes from each of the three-dimensional distance images, a plane matching module 293 for matching the planes based on the similarity of the planes, And a range setting module (230) for variably setting the optimization range including a part of the nodes based on the positional relationships, based on the positional relationship setting module (220) .

3차원 거리 센서(110)는, 발광부와 수광부를 구비하고, 적외선을 이용하여 3차원 거리 이미지들을 검출할 수 있다. 3차원 거리 센서(110)는 발광부로부터 발신된 적외선이 수광부로 반사되어 돌아오는 시간을 이용하여 거리 이미지 정보를 생성한다. 발광부와 수광부는 서로 떨어져 있는데 그 거리가 짧을수록 오차가 줄어들고 정밀한 깊이 영상 정보를 생성할 수 있다. 검출한 거리 이미지(Depth Image)의 일 예는 도 12와 같다. 3차원 거리 센서로는 KINECT (RGB-D 센서), TOF (Structured Light sensor), stereo camera 등이 사용될 수 있다.The three-dimensional distance sensor 110 includes a light emitting portion and a light receiving portion, and can detect three-dimensional distance images using infrared rays. The three-dimensional distance sensor 110 generates distance image information by using the time when the infrared ray emitted from the light emitting unit is reflected by the light receiving unit and returns. The light emitting unit and the light receiving unit are separated from each other. The shorter the distance is, the smaller the error is, and the accurate depth image information can be generated. An example of the detected distance image (Depth Image) is shown in FIG. As the three-dimensional distance sensor, KINECT (RGB-D sensor), TOF (Structured Light sensor), stereo camera and the like can be used.

도 2를 참조하면, 상기 이동 로봇은, 주 바퀴(410)에 연결되어 주 바퀴의 회전수를 감지하는 휠 센서(500)를 더 포함하여 구성된다. 휠 센서는 좌, 우측의 주 바퀴에 연결되어 주 바퀴의 회전수를 감지한다. 일 예로,휠 센서는 로터리 엔코더(Rotary Encoder)일 수 있다. 로터리 엔코더는 이동 로봇이 이동할 때, 좌측과 우측의 주바퀴의 회전수를 감지하여 출력한다. 제어 유닛은 회전수를 이용하여 좌, 우측 바퀴의 회전 속도를 연산할 수 있다. 후술하는 바와 같이, 이동 로봇이 평면 추출을 수행한 후, 이전에 얻어진 평면과의 정합을 통하여 이전 센서 프레임과의 상대 위치를 예측한다. 또, 이동 로봇은 주행하면서 휠 센서를 이용하여 대략적인 위치를 예측할 수 있다. 휠 센서의 정보는 부정확하므로 이동 로봇은 평면 특징점을 활용하여 보정하게 된다. 이동 로봇은 휠 센서의 정보를 이용하여 두 센서 프레임 사이의 평면을 정합하게 되고, 정합 결과를 근거로 두 센서 프레임 사이의 최적의 상대 위치를 계산한다.Referring to FIG. 2, the mobile robot further includes a wheel sensor 500 connected to the main wheel 410 to detect the number of revolutions of the main wheel. The wheel sensor is connected to the left and right main wheels to detect the number of revolutions of the main wheel. As an example, the wheel sensor may be a rotary encoder. When the mobile robot moves, the rotary encoder senses the number of revolutions of the left and right main wheels and outputs them. The control unit can calculate the rotational speeds of the left and right wheels using the number of rotations. As described later, the mobile robot performs the plane extraction, and predicts the relative position with respect to the previous sensor frame through matching with the previously obtained plane. In addition, the mobile robot can predict an approximate position using the wheel sensor while traveling. Since the information of the wheel sensor is inaccurate, the mobile robot compensates using the plane feature points. The mobile robot uses the wheel sensor information to match the planes between the two sensor frames and calculates the optimal relative position between the two sensor frames based on the matching results.

또, 도 3을 참조하면, 상기 이동 로봇은, 상방 또는 전방에 구비되고, 주변을 촬영하여 영상 정보를 획득하는 영상 카메라(600)를 더 포함하여 구성될 수 있다. 영상 카메라(600)는 전방이나 상방을 향하도록 설치된다. 설치 위치는 로봇의 크기, 형태 등에 따라 달라질 수 있다. 영상 카메라(600)는 일정 해상도 이상의 CCD 카메라, CMOS 카메라 등일 수 있다. 영상 카메라(600)는 필요에 따라 렌즈를 구비할 수 있다. 제어 유닛은 영상 정보를 이용하여 로봇의 위치를 계산할 수 있다. 계산된 위치를 이용하여 상기 휠 센서를 대신하거나, 또는 휠 센서의 위치 정보와 함께, 이동 로봇은 두 센서 프레임 사이의 평면을 정합할 수 있다.Referring to FIG. 3, the mobile robot may further include an image camera 600, which is provided above or in front of the mobile robot and acquires image information by photographing the surroundings. The video camera 600 is installed so as to face forward or upward. The installation position may vary depending on the size and shape of the robot. The image camera 600 may be a CCD camera, a CMOS camera, or the like having a resolution higher than a predetermined resolution. The image camera 600 may include a lens as needed. The control unit can calculate the position of the robot using the image information. Instead of the wheel sensor using the calculated position, or with the position information of the wheel sensor, the mobile robot can match the plane between the two sensor frames.

도 13에 도시한 바와 같이, 평면 추출 모듈(291)은 3차원 거리 이미지를 포인트 클라우드로 변환하고, 도 14에 도시한 바와 같이, 평면들을 추출할 수 있다. 평면 추출 모듈(291)은, 3차원 거리 이미지들에 대한 거리 이미지 정보를 이용하여 각각의 3차원 거리 이미지들로부터 상기 하나 이상의 평면을 추출한다. 예를 들어, 평면 추출 모듈(291)은, 3차원 거리 이미지들의 픽셀들 각각에 대한 수직 벡터를 검출하고, 곡률이 크거나 주위 픽셀에 대하여 불연속인 픽셀을 에지로 검출한다. 그런 다음, 평면 추출 모듈(291)은, 일정 범위 내의 수직 벡터를 갖는 픽셀들로 이루어진 픽셀 집합을 추출한다. 평면 추출 모듈(291)은, 픽셀 집합과 대응하는 포인트 클라우드에 대해 영상 처리 기법을 적용하여 평면의 초기 모델을 생성한다. 여기서, 영상 처리 기법으로는 RANSAC (RANdom SAmple Consensus) 등을 사용할 수 있다. 두 개의 각도 파라미터 (α, β)와, 평면의 원점으로부터의 수직 거리 (d)등을 이용하여 평면을 표현한다. 또, 평면을 표현함에 있어서, 각도, 거리 등의 에러 모델, 즉 에러 분산(variance)을 더 이용한다. 추가적으로 평면의 범위를 표현하기 위해서 평면을 구하기 위해 사용된 픽셀 집합에 대응되는 3차원 포인트들의 가우시안 분포를 사용할 수 있다. 이때, 전체 픽셀들을 모두 사용하지 않고 RANSAC 등을 이용하여 일부의 픽셀들을 이용하여 초기 파라미터 값을 생성할 수 있다. 또, 평면 추출 모듈(291)은, 일정 개수의 픽셀들로 이루어진 외곽선을 추출한다.As shown in Fig. 13, the plane extraction module 291 can convert the three-dimensional distance image into a point cloud, and extract planes as shown in Fig. The plane extraction module 291 extracts the one or more planes from each of the three-dimensional distance images using the distance image information for the three-dimensional distance images. For example, the plane extraction module 291 detects a vertical vector for each of the pixels of the three-dimensional distance images, and detects the edge as a pixel whose curvature is large or discontinuous to surrounding pixels. Then, the plane extraction module 291 extracts a set of pixels made up of pixels having a vertical vector within a certain range. The plane extraction module 291 generates an initial model of the plane by applying an image processing technique to the point cloud corresponding to the pixel set. Here, as an image processing technique, RANSAC (Random Access Consensus) or the like can be used. The plane is expressed using two angle parameters (?,?) And a vertical distance (d) from the origin of the plane. Further, in expressing a plane, an error model such as an angle and a distance, that is, an error variance is further used. In addition, a Gaussian distribution of the three-dimensional points corresponding to the set of pixels used to obtain the plane can be used to represent the range of the plane. At this time, an initial parameter value can be generated using some pixels by using RANSAC or the like without using all the pixels. In addition, the plane extraction module 291 extracts outlines constituted by a predetermined number of pixels.

평면 정합 모듈(293)은, 평면들의 유사도를 근거로 상기 평면들을 정합한다. 위치 관계 설정 모듈(220)은 평면들의 정합 결과를 근거로 상기 센서 프레임들의 위치 관계들을 설정한다. 새로 생성된 j 번째 프레임과 이전의 i 번째 프레임 사이의 상대적 위치관계의 추정값에 대한 가우시안 분포(To, CTo)는 이동 로봇의 이동 정보와 직전 프레임에서 구해진 분포를 이용해 구할 수 있다. 이 정보를 이용하면 j번째 프레임을 i 번째 프레임 상으로 변환할 수 있다. 두 개의 평면이 서로 유사한지를 판단하기 위해 이동 로봇은 각도, 거리, 범위 등 평면 파라미터들에 대해 독립적으로 유사도를 계산한다. 이동 로봇은 mahalanobis 거리를 이용할 수 있다. 평면 정합 모듈(293)은, 계산한 유사도가 일정 기준 값보다 클 경우(mahalanobis 거리가 기준 거리보다 작은 경우)에, 두 평면을 정합 후보로 설정한다. 하나의 평면이 다른 프레임의 여러 개의 평면과 중복 정합될 경우에, 평면 정합 모듈(293)은, 정확도가 가장 높은 정합을 선택한다. 위치 관계 설정 모듈(220)은 모든 평면에 대한 정합이 완료되면, 두 센서 프레임 사이의 상대적 위치 관계에 대한 가우시안 분포(Tc, CTc)를 구하게 된다.The planar matching module 293 matches the planes based on the similarity of the planes. The positional relationship setting module 220 sets the positional relationships of the sensor frames based on the matching results of the planes. The Gaussian distribution (T o , C To ) of the estimated value of the relative positional relationship between the newly generated j-th frame and the previous i-th frame can be obtained by using the movement information of the mobile robot and the distribution obtained from the immediately preceding frame. By using this information, the j-th frame can be converted into the i-th frame. To determine whether the two planes are similar to each other, the mobile robot calculates the similarity independently for plane parameters such as angle, distance, and range. The mobile robot can use the mahalanobis distance. The plane matching module 293 sets the two planes as matching candidates when the calculated similarity degree is larger than a certain reference value (when the mahalanobis distance is smaller than the reference distance). When one plane is overlapped with several planes of another frame, the plane matching module 293 selects the matching with the highest accuracy. The positional relationship setting module 220 obtains the Gaussian distribution (T c , C Tc ) of the relative positional relationship between the two sensor frames when the matching of all the planes is completed.

노드 설정 모듈(210)은, 3차원 거리 이미지들을 통해 인식한 이동 로봇의 위치를 노드로 설정한다. 범위 설정 모듈(230)은, 위치 관계들을 이용하여 최적화 범위를 설정한다. 범위 설정 모듈(230)은, 노드의 증가에 따라, 즉 이동 로봇의 이동에 따라 최적화 범위의 크기를 증가시킨다. 이때, 범위 설정 모듈(230)은, 최적화 범위의 크기에 대한 최대 크기를 미리 설정한다. 즉, 범위 설정 모듈은 최대 크기 내에서 최적화 범위의 크기를 증가시킨다. 범위 설정 모듈(230)은, 임계점을 설정하고, 상기 위치 관계들을 근거로 계산된 값이 상기 임계점에 도달하면, 상기 최적화 범위를 분리한다.The node setting module 210 sets the position of the mobile robot recognized through the three-dimensional distance images as a node. The range setting module 230 sets the optimization range using the positional relationships. The range setting module 230 increases the size of the optimization range as the number of nodes increases, that is, as the mobile robot moves. At this time, the range setting module 230 sets the maximum size for the size of the optimization range in advance. That is, the range setting module increases the size of the optimization range within the maximum size. The range setting module 230 sets a critical point and separates the optimization range when the value calculated based on the positional relationships reaches the critical point.

도 4를 다시 참조하면, 제어 유닛(200)은, 상기 최적화 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 모듈(240)과, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 모듈(250)과, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 지역 지도를 생성하는 지역 지도 생성 모듈(260)과, 이동 로봇의 이동에 따라 생성된 지역 지도들을 연결하여 전역 지도를 생성하는 전역 지도 생성 모듈(270)을 더 포함하여 구성된다. 다른 모듈들에 대한 설명은 도 1 및 일 실시 예에서의 설명에 유사하므로 이에 갈음하고 이하 생략한다.Referring again to FIG. 4, the control unit 200 includes a position correction module 240 for changing the node information of the nodes within the optimization range, An area map generation module 260 for generating an area map using the node information within the optimization range and a global map generated by connecting the area maps generated according to the movement of the mobile robot, And a global map generation module 270 for generating a global map. The description of the other modules is similar to that of FIG. 1 and the embodiment, and therefore, it is omitted here.

도 5 및 도 6을 참조하면, 일 실시 예에 따른 이동 로봇의 제어 방법은, 이동 로봇의 이동에 따라 연속적으로 획득한 감지 정보들을 근거로 이동 로봇의 위치들을 인식하고, 상기 인식한 위치들 사이의 위치 관계들을 근거로 상기 인식한 위치들 중 일부를 포함하는 최적화 범위를 가변적으로 설정하며, 상기 최적화 범위 내에서 상기 인식한 위치들을 보정한다. 이하 장치의 구성은 도 1 내지 도 4를 참조한다.5 and 6, a method of controlling a mobile robot according to an exemplary embodiment of the present invention includes recognizing positions of a mobile robot on the basis of consecutively obtained sensed information according to movement of the mobile robot, The optimization range including a part of the recognized positions is variably set, and the recognized positions are corrected within the optimization range. The configuration of the apparatus will be described with reference to Figs.

도 5를 참조하면, 이동 로봇의 제어 방법은, 감지 정보들을 획득하는 정보 획득 단계(S10)와, 상기 위치들을 인식하는 위치 인식 단계(S20)와, 상기 인식한 위치들을 각각 노드들로 설정하는 노드 설정 단계(S30)와, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정하는 위치 관계 설정 단계(S40)와, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정하는 범위 설정 단계(S50)를 포함하여 구성된다.Referring to FIG. 5, the control method of the mobile robot includes an information acquiring step (S10) of acquiring sensed information, a position recognizing step (S20) of recognizing the positions, and setting the recognized positions as nodes A step S30 of setting a positional relationship between the nodes using the node information of the nodes, a step S40 of setting a positional relationship between the nodes using the node information of the nodes, And a range setting step (S50) for variably setting the optimization range.

또, 상기 제어 방법은, 상기 최적화 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 단계(S60)를 더 포함하여 구성된다. 또, 상기 제어 방법은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 단계(S70)를 더 포함하여 구성된다.In addition, the control method further includes a position correction step (S60) of changing node information of the nodes within the optimization range. In addition, the control method further includes a path generation step (S70) of generating a movement path using the node information within the optimization range.

또, 상기 제어 방법은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 지역 지도를 생성하는 지역 지도 생성 단계(S80)를 더 포함할 수 있고, 이동 로봇의 이동에 따라 생성된 지역 지도들을 연결하여 전역 지도를 생성하는 전역 지도 생성 단계(S90)를 더 포함할 수 있다.In addition, the control method may further include a region map generation step (S80) of generating an area map using the node information within the optimization range, and connecting the generated region maps according to the movement of the mobile robot And a global map generation step (S90) of generating a global map.

이동 로봇은 이동하면서(S1) 감지 유닛을 이용하여 연속적으로 주변을 감지한다(S10). 이동 로봇은, 장애물 센서, 가속도 센서, 자이로 센서, 3차원 거리 센서 등이나 또는 휠 센서, 영상 카메라 등의 감지 유닛을 통해 획득한 감지 정보를 이용하여 위치를 인식한다(S20). 이동 로봇은, 인식한 위치들을 각각 노드들로 설정하고(S30), 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정한다(S40). 그런 다음, 이동 로봇은, 상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 상기 최적화 범위를 가변적으로 설정한다.The mobile robot continuously senses the surroundings using the sensing unit while moving (S1). The mobile robot recognizes the position using sensing information acquired through an obstacle sensor, an acceleration sensor, a gyro sensor, a three-dimensional distance sensor, or a sensing unit such as a wheel sensor or a video camera (S20). The mobile robot sets the recognized positions as nodes (S30), and sets the positional relationships among the nodes using the node information of the nodes (S40). Then, the mobile robot variably sets the optimization range including a part of the nodes based on the positional relationships.

이동 로봇은, 감지 정보들을 통해 인식한 이동 로봇의 위치를 노드로 설정한다(S30). 이동 로봇은, 2차원 또는 3차원 좌표계를 이용하여 노드를 표시한다. 이동 로봇은, 상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정한다(S40). 예를 들어, j 번째 위치와 이전의 i 번째 위치 사이의 상대적 위치 관계의 추정값에 대한 가우시안 분포는 이동 로봇의 이동 정보와 직전 위치에서 구해진 분포를 이용해 구할 수 있다. 이 정보를 이용하면, j 번째 위치를 i 번째 위치로 변환할 수 있다.The mobile robot sets the position of the mobile robot recognized through the sensing information as a node (S30). The mobile robot displays a node using a two-dimensional or three-dimensional coordinate system. The mobile robot sets positional relationships among the nodes using node information of the nodes (S40). For example, the Gaussian distribution of the estimated value of the relative positional relationship between the j-th position and the previous i-th position can be obtained by using the distribution obtained from the movement information of the mobile robot and the immediately preceding position. With this information, the j-th position can be converted to the i-th position.

범위 설정 단계(S50)는, 상기 노드의 증가에 따라 상기 최적화 범위의 크기를 증가시킨다. 도 6을 참조하면, 상기 범위 설정 단계(S50)는, 상기 최적화 범위의 크기에 대한 최대 크기를 미리 설정하는 과정(S51a)과, 상기 최대 크기 내에서 상기 최적화 범위의 크기를 증가시키는 과정(S54)을 포함하여 구성된다. 또, 범위 설정 단계(S50)는, 임계점을 설정하는 과정(S51b)과, 상기 위치 관계들을 근거로 계산된 값이 상기 임계점에 도달하는지 여부를 판단하는 과정(S55)과, 상기 임계점에 도달하면, 상기 최적화 범위를 분리하는 과정(S56)을 더 포함하여 구성된다.The range setting step (S50) increases the size of the optimization range as the number of nodes increases. Referring to FIG. 6, the range setting step S50 includes setting a maximum size for the size of the optimization range in advance (S51a), and increasing the size of the optimization range within the maximum size S54 ). The range setting step S50 includes a step of setting a threshold point S51b, a step of determining whether a value calculated on the basis of the positional relations reaches the threshold point S55, , And separating the optimization range (S56).

이동 로봇은, 각 노드들의 위치 관계들을 이용하여 비용 함수를 정의하고, 에러를 최소화하는 노드들의 위치를 구하여 위치를 보정한다(S60). 또, 이동 로봇은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성한다(S70). 이동 경로는 간단하게 노드들을 연결함으로써 설정된다. 이동 로봇은, 노드들의 위치가 보정되면 보정된 위치들을 연결하여 이동 경로를 설정한다.The mobile robot defines the cost function using the positional relationships of the respective nodes, and corrects the position by finding the positions of the nodes that minimize the error (S60). In addition, the mobile robot generates a movement route using the node information within the optimization range (S70). The movement path is set by simply connecting the nodes. When the position of the nodes is corrected, the mobile robot connects the corrected positions to set the movement path.

이동 로봇은, 상기 최적화 범위 내에서 상기 노드 정보들을 이용하여 지역 지도를 생성한다(S80). 또, 이동 로봇은, 이동에 따라 생성된 지역 지도들을 연결하여 전역 지도를 생성한다(S90). 이동 로봇은, 각 지역 지도들 내의 첫 번째 노드들의 노드 정보들을 이용하여 상기 전역 지도를 보정한다.The mobile robot generates an area map using the node information within the optimization range (S80). In addition, the mobile robot generates a global map by connecting the generated local maps according to the movement (S90). The mobile robot corrects the global map by using the node information of the first nodes in each area maps.

이동 로봇은, 도 7a에 도시한 바와 같이, 복수의 노드들로 이루어진 지역 지도들(a, b, c, d)을 생성한다(S80). 지역 지도가 만들어지면 고정되어 모양이 더 이상 변하지 않는다. 도 7a을 다시 참조하면, 이동 로봇은 여러 개의 지역지도들의 합으로 전역 지도를 생성한다(S90). 이동 로봇은, 도 7b의 왼쪽에 도시한 바와 같이, 각 지역 지도의 첫 번째 노드들만을 보정하여 전역 지도를 생성한다. 그런 다음, 도 7b의 오른쪽에 도시한 바와 같이, 이동 로봇은, 각 지역 지도의 나머지 노드들을 각 지역 지도의 첫 번째 노드를 기준으로 위치를 보정하여, 보정 하기 전의 지역 지도의 모양을 유지한다.As shown in FIG. 7A, the mobile robot generates area maps a, b, c, and d of a plurality of nodes (S80). When a local map is created, it is fixed and the shape no longer changes. Referring back to FIG. 7A, the mobile robot generates a global map by summing a plurality of area maps (S90). As shown on the left side of FIG. 7B, the mobile robot corrects only the first nodes of each area map to generate a global map. Then, as shown on the right side of FIG. 7B, the mobile robot corrects the position of the remaining nodes of each area map with reference to the first node of each area map, and maintains the shape of the area map before correction.

도 8a 내지 도 8c를 참조하여 이동 로봇의 임계점 설정 및 최적화 범위 분리를 예를 들어 설명한다. 이동 로봇은, 각 노드들의 위치 관계에 대한 분산(covariance) 행렬의 역수로 이루어진 행렬로부터, 도 8a에 도시한 바와 같이, 가중치 행렬 (weight matrix)을 구성한다. 그런 다음, 이동 로봇은, 일반화된 특이값 시스템 (generalized eigenvalue system)을 풀어 최소 특이값 (smallest eigenvalue)이 일정 값 이하로 작아지는 부분을 임계점으로 설정한다(S51b). 임계점에 도달했을 때(S55), 이동 로봇은 최적화 범위의 영역을 도 8b 또는 도 8c와 같이 분리한다(S56). 이때, 연결이 약한 부분을 중심으로 나누고, 가장 최근 노드가 포함된 곳은 다음 시점의 슬라이딩 윈도우가 되며, 남은 영역은 지역 지도(local map)로 고정된다. 도 8c의 경우는, 위치 관계들이 유사한 영역으로 다시 이동 로봇이 이동한 경우로서, 도 8c에 처음 부분과 끝 부분은 다음 시점의 최적화 범위가 되고, 중간 부분은 지역 지도로 고정된다. The threshold setting and the optimization range separation of the mobile robot will be described with reference to FIGS. 8A to 8C, for example. The mobile robot constructs a weight matrix from a matrix composed of inverse numbers of covariance matrices of positional relations of the respective nodes, as shown in FIG. 8A. Then, the mobile robot solves the generalized eigenvalue system and sets a portion where the smallest eigenvalue becomes smaller than a predetermined value as a threshold (S51b). When reaching the critical point (S55), the mobile robot separates the region of the optimization range as shown in FIG. 8B or FIG. 8C (S56). At this time, the connection is divided by the weak part, the place where the latest node is included becomes the sliding window of the next time point, and the remaining area is fixed as the local map. In the case of FIG. 8C, the case where the mobile robot moves again to a region where the positional relationships are similar to each other. In FIG. 8C, the initial portion and the end portion are the optimization range for the next time point, and the middle portion is fixed to the region map.

도 9a를 참조하면, 임계점에 도달하기 전까지, 최적화 범위의 크기는 새로운 노드가 추가될 때마다 증가한다(S54). 임계점에 도달하면(S55), 도 9b에 도시한 바와 같이, 지역 지도 영역과 다음 시점의 최적화 범위 영역으로 나눈다. 이때 지역 지도는 고정되고 모양이 더 이상 변화되지 않는다. 그 후 새로운 노드가 추가되면(S53), 도 9c에 도시한 바와 같이, 이동 로봇은, 지역 지도 부분을 제외한 나머지 영역과 새로 추가된 노드를 포함하는 영역으로 최적화 범위를 정하고, 다음 임계점을 만날 때까지 새로운 노드가 추가될 때마다 최적화 범위의 크기를 증가시킨다(S54). 이동 로봇은 각 최적화 범위 내에서는, 예를 들어 마할라노비스의 거리 (Mahalanobis distance)의 합이 최소가 되는 이동 로봇의 위치들을 찾아 보정하고(S60), 이러한 위치들을 근거로 경로를 생성한다(S70). 지역 지도로 고정된 후, 다음 최적화 범위로 이동하며(S120), 이동 로봇의 이동에 따라(S52) 새로운 노드가 추가되면(S53) 최적화 범위의 크기는 증가한다(54).Referring to FIG. 9A, until the critical point is reached, the size of the optimization range increases each time a new node is added (S54). When the critical point is reached (S55), as shown in Fig. 9B, the area map is divided into the area map area and the optimization area area at the next time point. At this time, the area map is fixed and the shape is no longer changed. Then, when a new node is added (S53), as shown in FIG. 9C, the mobile robot sets an optimization range to a region excluding the region map portion and a region including the newly added node, and when a next critical point is encountered The size of the optimization range is increased each time a new node is added (S54). The mobile robot locates and corrects the positions of the mobile robot having the minimum sum of Mahalanobis distances (S60) within each optimization range, and generates a route based on these positions (S70 ). After the robot is fixed to the local map, the robot moves to the next optimization range (S120). When a new robot is added (S52) according to the movement of the robot (S53), the size of the optimization range is increased (54).

최적화 범위가 임계점에 도달했을 때, 도 10a에 도시한 바와 같이, 두 영역이 나뉘면 일반적으로 노드들의 재배열이 불필요하다. 그러나, 도 10b에 도시한 바와 같이, 두 영역으로 나뉠 경우, 다음 시점의 최적화 범위의 노드들의 인덱스가 불연속적이므로 노드의 재배열이 필요하다. 따라서, 이동 로봇은 지역 지도 영역에 포함된 노드의 인덱스와 다음 시점의 최적화 범위에 해당하는 노드 중 지역 지도 영역에 포함된 노드의 인덱스보다 작은 인덱스를 가지는 노드들의 인덱스를 바꿔 도 10c에 도시한 바와 같이, 최적화 범위 내의 노드들의 인덱스가 연속적이게 만든다.When the optimization range reaches the critical point, as shown in FIG. 10A, when the two regions are divided, the rearrangement of the nodes is generally unnecessary. However, as shown in FIG. 10B, in the case of dividing into two regions, it is necessary to rearrange the nodes because the indexes of the nodes in the optimization range at the next time point are discontinuous. Accordingly, the mobile robot changes the index of the node having the index smaller than the index of the node included in the area map area among the nodes corresponding to the index of the node included in the area map area and the optimization range of the next time, Similarly, the indexes of the nodes in the optimization range are made continuous.

이동 로봇은, 노드 정보들을 서로 비교하고, 비교 결과에 따라 상기 노드들을 병합할 수 있다(S100, S110). 도 11a를 참조하면, 이동 로봇이 동일한 지역을 반복해서 여러 번 주행할 경우, 가중치가 약한 부분이 존재하지 않아, 최적화 범위의 크기가 계속해서 증가할 수 있다(도 6의 S57의 예). 이에 따라 실시간으로 이동 로봇의 경로를 보정하기 어렵고 메모리 사용량이 많아지게 되어 비효율적이다. 따라서 이동 로봇은 동일한 지역에서 비슷하거나 동일한 노드와 위치 관계를 각각 병합하여(S110), 도 11b와 같이 노드를 줄여 메모리 효율과 계산 효율을 향상시킨다. 이동 로봇은, 가중치 행렬에 약한 부분이 없어 최적화 범위의 크기가 미리 지정된 최대 크기에 도달하는 경우에 병합을 수행한다(S110).The mobile robot compares the node information with each other, and merges the nodes according to the comparison result (S100, S110). Referring to FIG. 11A, when the mobile robot travels repeatedly several times in the same area, there is no weak weighted portion, and the size of the optimization range can be continuously increased (the example of S57 in FIG. 6). Accordingly, it is difficult to correct the path of the mobile robot in real time and the memory usage is increased, which is inefficient. Accordingly, the mobile robot merges the positional relations with the same or similar nodes in the same area (S110), thereby reducing the number of nodes as shown in FIG. 11B, thereby improving memory efficiency and calculation efficiency. The mobile robot performs merging when the size of the optimization range reaches a predetermined maximum size because there is no weak portion in the weighting matrix (S110).

이상 설명한 바와 같이, 본 발명의 실시 예들에 따른 이동 로봇 및 이의 제어 방법은, 이동 로봇의 위치를 인식하고 경로를 정밀하게 탐색함에 있어서, 전체 경로를 한번에 보정하지 아니하고, 환경에 따라 최적화 범위의 크기를 적절히 조절하면서 그 범위 내의 경로만을 보정하며, 가변 최적화 범위를 이동하여 점진적으로 경로를 보정한다. 본 발명의 실시 예들은, 가변 최적화 범위를 이용하므로 정보의 손실을 최소화할 수 있고, 환경에 따라 최적화 범위의 크기를 적절하게 결정할 수 있다. 또한, 본 발명의 실시 예들은, 지역 지도의 집합으로 전역 지도를 구성함으로써 전역 지도 보정에 효율적이다. 또, 본 발명의 실시 예들은, 센서의 감지 정보를 이용하여 위치를 인식하거나 또는 실내 지도를 생성할 수 있다. 본 발명의 실시 예들은 3차원 거리 센서를 이용하고, 3차원 거리 이미지들로부터 하나 이상의 평면을 추출하고 평면들을 정합함으로써 위치를 인식하거나 또는 3차원 지도를 생성할 수 있다.As described above, in the mobile robot and its control method according to the embodiments of the present invention, when the position of the mobile robot is recognized and the path is searched precisely, the entire path is not corrected at a time, Corrects only the path within the range, moves the variable optimization range, and gradually corrects the path. Embodiments of the present invention can minimize the loss of information by using the variable optimization range, and can appropriately determine the size of the optimization range according to the environment. In addition, embodiments of the present invention are effective for global map correction by constructing a global map as a set of area maps. Further, embodiments of the present invention can recognize the position or generate the indoor map using the sensing information of the sensor. Embodiments of the present invention may utilize a three-dimensional distance sensor, extract one or more planes from the three-dimensional distance images and match the planes to recognize the position or create a three-dimensional map.

100: 3차원 거리 센서 200: 제어 유닛
300: 저장 유닛 400: 구동 유닛
500: 휠 센서 600: 영상 카메라
100: three-dimensional distance sensor 200: control unit
300: storage unit 400: drive unit
500: Wheel sensor 600: Video camera

Claims (25)

이동 로봇의 이동에 따라 연속적으로 주변을 감지하여 감지 정보들을 출력하는 감지 유닛; 및
상기 감지 정보들을 이용하여 상기 이동 로봇의 이동에 따른 상기 이동 로봇의 위치들을 인식하는 제어 유닛;을 포함하고,
상기 제어 유닛은,
상기 인식한 위치들을 각각 노드들로 설정하는 노드 설정 모듈;
상기 노드들의 노드 정보들을 이용하여 상기 노드들 사이의 위치 관계들을 설정하는 위치 관계 설정 모듈;
상기 위치 관계들을 근거로 상기 노드들 중 일부를 포함하는 범위를 설정하는 범위 설정 모듈; 및
상기 범위 내에서 상기 노드들의 노드 정보들을 변경하는 위치 보정 모듈;을 포함하는 이동 로봇.
A sensing unit for continuously sensing the surroundings according to the movement of the mobile robot and outputting sensed information; And
And a control unit for recognizing the positions of the mobile robot according to the movement of the mobile robot using the sensed information,
Wherein the control unit comprises:
A node setting module for setting the recognized positions as nodes;
A location relation setting module for setting location relations among the nodes using node information of the nodes;
A range setting module for setting a range including a part of the nodes based on the positional relationships; And
And a position correction module for changing node information of the nodes within the range.
삭제delete 삭제delete 제1 항에 있어서,
상기 제어 유닛은,
상기 범위 내에서 상기 노드 정보들을 이용하여 이동 경로를 생성하는 경로 생성 모듈;을 더 포함하는 것을 특징으로 하는 이동 로봇.
The method according to claim 1,
Wherein the control unit comprises:
And a path generation module for generating a movement path using the node information within the range.
제4 항에 있어서,
상기 범위 설정 모듈은,
상기 노드의 증가에 따라 상기 범위의 크기를 증가시키는 것을 특징으로 하는 이동 로봇.
5. The method of claim 4,
The range setting module includes:
And increases the size of the range as the number of nodes increases.
제5 항에 있어서,
상기 범위 설정 모듈은,
상기 범위의 크기에 대한 최대 크기를 미리 설정하고, 상기 최대 크기 내에서 상기 범위의 크기를 증가시키는 것을 특징으로 하는 이동 로봇.
6. The method of claim 5,
The range setting module includes:
Sets a maximum size for the size of the range in advance, and increases the size of the range within the maximum size.
제6 항에 있어서,
상기 범위 설정 모듈은,
임계점을 설정하고, 상기 위치 관계들을 근거로 계산된 값이 상기 임계점에 도달하면, 상기 범위를 분리하는 것을 특징으로 하는 이동 로봇.
The method according to claim 6,
The range setting module includes:
Sets a threshold point, and separates the range when a value calculated based on the positional relations reaches the critical point.
제7 항에 있어서,
상기 제어 유닛은,
상기 범위 내에서 상기 노드 정보들을 이용하여 지역 지도를 생성하는 지역 지도 생성 모듈;을 더 포함하는 것을 특징으로 하는 이동 로봇.
8. The method of claim 7,
Wherein the control unit comprises:
And a region map generation module for generating a region map using the node information within the range.
제8 항에 있어서,
상기 제어 유닛은,
이동 로봇의 이동에 따라 생성된 지역 지도들을 연결하여 전역 지도를 생성하는 전역 지도 생성 모듈;을 더 포함하는 것을 특징으로 하는 이동 로봇.
9. The method of claim 8,
Wherein the control unit comprises:
And a global map generation module for generating a global map by connecting the generated regional maps according to the movement of the mobile robot.
제9 항에 있어서,
상기 전역 지도 생성 모듈은,
각 지역 지도들 내의 첫 번째 노드들의 노드 정보들을 이용하여 상기 전역 지도를 보정하는 것을 특징으로 하는 이동 로봇.
10. The method of claim 9,
Wherein the global map generation module comprises:
And corrects the global map using the node information of the first nodes in the respective region maps.
제7 항에 있어서,
상기 제어 유닛은,
상기 노드 정보들을 서로 비교하고, 상기 노드들을 병합하는 노드 병합 모듈;을 더 포함하는 것을 특징으로 하는 이동 로봇.
8. The method of claim 7,
Wherein the control unit comprises:
And a node merging module for comparing the node information with each other and merging the nodes.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020120059413A 2012-06-01 2012-06-01 Mobile robot and method for controlling the same KR101956569B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120059413A KR101956569B1 (en) 2012-06-01 2012-06-01 Mobile robot and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120059413A KR101956569B1 (en) 2012-06-01 2012-06-01 Mobile robot and method for controlling the same

Publications (2)

Publication Number Publication Date
KR20130135652A KR20130135652A (en) 2013-12-11
KR101956569B1 true KR101956569B1 (en) 2019-03-11

Family

ID=49982842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120059413A KR101956569B1 (en) 2012-06-01 2012-06-01 Mobile robot and method for controlling the same

Country Status (1)

Country Link
KR (1) KR101956569B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102568651B1 (en) * 2022-10-26 2023-08-22 주식회사 클로봇 Phase map forming device and method for generating movement paths of multiple unmanned moving objects

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160129143A (en) 2015-04-29 2016-11-09 (주)이산솔루션 Robot control service system based on smart device and robot control service method therefor
KR101868374B1 (en) 2016-10-20 2018-06-18 엘지전자 주식회사 Control method of a moving-robotf
WO2021117999A1 (en) * 2019-12-10 2021-06-17 한국로봇융합연구원 Spinal control mobile robot using rgb-d cameras

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553656B1 (en) * 2009-02-19 2015-09-17 삼성전자 주식회사 Apparatus and method for relocation of robot

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102568651B1 (en) * 2022-10-26 2023-08-22 주식회사 클로봇 Phase map forming device and method for generating movement paths of multiple unmanned moving objects

Also Published As

Publication number Publication date
KR20130135652A (en) 2013-12-11

Similar Documents

Publication Publication Date Title
JP7150773B2 (en) Mobile robot and its control method
KR101618030B1 (en) Method for Recognizing Position and Controlling Movement of a Mobile Robot, and the Mobile Robot Using the same
KR102275300B1 (en) Moving robot and control method thereof
EP3575046B1 (en) Mobile robot and method for controlling same
US10102429B2 (en) Systems and methods for capturing images and annotating the captured images with information
KR101813922B1 (en) Robot cleaner and controlling method of the same
CN106780608B (en) Pose information estimation method and device and movable equipment
KR101538775B1 (en) Apparatus and method for localization using forward images
KR101725060B1 (en) Apparatus for recognizing location mobile robot using key point based on gradient and method thereof
US8903160B2 (en) Apparatus and method with traveling path planning
AU2017258264B2 (en) Mobile robot and control method therefor
KR101705601B1 (en) Apparatus and method for estimating the location of autonomous robot based on three-dimensional depth information
WO2020051923A1 (en) Systems And Methods For VSLAM Scale Estimation Using Optical Flow Sensor On A Robotic Device
EP2460629A1 (en) Control method for localization and navigation of mobile robot and mobile robot using same
EP2495632A1 (en) Map generating and updating method for mobile robot position recognition
EP3079031B1 (en) Moving robot and method of recognizing location of moving robot
KR20110092158A (en) Robot cleaner and controlling method thereof
CN108544494B (en) Positioning device, method and robot based on inertia and visual characteristics
KR101956569B1 (en) Mobile robot and method for controlling the same
KR101965739B1 (en) Mobile robot and method for controlling the same
US11055341B2 (en) Controlling method for artificial intelligence moving robot
KR102203438B1 (en) a Moving robot and Controlling method for the moving robot
KR20160090278A (en) Mobile robot and controlling method of the same
KR20220121483A (en) Method of intelligently generating map and mobile robot thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant