KR101650128B1 - 이동 로봇의 지도 생성 장치 및 방법 - Google Patents

이동 로봇의 지도 생성 장치 및 방법 Download PDF

Info

Publication number
KR101650128B1
KR101650128B1 KR1020100016811A KR20100016811A KR101650128B1 KR 101650128 B1 KR101650128 B1 KR 101650128B1 KR 1020100016811 A KR1020100016811 A KR 1020100016811A KR 20100016811 A KR20100016811 A KR 20100016811A KR 101650128 B1 KR101650128 B1 KR 101650128B1
Authority
KR
South Korea
Prior art keywords
map
sub
slip
mobile robot
generating
Prior art date
Application number
KR1020100016811A
Other languages
English (en)
Other versions
KR20110097139A (ko
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 KR1020100016811A priority Critical patent/KR101650128B1/ko
Publication of KR20110097139A publication Critical patent/KR20110097139A/ko
Application granted granted Critical
Publication of KR101650128B1 publication Critical patent/KR101650128B1/ko

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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/081Touching devices, e.g. pressure-sensitive
    • B25J13/082Grasping-force detectors
    • B25J13/083Grasping-force detectors fitted with slippage detectors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W20/00Control systems specially adapted for hybrid vehicles
    • B60W20/10Controlling the power contribution of each of the prime movers to meet required power demand
    • B60W20/12Controlling the power contribution of each of the prime movers to meet required power demand using control strategies taking into account route information

Abstract

이동 로봇의 주행시 슬립이 발생하더라도 정확한 지도를 생성하고, 생성된 지도를 기반으로 이동 로봇의 위치를 정확하게 추정하기 위한 이동 로봇의 지도 생성 장치 및 방법이 제공된다. 이동 로봇의 지도 생성 장치는, 이동 로봇의 주행중에 슬립을 감지하는 슬립 감지부와, 이동 로봇의 위치를 인식하고, 이동 로봇의 슬립의 발생에 따라 복수 개의 서브 지도를 생성하는 서브 지도 생성부와, 슬립의 발생량에 따라 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 스프링의 강성을 결정하고, 결정된 강성에 따라 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성하는 전체 지도 생성부를 포함한다.

Description

이동 로봇의 지도 생성 장치 및 방법{Apparatus for building map of moving robot and method thereof}
이동 로봇의 지도 생성 장치 및 방법에 관한 것으로, 더욱 상세하게는, 이동 로봇이 이동하면서 지도를 생성할 때 지도의 정확성을 향상시킬 수 있는 지도 생성 장치 및 방법에 관한 것이다.
이동 로봇은 다양한 감지 센서 및 자율적인 주행 제어 알고리즘을 탑재하여 장애물을 피해가면서 원하는 방향으로 주행하도록 구성된다. 이동 로봇은 주로 모터 또는 주행 엔진에 의해 회전 구동되는 바퀴를 이용하여 이용한다.
바퀴를 주행 수단으로 하는 이동 로봇의 경우에는, 주행시에, 바퀴와 바닥면과의 마찰력 감소로 인한 이동 로봇이 미끄러지는 슬립(Slip) 현상이 발생하거나, 양쪽 바퀴간의 기구적인 편차로 인한 직진 주행시의 거리 편차 발생들의 우려가 있다. 이러한 주행 성능의 오차 요인을 최소화하기 위해, 이동 로봇이 주행하는 노면의 바닥면에 바코드를 설치하고, 로봇이 설치된 바코드를 읽어들임으로써 정확한 노면 주행을 보장하거나, 로봇 내부에 자이로스코프를 내장하여, 목적 위치의 방위각에 따라 주행시 이탈 방향을 보정하거나, 바퀴에 엔코더를 설치하고, 엔코더로부터 얻어지는 엔코더 펄스를 피드백하여 주행 오차를 감소시키도록 하는 등의 다양한 방법이 강구되고 있다.
그러나, 이러한 주행 성능의 오차 요인을 감소시키기 위해 적용되는 바코드 설치 방식이나 자이로스코프 내장 방식, 엔코더 방식의 경우에는 고가의 장비를 설치하거나 탑재해야 함에 따라 비용 상승의 주요인이 있고, 사용자의 사용상에 불편함이 따르고, 로봇의 주행 오차 보정에 대한 신뢰성에 한계가 있다.
이동 로봇의 주행시 슬립이 발생하더라도 정확한 지도를 생성하고, 생성된 지도를 기반으로 이동 로봇의 위치를 정확하게 추정하기 위한 이동 로봇의 지도 생성 장치 및 방법이 제공된다.
일 측면에 따른 이동 로봇의 지도 생성 장치는, 이동 로봇의 주행중에 슬립을 감지하는 슬립 감지부와, 이동 로봇의 위치를 인식하고, 이동 로봇의 슬립의 발생에 따라 복수 개의 서브 지도를 생성하는 서브 지도 생성부와, 슬립의 발생량에 따라 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 스프링의 강성을 결정하고, 결정된 강성에 따라 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성하는 전체 지도 생성부를 포함한다.
서브 지도 생성부는, 서브 지도를 생성하다가 슬립이 감지되면 서브 지도 생성을 멈추고 슬립 감지가 종료될 때까지 지도 생성을 중단하고, 슬립 감지가 종료되면 새로운 서브 지도를 생성하는 동작을, 이동 로봇이 이전에 방문했던 위치로 회귀했다고 결정할 때까지 반복할 수 있다.
슬립의 발생량은, 슬립에 의하여 이동 로봇이 미끄러진 거리는 나타낼 수 있다.
전체 지도 생성부는, 복수 개의 스프링의 강성을 슬립의 발생량에 반비례하도록 결정할 수 있다. 강성은 모델링된 스프링의 스프링 상수일 수 있다.
전체 지도 생성부는, 복수 개의 서브 지도에서 동일한 위치를 나타내는 제1 지점 및 제2 지점을 결정하고, 제1 지점에서 시작하여, 복수 개의 서브 지도의 경계를 지나서, 제2 지점으로 폐루프를 형성하는 복수 개의 벡터를 설정하고, 복수 개의 벡터의 합이 0이 되도록 제1 지점의 위치로 제2 지점을 당기는 가상의 힘(Fv)을 결정할 수 있다.
전체 지도 생성부는, 가상의 힘(Fv)을 이용하여, 복수 개의 서브 지도 사이의 상대적 위치를 결정하고, 결정된 상대적 위치에 따라서, 복수 개의 서브 지도를 이용하여 전체 지도를 생성할 수 있다.
다른 측면에 따른 이동 로봇의 지도 생성 방법은, 주행중인 이동 로봇이 위치를 인식하고 지도를 작성하면서 슬립을 감지하는 단계와, 이동 로봇의 슬립의 발생에 따라 복수 개의 서브 지도를 생성하는 단계와, 슬립의 발생량에 따라 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 가상 스프링의 강성을 결정하는 단계와, 결정된 강성에 따라 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성하는 단계를 포함한다.
이동 로봇의 주행시 슬립이 발생하더라도 정확한 지도를 생성하고, 생성된 지도를 기반으로 이동 로봇의 위치를 정확하게 추정할 수 있다.
도 1은 이동 로봇의 지도 생성 장치의 구성의 일 예를 나타내는 블록도이다.
도 2는 슬립 발생시 가상 스프링으로 모델링된 서브 지도 간의 관계의 일 예를 나타내는 도면이다.
도 3은 슬립량을 스프링 상수로 모델링한 일 예를 나타내는 도면이다.
도 4는 서브 지도 간 변수 정의에 따른 서브 지도간의 상대적 위치를 결정하는 동작의 일 예를 나타내는 도면이다.
도 5는 이동 로봇의 지도 생성 방법의 일 예를 나타내는 순서도이다.
도 6a는 이동 로봇이 주행하는 주행 공간을 일 예를 나타내는 도면이고,
도 6b는 슬립 발생시 생성되는 지도의 일 예를 나타내는 도면이고,
도 6c는 지도 생성 과정에서 슬립 발생시에 일반적인 루프 클로징 기법 적용한 경우 생성된 지도의 일 예를 나타내는 도면이고,
도 6d는 슬립 발생시 일 실시예에 따른 지도 생성 방법에 따라 생성된 지도의 일 예를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 이동 로봇의 지도 생성 장치의 구성의 일 예를 나타내는 블록도이다.
이동 로봇의 지도 생성 장치(100)는 주행부(110), 감지부(120), 제어부(130) 및 저장부(140)를 포함할 수 있다. 지도 생성 장치(100)는 이동 로봇으로 구현될 수 있다. 이하에서, 지도 생성 장치(100)가 이동 로봇이라고 가정한다.
주행부(110)는 이동 로봇(100)을 주행시키기 위하여 복수 개의 바퀴와 같은 주행 수단과, 주행 수단에 구동력을 제공하기 위한 구동원을 포함할 수 있다.
감지부(120)는 이동 로봇(100)에 장착되어 이동 로봇(100)의 이동량 및 회전량을 감지한다. 감지부(120)는, 자이로 센서(121), 엔코더(122), 가속도 센서(123), 영상 센서(124), 초음파 센서(125)를 포함할 수 있다.
자이로 센서(121)는 이동 로봇(100)의 실제 회전한 각도를 감지할 수 있다. 엔코더(122)는 바퀴에 장착되어, 이동 로봇(100)의 실제 움직인 경로를 인식하는데 이용될 수 있다. 상세하게는, 엔코더(122)에 의해 움직인 거리 및 방향을 적분함으로써 현재 이동 로봇의 평면상의 2차원 좌표계상의 위치(position) 및 방향각 추정이 가능하다. 통상적으로, 엔코더(122)는 짧은 구간에서는 비교적 정확하지만 적분을 계속 수행해 나감에 따라 오차가 누적된다. 가속도 센서(123)는 이동 로봇(100)의 가속도 정보를 감지한다. 영상 센서(124)는 외부의 이미지를 포착하여 포착된 이미지를 디지털 신호로 변환한다. 영상 센서(124)는 CCD(Charge Coupled Device) 모듈이나 CMOS(Complementary Metal Oxide Semiconductor) 모듈을 포함하여 구성될 수 있다. 영상 센서(124)는 이동 로봇(100)이 주행하는 공간을 촬영하여, 특징점 지도를 작성하는데 이용될 수 있다. 초음파 센서(125)는 장애물 지도를 작성하는데 이용되는 장애물 감지 정보를 감지한다. 장애물 감지를 위해, 감지부(120)에 적외선 센서 및 레이저 센서 등이 더 포함될 수 있다.
제어부(130)는 슬립 감지부(132), 서브 지도 생성부(134) 및 전체 지도 생성부(136)를 포함할 수 있다.
슬립 감지부(132)는 자이로 센서(121), 엔코더(122) 및 가속도 센서(123) 중 적어도 하나로부터 감지 정보를 이용하여, 슬립을 감지할 수 있다.
일 예로, 슬립 감지부(132)는 바퀴가 일정 속도 회전하도록 제어된 상황에서 전류의 급격한 소모를 감지할 수 있다. 전류의 급격한 변화는 바퀴에 가해진 토크의 변화를 나타내므로, 바닥의 이물질이나 장애물과의 충돌을 감지할 수 있다.
또는, 슬립 감지부(132)는 바퀴의 엔코더(122)의 값을 이용하여 로봇의 속도를 알 수 있고, 이를 미분하여 이동 로봇의 가속도 추정값을 알 수 있다. 이 추정값은 바퀴와 지면 사이의 슬립이 없는 경우 참에 가깝다. 엔코더(122)를 이용한 추정 값과 가속도 센서(123)로부터 측정된 값을 비교하여 슬립 여부를 알 수 있다. 슬립 감지부(132)는 추정 값과 가속도계의 값이 일정 범위 이상 차이가 나면 슬립이 발생한 것으로 결정할 수 있다.
또는, 슬립 감지부(132)는 양 바퀴에 설치된 엔코더(122)의 값을 이용하여, 주행 로봇의 선속도(linear velocity)와 각속도(angular velocity)를 알 수 있다. 양 바퀴에 설치된 엔코더(122)의 값의 차이를 바퀴 간의 거리로 나누면 각속도 값을 추정할 수 있다. 추정된 각속도 값과 자이로 센서(121)에서 측정된 값 사이의 차이가 크게 발생하면 슬립이 발생한 것으로 판단할 수 있다.
슬립 감지부(132)는 슬립이 감지될 때마다 슬립이 감지되었음을 나타내는 슬립 감지 신호를 서브 지도 생성부(134)에 전달할 수 있다.
서브 지도 생성부(134)는 이동 로봇이 이동함에 따라 위치 인식을 수행하고 지도를 작성한다. 서브 지도 생성부(134)는 영상 센서(124)로부터 획득되는 천장 영상으로부터 추출된 특징점 및 각 특징점을 식별하는 특징점 기술자를 포함하는 특징점 지도를 생성할 수 있다.
여기에서 특징점은 사물의 모서리 또는 코너와 같이 형상을 특정시킬 수 있는 점을 의미한다. 이러한 특징점은 특징점 지도 생성(map building)의 기초가 되는데 랜드마크(landmark)라고도 한다. 또한, 특징점은 닫힌 영역(closed region)의 윤곽선에서 추출된 라인 또는 점이 될 수 있다. 예를 들어, 실내의 천장에서 천장 영상 중에서 조명 등의 원형이나 사각형의 윤곽선으로부터 라인이나 점을 추출하여 특징점으로 사용할 수 있다. 또한, 여기에서, 특징점 기술자는 특징점을 구별할 수 있는 각 특징점별 로컬 영상, 영상의 방향성 정보 또는 벡터 정보 등이 될 수 있다. 서브 지도 생성부(134)는 SIFT(Scale-Invariant Feature Transform), MSER(Maximally Stable Extremal Region) 기법, 또는 해리스 코너 검출(Harris Corner Detector) 방법 등과 같은 다양한 특징점 추출 알고리즘을 이용하여 특징점 및 특징점 기술자를 생성할 수 있다.
또한, 서브 지도 생성부(134)는 초음파 센서(125)로부터 수신된 감지 정보를 이용하여 장애물이 있을 확률 정보를 포함하는 격자 지도를 생성할 수 있다.
서브 지도 생성부(134)는 이동 로봇(100)이 출발하는 위치 및 출발시 방향각을 기준값으로 위치를 추정할 수 있다. 이동 로봇의 위치를 추정한다는 것은 이동 로봇의 2차원 평면상에서의 위치 및 방향각을 추정함을 의미한다. 이동 로봇(100)의 위치에 대한 기준은 지도(map) 상에 존재하는 특징점(Feature)이 될 수 있다. 따라서, 이동 로봇(100)의 위치 정보는 이동 로봇(100)이 인식한 특징점을 기준으로 한 이동 로봇(100)의 위치 및 방향각을 포함할 수 있다.
서브 지도 생성부(134)는 주행부(110) 및 센서부(120)로부터 획득되는 오도메트리 정보, 각속도, 가속도 등의 정보 및 특징점 추출부(141)로부터 추출된 특징점 정보를 종합적으로 이용하여 위치를 추정 및 인식할 수 있다.
또한, 서브 지도 생성부(134)는 슬램을 수행하여 지도 작성과 함께 위치 인식을 수행할 수도 있다. 슬램은 어떤 위치에서 주변 환경의 지도를 구성하고 구성된 지도를 바탕으로 다시 이동한 로봇의 위치를 알아내는 과정을 반복하여 로봇의 위치와 주변 환경의 지도를 동시에 추정할 수 있는 알고리즘이다. 서브 지도 생성부(134)는 장애물 지도 또는 천장 영상을 기반으로 위치를 인식할 수 있으며, 위치 인식과 지도 구성을 수행하는 한 다양한 구조를 가질 수 있다.
서브 지도 생성부(134)는 슬립 감지 신호가 수신되면, 작성중이된 지도을 저장부(140)에 저장한다. 여기에서, 지도는 특징점 지도 및 격자 지도 중 적어도 하나를 포함할 수 있다. 그리고, 서브 지도 생성부(134)는 다시 지도 작성을 시작하여, 슬립 감지 신호가 수신될 때까지 지도를 작성한다. 여기에서, 생성되어 저장부(140)에 저장되는 지도는 이동 로봇이 이동하는 공간의 일부를 나타내므로, 서브 지도라고 지칭한다.
즉, 서브 지도 생성부(134)는, 서브 지도를 생성하다가 슬립이 감지되면 서브 지도 생성을 멈추고 슬립 감지가 종료될 때까지 지도 생성을 중단하고, 슬립 감지가 종료되면 새로운 서브 지도를 생성하는 동작을, 이동 로봇이 이전에 방문했던 위치로 회귀했다고 결정할 때까지 반복한다.
전체 지도 생성부(136)는 복수 개의 서브 지도를 각각 강체(rigid body)로 가정하고, 복수 개의 서브 지도 사이의 관계를 복수 개의 가상 스프링으로 모델링할 수 있다. 전체 지도 생성부(136)는 감지부(120)로부터 전달된 감지 정보를 이용하여 슬립의 발생량을 계산할 수 있다. 전체 지도 생성부(136)는 슬립의 발생량에 따라 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 스프링의 강성을 결정하고, 결정된 강성에 따라 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성한다. 루프 클로징(Loop closing) 방법은 이동 로봇이 임의의 길이를 이동한 후에, 이전에 방문한 곳으로 회귀했는지를 결정한다. 루프 클로징은 특징점 지도 또는 격자 지도상에서 동일한 위치의 지점을 찾고, 루프 동일한 위치의 지점을 연결시키고, 동일한 위치의 지점을 연결시킴에 따라서 이동 로봇의 경로를 수정하는 방식으로 수행된다. 슬립의 발생량은, 슬립에 의하여 이동 로봇이 미끄러진 거리는 나타낼 수 있다.
슬립의 발생량은 다음의 수학식 1과 같이 나타낼 수 있다.
Figure 112010012194844-pat00001
여기에서, vslip은 슬립 발생시의 이동 로봇의 속도를 나타내고, T1 및 T2는 슬립 시작 시간과 슬립 종료 시간을 나타내고, d는 이동 로봇이 미끄러진 거리를 나타낸다.
전체 지도 생성부(136)는, 복수 개의 스프링의 강성이 슬립의 발생량에 반비례하도록 결정할 수 있다. 강성은 모델링된 스프링의 스프링 상수일 수 있다.
전체 지도 생성부(136)는, 복수 개의 서브 지도에서 동일한 위치를 나타내는 제1 지점 및 제2 지점을 결정하고, 제1 지점에서 시작하여, 복수 개의 서브 지도의 경계를 지나서, 제2 지점으로 폐루프를 형성하는 복수 개의 벡터를 설정하고, 복수 개의 벡터의 합이 0이 되도록 제1 지점의 위치로 제2 지점을 당기는 가상의 힘(Fv)을 결정할 수 있다. 여기에서, 서브 지도의 경계는 이동 로봇이 서브 지도를 작성하기 시작한 시작 위치 및 슬립이 감지됨에 따라 이동 로봇이 해당 서브 지도의 작성을 중단한 종료 위치를 나타낸다.
전체 지도 생성부(136)는, 가상의 힘(Fv)을 이용하여, 복수 개의 서브 지도 사이의 상대적 위치를 결정하고, 결정된 상대적 위치에 따라서, 복수 개의 서브 지도를 이용하여 전체 지도를 생성할 수 있다.
도 2는 슬립 발생시 가상 스프링으로 모델링된 서브 지도 간의 관계의 일 예를 나타내는 도면이다.
도 2에서, 지도 1, 지도 2, 지도 3 및 지도 4는 각각 서브 지도를 나타낸다. 지도 생성 장치(100)는 지도 생성을 시작하여 슬립이 감지될 때까지 지도를 생성한다. 슬립이 감지되면, 지도 생성 장치(100)는 슬립이 종료되었다고 결정할 때까지 지도 생성을 중단한다. 따라서, 지도 생성 장치(100)가 지도 작성을 시작하여 첫 번째 슬립이 발생되기 전까지 생성된 지도가 지도 1이 된다. 슬립이 종료되면, 지도 생성 장치(100)는 다시 지도 생성을 시작하고 마찬가지로 슬립이 감지되면 작성을 중단하여 지도 2를 생성한다. 이와 같은 방식으로 지도 3 및 지도 4가 생성된다. 지도 생성 장치(100)는 지도를 작성하는 중에 이전에 방문했던 위치에 다시 위치함을 감지하면, 생성된 지도 1, 지도 2, 지도 3 및 지도 4를 이용하여 전체 지도를 생성한다.
도 2에서, di는 i번째 지도의 시작점과 끝점을 잇는 벡터를 나타낸다. oi는 지도의 시작점을 나타내고, pi는 지도의 끝점을 나타낸다. 즉, d1은 지도 1의 시작점(o1)과 끝 점(p1)을 잇는 벡터이고, d2은 지도 2의 시작 점(o2)과 끝 점(p2)을 잇는 벡터이고, d3은 지도 3의 시작 점(o3)과 끝 점(p3)을 잇는 벡터이고, d4은 지도 4의 시작 점(o4)과 끝 점(p4)을 잇는 벡터이다. 지도 1과 지도 2 사이에는 슬립이 발생한 구간이므로, 지도 1의 끝점(p1)은 지도 2의 시작점(o2)이 된다. 마찬가지로, 지도 2의 끝점(p2)은 지도 3의 시작점(o3)이 되고, 지도 3의 끝점(p3)은 지도 4의 시작점(o4)이 되고, 지도 4의 끝점(p4)은 지도 1의 시작점(o1)이 된다. FV는 동일한 점으로 인식되는 지도 4의 끝점(p4)을 지도 1의 시작점(o1)으로 인식하기 위하여 필요한 가상의 힘을 나타낸다.
서브 지도 사이의 가상 스프링을 모델링하면, 서브 지도 사이의 가상 스프링의 스프링 상수는 슬립량이 반비례하도록 설정될 수 있다. 일 실시예에 따르면, 슬립량이 증가함에 따라서, 루프 클로징시 보정되는 위치 및 자세의 크기가 증가하도록 가상 스프링의 스프링 상수(k)를 설정할 수 있다. 도 2에서 Ci는 스프링 상수의 역수를 나타내는 컴플라이언스(compliance)를 나타낸다. 따라서, 슬립량이 증가함에 따라서, 컴플라이언스가 크게 되도록 설정될 수 있다.
도 2에서, C1은 지도 1과 지도 2 사이에 모델링된 가상 스프링의 컴플라이언스를 나타내고, C2는 지도 2와 지도 3 사이에 모델링된 가상 스프링의 컴플라이언스를 나타내고, C3은 지도 3과 지도 4 사이에 모델링된 가상 스프링의 컴플라이언스를 나타낸다.
도 3은 슬립량을 스프링 상수로 모델링한 일 예를 나타내는 도면이다.
슬립량이 증가함에 따라서, 생성되는 지도의 불확실도가 증가하게 된다. 불확실도를 벡터 di의 끝점(pi)을 중심으로하는 원으로 형상화하면, 도 3의 원(301)과 같이 나타낼 수 있다. 벡터
Figure 112010012194844-pat00002
는 가상의 힘(FV)를 받은 후의 i번째 지도의 시작점과 끝점을 잇는 벡터를 나타낸다.
도 4는 서브 지도 간 변수 정의에 따른 서브 지도간의 상대적 위치를 결정하는 동작의 일 예를 나타내는 도면이다.
가상의 힘 FV를 적용한 후, 지도의 시작과 끝을 나타내는 벡터
Figure 112010012194844-pat00003
는 가상의 힘 FV와 변형전의 벡터 di의 함수가 된다. 따라서, 벡터
Figure 112010012194844-pat00004
는 다음의 수학식 2와 같이 나타낼 수 있다.
Figure 112010012194844-pat00005
루프 클로징 후 점 401 및 점 402는 동일한 위치를 나타내는 점으로 인식된다. 점 402를 점 401로 끌어당기는 가상의 힘 FV를 적용한 후, 벡터 d1, d2, d3 및 d4는 각각 벡터
Figure 112010012194844-pat00006
,
Figure 112010012194844-pat00007
,
Figure 112010012194844-pat00008
Figure 112010012194844-pat00009
로 조정된다고 가정하면, 벡터
Figure 112010012194844-pat00010
,
Figure 112010012194844-pat00011
,
Figure 112010012194844-pat00012
Figure 112010012194844-pat00013
가 이루는 폐루프에서의 벡터
Figure 112010012194844-pat00014
,
Figure 112010012194844-pat00015
,
Figure 112010012194844-pat00016
Figure 112010012194844-pat00017
의 합은 0이 된다. 이는 다음의 수학식 3과 같이 나타낼 수 있다.
Figure 112010012194844-pat00018
수학식 4를 n개의 일반적인 지도에 대한 식으로 일반화하면, 다음의 수학식 4와 같이 나타낼 수 있다.
Figure 112010012194844-pat00019
벡터 d1, d2, d3 및 d4는 이미 알고 있으므로, 수학식 4를 이용하여, 가상의 힘 FV를 구할 수 있다. 또한, 가상의 힘 FV를 수학식 1에 대입하면, 벡터
Figure 112010012194844-pat00020
,
Figure 112010012194844-pat00021
,
Figure 112010012194844-pat00022
Figure 112010012194844-pat00023
를 구할 수 있다. 벡터
Figure 112010012194844-pat00024
는 지도 1과 지도 2 간의 상대적인 위치를 나타내고,
Figure 112010012194844-pat00025
는 지도 2와 지도 3 간의 상대적인 위치를 나타내고, 벡터
Figure 112010012194844-pat00026
은 지도 지도 3가 지도 4간의 상대적인 위치를 나타내고, 벡터
Figure 112010012194844-pat00027
는 지도 4와 지도 1간의 상대적인 위치를 나타낸다. 따라서, 각 지도 사이의 상대적인 위치를 알 수 있으므로, 지도 1, 지도 2, 지도 3 및 지도 4를 이용하여 루프 클로징을 이용하여 전체 지도를 생성할 수 있다.
도 5는 이동 로봇의 지도 생성 방법의 일 예를 나타내는 순서도이다.
지도 생성 장치(100)는 주행중인 이동 로봇이 위치를 인식하고 지도를 작성하면서 슬립을 감지한다(510).
지도 생성 장치(100)는 이동 로봇의 슬립의 발생에 따라 복수 개의 서브 지도를 생성한다(520). 지도 생성 장치(100)는 서브 지도를 생성하다가 슬립이 감지되면 서브 지도 생성을 멈추고 슬립 감지가 종료될 때까지 지도 생성을 중단하고, 슬립 감지가 종료되면 새로운 서브 지도를 생성하는 동작을, 이동 로봇이 이전에 방문했던 위치로 회귀했다고 결정할 때까지 반복할 수 있다.
지도 생성 장치(100)는 슬립의 발생량에 따라 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 가상 스프링의 강성을 결정한다(530). 슬립의 발생량은, 슬립에 의하여 이동 로봇이 미끄러진 거리는 나타낼 수 있다. 복수 개의 가상 스프링의 강성은 복수 개의 스프링의 강성이 슬립의 발생량에 반비례하도록 결정될 수 있다. 강성은 모델링된 스프링의 스프링 상수일 수 있다.
지도 생성 장치(100)는 결정된 강성에 따라 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성한다(540).
도 6a는 이동 로봇이 주행하는 주행 공간을 일 예를 나타내는 도면이고, 도 6b는 슬립 발생시 생성되는 지도의 일 예를 나타내는 도면이고, 도 6c는 지도 생성 과정에서 슬립 발생시에 일반적인 루프 클로징 기법 적용한 경우 생성된 지도의 일 예를 나타내는 도면이고, 도 6d는 슬립 발생시 일 실시예에 따른 지도 생성 방법에 따라 생성된 지도의 일 예를 나타내는 도면이다.
도 6a에 도시된 바와 같이, 이동 로봇이 주행을 하면서 정사각형 공간에서 화살표(601)로 나타낸 바와 같이 주행을 한다고 가정한다. 이동 로봇이 주행을 하면서 지도를 작성하면, 오차가 누적될 수 있다. 특히, 도 6b에 도시된 바와 같이, 슬립 발생 구간(611)에서도 이동 로봇이 계속하여 주행하고 있는 것으로 인식되어 원래의 공간의 모습과 다른 지도가 생성될 수 있다.
도 6b에 도시된 바와 같은 지도에 일반적인 루프 클로징 방법을 적용하여 지도를 보정하더라도, 도 6c에 도시된 바와 같이 도 6a에 도시된 실제 주행 경로와 다른 지도가 생성될 수 있다. 이에 비해, 일 실시예에 따른 슬립이 감지될 때마다 서브 지도를 생성하고, 서브 지도를 강체로 보고, 서브 지도 사이를 연결하는 가상의 스프링의 강성을 슬립량에 따라 반비례하도록 모델링한 다음, 루프 클로징 방법을 적용하면, 도 6d에 도시된 바와 같이, 도 6a의 슬립 발생 구간(611)이 도면 부호 621로 지시되는 바와 같이, 슬립이 보상되어, 원래의 주행 경로에 근사한 지도를 얻을 수 있다. 따라서, 이동 로봇의 주행시 슬립이 발생하더라도 정확한 지도를 생성하고, 생성된 지도를 기반으로 이동 로봇의 위치를 정확하게 추정할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.

Claims (13)

  1. 이동 로봇의 주행중에 슬립을 감지하는 슬립 감지부;
    상기 이동 로봇의 위치를 인식하고, 상기 이동 로봇의 슬립의 발생에 따라 복수 개의 서브 지도를 생성하는 서브 지도 생성부; 및
    슬립의 발생량에 따라 상기 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 스프링의 강성을 결정하고, 상기 결정된 강성에 따라 상기 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성하는 전체 지도 생성부를 포함하는 이동 로봇의 지도 생성 장치.
  2. 제1항에 있어서,
    상기 서브 지도 생성부는, 서브 지도를 생성하다가 슬립이 감지되면 상기 서브 지도 생성을 멈추고 슬립 감지가 종료될 때까지 지도 생성을 중단하고, 슬립 감지가 종료되면 새로운 서브 지도를 생성하는 동작을, 상기 이동 로봇이 이전에 방문했던 위치로 회귀했다고 결정할 때까지 반복하는 이동 로봇의 지도 생성 장치.
  3. 제1항에 있어서,
    상기 슬립의 발생량은, 상기 슬립에 의하여 상기 이동 로봇이 미끄러진 거리는 나타내는 이동 로봇의 지도 생성 장치.
  4. 제1항에 있어서,
    상기 전체 지도 생성부는, 상기 복수 개의 스프링의 강성을 상기 슬립의 발생량에 반비례하도록 결정하는 이동 로봇의 지도 생성 장치.
  5. 제1항에 있어서,
    상기 강성은 상기 모델링된 스프링의 스프링 상수인 이동 로봇의 지도 생성 장치.
  6. 제1항에 있어서,
    상기 전체 지도 생성부는, 상기 복수 개의 서브 지도에서 동일한 위치를 나타내는 제1 지점 및 제2 지점을 결정하고, 상기 제1 지점에서 시작하여, 상기 복수 개의 서브 지도의 경계를 지나서, 상기 제2 지점으로 폐루프를 형성하는 복수 개의 벡터를 설정하고, 상기 복수 개의 벡터의 합이 0이 되도록 상기 제1 지점의 위치로 상기 제2 지점을 당기는 가상의 힘(Fv)을 결정하는 이동 로봇의 지도 생성 장치.
  7. 제6항에 있어서,
    상기 전체 지도 생성부는, 상기 가상의 힘(Fv)을 이용하여, 상기 복수 개의 서브 지도 사이의 상대적 위치를 결정하고, 상기 결정된 상대적 위치에 따라서, 상기 복수 개의 서브 지도를 이용하여 전체 지도를 생성하는 이동 로봇의 지도 생성 장치.
  8. 주행중인 이동 로봇이 위치를 인식하고 지도를 작성하면서 슬립을 감지하는 단계;
    상기 이동 로봇의 상기 슬립의 발생에 따라 복수 개의 서브 지도를 생성하는 단계;
    슬립의 발생량에 따라 상기 복수 개의 서브 지도 사이에 각각 모델링된 복수 개의 가상 스프링의 강성을 결정하는 단계; 및
    상기 결정된 강성에 따라 상기 복수 개의 서브 지도에 루프 클로징 기법을 적용하여 전체 지도를 생성하는 단계를 포함하는 이동 로봇의 지도 생성 방법.
  9. 제8항에 있어서,
    상기 슬립의 발생량은, 상기 슬립에 의하여 상기 이동 로봇이 미끄러진 거리는 나타내는 이동 로봇의 지도 생성 방법.
  10. 제8항에 있어서,
    상기 복수 개의 가상 스프링의 강성을 결정하는 단계에서, 상기 복수 개의 스프링의 강성이 상기 슬립의 발생량에 반비례하도록 결정되는 이동 로봇의 지도 생성 방법.
  11. 제8항에 있어서,
    상기 강성은 상기 모델링된 스프링의 스프링 상수인 이동 로봇의 지도 생성 방법.
  12. 제8항에 있어서,
    상기 전체 지도를 생성하는 단계는,
    상기 복수 개의 서브 지도에서 동일한 위치를 나타내는 제1 지점 및 제2 지점을 결정하는 단계;
    상기 제1 지점에서 시작하여, 상기 복수 개의 서브 지도의 경계를 지나서, 상기 제2 지점으로 폐루프를 형성하는 복수 개의 벡터를 설정하는 단계;
    상기 복수 개의 벡터의 합이 0이 되도록 상기 제1 지점의 위치로 상기 제2 지점을 당기는 가상의 힘(Fv)을 결정하는 단계를 포함하는 이동 로봇의 지도 생성 방법.
  13. 제12항에 있어서,
    상기 전체 지도를 생성하는 단계는,
    상기 가상의 힘(Fv)을 이용하여, 상기 복수 개의 서브 지도 사이의 상대적 위치를 결정하는 단계; 및
    상기 결정된 상대적 위치에 따라서, 상기 복수 개의 서브 지도를 이용하여 전체 지도를 생성하는 단계를 포함하는 이동 로봇의 지도 생성 방법.
KR1020100016811A 2010-02-24 2010-02-24 이동 로봇의 지도 생성 장치 및 방법 KR101650128B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100016811A KR101650128B1 (ko) 2010-02-24 2010-02-24 이동 로봇의 지도 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100016811A KR101650128B1 (ko) 2010-02-24 2010-02-24 이동 로봇의 지도 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110097139A KR20110097139A (ko) 2011-08-31
KR101650128B1 true KR101650128B1 (ko) 2016-08-22

Family

ID=44932194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016811A KR101650128B1 (ko) 2010-02-24 2010-02-24 이동 로봇의 지도 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101650128B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099554B2 (en) 2015-04-17 2021-08-24 Aktiebolaget Electrolux Robotic cleaning device and a method of controlling the robotic cleaning device
US11169533B2 (en) 2016-03-15 2021-11-09 Aktiebolaget Electrolux Robotic cleaning device and a method at the robotic cleaning device of performing cliff detection
US11442455B2 (en) 2018-12-24 2022-09-13 Samsung Electronics Co., Ltd. Method and apparatus for generating local motion based on machine learning
US11474533B2 (en) 2017-06-02 2022-10-18 Aktiebolaget Electrolux Method of detecting a difference in level of a surface in front of a robotic cleaning device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053561A (ja) 2007-08-28 2009-03-12 Panasonic Electric Works Co Ltd 自律移動装置用の地図生成システムおよび地図生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090060008A (ko) * 2007-12-07 2009-06-11 삼성전자주식회사 이동 로봇의 슬립 감지 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053561A (ja) 2007-08-28 2009-03-12 Panasonic Electric Works Co Ltd 自律移動装置用の地図生成システムおよび地図生成方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099554B2 (en) 2015-04-17 2021-08-24 Aktiebolaget Electrolux Robotic cleaning device and a method of controlling the robotic cleaning device
US11169533B2 (en) 2016-03-15 2021-11-09 Aktiebolaget Electrolux Robotic cleaning device and a method at the robotic cleaning device of performing cliff detection
US11474533B2 (en) 2017-06-02 2022-10-18 Aktiebolaget Electrolux Method of detecting a difference in level of a surface in front of a robotic cleaning device
US11442455B2 (en) 2018-12-24 2022-09-13 Samsung Electronics Co., Ltd. Method and apparatus for generating local motion based on machine learning

Also Published As

Publication number Publication date
KR20110097139A (ko) 2011-08-31

Similar Documents

Publication Publication Date Title
KR101782057B1 (ko) 지도 생성 장치 및 방법
JP6760114B2 (ja) 情報処理装置、データ管理装置、データ管理システム、方法、及びプログラム
KR101503903B1 (ko) 이동 로봇의 지도 구성 장치 및 방법
JP6445995B2 (ja) センサデータの空間的集約を用いる適応マッピング
JP5966747B2 (ja) 車両走行制御装置及びその方法
JP5782708B2 (ja) 走行支援装置
KR101976241B1 (ko) 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
KR102440358B1 (ko) 관성 기반 항법 장치 및 상대사전적분에 따른 관성 기반 항법 방법
KR101619076B1 (ko) 모바일 플랫폼의 동적 물체 검출 및 추적 방법
EP3306429B1 (en) Position estimation device and position estimation method
US8467902B2 (en) Method and apparatus for estimating pose of mobile robot using particle filter
KR101439921B1 (ko) 비젼 센서 정보와 모션 센서 정보를 융합한 모바일 로봇용 slam 시스템
US20210232151A1 (en) Systems And Methods For VSLAM Scale Estimation Using Optical Flow Sensor On A Robotic Device
JP4171459B2 (ja) 移動体の回転移動量利用方法とその装置、及びコンピュータプログラムを保存するコンピュータ読取り可能な記録媒体
US11143511B2 (en) On-vehicle processing device
KR102561263B1 (ko) 지도 데이터를 생성하는 전자 장치 및 그 동작 방법
KR101100827B1 (ko) 도로주행 로봇의 자기 위치 인식방법
KR20220024791A (ko) 차량의 궤적을 결정하기 위한 방법 및 장치
KR101650128B1 (ko) 이동 로봇의 지도 생성 장치 및 방법
US20150134234A1 (en) Apparatus for determining motion characteristics of target and device for controlling driving route of vehicle including the same
CN111989631A (zh) 自身位置推定方法
JP5375249B2 (ja) 移動経路計画装置、移動体制御装置及び移動体
JP4774401B2 (ja) 自律移動体の経路設定装置
KR101738751B1 (ko) 실내 자기장을 이용한 이동 로봇의 위치 인식 방법 및 장치
JP2018084960A (ja) 自己位置推定方法及び自己位置推定装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190717

Year of fee payment: 4