KR101372482B1 - 이동 로봇의 경로 계획 방법 및 장치 - Google Patents

이동 로봇의 경로 계획 방법 및 장치 Download PDF

Info

Publication number
KR101372482B1
KR101372482B1 KR1020070128266A KR20070128266A KR101372482B1 KR 101372482 B1 KR101372482 B1 KR 101372482B1 KR 1020070128266 A KR1020070128266 A KR 1020070128266A KR 20070128266 A KR20070128266 A KR 20070128266A KR 101372482 B1 KR101372482 B1 KR 101372482B1
Authority
KR
South Korea
Prior art keywords
map
mobile robot
path
cell
cells
Prior art date
Application number
KR1020070128266A
Other languages
English (en)
Other versions
KR20090061298A (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 KR1020070128266A priority Critical patent/KR101372482B1/ko
Priority to US12/314,088 priority patent/US8195331B2/en
Publication of KR20090061298A publication Critical patent/KR20090061298A/ko
Application granted granted Critical
Publication of KR101372482B1 publication Critical patent/KR101372482B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device

Abstract

이동 로봇의 경로 계획 방법 및 장치가 제공된다. 본 발명의 실시예에 따른 이동 로봇을 위한 경로 계획 장치는 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 코어스 맵 생성부와, 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 파인 맵 생성부 및 코어스 맵 생성부를 통해 생성된 코어스 맵 중 소정의 위치에 대해서 파인맵 생성부를 통해 파인 맵을 생성하도록 제어하는 경로 생성부를 포함한다.
본 발명의 실시예에 따른 이동 로봇의 경로 계획 방법은 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 단계와, 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 단계와, 파인 맵을 이용하여 이동 로봇이 좁은 통로를 통과할 수 있는 이동 경로를 생성하는 단계 및 이동 경로를 반영하여 코어스 맵을 갱신하는 단계를 포함한다.
이동 로봇, 경로맵, 코어스 맵, 파인 맵, 좁은 통로

Description

이동 로봇의 경로 계획 방법 및 장치 {Method and apparatus of path planning for a mobile robot}
본 발명은 이동 로봇(Mobile robot)에 관한 것으로, 보다 상세하게는 코어스 맵(Coarse map)과 파인 맵(Fume map)을 사용하여 이동 로봇이 좁은 지역을 이동할 수 있도록 하는 이동 로봇의 경로 계획 방법 및 장치에 관한 것이다.
일반적으로 로봇은 산업용으로 개발되어 공장 자동화의 일환으로 사용되거나, 인간이 견딜 수 없는 극한의 환경에서 인간을 대신하여 작업을 수행하는 데 사용되어 왔다. 이 중, 가정용 로봇은 산업용 로봇에 국한되어왔던 기존의 중공업 중심의 로봇 공학 분야를 경공업 중심의 로봇 공학 분야까지 확대시킨 주역으로서 가장 기본적으로 청소용 로봇을 그 예로 들 수 있다. 이러한 청소용 로봇은 통상 이동을 위한 구동수단과, 청소를 위한 청소 수단 그리고, 자신의 위치 또는 사용자 리모컨의 위치를 측정하기 위한 위치 측정 수단 등으로 구성된다.
청소용 로봇과 같은 이동 로봇에서 자기의 정확한 위치를 파악하는 것은 가장 기본적이고 중요한 기능이다. 이동 로봇의 절대 위치를 계산하는 방법으로는 초음파 센서를 채용한 비콘(beacon)을 가정 내에 장착하는 방법이나 실내용 GPS(Global Positioning System)를 이용하는 방법이 있고, 상대 위치를 결정하는 방법으로는 엔코더(encoder)로부터 회전속도와 직진속도를 구하고 이를 적분하여 위치를 구하는 방법이나, 가속도 센서로부터 구한 가속도 값을 두 번 적분하여 위치를 구하는 방법, 또는 자이로 센서의 출력 값인 회전 속도를 적분하여 방향을 구하는 방법 등이 알려져 있다.
그런데, 이동 로봇이 이동 공간 내에서 청소 등 특정 작업을 수행하기 위해서는 맵(map)의 작성이 필요하며, 이러한 맵을 작성하기 위해서는 SLAM(Simultaneous Localization And Mapping) 이외에도, 미지의 지역을 탐험하기 위한 별도의 알고리즘이 추가로 요구된다. 알고리즘으로는, 간단하게는 벽을 따라 움직이는 벽 따라가기(wall-following)를 이용하여 이동 공간의 전체 형상을 알아내는 방법이나, 더 복잡하게는 능동적 SLAM(active SLAM) 등을 이용하여 경로 계획을 수행하는 방법 등이 있다. 또한, 이와 같은 방법에 의하여 맵이 생성된 이후에도, 이동 로봇이 맵에 포함된 모든 영역을 빠짐없이 커버하기 위한 별도의 경로 계획(coverage path planning)이 추가적으로 필요하다.
이동 로봇이 넓은 영역을 커버하기 위한 방법으로서 전체 영역을 다수 개의 셀(Cell)로 분리하여 각 셀 마다 청소를 완료한 후 다른 셀로 이동하는 셀 구분 방식(Cell Decomposition)이 가장 많이 사용되고 있다.
이동 로봇은 IR 센서나 초음파 센서, 레이저 센서 등을 이용하여 환경에 대한 2차원적인 맵 정보를 작성하게 된다. 이렇게 작성된 맵을 그리드 맵(Grid Map)이라고 하는데, 이 그리드 맵은 센서 데이터로부터 얻어진 것이기 때문에 많은 불 확실성 및 오차를 가지고 있다.
그러나, 종래의 이동 로봇은 다음과 같은 문제점이 있다.
셀 구분 방식 중, 약 1~2cm 크기의 셀을 가지는 정밀한 그리드 맵 정보를 이용하여 영역을 구분하고 경로를 계획하는 파인 맵(Fine Map)의 경우에는 구석구석을 청소하는 경로 계획을 수행할 수 있으나, 전 영역에 대한 그리드 맵이 채 완성되지 않은 상태에서는 영역 구분이 어려워지게 되어 비효율적인 경로 계획을 하게 된다. 그리고, 이렇게 높은 해상도의 그리드 맵을 이용하게 되면 요구되는 메모리량과 계산량이 많아지게 되어 임베디드 시스템(Embedded System)에서는 실시간으로 경로 계획을 할 수가 없다는 문제점이 있다.
이러한 단점을 극복하기 위해서 동일한 크기의 수십 cm 단위 정방형 셀로 이루어진 코어스 맵(Coarse Map)을 이용하여 빠른 시간 내에 경로 계획을 수행하는 방식을 사용할 수 있다. 이 방식은 이동 로봇의 흡입구 크기인 20cm ~ 25cm 정도의 코어스 맵을 이용하여 로봇의 이동 경로를 제어하여 실시간으로 맵 작성을 가능하도록 하였다. 그러나, 이 방식은 이동하는 단위가 20cm ~ 25cm 정도이고, 이 정도 해상도로 코어스 맵을 업데이트 하기 때문에 실제 이동 로봇의 크기를 감안하면 이동할 수 있는 구역인데도 불구하고, 이동을 하지 못하게 되는 경우가 빈번히 발생하게 되어 구석구석 이동하는 것이 불가능하다는 문제점이 있었다.
본 발명은 상기한 문제점을 개선하기 위해 고안된 것으로, 본 발명이 이루고자 하는 기술적 과제는 이동 로봇의 경로를 계획하는 데 있어서 코어스 맵과 파인 맵을 사용하여 로봇이 이동할 수 있는 데도 불구하고 이동하지 못하는 상황을 판단하여 이동해야 할 상황이라고 판단될 때에는 파인 맵을 사용하여 로봇이 좁은 구역을 이동할 수 있도록 하는 이동 로봇의 경로 계획 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 이동 로봇을 위한 경로 계획 장치는 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 코어스 맵 생성부와, 상기 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 파인 맵 생성부 및 상기 코어스 맵 생성부를 통해 생성된 코어스 맵 중 소정의 위치에 대해서 상기 파인맵 생성부를 통해 파인 맵을 생성하도록 제어하는 경로 생성부를 포함한다.
또한, 상기 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 이동 로봇의 경로 계획 방법은 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 단계와, 상기 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 단계와, 상기 파인 맵을 이용하여 이동 로봇이 좁은 통로를 통과할 수 있는 이동 경로를 생성하는 단계 및 상기 이동 경로를 반영하여 상기 코어스 맵을 갱신하는 단계를 포함한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 이동 로봇의 경로 계획 방법 및 장치를 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어 드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.
이하, 본 발명의 실시예들에 의하여 이동 로봇의 경로 계획 방법 및 장치를 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
도 1은 본 발명의 일실시예에 따른 이동 로봇의 구성을 나타내는 블록도이다.
본 발명의 일실시예에 따른 이동 로봇(100)은 상대 위치 측정부(110), 절대 위치 측정부(120), 장애물 감지부(130), 코어스 맵 생성부(140), 파인 맵 생성부(150), 경로 생성부(160) 및 이동 제어부(170)를 포함하여 구성될 수 있다.
상대 위치 측정부(110)는 엔코더, 자이로, 가속도 센서 등의 상대 위치 인식 모듈을 이용하여 이동 로봇(100)의 위치를 측정할 수 있다. 예를 들면, 엔코더(Encoder)는 이동 제어부(170)에 포함되는 주행바퀴와 연결되어 주행바퀴의 회전 속도를 감지할 수 있다. 엔코더에서 감지된 회전 속도를 적분하면, 이동 로봇(100)의 위치(내지 움직인 거리) 및 방향각(head angle)을 알 수 있다. 일반적으로, 위 치 및 방향각을 포괄하여 "자세(pose)"라고도 부른다. 한편, 상대 위치 측정부(110)는 절대 위치 인식 모듈을 이용하여 이동 로봇(100)의 위치를 측정할 수도 있다.
절대 위치 측정부(120)는 절대 위치를 계산하기 위한 모듈로서, 카메라와 같은 영상을 이용하는 방식 또는 Range-Finder와 같은 거리 정보를 이용하는 방식 등이 사용될 수 있다. 절대 위치 측정부의 일례로서 카메라를 사용한다면 특징점을 추출하기에 적합한 주변 영상을 촬영할 수 있다. 특징점은 특정 위치 고유의 특징이 나타날 수 있는 점들을 의미할 수 있다. 주변 영상으로는 천정, 벽면, 바닥 등이 있을 수 있으나, 영상 변화의 가능성이 적고 특징점을 추출하기에 적합한 조명을 포함하고 있는 천정이 주변 영상으로는 가장 적합하다고 할 수 있다. 이 때, 절대 위치 측정부(120)는 CCD(Charge Coupled Device), CMOS(Complementary Metal Oxide Semiconductor), 기타 당업계에 알려진 영상 획득(Image capture) 수단으로 이루어질 수 있으며, 획득된 영상의 아날로그 신호를 디지털 신호로 변환하는 ADC(Analog-to-Digital Converter)를 더 포함할 수 있다.
한편, 천정 영상 등 주변 영상으로부터 얻은 특징점과 이동 로봇(100)의 위치를 대응시켜 특징맵을 생성할 수 있다. 따라서, 촬영된 영상으로부터 얻은 특징점과 특징맵을 비교함으로써 이동 로봇(100)의 자세, 즉 위치 및 방향각을 용이하게 파악할 수 있다.
장애물 감지부(130)는 이동 로봇(100)의 이동 중에 근접 장애물을 감지할 수 있다. 장애물 감지부(130)는 예를 들어, IR 센서(Infra-Red Sensor), 초음파 센서, 범퍼 등으로 이루어질 수 있다.
코어스 맵 생성부(140)는 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성할 수 있다. 코어스 맵에 포함된 복수의 셀을 이루는 각각의 셀은 장애물의 유무 정보 및 경로 정보를 포함할 수 있다. 즉, 코어스 맵 생성부(140)는 특징맵을 이용하여 이동 로봇(100)의 자세를 측정하고, 자세에 관한 정보와 장애물 감지부(130)로부터 제공된 장애물 센서 정보를 이용하여 이동 로봇(100)의 위치 별로 장애물 유무 및 경로 정보를 표시함으로써 경로맵(Path Map)을 생성할 수 있다.
경로 정보란 이동 로봇(100)이 차후에 어느 방향으로 이동하여 청소 작업 및 맵 생성 작업을 진행할 것인지를 결정하기 위한 정보로서, 이 경로 정보를 이용하여 이동 로봇(100)이 일단 지나온 위치를 다시 지나지 않도록 하는 것이 중요하다. 바람직하게는, 경로 정보는 특정 셀에 대한 청소가 완료되었는가를 나타내는 정보와, 특정 셀을 포함한 현재 라인 및 현재 라인의 하위 라인에 대한 청소가 완료되었는가를 나타내는 정보를 포함할 수 있다. 코어스 맵 생성부(140)는 코어스 맵의 각 셀에 포함된 정보를 이용하여, 이동 로봇(100)의 지나온 경로를 파악할 수 있고, 전체 이동 공간을 청소하기 위하여 이동할 방향을 파악할 수 있다.
본 발명의 일실시예에 따르면, 코어스 맵 생성부(140)는 수십 cm 단위의 복수의 셀을 포함하는 코어스 맵(Coarse Map) 기반의 경로맵을 생성할 수 있다. 코어스 맵을 이루는 각각의 셀의 크기는 이동 로봇(100)의 크기가 대략 40cm인 경우, 이동 로봇(100)의 흡입구 크기에 대응하여 20cm ~ 25cm 정도인 것이 바람직하다. 이와 같이, 코어스 맵을 이루는 각각의 셀의 크기를 증가시킬 수 있으므로, 계산량 및 메모리 소요량이 감소될 수 있다.
도 2 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 코어스 맵 생성부가 코어스 맵을 생성하는 예를 설명하도록 한다.
도 2는 본 발명의 일실시예에 따른 이동 로봇의 코어스 맵 생성부에서 코어스 맵을 구성하는 셀들에 3가지 속성을 표시하는 예를 나타내는 도면이다.
도 2에 도시된 바와 같이, 코어스 맵은 소정 크기의 복수의 셀들로 구성되어 있고, 각각의 셀은 장애물 유무 및 경로 정보를 포함할 수 있다. 예를 들어, 코어스 맵을 구성하는 각각의 셀에, 현재 셀에 장애물이 존재한다는 제1 표시(Blocked), 현재 셀에 대한 청소가 완료되었는가를 나타내는 제2 표시(Cleaned) 및 현재 셀을 포함한 현재 라인 및 현재 라인의 하위 라인에 대한 청소가 완료되었는가를 나타내는 제3 표시(Filled) 중 어느 하나의 표시를 포함할 수 있다. 여기서는, Blocked 셀은 음영으로, Cleaned 셀은 C로, Filled 셀은 F로 각각 표시된다.
Cleaned 표시 및 Filled 표시는 이동 로봇(100)이 추후에 어떤 셀로 이동하여 청소를 수행하여야 하는지를 나타내는 정보, 즉 경로 정보에 해당할 수 있다. Cleaned 셀은 현재 셀에 대하여 청소가 완료되었다는 의미이므로, 추후에 현재 셀을 포함한 라인 전체에 대하여 청소가 완료될 경우 라인에 포함된 셀 전체가 Filled로 전환될 수 있다.
본 발명의 일실시예에 따르면, 코어스 맵은 복수의 셀을 포함하는 라인의 양끝이 장애물로 막힐 때까지 라인의 지나가지 않은 셀로 이동 로봇(100)을 이동시키고, 라인의 양끝이 장애물로 막히면 다음 라인으로 이동 로봇(100)을 이동시키는 동작을 장애물이 폐곡선을 이룰 때까지 반복함으로써 생성될 수 있다. 이러한 방식을 물 채우기(Water-filling) 방식이라고 지칭하기로 한다. 즉, 청소를 수행해야 할 폐곡선 내의 공간이 하단부에서부터 상단부까지 모두 채워지면 청소가 완료되는 것이다.
도 3 및 도 4는 본 발명의 일실시예에 따른 이동 로봇의 코어스 맵 생성부가 물 채우기 방식으로 코어스 맵을 작성하는 예를 보여주는 도면들이다.
이동 로봇(100)은 먼저, 최초 위치에서 좌측으로 이동하면서 아무 표시가 없는 셀에 대하여 청소를 수행하고 해당 셀을 Cleaned 셀로 표시할 수 있다. 만약, 이동 로봇(100)이 좌측으로 이동하는 도중에 장애물을 만나면 장애물의 위치에 대응되는 셀을 Blocked 셀(음영 셀)로 표시하고, 다시 우측으로 이동할 수 있다. 이동 중에 이미 청소가 완료된 Cleaned 셀에 대해서는 청소를 수행할 필요가 없다. 마찬가지로, 이동 로봇(100)이 우측으로 이동하는 도중에 장애물을 만나면 장애물의 위치에 대응되는 셀을 Blocked 셀로 표시할 수 있다. 만약, 좌우가 장애물로 막혀진 한 라인에 대하여 청소가 완료되면, 이동 로봇(100)은 아래쪽 라인으로 이동할 수 있다. 이동 로봇(100)은 이와 같은 과정을 한 라인씩 반복하여 수행할 수 있다.
도 3에 도시된 바와 같이, 라인 2에 포함된 6개의 셀은 그 아래 및 좌우가 Blocked 셀들에 의하여 둘러싸여 있으므로, 모두 Filled 셀로 표시될 수 있다. 마찬가지로, 라인 3에 포함된 4개의 셀은 그 아래가 Filled 셀들에 의하여, 좌우가 Blocked 셀들에 의하여 둘러싸여 있으므로 Filled 셀로 표시될 수 있다.
라인 2 및 라인 3에 대하여 Filled 셀을 표시한 후, 이동 로봇(100)은 다시 라인 4로 복귀할 수 있다. 그런데, 라인 4에 있는 7개의 Cleaned 셀들은 아직 Filled 셀로 전환될 수 없다. 왜냐하면, 7개의 셀들 중에서 우측단의 2개의 셀들의 아래쪽이 아직 무표시 셀이기 때문이다. 따라서, 이동 로봇(100)은 무표시 셀의 위치로 이동할 수 있다.
도 4에 도시된 바와 같이, 이동 로봇(100)이 라인 2 및 라인 3에 남아 있는 무표시 셀들을 Filled 셀 또는 Blocked 셀로 모두 처리한 후에는 비로소 라인 4의 7개의 셀은 Filled 셀로 전환될 수 있다. 그리고, 이동 로봇(100)은 계속해서 작업을 수행하기 위하여 라인 5로 이동하여 Blocked 셀이 폐곡선을 이룰 때까지 작업을 반복하여 수행할 수 있다. Blocked 셀로 둘러싸인 이동 공간은 모두 Filled 셀로 채워지게 되면 모든 작업은 완성된다.
본 발명의 일실시예에 따르면, 코어스 맵 생성부(140)는 코어스 맵을 기반으로 경로맵을 작성하여 경로 계획을 하므로 적은 계산과 간단한 알고리즘 만으로 전체 청소를 위한 경로를 빠르게 생성할 수 있다.
파인 맵 생성부(150)는 이동 로봇(100)이 이동하는 도중 코어스 맵 상에 장애물이 존재하는 경우, 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성할 수 있다. 파인 맵은 경로 생성부(160)에서 이동 로봇이 좁은 통로를 통과할 수 있는 이동 경로를 생성하는 데에 이용될 수 있다. 이에 대해서는 자세히 후술한다.
경로 생성부(160)는 코어스 맵 생성부를 통해 생성된 코어스 맵 중 소정의 위치에 대해서 파인맵 생성부를 통해 파인 맵을 생성하도록 제어할 수 있다. 즉, 코어스 맵에서 장애물이 있는 것으로 판단된 적어도 하나 이상의 셀에 파인 맵을 생성하도록 제어할 수 있다.
경로 생성부(160)는 코어스 맵에 포함된 장애물 유무 정보 및 경로 정보에 따라 이동 로봇(100)이 좁은 통로를 통과할 수 있는 이동 경로(이하, 이동 경로라고 한다.)를 생성할 수 있다. 그리고, 경로 생성부(160)는 이동 경로를 반영하여 코어스 맵을 갱신할 수 있다.
바람직하게는, 경로 생성부(160)는 파인 맵 생성부(150)에서 생성한 파인 맵을 이용하여 이동 경로의 궤적을 구하고, 이동 경로의 궤적이 상기 코어스 맵 상에 상기 장애물이 존재하는 셀과 교차하는 교차 셀을 구할 수 있다.
도 5 내지 도 11은 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 이동 경로의 궤적을 구하는 예를 나타내는 도면이다.
이동 로봇(100)은 코어스 맵(142)의 경로 정보를 따라 이동을 하다가 장애물을 만나게 되면, 즉, Blocked 셀(141)을 인식하게 되면 좁은 통로를 탐색할 수 있다. 좁은 통로는 코어스 맵 기반의 경로에서 장애물로 인식하지만 실제로 이동 로봇(100)이 통과할 수 있는 통로를 의미할 수 있다.
예를 들면, 이동 로봇(100)의 진행 방향으로 방(20)이 있다고 가정할 수 있다. 도 5에 도시된 바와 같이, 방(20)은 3 개의 벽(21, 22, 23)과 문(10)으로 이루어질 수 있다. 이러한 상황에서 이동 로봇(100)이 코어스 맵(142)을 생성하게 되면, 도 5에 예시한 바와 같이, 3개의 벽(21, 22, 23)과 문(10) 때문에 Blocked 셀 (음영 셀)을 가질 수 있다. 그러나, 방문(10)과 벽(22) 사이에는 이동 로봇(100)이 통과여 방(20)으로 진입할 수 있는 좁은 통로가 형성되어 있음을 알 수 있다.
도 6에 도시된 바와 같이, 좁은 통로를 탐색하기 위해 먼저, 파인 맵 생성부(150)는 장애물의 주위 또는 이동 로봇(100)으로부터 일정 거리 이내의 범위에서 파인 맵(Fine Map)(152)을 생성할 수 있다. 도 6은 도 5와 같은 환경에서 생성한 파인 맵(152)의 예를 나타내고 있다. 도 5에서 방문(10)에 의해 장애물이 있다고 판단하였으므로, 방문(10)의 주위를 중심으로 파인 맵(152)을 생성할 수 있다. 예를 들면, 이동 로봇(100)의 크기를 약 40cm라고 할 때, 방문(10)을 중심으로부터 약 2m×2m 정도의 정방형의 파인 맵(152)을 작성할 수 있다. 이 때, 파인 맵(152)은 장애물 주위의 코어스 맵 상의 셀들을 더 작은 크기로 분할하는 복수의 서브 셀로 이루어질 수 있다. 예를 들면, 코어스 맵을 이루는 각각의 셀들의 크기가 20cm ~ 25cm 정도라고 할 때, 파인 맵(152)을 이루는 각각의 서브 셀들의 크기는 1cm ~ 2cm 정도일 수 있다. 따라서, 파인 맵(152)은 코어스 맵의 경로 정보보다 훨씬 작은 범위에서의 경로 정보를 포함할 수 있어, 이동 로봇(100)은 더욱 정밀하게 이동할 수 있다.
경로 생성부(160)는 파인 맵 생성부(150)에서 파인 맵(152)을 생성하고 나면, 파인 맵(152)을 이용하여 이동 경로의 궤적(30)을 구할 수 있다.
본 발명의 일실시예에 의하면, 경로 생성부(160)는 이동 경로의 궤적(30)을 구하기 위해 파인 맵(152)에서 노이즈를 제거하고 형상 공간(Configuration space)을 생성한 후 형상 공간에 침식(Erosion) 연산을 수행할 수 있다.
먼저, 파인 맵(152) 상의 노이즈(Noise)를 제거하기 위해 파인 맵(152) 내의 픽셀(Pixel)마다 침식(Erosion) 및 Dilation 작업을 수행하여, 도 7과 같은 노이즈가 제거된 파인 맵(152)을 생성할 수 있다.
다음으로, 경로 생성부(160)는 이동 로봇(100)의 크기를 감안하여 노이즈가 제거된 파인 맵(152)을 대상으로 이동 로봇(100)의 반경 크기만큼 침식(Erosion)을 수행하여 도 8과 같은 형상 공간(Configuration space)을 생성할 수 있다.
마지막으로, 이동 경로의 궤적(30)을 구하기 위해 도 8과 같은 형상 공간을 기준으로 침식(Erosion)을 수 회 반복하여 중간에 만나는 점, 즉, 장애물로부터 같은 거리에 있는 중간 점들을 이은 선으로 도 9와 같은 Thin Graph(30)를 구할 수 있다. 도 8의 형상 공간 상에 도 9의 Thin Graph(30)를 배치하면 도 10과 같은 맵을 얻을 수 있다. 이 맵을 보면 방문 사이에 좁은 통로가 생성됨을 알 수 있다.
이동 경로의 궤적(30)이 구해지면, 좁은 통로를 탐색하기 위해서는 코어스 맵 상에서는 이동 로봇(100)이 통과할 수 없는 Blocked 셀이지만, 파인 맵(152) 상에서 구한 이동 경로의 궤적(30)과 겹쳐 보았을 때, 이동 로봇(100)이 통과할 수 있는 셀들을 찾을 수 있다. 이렇게 Blocked 셀 중에서 이동 경로의 궤적(30)과 교차하는 셀을 교차 셀(144)이라고 하면, 도 11에 도시된 바와 같이, 코어스 맵과 이동 경로의 궤적(30)을 결합하여 교차 셀(144)을 구할 수 있다.
도 12는 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 중간 목적지를 선택하고 중간 목적지까지의 최적 경로를 구하는 예를 나타내는 도면이다.
중간 목적지는 이동 경로의 궤적(30)과 교차하는 교차 셀(144)의 내부에서 선택할 수 있다. 복수의 교차 셀(144)이 존재하는 경우에는 이동 로봇(100)의 현재 위치를 기준으로 가장 가까운 교차 셀(144)부터 중간 목적지를 선택할 수 있다.
예를 들면, 도 12에 도시된 바와 같이, 이동 경로의 궤적(30) 중에서 교차 셀(144)과 만나는 지점(41, 42) 중 이동 로봇(100)의 현재 위치로부터 가장 거리가 먼 지점(42)을 중간 목적지로 선택할 수 있다.
중간 목적지를 선택하고 나서, 이동 로봇(100)의 현재 위치로부터 중간 목적지까지의 최적 경로(43, 44)를 파인 맵(152) 상에서 구할 수 있다. 도 12에 도시된 바와 같이, 중간 목적지까지의 최적 경로는, 이동 로봇(100)이 이동 경로의 궤적(30) 중에서 교차 셀(144)과 만나는 지점(41, 42) 중 이동 로봇(100)의 현재 위치로부터 가장 거리가 가까운 지점(41)까지 이동 경로(43)와, 이 지점(41)으로부터 중간 목적지(42)까지의 이동 경로(44)로 이루어질 수 있다.
도 13은 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 최종 목적지를 선택하고 최종 목적지까지의 최적 경로를 구하는 예를 나타내는 도면이다.
최종 목적지는 중간 목적지로부터 이동 경로의 궤적(30)을 따라 K-Cost 만큼 더 진행하는 경로 상에서 선택할 수 있다. 여기서, K는 이동 로봇(100)이 중간 목적지로부터 파인 맵(152) 상에서 움직이는 거리를 나타내는 지수이다.
예를 들어, 도 13에 도시된 바와 같이, 먼저, 중간 목적지(42)로부터 K=20으로 설정하여 중간 목적지로부터 이동 경로의 궤적(30)과의 교차점을 찾아 중간 목적지로부터 시작하는 최적 경로를 찾을 수 있다. 이 때, 교차점을 찾을 수 없으므로, 중간 목적지로부터 시작하는 경로가 존재하지 않는다. 다시, K=15으로 낮게 설 정하면 중간 목적지로부터 이동 경로의 궤적(30)과의 교차점(51)을 찾을 수 있다. 이 때, 교차점(51)을 최종 목적지로 선택할 수 있고, 중간 목적지(42)로부터 이동 경로의 궤적(30)을 따라 교차점(51)까지 이동하는 경로(52)를 최종 목적지까지의 최적 경로로 구할 수 있다.
한편, 여기서 K 값을 최대한 크게 하여 최종 목적지를 선택하는 것이 바람직하다. 또한, 여기서는 K 값을 줄여 나가며 최종 목적지를 선택하였으나, 반대로 K 값을 0으로부터 증가시켜 최종 목적지를 선택해 나갈 수도 있다. 만약, K=0이면 중간 목적지로부터 더 이상 진행할 수 있는 경로가 없다는 의미가 되므로 이동 경로를 찾을 수 없게 된다. 이 때에는 교차 셀(144)에서 중간 목적지를 찾는 과정으로부터 다시 반복할 수 있다. 또한, 최종 목적지까지 최적 경로를 찾은 경우에도, 이미 방문한 셀인지를 판단할 수 있다. 만약, 최적 경로에 속하는 셀이 이미 방문한 셀일 경우에는 다시 방문할 필요가 없다. 또한, 최종 목적지까지의 코어스 맵 상에서의 경로의 거리(Cost)를 측정하여 직진 주행으로 가는 거리보다 작거나 같은 경우에는 코어스 맵 상에서 직진으로 갈 수 있는 목적지이므로, 이 때까지 찾은 경로를 무시할 수 있다.
상술한 바와 같이, 최종 목적지로 주행할 수 있는 모든 경로가 생성되었으므로, 이동 로봇(100)은 파인 맵(152) 상에 형성된 이동 경로를 따라서 주행을 할 수 있다. 이동 로봇(100)이 최종 목적지에 성공적으로 도달하게 되면 다시 코어스 맵 기반의 경로 계획을 수행할 수 있다.
또한, 경로 생성부(160)는 이동 로봇(100)이 중간 목적지를 거쳐 최종 목적 지로 이동하는 동안에 발생하는 예외 상황을 처리하는 예외 처리부(152)를 포함할 수 있다. 예를 들어, 이동 로봇(100)이 최종 목적지에 도달하지 못하게 되면 이 지역은 장애물 감지부(130) 내에서 초음파나 IR과 같은 장애물 감지 센서에 의해서 장애물로 감지되지는 않으나, 범퍼 등에 의해 부딪히거나 슬립(Slip)이 발생하여 이동 로봇(100)이 가지 못하는 지역이라고 판단할 수 있다. 따라서, 예외 처리부(152)는 이러한 지역의 셀을 가지 못하는 셀로 지정할 수 있다. 이렇게 가지 못하는 셀로 지정된 셀은 좁은 통로를 탐색할 때에 제외할 수 있다.
이동 로봇(100)이 최종 목적지에 도달한 후, 다시 코어스 맵 기반의 경로 계획을 수행하기 위해서 코어스 맵을 갱신할 수 있다. 상술한 바와 같이, 코어스 맵(142)의 각각의 셀들에 장애물 유무 정보 및 경로 정보를 저장할 수 있다.
또한, 이동 경로 정보에 따라 파인 맵(152)을 갱신할 수 있다. 파인 맵(152)을 갱신하기 위해, 장애물 감지부(130)에 의해 감지된 장애물들의 위치 정보들에 따라 이동 로봇(100)이 주행한 영역을 나타내는 코어스 맵(142)의 셀들에 저장되어 있는 정보, 예를 들어 장애물의 존재 확률 값 등을 갱신할 수 있다.
예를 들어, 장애물이 존재하는 확률 값을 갱신하기 위해 다음과 같은 식이 사용될 수 있다.
grid(Gx, Gy) = grid(Gx, Gy) + I
여기서, grid(Gx, Gy)는 좌표 (Gx, Gy)에 존재하는 셀의 확률 값을 나타내고, I는 확률 값의 증가분 또는 감소분을 나타낼 수 있다. 일반적인 확률값은 0~1 사이의 실수로 나타내어지나, 여기서는 편의상 0~15 사이의 정수로 나타낼 수 있다. 또한 0보다 작으면 0으로, 15보다 크면 15로 제한된다. 일 예로, 만약 셀 내에 장애물이 존재하면 I = 3로 설정하고, 셀 내에 장애물이 존재하지 않으면 I = -1로 설정할 수 있다. 코어스 맵을 처음 구축하는 단계에서는 모든 셀들의 확률 값들을 0으로 설정하고, 이후 이동 로봇(100)이 이동해 가면서 I 값을 설정하면서 코어스 맵을 갱신할 수 있다.
다시 도 1을 참조하면, 이동 제어부(170)는 이동 로봇(100)의 이동을 제어하여 코어스 맵 생성부(140)가 의도하는 위치로 이동 로봇(100)이 이동할 수 있도록 할 수 있다. 이동 제어부(170)는 예를 들어, 복수의 주행바퀴와, 주행바퀴를 구동하는 모터와, 모터를 제어하는 모터 컨트롤러를 포함하여 구성될 수 있다. 이동 로봇(100)의 직선 운동은 복수의 주행바퀴의 회전 속도를 동일하게 함으로써 이루어지고, 곡선 운동은 복수의 주행바퀴의 회전 속도를 다르게 함으로써 이루어질 수 있다. 일반적으로 주행바퀴 각각은 엔코더와 연결된다.
한편, 이동 로봇(100)은 코어스 맵 생성부(140)에서 생성된 코어스 맵과 경로 생성부(160)에서 생성된 경로 등을 저장하는 메모리(도시되지 않음)를 포함할 수 있다. 메모리는 롬(ROM), 피롬(PROM), 이피롬(EPROM), 이이피롬(EEPROM), 플래시 메모리와 같은 비휘발성 메모리 소자 또는 램(RAM)과 같은 휘발성 메모리 소자, 하드 디스크, 광 디스크와 같은 저장 매체, 또는 기타 당업계에 알려져 있는 임의의 다른 형태로 구현될 수 있다.
상기와 같이 구성되는 본 발명에 따른 이동 로봇의 동작을 설명하면 다음과 같다.
도 14는 본 발명의 일실시예에 따른 이동 로봇을 위한 경로를 계획하는 방법을 나타내는 순서도이다.
먼저 코어스 맵 생성부(140)에서 코어스 맵(142)을 생성하고 주행을 시작할 수 있다(S210). 장애물 감지부(130)는 주행을 하면서 장애물이 있는지 감지할 수 있다(S220). 만약, 장애물이 있다고 판단하면, 파인 맵 생성부(150)는 장애물 주위에서 파인 맵(152)을 생성할 수 있다(S222). 그리고, 경로 생성부(160)는 파인 맵(152)을 이용하여 이동 경로의 궤적(30)을 구할 수 있다(S232). 그리고, 이동 경로의 궤적(30)과 코어스 맵 상의 Blocked 셀이 교차하는 교차 셀(144)을 구할 수 있다(S234).
이동 경로의 궤적(30)과 교차셀(144)을 구하고 나면, 경로 생성부(160)는 이동 경로의 궤적(30)에서 중간 목적지를 결정할 수 있다(240). 중간 목적지는 이동 경로의 궤적(30)과 교차 셀(144)이 교차하는 교차점을 탐색하여 가장 먼 교차점으로 결정할 수 있다(S242). 그리고, 이동 로봇(100)의 현재 위치에서 교차점까지의 최적 경로를 탐색할 수 있다(S244).
중간 목적지와 중간 목적지로의 최적 경로를 탐색하고 나면, 경로 생성부(160)는 이동 경로의 궤적(30)에서 최종 목적지를 결정할 수 있다(S250). 최종 목적지는 중간 목적지로부터 이동 경로의 궤적(30)을 따라 이동 로봇(100)이 움직이는 거리를 이용하여 결정할 수 있다(S252). 그리고, 중간 목적지로부터 최종 목적지까지의 최적 경로를 탐색할 수 있다(S254).
경로 생성부(160)에서 좁은 통로를 탐색하고 중간 목적지와 최종 목적지를 결정하고 나면, 파인 맵(152) 상의 이동 경로를 따라 이동 로봇(100)은 주행을 시작하고, 주행하는 동안에 발생하는 예외 상황을 처리할 수 있다(S260).
이동 로봇(100)이 최종 목적지에 도달하면, 경로 생성부(160)는 코어스 맵 기반의 코어스 맵(142)과 파인 맵(152)을 갱신할 수 있다(S270).
마지막으로, 이동 로봇(100)이 다음 경유점을 생성할 필요가 있는지 판단하여(S280), 다음 경유점을 생성할 필요가 없는 경우에는 모든 과정이 종료되지만(S280의 아니오), 그럴 필요가 있는 경우에는 다시 단계 S210의 과정부터 반복하여 수행할 수 있다(S280의 예).
종래에는 이동 로봇(100)의 크기보다 훨씬 작은 크기의 파인 맵을 이용하여 경로 계획을 하는 경우, 노이즈가 많은 저가의 센서를 이용하여 생성한 맵으로는 경로 생성이 어렵고, 이동 로봇(100)의 크기를 고려한 형상 공간으로 실시간으로 변형해 주어야 하므로 계산량이 많다는 문제점이 있었다. 또는, 이동 로봇(100)의 크기에 따른 코어스 맵만을 이용하여 경로 계획을 하는 경우, 좁은 구역을 이동할 수 없는 상황이 많이 발생하는 문제점이 있었다.
그러나, 본 발명의 일실시예에 따른 이동 로봇의 경우, 일반적으로 이동 경로 계획을 위해서는 코어스 맵을 사용하고, 좁은 통로와 같이 더 세밀한 이동을 위해서는 파인 맵을 사용 가능하여 좁은 통로를 통과할 수 있는 이동 경로를 생성해줄 수 있다. 따라서, 저가의 센서 사용이 가능하며 계산량을 줄일 수 있다.
한편, 본 발명은 청소와 동시에 맵을 만들기 위해 경로를 계획하는 방법에 관한 것으로, 청소용 이동 로봇 뿐만 아니라, 잔디 깎기 로봇(Lawn mower), 페이트칠 로봇 등 일정 면적을 로봇이 이동해야 하는 모든 응용 분야에 적용할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일실시예에 따른 이동 로봇의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일실시예에 따른 이동 로봇의 코어스 맵 생성부에서 코어스 맵을 구성하는 셀들에 3가지 속성을 표시하는 예를 나타내는 도면이다.
도 3 및 도 4는 본 발명의 일실시예에 따른 이동 로봇의 코어스 맵 생성부가 물 채우기 방식으로 코어스 맵을 작성하는 예를 보여주는 도면들이다.
도 5 내지 도 11은 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 좁은 통로를 통과할 수 있는 이동 경로의 궤적을 구하는 예를 나타내는 도면이다.
도 12는 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 중간 목적지를 선택하고 중간 목적지까지의 최적 경로를 구하는 예를 나타내는 도면이다.
도 13은 본 발명의 일실시예에 따른 이동 로봇의 경로 생성부에서 최종 목적지를 선택하고 최종 목적지까지의 최적 경로를 구하는 예를 나타내는 도면이다.
도 14는 본 발명의 일실시예에 따른 이동 로봇을 위한 경로를 계획하는 방법을 나타내는 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 이동 로봇
110: 상대 위치 측정부
120: 절대 위치 측정부
130: 장애물 감지부
140: 코어스 맵 생성부
150: 파인 맵 생성부
160: 경로 생성부
170: 이동 제어부

Claims (22)

  1. 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 코어스 맵 생성부;
    상기 복수의 셀 중 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 파인 맵 생성부; 및
    상기 코어스 맵 생성부를 통해 생성된 코어스 맵 중 소정의 위치에 대해서 상기 파인 맵 생성부를 통해 파인 맵을 생성하도록 제어하는 경로 생성부를 포함하는데,
    상기 경로 생성부는 상기 파인 맵 상에 이동 로봇이 좁은 통로를 통과할 수 있는 이동 경로의 궤적을 구하고, 상기 이동 경로의 궤적이 장애물이 존재하는 셀과 교차하는 교차 셀을 구하는, 이동 로봇을 위한 경로 계획 장치.
  2. 제 1 항에 있어서,
    상기 소정의 위치는 상기 코어스 맵에서 상기 장애물이 있는 것으로 판단된 적어도 하나 이상의 셀인 것을 특징으로 하는 이동 로봇을 위한 경로 계획 장치.
  3. 제 2 항에 있어서,
    상기 파인 맵은 상기 이동 로봇이 이동할 수 있는 경로를 생성하며, 상기 생성된 경로는 최종 목적지와 중간 목적지를 갖는 것을 특징으로 하는 이동 로봇을 위한 경로 계획 장치.
  4. 제 1 항에 있어서,
    상기 코어스 맵의 복수의 셀 및 상기 파인 맵의 복수의 서브 셀을 이루는 각각의 셀은 상기 장애물의 유무 정보 및 경로 정보를 포함하는 이동 로봇을 위한 경로 계획 장치.
  5. 제 4 항에 있어서,
    상기 경로 정보는 특정 셀에 대한 청소가 완료되었는가를 나타내는 정보와, 상기 특정 셀을 포함한 현재 라인 및 상기 현재 라인의 하위 라인에 대한 청소가 완료되었는가를 나타내는 정보를 포함하는 이동 로봇을 위한 경로 계획 장치.
  6. 제 1 항에 있어서,
    상기 코어스 맵은 상기 코어스 맵의 복수의 셀을 포함하는 라인의 양끝이 상기 장애물로 막힐 때까지 상기 라인의 지나가지 않은 셀로 상기 이동 로봇을 이동시키고, 상기 라인의 양끝이 상기 장애물로 막히면 다음 라인으로 상기 이동 로봇을 이동시키는 동작을 상기 장애물이 폐곡선을 이룰 때까지 반복함으로써 생성되는 이동 로봇을 위한 경로 계획 장치.
  7. 삭제
  8. 제 1항에 있어서,
    상기 이동 경로의 궤적은 상기 파인 맵에서 노이즈를 제거하고 형상 공간(Configuration space)을 생성한 후 상기 형상 공간에 침식(Erosion) 연산을 수행함으로써 생성되는 이동 로봇을 위한 경로 계획 장치.
  9. 제 1항에 있어서,
    상기 경로 생성부는 상기 이동 경로의 궤적 상에서 중간 목적지 및 최종 목적지를 결정하는 이동 로봇을 위한 경로 계획 장치.
  10. 제 9 항에 있어서,
    상기 경로 생성부는 상기 이동 로봇이 상기 중간 목적지를 거쳐 상기 최종 목적지로 이동하는 동안에 발생하는 예외 상황을 처리하는 예외 처리부를 포함하는 이동 로봇을 위한 경로 계획 장치.
  11. 제 9 항에 있어서,
    상기 중간 목적지는 상기 이동 경로의 궤적과 상기 교차 셀의 교차점들 중 상기 이동 로봇으로부터 가장 멀리 떨어진 교차점인 이동 로봇을 위한 경로 계획 장치.
  12. 제 9 항에 있어서,
    상기 최종 목적지는 상기 중간 목적지로부터 상기 이동 경로의 궤적을 따라 상기 이동 로봇이 움직이는 거리를 이용하여 결정하는 이동 로봇을 위한 경로 계획 장치.
  13. 복수의 셀로 이루어진 코어스 맵(Coarse map)을 생성하는 단계;
    상기 복수의 셀 중 장애물이 존재하는 셀 주위의 적어도 하나의 셀을 분할하는 복수의 서브 셀로 이루어진 파인 맵(Fine map)을 생성하는 단계;
    상기 파인 맵을 이용하여 이동 로봇이 좁은 통로를 통과할 수 있는 이동 경로를 생성하는 단계; 및
    상기 이동 경로를 반영하여 상기 코어스 맵을 갱신하는 단계를 포함하는데,
    상기 이동 경로를 생성하는 단계는,
    상기 파인 맵 상에 상기 이동 경로의 궤적을 구하는 단계; 및
    상기 이동 경로의 궤적이 상기 코어스 맵 상에 상기 장애물이 존재하는 셀과 교차하는 교차 셀을 구하는 단계를 포함하는, 이동 로봇을 위한 경로 계획 방법.
  14. 제 13 항에 있어서,
    상기 코어스 맵의 복수의 셀 및 상기 파인 맵의 복수의 서브 셀을 이루는 각각의 셀은 상기 장애물의 유무 정보 및 경로 정보를 포함하는 이동 로봇을 위한 경로 계획 방법.
  15. 제 14 항에 있어서,
    상기 경로 정보는 특정 셀에 대한 청소가 완료되었는가를 나타내는 정보와, 상기 특정 셀을 포함한 현재 라인 및 상기 현재 라인의 하위 라인에 대한 청소가 완료되었는가를 나타내는 정보를 포함하는 이동 로봇을 위한 경로 계획 방법.
  16. 제 13 항에 있어서,
    상기 코어스 맵을 생성하는 단계는,
    상기 코어스 맵의 복수의 셀을 포함하는 라인의 양끝이 상기 장애물로 막힐 때까지 상기 라인의 지나가지 않은 셀로 상기 이동 로봇을 이동시키는 제1 단계;
    상기 라인의 양끝이 상기 장애물로 막히면 다음 라인으로 상기 이동 로봇을 이동시키는 제2 단계; 및
    상기 장애물이 폐곡선을 이룰 때까지 상기 제1 단계 및 상기 제2 단계를 반복하는 제3 단계를 포함하는 이동 로봇을 위한 경로 계획 방법.
  17. 삭제
  18. 제 13 항에 있어서,
    상기 이동 경로의 궤적은 상기 파인 맵에서 노이즈를 제거하고 형상 공간(Configuration space)을 생성한 후 상기 형상 공간에 침식(Erosion) 연산을 수행함으로써 생성되는 이동 로봇을 위한 경로 계획 방법.
  19. 제 13 항에 있어서,
    상기 이동 경로의 궤적 상에서 중간 목적지 및 최종 목적지를 결정하는 단계; 및
    상기 이동 로봇이 상기 중간 목적지를 거쳐 상기 최종 목적지로 이동하는 단계를 더 포함하는 이동 로봇을 위한 경로 계획 방법.
  20. 제 19 항에 있어서,
    상기 이동 로봇이 상기 중간 목적지를 거쳐 상기 최종 목적지로 이동하는 동안에 발생하는 예외 상황을 처리하는 단계를 더 포함하는 이동 로봇을 위한 경로 계획 방법.
  21. 제 19 항에 있어서,
    상기 중간 목적지는 상기 이동 경로의 궤적과 상기 교차 셀의 교차점들 중 상기 이동 로봇으로부터 가장 멀리 떨어진 교차점인 이동 로봇을 위한 경로 계획 방법.
  22. 제 19 항에 있어서,
    상기 최종 목적지는 상기 중간 목적지로부터 상기 이동 경로의 궤적을 따라 상기 이동 로봇이 움직이는 거리를 이용하여 결정하는 이동 로봇을 위한 경로 계획 방법.
KR1020070128266A 2007-12-11 2007-12-11 이동 로봇의 경로 계획 방법 및 장치 KR101372482B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070128266A KR101372482B1 (ko) 2007-12-11 2007-12-11 이동 로봇의 경로 계획 방법 및 장치
US12/314,088 US8195331B2 (en) 2007-12-11 2008-12-03 Method, medium, and apparatus for performing path planning of mobile robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070128266A KR101372482B1 (ko) 2007-12-11 2007-12-11 이동 로봇의 경로 계획 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090061298A KR20090061298A (ko) 2009-06-16
KR101372482B1 true KR101372482B1 (ko) 2014-03-26

Family

ID=40722451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070128266A KR101372482B1 (ko) 2007-12-11 2007-12-11 이동 로봇의 경로 계획 방법 및 장치

Country Status (2)

Country Link
US (1) US8195331B2 (ko)
KR (1) KR101372482B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180083084A (ko) 2017-01-12 2018-07-20 국방과학연구소 군집 무인체계 자율탐색 및 지도생성 방법
KR102097722B1 (ko) 2019-03-25 2020-04-06 주식회사 트위니 빅셀그리드맵을 이용한 이동체의 자세 추정 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20200123509A (ko) * 2019-04-16 2020-10-30 한국전자기술연구원 지도 생성 장치 및 방법, 이를 이용한 이동 로봇
KR20210082983A (ko) 2019-12-26 2021-07-06 주식회사 트위니 실내 이동체의 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8798792B2 (en) * 2007-10-30 2014-08-05 Lg Electronics Inc. Detecting apparatus of robot cleaner and controlling method of robot cleaner
JP5304128B2 (ja) * 2008-09-16 2013-10-02 村田機械株式会社 環境地図修正装置及び自律移動装置
KR20110128328A (ko) 2009-03-02 2011-11-29 디버세이, 인크 위생 모니터링 및 관리 시스템 및 방법
KR101524020B1 (ko) * 2009-03-06 2015-05-29 엘지전자 주식회사 로봇 청소기의 점진적 지도 작성 및 위치 보정 방법
KR101641237B1 (ko) * 2009-11-20 2016-07-21 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
JP2011129095A (ja) * 2009-12-18 2011-06-30 Korea Electronics Telecommun 自律走行ロボットを利用した地図生成方法、これを利用した最適走行経路算出方法およびこれらを遂行するロボット制御装置
KR101169674B1 (ko) * 2010-03-11 2012-08-06 한국과학기술연구원 원격현전 로봇, 이를 포함하는 원격현전 시스템 및 이의 제어 방법
US8775065B2 (en) * 2010-04-05 2014-07-08 Qualcomm Incorporated Radio model updating
KR20110119118A (ko) * 2010-04-26 2011-11-02 엘지전자 주식회사 로봇 청소기, 및 이를 이용한 원격 감시 시스템
US8571722B2 (en) 2010-10-22 2013-10-29 Toyota Motor Engineering & Manufacturing North America, Inc. Method for safely parking vehicle near obstacles
US20120101679A1 (en) * 2010-10-26 2012-04-26 Noel Wayne Anderson Method and system for enhancing operating performance of an autonomic mobile robotic device
TWI555496B (zh) * 2011-05-17 2016-11-01 微星科技股份有限公司 清潔系統及其控制方法
US8799201B2 (en) 2011-07-25 2014-08-05 Toyota Motor Engineering & Manufacturing North America, Inc. Method and system for tracking objects
US20130103305A1 (en) * 2011-10-19 2013-04-25 Robert Bosch Gmbh System for the navigation of oversized vehicles
US9776332B2 (en) * 2011-12-08 2017-10-03 Lg Electronics Inc. Automatic moving apparatus and manual operation method thereof
DE102012214307A1 (de) * 2012-08-10 2014-02-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Modellieren eines Umfelds
EP2885684B1 (en) * 2012-08-14 2018-05-09 Husqvarna AB Mower with object detection system
US9221461B2 (en) * 2012-09-05 2015-12-29 Google Inc. Construction zone detection using a plurality of information sources
US9056395B1 (en) 2012-09-05 2015-06-16 Google Inc. Construction zone sign detection using light detection and ranging
US9195914B2 (en) 2012-09-05 2015-11-24 Google Inc. Construction zone sign detection
US8996228B1 (en) 2012-09-05 2015-03-31 Google Inc. Construction zone object detection using light detection and ranging
CN103823466B (zh) * 2013-05-23 2016-08-10 电子科技大学 一种动态环境下移动机器人路径规划方法
KR102306709B1 (ko) * 2014-08-19 2021-09-29 삼성전자주식회사 청소 로봇, 청소 로봇의 제어 장치, 제어 시스템, 및 제어 방법
CN104199450A (zh) * 2014-09-17 2014-12-10 上海畔慧信息技术有限公司 群体机器人的控制系统
CN105511457B (zh) * 2014-09-25 2019-03-01 科沃斯机器人股份有限公司 机器人静态路径规划方法
KR101620428B1 (ko) * 2014-10-10 2016-05-12 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법
US10188029B1 (en) * 2014-10-20 2019-01-29 Hydro-Gear Limited Partnership Method of generating a three-dimensional map of a lawn and its use to improve mowing efficiency
US10488865B2 (en) * 2014-12-16 2019-11-26 Al Incorporated Methods and systems for robotic surface coverage
CN106537169B (zh) * 2015-01-22 2018-10-30 广州艾若博机器人科技有限公司 基于色块标签的定位与地图构建方法及其装置
JP6038990B2 (ja) * 2015-03-27 2016-12-07 本田技研工業株式会社 無人作業車の制御装置
US10215852B1 (en) * 2015-10-05 2019-02-26 Google Llc Robotic radar assistance
CN108700876B (zh) * 2015-11-04 2021-08-27 祖克斯有限公司 用于自主车辆轨迹修改的远程操作系统和方法
US9798327B2 (en) * 2016-01-08 2017-10-24 King Fahd University Of Petroleum And Minerals Apparatus and method for deploying sensors
US10328577B2 (en) * 2016-04-19 2019-06-25 Xiaoyu Arasive Inc. Autonomous navigational system for floor preparation and maintenance equipment
JP6786912B2 (ja) * 2016-07-05 2020-11-18 富士ゼロックス株式会社 移動ロボットおよび移動制御システム
US10293485B2 (en) * 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
CN106873599A (zh) * 2017-03-31 2017-06-20 深圳市靖洲科技有限公司 基于蚁群算法和极坐标变换的无人自行车路径规划方法
JP6828572B2 (ja) * 2017-04-18 2021-02-10 富士通株式会社 ロボット移動時間推定プログラム及びロボット移動時間推定方法
CN107423840A (zh) * 2017-04-24 2017-12-01 徐怡博 一种基于蚁群粒子群算法的机器人路径规划融合算法
US20220171399A1 (en) * 2017-05-26 2022-06-02 Hangzhou Hikrobot Technology Co., Ltd. Method for detecting presence probability of obstacle in unknown position, terminal, and storage medium
IL252769B (en) 2017-06-08 2021-10-31 Israel Aerospace Ind Ltd Method and system for autonomous vehicle navigation
DE102017113392B4 (de) * 2017-06-19 2021-06-10 Sick Ag Vorrichtung zur Sicherheitssteuerung einer Maschine
CN109426884B (zh) * 2017-08-28 2022-02-11 杭州海康机器人技术有限公司 分配方案确定方法、装置及计算机可读存储介质
CN108209741B (zh) * 2017-08-30 2020-05-26 深圳乐动机器人有限公司 清洁机器人控制方法和清洁机器人
CN107450569A (zh) * 2017-09-27 2017-12-08 上海思岚科技有限公司 一种扫地机器人的控制方法及设备
CN107977003B (zh) * 2017-11-28 2020-07-31 深圳市杉川机器人有限公司 区域清扫方法及装置
CN112352244B (zh) 2018-04-23 2024-04-09 尚科宁家运营有限公司 控制系统和更新存储器中的地图的方法
CN108764470B (zh) * 2018-05-18 2021-08-31 中国科学院计算技术研究所 一种人工神经网络运算的处理方法
US10780581B1 (en) * 2018-06-14 2020-09-22 X Development Llc Generation and application of reachability maps to operate robots
CN109213151A (zh) * 2018-08-07 2019-01-15 北京云迹科技有限公司 一种路径规划方法和送货机器人
CN109240303A (zh) * 2018-09-30 2019-01-18 北京奇虎科技有限公司 一种机器人的路径规划方法、装置及电子设备
CN111413960A (zh) * 2018-12-19 2020-07-14 深圳市优必选科技有限公司 一种基于虚拟轨道的巡航方法、装置及终端设备
CN112882459A (zh) * 2019-11-29 2021-06-01 惠州拓邦电气技术有限公司 一种清扫路径规划方法、清扫路径规划装置和清扫机器人
CN110887503B (zh) * 2019-12-06 2021-10-15 广州文远知行科技有限公司 移动轨迹模拟方法、装置、设备及介质
US11880209B2 (en) * 2020-05-15 2024-01-23 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
CN111896004A (zh) * 2020-07-28 2020-11-06 湖南大学 一种狭窄通道车辆轨迹规划方法及系统
KR102559013B1 (ko) * 2021-03-02 2023-07-24 주식회사 유진로봇 로봇의 맵 노이즈 제거 장치 및 방법
CN113885506B (zh) * 2021-10-18 2023-07-07 武汉联影智融医疗科技有限公司 机器人避障方法、装置、电子设备及存储介质
CN115907248B (zh) * 2022-10-26 2023-07-14 山东大学 基于几何图神经网络的多机器人未知环境路径规划方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984168A (en) * 1987-06-06 1991-01-08 Robert Bosch Gmbh Method and apparatus for determining a route between a starting point and a destination
US6667592B2 (en) * 2001-08-13 2003-12-23 Intellibot, L.L.C. Mapped robot system
US7053580B2 (en) 2001-11-03 2006-05-30 Dyson Limited Autonomous machine

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835684A (en) * 1994-11-09 1998-11-10 Amada Company, Ltd. Method for planning/controlling robot motion
US7805220B2 (en) * 2003-03-14 2010-09-28 Sharper Image Acquisition Llc Robot vacuum with internal mapping system
JP2005211367A (ja) 2004-01-30 2005-08-11 Funai Electric Co Ltd 自律走行ロボットクリーナー
KR20050111138A (ko) 2004-05-21 2005-11-24 삼성광주전자 주식회사 로봇 청소기의 청소방법
KR20060097854A (ko) 2005-03-07 2006-09-18 주식회사 영텍 출입문 및 방을 자동 인식하는 로봇청소기 및 출입문 자동인식 방법
AU2006274421B2 (en) * 2005-07-26 2011-08-11 Macdonald, Dettwiler And Associates Inc. Traffic management system for a passageway environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984168A (en) * 1987-06-06 1991-01-08 Robert Bosch Gmbh Method and apparatus for determining a route between a starting point and a destination
US6667592B2 (en) * 2001-08-13 2003-12-23 Intellibot, L.L.C. Mapped robot system
US7053580B2 (en) 2001-11-03 2006-05-30 Dyson Limited Autonomous machine

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180083084A (ko) 2017-01-12 2018-07-20 국방과학연구소 군집 무인체계 자율탐색 및 지도생성 방법
KR102097722B1 (ko) 2019-03-25 2020-04-06 주식회사 트위니 빅셀그리드맵을 이용한 이동체의 자세 추정 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20200123509A (ko) * 2019-04-16 2020-10-30 한국전자기술연구원 지도 생성 장치 및 방법, 이를 이용한 이동 로봇
KR102353320B1 (ko) * 2019-04-16 2022-01-19 한국전자기술연구원 지도 생성 장치 및 방법, 이를 이용한 이동 로봇
KR20210082983A (ko) 2019-12-26 2021-07-06 주식회사 트위니 실내 이동체의 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램

Also Published As

Publication number Publication date
US8195331B2 (en) 2012-06-05
KR20090061298A (ko) 2009-06-16
US20090149990A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
KR101372482B1 (ko) 이동 로봇의 경로 계획 방법 및 장치
JP7212074B2 (ja) 自律移動ロボットの縁沿い走行の制御方法
Shah et al. Ving: Learning open-world navigation with visual goals
CN108507578B (zh) 一种机器人的导航方法
KR100877072B1 (ko) 이동 로봇을 위한 맵 생성 및 청소를 동시에 수행하는 방법및 장치
Konolige A gradient method for realtime robot control
CN113110457B (zh) 在室内复杂动态环境中智能机器人的自主覆盖巡检方法
KR20090077547A (ko) 이동 로봇의 경로 계획 방법 및 장치
Choset Coverage for robotics–a survey of recent results
Taylor et al. Vision-based motion planning and exploration algorithms for mobile robots
JP2007249632A (ja) 障害物のある環境下で自律移動する移動ロボットおよび移動ロボットの制御方法。
GB2545134A (en) Discovery and monitoring of an environment using a plurality of robots
EP2713232A1 (en) Autonomous mobile robot and method for operating the same
US9599987B2 (en) Autonomous mobile robot and method for operating the same
CN111609853A (zh) 三维地图构建方法、扫地机器人及电子设备
CN113566808A (zh) 一种导航路径规划方法、装置、设备以及可读存储介质
CN114879660A (zh) 一种基于目标驱动的机器人环境感知方法
CN114460939A (zh) 复杂环境下智能行走机器人自主导航改进方法
CN113433937A (zh) 基于启发式探索的分层导航避障系统、分层导航避障方法
Jan et al. A computationally efficient complete area coverage algorithm for intelligent mobile robot navigation
Mao et al. Combined complete coverage path planning for autonomous mobile robot in indoor environment
Song et al. A localization algorithm for low-cost cleaning robots based on kalman filter
Li et al. Object-Aware View Planning for Autonomous 3D Model Reconstruction of Buildings Using a Mobile Robot
Hsu et al. A graph-based exploration strategy of indoor environments by an autonomous mobile robot
Hortelano et al. Heuristics-based explorer for 2D navigation

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
FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 7