KR100745975B1 - 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치 - Google Patents

그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치 Download PDF

Info

Publication number
KR100745975B1
KR100745975B1 KR1020040116864A KR20040116864A KR100745975B1 KR 100745975 B1 KR100745975 B1 KR 100745975B1 KR 1020040116864 A KR1020040116864 A KR 1020040116864A KR 20040116864 A KR20040116864 A KR 20040116864A KR 100745975 B1 KR100745975 B1 KR 100745975B1
Authority
KR
South Korea
Prior art keywords
moving
waypoint
path
cell
unit
Prior art date
Application number
KR1020040116864A
Other languages
English (en)
Other versions
KR20060078162A (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 KR1020040116864A priority Critical patent/KR100745975B1/ko
Priority to US11/319,054 priority patent/US7953551B2/en
Publication of KR20060078162A publication Critical patent/KR20060078162A/ko
Application granted granted Critical
Publication of KR100745975B1 publication Critical patent/KR100745975B1/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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • 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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • 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/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • 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/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0242Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
    • 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/0255Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals

Abstract

그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법은 이동형 가전기기가 이동하는 공간을 구성하는 다수의 셀에서 목적지까지의 이동 비용을 계산하여 상기 이동 비용을 기준으로 목적지까지의 이동 경로를 생성하는 단계, 상기 이동 경로에서 방향이 변하는 경유점을 생성하는 단계, 상기 경유점에서 최단 거리 경유점을 선택하여 상기 이동 경로에서 최소 이동 경로를 산출하는 단계, 상기 제 1 최단 거리 경유점에서 제 2 최단 거리 경유점으로 이동하는 제 1 이동 단계, 상기 제 2 최단 거리 경유점으로 이동하는 방향에 존재하는 장애물을 감지하는 단계, 상기 장애물이 감지된 경우 상기 최소 이동 경로를 재생성하는 단계 및 상기 재생성한 경로에 존재하는 제 3 경유점으로 이동하는 제 2 이동 단계를 포함한다.
최단 거리(Shortest path), 그리드 맵(Grid map)

Description

그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및 장치{Method and apparatus for moving minimum movement cost path using grid map}
도 1은 종래의 그리드 맵을 이용한 최적 경로 생성 알고리즘을 적용한 일 실시예이다.
도 2는 본 발명의 일 실시예에 따른 맵과 맵에 의해 생성된 경로 및 최단 경로를 보여주는 예시도이다.
도 3은 본 발명의 일 실시예에 따른 맵을 생성하는 예시도이다.
도 4a는 본 발명의 일 실시예에 따른 경유점을 기반으로 하여 최단 경로를 설정하는 함수이다.
도 4b는 본 발명의 일 실시예에 따른 최단 경유점을 찾는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 경로 생성 및 생성된 경로에 따라 이동을 수행하는 과정을 보여주는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 인접 셀 기반 이동 방향과 비인접 셀 기반 이동 방향을 보여주는 예시도이다.
도 7은 본 발명의 일 실시예에 따른 장애물과 충돌시 또는 근거리에서 감지한 경우 경로를 재설정하는 과정을 보여주는 예시도이다.
도 8은 본 발명의 일 실시예에 따른 원거리에서 장애물을 감지한 경우 경로 를 재설정하는 과정을 보여주는 예시도이다.
도 9는 본 발명의 일 실시예에 따른 이동형 가전기기의 구성도이다.
도 10은 본 발명의 일 실시예에 따른 센서부의 구성 요소를 보여주는 예시도이다.
도 11은 본 발명의 일 실시예에 따른 이동부의 구성요소를 보여주는 예시도이다.
도 12는 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 제 1 실시예이다.
도 13은 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 제 2 실시예이다.
도 14는 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 이동에 따른 경과 시간을 비교하는 도표이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 이동부 200 : 센서부
500 : 제어부 510 : 경로 생성부
520 : 경유점 생성부 530 : 최소 이동 경로 생성부
540 : 재계획 경로 생성부 1000 : 이동형 가전기기
그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및 장치에 관한 것이다.
이동형 가전기기가 이동하기 위해서는 여러가지 요건을 충족시켜야 한다. 장애물을 회피할 수 있어야 하며, 가전기기에 알맞게 이동하며 이동 거리를 짧게 해야 한다.
이동형 가전기기가 이동하는 공간은 주로 실내이므로, 가구, 침대와 같이 고정된 장애물이 존재한다. 따라서, 미리 가전기기에 가구, 침대의 위치를 입력시키면 가구와 침대와 같은 장애물을 회피하며 최단으로 이동할 수 있는 경로를 생성할 수 있다. 그러나 사람, 의자, 또는 누군가가 물체를 이동 공간에 가져온 경우와 같이 미리 입력된 장애물 외에도 새로이 존재하는 장애물이 있다. 예를 들어, 방에 가구와 침대를 장애물로 입력시켜 놓았는데, 누군가가 의자를 방안에 두어 새로운 장애물이 될 수 있다.
종래에 그리드 맵(Grid map)을 사용하여 이동 경로를 생성하여 이동을 수행하는 알고리즘이 제안되었다.
도 1은 종래의 그리드 맵을 이용한 최적 경로 생성 알고리즘을 적용한 일 실시예이다. D* 알고리즘("Optimal and Efficient Path Planning for Partially-Known Environments", Anthony Stentz, "In Proceedings IEEE International Conference on Robotics and Automation, 1994, 5)이라 불리는 이 방식은 셀 방식으로 이동 경로를 설정하여, 셀크기만큼 이동한다. 그리고 고정된 장애물이 아닌 새로운 장애물을 만나면 경로를 일부 재설정하여 이동하는 알고리즘이다.
(a)는 초기에 장애물의 위치를 입력하여 저장해둔다. 그리드 맵(Grid Map)은 이동할 영역에 대하여 일정 거리로 나눈 셀(Cell)들에서 목표지점으로 이동하기에 가장 적합한 방향에 대한 정보를 가지고 있다. (a)는 하나의 방에 대한 장애물 정보와 각 셀에 대한 정보가 있다. 고정된 장애물(10)이 존재하며, 목표지점은 'Goal' 로 표시하고 있다. 가로, 세로로 15x7의 셀로 구성되며, 각 셀에서 'Goal' 지점으로 이동하기 위해 8 방향중 어느 한 방향으로 이동하도록 정하고 있다. 10으로 표시되는 장애물이 있으나, 'Start'로 표시된 출발 지점에서 목표 지점까지 직진하면 도착할 수 있음을 그리드 맵에서 알 수 있다. 'Start'의 셀은 우측으로 이동할 것을 알리고 있으며, 그 다음 우측 셀에서도 역시 우측으로 이동할 것을 알리고 있다. 이렇게 지시된 방향으로 이동하면, 그리드 맵에 따를 때, 우측으로 직진하면 목표 지점에 도달할 수 있음을 알 수 있다.
그러나, 고정된 장애물(10)만이 존재할 경우에는 (a)의 그리드 맵을 통해 이동이 가능하지만, 새로운 장애물이 존재할 경우에는 수정이 필요하다. (b)와 같이 새로운 장애물(20)이 발견된 경우, 50 영역내의 그리드 맵은 수정되어야 한다. 수정된 그래드 맵은 50 영역 내에서와 같다. 새로운 장애물(20)에 의해 우측으로 진행하는 것이 어려우므로, 기존의 고정 장애물(10)의 주변을 둘러 가는 방식으로 경로를 재설정한다. 수정된 그리드 맵에서 이동하는 경로는 (c)와 같다.
그런데 (c)에서 알 수 있듯이, D* 알고리즘은 셀 단위로 움직이므로 최단 경로로 이동하지 못하는 경우가 발생한다. 직진했을 때에는 2.5 m 인데, 셀 단위로 이동할 경우에는 3.5 m를 이동해야 한다. 따라서 최단 거리의 이동이 어려울 수 있 다. 최단 거리를 이동하기 위해서는 셀의 크기를 줄일 수 있다. 그러나, 셀의 크기를 줄일 경우 저장해야 하는 데이터의 크기는 급격히 늘어난다. 예를 들어, 한 셀에 소요되는 메모리가 33byte라 하고, 가로, 세로의 길이가 12m인 방을 셀로 나타내는 경우, 한 셀을 가로, 세로의 길이를 20 cm로 나타낸다면, 계산해야 할 셀은 3600개이다. 그리고 메모리에 저장해야 할 데이터는 3600 * 33 byte로 총 118800 byte 이다. 반면, 한 셀을 가로, 세로의 길이를 10cm로 할 경우에는 계산해야 할 셀의 개수가 14400개이다. 그 결과 필요한 메모리는 14000 x 33byte로 475200 byte의 메모리를 필요로 한다. 셀의 길이를 1/2 줄인 결과 계산해야 할 데이터의 크기는 4배가 증가했다. 최단 거리로 이동하기 위해, 셀의 크기를 줄이면, 그만큼 저장해야 될 데이터가 늘어난다는 점에서, 바람직하지 않다.
따라서, 셀의 크기는 유지하면서, 최단 거리로 이동을 하는 방법이 필요하다. 또한 미리 입력되지 않은 장애물을 만난 경우에, 부분적으로 경로를 재설정하여 최단 거리를 이동하는 방법 및 이를 위한 장치가 필요하다.
본 발명의 기술적 과제는 이동형 가전기기가 그리드 맵의 셀을 사용하며 장애물을 회피하며 최소 이동 경로로 이동하는 데 있다.
본 발명의 다른 기술적 과제는 그리드 맵의 인접 셀간의 위치에 제한되지 않는 방향을 사용하여 최소 이동 경로로 이동하는 데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것 이다.
그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법은 이동형 가전기기가 이동하는 공간을 구성하는 다수의 셀에서 목적지까지의 이동 비용을 계산하여 상기 이동 비용을 기준으로 목적지까지의 이동 경로를 생성하는 단계, 상기 이동 경로에서 방향이 변하는 경유점을 생성하는 단계, 상기 경유점에서 최단 거리 경유점을 선택하여 상기 이동 경로에서 최소 이동 경로를 산출하는 단계, 상기 제 1 최단 거리 경유점에서 제 2 최단 거리 경유점으로 이동하는 제 1 이동 단계, 상기 제 2 최단 거리 경유점으로 이동하는 방향에 존재하는 장애물을 감지하는 단계, 상기 장애물이 감지된 경우 상기 최소 이동 경로를 재생성하는 단계 및 상기 재생성한 경로에 존재하는 제 3 경유점으로 이동하는 제 2 이동 단계를 포함한다.
본 발명의 다른 실시예에 따른 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법은 이동형 가전기기가 이동하는 공간을 출발점과 목표점을 포함하는 다수의 셀로 나누어 셀을 기반으로 이동이 가능한 최소 이동 경로를 생성하는 단계 및 상기 최소 이동 경로를 따라 제 1 셀에서 제 2 셀로 이동하는 제 1 이동 단계를 포함하며, 상기 제 1 셀과 상기 제 2 셀이 인접하지 않는 경우, 상기 이동하는 방향은 인접하지 않는 두 셀의 물리적 위치에서 산출되는 비인접 셀 기반 이동방향이 다.
본 발명의 일 실시예에 따른 이동형 가전기기는 동력을 이용하여 이동하는 이동부, 상기 이동부가 이동하는 방향을 기준으로 전방에 존재하는 장애물을 감지하는 센서부 및 상기 이동부가 이동할 경로를 생성하여 상기 경로에 따라 이동하도록 상기 이동부를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 이동형 가전기기가 이동하는 공간을 구성하는 다수의 셀에서 목적지까지의 이동 비용을 계산하고 상기 이동 비용을 기준으로 목적지까지의 이동 경로를 생성하는 경로 생성부, 상기 이동 경로에서 방향이 변하는 경유점을 생성하는 경유점 생성부, 상기 경유점에서 최단 거리 경유점을 선택하여 상기 이동 경로에서 최소 이동 경로를 산출하는 최소 이동 경로 생성부 및 상기 센서부에서 장애물을 감지하는 경우, 상기 최소 이동 경로를 재생성하는 재계획 경로생성부를 포함한다.
본 명세서에서 제시하는 최단 경로는 목적지까지 가장 짧은 거리를 통해 이동하는 것을 의미한다. 그러나 이동에 소요되는 비용은 이동 거리 외에도 이동 각도, 계산 시간 등 많은 요소가 있다. 본 명세서에서는 이동에 필요한 비용을 판별하기 위해 거리를 기준으로 하며, 최단 경로를 최소 이동 경로의 일 실시예로 하고 있으나, 본 발명이 이에 국한되는 것은 아니다. 최소 이동 경로는 최단 경로 외에도, 이동시 소요되는 비용을 최소로 하는 경로를 모두 포함한다.
도 2는 본 발명의 일 실시예에 따른 맵과 맵에 의해 생성된 경로 및 최단 경로를 보여주는 예시도이다.
(a)는 이동형 가전기기가 이동할 공간에 대해 미리 입력된 정보를 바탕으로 맵 정보를 생성하고, 경로(path)를 생성한 결과를 보여주고 있다. 맵 생성 방식은 도 3에서 상술하고자 한다. (a)의 맵은 가로, 세로가 9x5이며, 총 45개의 셀(Cell)로 구성된다. 각 셀은 목적지점(Goal)까지의 누적 거리 또는 누적 거리와 이동에 들어가는 비용에 대해 계산한 결과이다. 누적 거리 또는 이동 비용은 일 실시예이며, 각 셀에서 목적지까지 이동하기위해 최단 거리를 찾기 위해 필요한 가중치이다. 이하, 특정 셀을 지칭하기 위해서 각 셀의 좌표를 이용하고자 한다. 출발점(S)는 가로 좌표가 1, 세로 좌표가 3이므로 Cell(1,3)이라 한다. 각 셀에서 목적지까지 이동하는데 필요한 비용을 move_cost로 나타낼 때, Cell(1, 3)의 이동 비용은 move_cost(Cell(1, 3))이며 15이다.
(a)에서 이동 비용을 가지지 않는 셀은 이동형 가전기기가 이동할 수 없는 장애물을 나타낸다. 이렇게 각 셀에 대한 이동 비용을 (a)와 같이 계산하면, 다음으로 목적지까지 이동하기 위한 경로를 생성해야 한다. 이동할 경로는 각 셀에서 어느 셀로 이동할 것인지를 선택하여 이동 경로를 설정할 수 있다. (a)에서 출발점인 Cell(1, 3)의 주변에는 Cell(1,2), Cell(1,4), Cell(2,2)가 있다. 이중 이동 비용이 가장 적은 셀은 Cell(2, 2)이다. Cell(2, 2)로 이동한 후에는 다시 이동 가능한 셀 중에서 이동 비용이 낮은 셀을 선택한다. Cell(2, 2) 주변에는 Cell(1, 2), Cell(1, 1), Cell(2, 1), Cell(3,1), Cell(3, 2)이며, 각각의 가중치는, 14(Cell(1, 2)), 15(Cell(1, 1)), 14(Cell(2, 1)), 13(Cell(3,1)), 12(Cell(3, 2)) 이므로, 이중에서 가장 작은 비용을 가지는 셀인 Cell(3, 2)를 선택한다. 이러한 방식으로 이동 가능한 셀 중에서 가장 작은 이동 비용을 가지는 셀을 선택하여 목 적지까지 이동할 수 있는 경로가 생성된다.
경로가 생성되면 (b)와 같이 경유점을 설정할 수 있다. 경유점(via point)란 이동 경로에서 회전 또는 방향을 바꾸는 지점을 의미한다. (b)에서 Cell(2, 2), Cell(3, 2), Cell(6, 5), Cell(8,5), Cell(9, 4)가 모두 경유점이 된다. 출발점과 목적지도 경유점이 될 수 있다. 경유점을 설정하는 것은 (c)와 같이 최단 경로를 생성하기 위함이다.
최단 경로는 불필요한 이동을 줄인다. 도 2의 (b)에서 설정한 경유점 기준 이동 경로는 셀 단위로 이동이 이루어진다. 예를 들어, Cell(3, 2), Cell(6, 5), Cell(8, 5)까지는 불필요한 Cell(6,5)를 거쳐서 이동하고 있다. 따라서, Cell(3, 2)에서 Cell(8, 5)까지 직진해서 이동하는 경로가 최단 경로가 된다. 이러한 경유점을 기반으로 최단 경로를 찾은 결과는 (c)와 같다. 각 경유점에서 다음 경유점 또는 그 다음 경유점까지 직진할 수 있는지를 파악하여, 불필요한 경유점을 삭제한다. (b)에서 불필요한 경유점은 Cell(6, 5)이므로, (c)에서는 해당 경유점이 삭제되어 최단 경로를 설정한다.
도 3은 본 발명의 일 실시예에 따른 맵을 생성하는 예시도이다. 도 3에서는 맵의 각 셀들을 사각형으로 형성하고 있다. 육각형, 삼각형을 통해서도 맵을 구현할 수 있다. (a)는 상하좌우로 이동시에는 비용을 1로, 대각선으로 이동시 비용을 2로 계산하여 생성한 맵이다. 맵의 각 셀들이 가지는 비용, 가중치는 셀간의 이동을 통해 목적지(Goal)까지 이동하는데 필요한 최소 비용을 도출하였다. 예를 들어 목적지인 Cell(9, 2)의 윗쪽에 있는 셀인 Cell(9, 3)은 목적지에서 1 셀만큼 윗쪽 에 있으므로 비용은 1이 된다. 마찬가지로 Cell(9, 4)는 Cell(9, 3)에서 1 셀만큼 위쪽에 있으므로 비용은 2가 된다. 이러한 방식으로 각 셀의 가중치, 또는 이동 비용을 설정할 수 있다. Cell(8, 5)는 Cell(9, 4)과 Cell(9, 5)에서 계산 가능하다. Cell(9, 4)의 비용은 2, 그리고 Cell(9, 4)에서 Cell(8, 5)까지 이동하는데 드는 비용은 2 이다. 그리고 Cell(9, 5)의 비용은 3, Cell(9, 5)에서 Cell(8, 5)까지 이동하는데 드는 비용은 1 이므로 Cell(8, 5)가 가질 수 있는 최소 이동 비용은 4가 된다. 이러한 방식으로 대각선 이동시에는 +2, 상하좌우 이동시에는 +1로 계산하여 주변 셀에서 가장 이동 비용이 낮은 값을 선택한 것이 각 셀의 가중치, 또는 이동 비용이 된다.
한편 Cell(8, 5)를 계산함에 있어서 Cell(7, 5) Cell(7, 4)역시 인접한 셀이지만, 계산시에는 크게 고려할 필요가 없다. 이들 셀들은 아직 확정된 가중치, 또는 이동 비용을 가지지 않기 때문이다. 계산의 편의를 위해, 셀에서의 이동 비용을 계산하기 전에 모든 셀에 대해 초기값으로 특정 값으로 미리 설정할 수 있다. 이에 대한 특정 값은 각 셀이 가질 수 있는 최대 이동 비용보다 더 큰 값을 설정하면 가능하다. 예를 들어, (a)와 같이 가로, 세로로 9x5 개의 셀들은 이동 비용이 1000을 넘지 않는다. 따라서 셀들의 초기 값으로 미리 1000을 넣어둔다면, 이후 계산시에 최소 이동 비용이 설정되지 않은 인접 셀들로부터 이동 비용을 계산할 경우, 더 간편하게 도출할 수 있다.
(b)는 이동 비용을 계산함에 있어서 상하좌우로 이동시에는 비용을 1로, 대각선 방향으로 이동시에 1.5를 더해주는 경우 산출된 셀의 가중치이다. 역시 (a)와 같은 방식으로 도출된다.
(b)의 Cell(5, 4)의 경우, 이동 가능한 셀은 인접한 총 8개의 셀들이다. 이 중에서 아직 최소비용이 계산되지 않아 최대값을 가지는 Cell(4, 3), Cell(4, 4), Cell(4, 5), Cell(5, 3), Cell(6, 3)은 제외하고, Cell(5, 5), Cell(6, 5), Cell(6, 4)를 기준으로 Cell(5, 4)의 이동 비용을 구해보면 다음과 같다.
(1) Cell(5, 5)에서 이동시: move_cost(Cell(5, 5)) + 1, 이동 비용은 7.5
(2) Cell(6, 5)에서 이동시: move_cost(Cell(6, 5)) + 1.5, 이동 비용은 7
(3) Cell(6, 4)에서 이동시: move_cost(Cell(6, 4)) + 1, 이동 비용은 7
위에서 구한 이동 비용중에서 (2)와 (3)이 가장 작은 값인 7을 가지므로 Cell(5, 4)의 이동 비용은 7이 된다. 이외에도 Cell(5, 2) 역시 대각선 방향의 Cell(6, 3)으로부터 최소 이동 비용을 구하여 8이 되며, Cell(4, 1) 역시 대각선 방향의 Cell(5, 2)로부터 최소 이동 비용을 구하여 9.5가 된다.
(a), (b)의 산출 과정을 식으로 정리하면 다음과 같다.
가로가 n 개의 셀, 세로가 m 개의 셀로 이루어진 맴에 있어서 초기에 1000이라는 최대값이 할당되어 있다. 그리고 목적지의 move_cost는 0이 된다.
move_cost(Cell(i. j) = min{move_cost(Cell(a, b)),
i - 1≤ a≤i + 1, j - 1≤ b≤j + 1}
산출된 맵 정보를 바탕으로 출발지에서 목적지까지의 경로는 도 2에서 설명한 바와 같이, 인접한 셀 중에서 가장 최소의 이동 비용을 가지는 셀들을 통해 결정된다.
도 4a는 본 발명의 일 실시예에 따른 경유점을 기반으로 하여 최단 경로를 설정하는 함수이다.
모든 경유점에 대한 정보를 V[n] 이라는 배열이 가지고 있을 때, 어느 한 경유점인 V[cnt]에서 V[subcnt]까지 경로가 존재하는 지를 PathExists()라는 함수를 통해 구할 수 있다. PathExists() 함수는 다양하게 구현될 수 있으며, 이 때, 장애물의 위치를 고려하여 중간에 존재하는 경유점을 거치지 않고 이동할 수 있는지 여부를 판별할 수 있다. 인접하지 않은 경유점간에 이동이 가능하면 EraseDummyViapoint()라는 함수를 통해 불필요한 경유점을 삭제한다.
도 4b는 본 발명의 일 실시예에 따른 최단 경유점을 찾는 순서도이다.
최단 경유점은 인접하지 않은 경유점간에 이동이 가능한지를 검토하는 것으로 도 4a의 PathExists() 과정을 설명하고 있다. 먼저 두 경유점을 선택한다. 두 경유점은 A, B라는 인덱스를 가진다. 처음 시작은 첫번째 경유점과 세번째 경유점으로부터 시작한다(S100). B번째 경유점이 존재하면(S110), B번째 경유점과 A번째 경유점 사이에 직선을 긋는다(S120). 이 직선은 이동 경로가 될 수 있는 직선이다. 그리고 직선상에 장애물이 존재하는지 검토한다(S130). 장애물이 존재하지 않는다면 B-1번째 경유점을 거치지 않아도 이동이 가능하므로 B-1번째 경유점을 삭제한다(S140). 그리고 B가 목표점인지 판단한다(S150). B가 목표점이 아니라면 계속 최단 경유점을 찾기위해 다음번 경유점을 선택하는 S160 단계를 수행한다. 한편 B가 목표점이라면, A+2가 목표점인지 살펴보아서(S170), 다시 재귀적으로 최단 경유점을 설정하기 위한 작업을 수행한다. 이를 위해 S180 과정을 수행한다. S180 과정은 다 음 경유점을 설정하기 위해 A를 1 증가시키고, B번째 경유점을 A에서 2만큼 떨어진 경유점부터 시작하도록 설정한다.
S150 단계에서 B가 목표점이 아니라면, 다음 경유점을 기반으로 최단 경유점을 찾기 위해 S160 단계를 수행한다.
한편 S130단계에서 장애물이 존재한다면 A번째 경유점과 B번째 경유점 사이에 직선으로 이동할 수 없음을 의미한다. 따라서, 바로 S150 과정을 통해 B 경유점이 목표점인지 검토하고, 목표점인지 여부에 따라 S160 또는 S170 과정을 수행한다.
도 5는 본 발명의 일 실시예에 따른 경로 생성 및 생성된 경로에 따라 이동을 수행하는 과정을 보여주는 순서도이다.
맵을 생성하여 이동 비용을 계산한다(S200). 맵은 도 2의 (a)와 같이, 목적지까지 이동하는데 걸리는 비용을 바탕으로 계산할 수 있다. 또한 맵을 생성하기 위해 사용자로부터 이동 공간에 대한 정보를 사용자로부터 입력받을 수 있고, 또는 미리 저장된 데이터를 사용할 수 있다. 이동 공간에 대한 정보는 공간의 크기와 셀에 대한 정보, 그리고 이동 공간 내에 존재하는 장애물 들의 위치에 대한 정보를 포함한다.
이동하는데 필요한 비용을 계산시에는 각 셀에 이동시 발생할 수 있는 장애 요소를 가중치로 두어서 맵을 생성할 수도 있다. 본 발명의 일 실시예에서는 셀을 사각형으로 하고 있으나, 이는 일 실시예에 해당하며, 육각형, 삼각형 등 여러가지 형식으로 구현할 수 있다. 맵을 형성한 후에는 경로를 생성한다(S210). 경로를 생 성하는 것은 출발지에서 목적지까지 초기의 경로를 생성하는 것을 의미한다. 경로는 가장 비용이 작은 지점으로 이동하는 방식 등을 통해 생성할 수 있다.
경로가 생성되면, 셀 중에서 경유점(Via Point)이 될 수 있는 셀을 선택하여 경유점을 생성한다(S220). 경유점은 이동시 방향이 달라지는 지점을 의미한다. 생성된 경유점을 토대로 도 2에서 살펴본 바와 같이 필요없는 경유점을 제거하여 이동 거리를 단축시킨다(S230). 경유점을 제거하기 위해서는 장애물의 위치를 고려한다. 이렇게 몇몇 경유점을 제거한 결과 최단 거리 경유점을 산출할 수 있다(S233). 최단 거리 경유점이란 S220 단계에서 생성한 경유점에서 필요없는 경유점들을 삭제한 후에 존재하는 경유점을 의미한다. 최단 거리 경유점으로 구성된 경로는 최소 이동 경로가 된다. 출발 전에 최소 이동 경로를 설정하면, 설정한 결과에 따라 n번째 경유점 방향으로 이동한다(S235). 이는 전술한 최단 거리 경유점을 순차적으로 이동하며, 전술한 최소 이동 경로를 따라 이동하는 것을 의미한다. 초기에 n은 첫번째 경유점을 기준으로 설정된다 그러나 경유점으로 이동하는 중에 충돌 센서를 통해 장애물이 감지되거나, 또는 다음 경유점으로 이동하기 전에 거리 센서를 통해 장애물을 감지할 수 있다. 따라서 S238 단계에서 이동시, 또는 이동전에 감지한 결과 장애물이 존재하는지 판단한다. 그 결과 장애물이 존재하면 다시 경로를 재생성한다(S240). 이때, 경로를 재생성하는 것은 전체 경로가 아니라 일부 경로만을 재생성할 수 있다. 현재 감지한 장애물의 위치에 따라 앞으로 이동할 경유점까지의 이동 경로를 재생성한다. 만약 S238 단계에서 장애물이 존재하지 않는다면, 경유점에 도착하였는지 판단한다(S250). 경유점에 도착하지 않았다면 다시 S235 과정으로 돌아가서 경유점으로 이동한다. 만약 경유점에 도착하였다면, 도착한 경유점이 목표점인지 판단하여(S260), 목표점이 아니라면, 역시 다음 경유점으로 이동하기 위해 n을 1만큼 더한다(S270). 그리고 n번째 경유점으로 이동한다(S235). 한편, 목표점으로 도달했다면, 이동을 완료한다.
도 6은 본 발명의 일 실시예에 따른 인접 셀 기반 이동 방향과 비인접 셀 기반 이동 방향을 보여주는 예시도이다.
본 발명의 일 실시예와 D* 알고리즘을 사용하는 것과의 차이는, 최소 이동 경로를 계산함에 있어서, D* 알고리즘은 각 셀에서 이동할 수 있는 방향이 한정되어 있다는 것이다. 이는 각 셀과 인접하는 셀들과의 관계에서 나타나고 있다.
그러나, 이동할 수 있는 방향이 다양하지 않고, 일정 방향으로만 고정될 경우, 도 1에서 살펴본 바와 같이 최단 거리를 이동하기 어렵다. 그러나 셀을 기반으로 하지 않을 경우, 또는 셀의 크기를 줄일 경우, 최단 거리를 이동하는 데 근접할 수는 있으나 계산해야 할 데이터의 분량이 급속도로 높아짐을 보았다. 따라서, 전체 공간에 대한 정보는 셀 단위로 구성하여 계산하되, 이동시에는 인접 셀을 기반으로 하는 방향을 포함하면서, 비인접 셀과의 관계를 통해 방향을 정하게 되면, 이동할 수 있는 방향이 다양해지고, 결과적으로 최단 거리를 이동할 수 있다.
도 6은 여러가지 셀들을 보여주고 있다. 셀들은 공간을 일정 크기로 나눈 것으로 (a), (b), (c), (d)와 같이 정사각형, 직사각형, 육각형, 삼각형 등으로 구성할 수 있다. 도 6에서는 셀들을 세가지로 나누고 있다.
이동형 가전기기가 위치하는 중심셀, 그리고 이 중심셀에 인접하는 인접셀과 인접하지 않는 비인접셀로 구성된다. D* 알고리즘은 (a)와 같이 중심셀에서 인접셀로 이동하는 방향을 정의하여 이동이 가능하도록 한다. 그러나 (a)에서 알 수 있듯이, 인접셀의 이동방향은 한계가 있다. 예를 들어, (a)와 (b)와 같이 사각형 기반인 경우에는 8개의 방향으로 이동 가능하다(실선 화살표). 그리고 (c), (d)의 육각형, 삼각형에서는 6개의 방향으로 이동 가능하다(실선 화살표). 그러나 비인접셀로의 이동 방향은 이외에도 존재한다. (a)와 (b)에서 비인접셀을 기반으로 하는 이동 방향이 점선으로 보여지고 있다. (c), (d) 역시 비인접셀을 기반으로 하는 이동 방향이 점선으로 보여지고 있다. 이들 비인접셀을 기반으로 할 경우 이동 방향이 다양해지면서, 셀기반의 계산이 이루어진다는 점에서 이동의 성능을 높일 수 있다.
따라서 본 발명의 일 실시예에 따를 경우 이동형 가전기기의 이동 방향은 크게 두가지로 나뉘어진다.
인접 셀 기반 이동 방향(neighbor-cell based movement direction)은 한 셀에서 이동하는 방향이 인접 셀과의 관계에서 산출되는 방향이다. 주로 한 셀 크기만큼 이동하는 경우 참조하는 방향이다. 비인접 셀 기반 이동 방향(apart-cell based movement direction)은 한 셀에서 이동하는 방향이 인접하지 않은 셀과의 관계에서 산출되는 방향이다. 주로 한 셀의 크기보다 더 큰 거리를 이동하는 경우 참조하는 방향이다. 본 발명의 일 실시예에서는 초기에 경유점을 생성시에는 인접 셀 기반 이동 방향으로 이동 경로를 생성하고, 여기에서 최소 이동 경로를 산출하기 위해 비인접 셀 기반 이동 방향으로의 이동을 포함하도록 한다. 그 결과, 이동형 가전기기는 셀에 국한되지 않고 다양한 방향으로 이동이 가능하다. 또한 다양한 방 향으로 이동이 가능함에도 이동 경로를 계산시에는 셀을 기반으로 하므로 계산량이 증가하지 않으며, 계산에 따른 속도 지연을 피할 수 있다.
도 7은 본 발명의 일 실시예에 따른 장애물과 충돌시 또는 근거리에서 감지한 경우 경로를 재설정하는 과정을 보여주는 예시도이다.
Cell(6, 2), Cell(6, 3), Cell(6, 4)는 초기 경로 생성시에 장애물이 없는 곳이었다. 따라서, 최소 이동 비용이 각각 9, 8, 7과 같으며, 최소 이동 경로를 따라 이동하기 위해서는 Cell(6, 4)를 거쳐야 한다. 이동형 가전기기가 Cell(1, 3)에서 출발하여 Cell(2, 2), Cell(3, 2)를 거쳐, Cell(8, 5)를 향해 이동중에 Cell(5, 3)의 위치에서 장애물을 감지하게 된다. 이는 근거리 장애물을 감지하는 센서를 통해 감지하거나 충돌 센서를 통해 장애물과 접촉하였을 경우에 감지 가능하다. 장애물의 발견으로 Cell(8, 5)까지 직진하는 것이 불가능함을 알게된 이동형 가전기기는 도 5의 S240 단계에서 제시된 바와 같이 일부 경로를 재생성한다. 이때에는 전체 경로를 다시 바꾸는 것이 아니라, 현재 이동하는 것이 불가능한 Cell(8, 5)까지의 경로를 재생성한다. 경로를 재생성 하는 방법으로는 도 2에서 살펴본 바와 같이 현재 위치에서 가장 작은 이동 비용을 가지는 셀로 이동하면서 경유점을 생성한다. 그 결과 생성된 경로는 Cell(5,3), Cell(5, 4), Cell(6, 5), Cell(8, 5)를 경유점으로 한다. 새로이 생성된 생성된 경유점에 대해, 도 4의 예에서 살펴본 함수를 적용하여 최단 거리 경유점을 선택할 수 있다. 도 7의 실시예에서는 경로 재설정시에 불필요한 경유점이 존재하지 않는바, (b)와 같이 수정된 경로를 통해 이동 가능하다.
한편, 상기 Cell(8,5)로 이동하는 경로가 전혀 존재하지 않는다면 다시 전체 맵에 대해 셀의 이동 비용을 재계산하여 경유점을 새로이 생성하여 이동할 수 있다. 또는 현재 위치에서 목적지에 도달하기 위한 영역만큼 맵을 재생성하여 셀의 이동 비용을 재계산할 수 있다.
도 8은 본 발명의 일 실시예에 따른 원거리에서 장애물을 감지한 경우 경로를 재설정하는 과정을 보여주는 예시도이다.
도 7은 장애물 근처에 도달해서 장애물을 감지하거나, 또는 충돌하였을 경우에 장애물을 피해서 이동하는 과정을 보여주고 있다. 도 8은 이동형 가전기기가 다음 경유점으로 이동하기 전에, 거리 센서를 통해 다음 경유점으로 이동하는데 있어서 장애물이 존재하는지를 판단한다. (a)에서 이동형 가전기기는 Cell(1, 3)에서 출발하여 Cell(2, 2), Cell(3, 2)를 거쳐 이동한다. Cell(1, 3)에서 Cell(2, 2), Cell(2, 2)에서 Cell(3, 2)까지는 장애물이 없다. Cell(3, 2)에서 Cell(8, 5)를 향해 센서를 통해 장애물이 존재하는지 검토한다. 그 결과 Cell(6, 4)에 장애물이 존재함을 센서를 통해 감지한다. 따라서, Cell(8, 5)까지 직진할 수 없으므로 경로를 재설정한다. 경로의 재설정은 원거리 센서를 통해 Cell(6, 2), Cell(6, 3), Cell(6, 4)에 출발전에 알지 못했던 장애물이 존재함을 알게 된다. 그 결과 Cell(6, 2), Cell(6, 3), Cell(6, 4)은 장애물이 있는 것으로 처리하고, 일부 경로를 재설정하게 된다. 재설정시에는 먼저 이동 경로를 (b)와 같이 설정한다. 경로를 설정하면 경유점이 나타나며, 경유점을 토대로 최소 경로를 다시 산출할 수 있다. (b)에서는 최소 경로를 위해 삭제할 경유점이 존재하지 않으므로 (b)에서 설정한 경로를 최소 경로로 하여 Cell(8, 5)까지 이동하고, Cell(8, 5)에서는 초기에 설정한 경로를 토대로 하여 이동한다.
도 9는 본 발명의 일 실시예에 따른 이동형 가전기기의 구성도이다.
본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~모듈' 또는 '~부'는 어떤 기능들을 수행한다. 그렇지만 '~모듈' 또는 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~모듈' 또는 '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~모듈' 또는 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이동형 가전기기(1000)는 이동부(100), 센서부(200), 작업수행부(300), 사용자인터페이스(400), 그리고 이들을 제어하는 제어부(500)를 포함한다.
작업수행부(300)는 이동형 가전기기(1000)의 기능을 수행한다. 이동형 가전 기기(1000)가 가습기의 경우 가습 기능을 제공한다. 공기청정기의 경우 공기청정 기능을, 청소기의 경우 진공청소의 기능을 제공한다. 이외에도 이동을 통해 그 기능이 향상되는 이동형 가전기기의 기능 수행을 선택적으로 포함한다.
사용자인터페이스(400)는 사용자로부터 기능 선택과 제어에 관한 사항을 입력받고, 현재 상태 또는 현재 기능에 대한 정보를 출력하는 기능을 제공한다. 리모트 컨트롤로부터 입력 신호를 받을 수 있으며, 이동형 가전기기(1000)에 장착된 기능키 또는 입력 버튼을 통해 입력 신호를 받을 수 있다. 정보를 출력하기 위해서는 디스플레이 창을 포함할 수 있다. 출력되는 정보가 간단할 경우, LED와 같은 발광 소자를 사용하여 구성할 수 있다.
또한, 사용자인터페이스(400)를 통해, 사용자가 이동형 가전기기(1000)가 이동할 공간에 대한 정보를 입력할 수 있다. 이동할 공간의 크기, 셀의 크기, 그리고 장애물의 위치, 목표 지점 등에 대해 사용자가 설정할 경우, 제어부는 이 정보를 통해 경로를 생성하고, 최소 이동 경로를 산출하여 이동할 수 있게 한다.
센서부(200)는 장애물센서부(210), 충돌센서부(220), 추락센서부(230), 벽센서부(240), 그리고 센서신호처리부(290)를 포함한다. 센서부는 이동시에 장애물을 감지하거나 장애물과의 충돌을 감지한다.
장애물 센서부(210)는 일정 거리 이내에 장애물이 존재하는지, 또는 이동하려는 방향에 장애물이 존재하는지를 검토한다. 감지는 초음파를 보내거나 적외선 신호를 보내고, 반향파의 도달 시간을 계산하여 측정할 수 있다. 초음파, 적외선, 레이저 등을 사용하는 센서는 일 실시예이며, 다른 방식으로 거리를 감지하는 센서 부도 적용 가능하다.
충돌센서부(220)는 이동형 가전기기(1000)가 이동중에 다른 물체와 충돌하는 것을 감지하는 기능을 수행한다. 충돌센서부(240)는 접촉에 의해 온/오프 신호를 발생시키는 작은 스위치들을 이동형 가전기기(1000)의 외부에 장착시켜 구성할 수 있다. 이동형 가전기기(1000)는 이동 전에 전체 이동 공간에 대한 맵을 가지고, 어디에 장애물이 존재하고, 이 장애물을 회피하며 목적지에 도달하기 위한 경로를 이미 산출하였으므로, 충돌센서부(220)에 의해 감지되는 장애물은 대부분 알려지지 않은 장애물이거나, 새로이 나타난 장애물 등이 될 수 있다.
추락센서부(230)를 더 포함할 수 있다. 추락센서부(250)는 지면에서 움푹 들어간 곳 또는 경사가 급격한 곳, 계단 등을 센서를 통해 감지하여 더 이상 진행하지 않게 한다. 추락센서부(250)는 센서를 통해 진행하는 방향으로 보낸 신호가 균일하게 들어오는지 등을 통해 움푹 들어간 곳을 감지할 수 있다. 추락센서부(230)는 지면으로부터 반사되는 신호의 균일성 여부로 판단할 수 있으며, 추락 외에도 바닥에 돌출한 부분을 감지할 수 있다.
또한, 맵에서 알려진 벽면에 대한 감지를 수행하는 벽센서부(240)를 더 포함할 수 있다.
벽센서부(240)는 가전기기(1000)가 벽과 일정 거리 이상을 유지하도록 벽을 감지하는 기능을 한다. 감지하는 기능은 초음파를 보내거나 적외선 신호를 보내고, 반향파의 도달 시간을 계산하여 측정할 수 있다. 초음파, 적외선, 레이저 등을 사용하는 센서는 일 실시예이며, 다른 방식으로 거리를 감지하는 센서부도 적용 가능 하다. 벽센서부(240)는 벽과의 거리를 측정하여 맵에 정보를 업데이트 할 수 있다.
센서신호처리부(290)는 전술한 센서부에서 발생한 신호를 제어부(500)로 전달하는 기능을 한다. 어느 센서부가 어떤 신호를 발생했는지를 처리하여 보내준다. 예를 들어 장애물센서부(210)가 50cm 이내에 물체가 있음을 발견하여 신호를 발생시키면, 이 신호를 센서신호처리부(290)에서 제어부(500)로 50cm 이내에 물체가 있음을 알리는 정보로 변환하여 보낸다.
제어부(500)는 초기에 사용자로부터 입력된 이동 공간에 대한 정보를 바탕으로 맵을 생성하고, 이동 경로를 산출하여 이동부에 이동을 제어한다. 또한 이동중에 센서부(200)에서 입력되는 장애물에 대한 정보를 바탕으로 경로를 재수정하거나 재설정하는 작업을 한다.
제어부(500)를 구성하는 세부 구성요소는 경로 생성부(510), 경유점 생성부(520), 최소 이동 경로 생성부(530), 재계획 경로생성부(540), 그리고 제어신호 생성부(590)가 있다.
경로 생성부(510)는 맵을 생성하고 각 셀의 가중치를 계산하여 초기 경로를 생성한다. 도 5의 S200과 S210 단계를 수행한다. 이 단계를 수행하기 위해 사용자 인터페이스(400)로부터 자료를 입력받아서 이를 토대로 맵을 작성할 수 있다.
경유점 생성부(520)는 경로생성부(510)에서 생성한 경로를 토대로 경유점(Via Point)를 생성한다. 경유점은 이동시 방향을 회전하는 지점이다. 이를 구하는 일 실시예로는 다음과 같다. 이동 경로상에 존재하는 모든 셀을 PathPoint(n)라 할 때, 특정 셀 PathPoint(i)가 경유점이 되는지 되지 않는지를 판단하기 위해서는 PathPoint(i-1)과 PathPoint(i+1)의 직선위에 PathPoint(i)가 존재하는지를 판단하면 된다. 그 결과 존재한다면 PathPoint(i)는 경유점이 되지 않는다. 그러나 직선위에 PathPoint(i)가 존재하지 않는다면 이동시 방향을 바꾸는 지점이므로 경유점이 된다.
다음으로 최소 이동 경로 생성부(530)이다. 최소 이동 경로 생성부(530)는 기존에 셀 단위로 이동하여, 실제 최적화된 거리를 이동하지 못하는 방식에서 탈피하도록, 경유점을 기반으로 하여 최적화된 경로를 이동하도록, 경로를 재설정하는 부분이다. 이는 도 4에서 예시적으로 제시한 프로그램 코드에서 알 수 있듯이, 인접하지 않는 경유점 사이에 이동이 가능한지를 살펴보아 불필요한 경유점을 제거한다.
이렇게 경로생성부(510), 경유점 생성부(520), 그리고 최소 이동 경로 생성부(530)을 통해 초기에 이동할 경로가 정해지면, 이 정보는 제어신호 생성부(590)으로 전송되어, 이동부를 제어하여 이동을 실시한다. 그러나 센서부(200)를 통해 이동중에 새로운 장애물을 감지하거나 충돌하는 경우, 경로를 재설정한다. 재계획 경로생성부(540)는 센서부(200)에서 송신한 정보에 따라, 장애물을 회피하여 이동하는 경로를 생성한다. 이는 도 7, 도 8에서 살펴본 바와 같이 경로를 재생성하고, 이에 따라 다시 경유점 생성부(520)와 최소 이동 경로 생성부(530)으로부터 새로이 경유점에 대한 정보와 최소 이동 경로에 대한 정보를 얻을 수 있다.
제어신호 생성부(590)는 경로생성부(510), 경유점 생성부(520), 최소 이동 경로 생성부(530), 재계획 경로생성부(540)에서 생성한 정보에 따라 움직일 방향과 거리에 대한 정보를 바탕으로 이동부(100)를 제어한다. 후술할 이동부의 여러 구성 요소들을 제어하여 이동할 방향과 이동할 거리를 제어한다. 또한 부가적으로 속도에 대한 정보를 이동부(100)에 전달할 수 있따. 또한, 이동부에서 움직인 거리와 방향을 피드백 받아서 현재 위치를 계산할 수 있다.
이동부(100)는 제어부에서 제어하는 정보에 따라 이동한다. 이동부(100)는 이동형 가전기기를 이동시킨다. 이동부는 크게 동력을 생성하는 구동부(120)와 이 동력을 통해 이동을 수행하는 주행부(110)를 포함한다. 또한 이동한 거리를 산출하는 이동거리산출부(130)를 포함한다.
이동부가 이동하기 위해서는 어느 방향으로, 어느 거리를 이동해야 하는지에 대한 정보가 필요하다. 이 정보는 센서부(200)에서 수신한 정보를 토대로 제어부(500)의 이동경로생성부(540)가 생성한 정보를 포함한다.
예를 들어, 센서부에서 취합한 장애물과 벽의 위치 정보는 제어부로 보내져서 이동부의 어느 주행부를 어느정도 동작시켜 이동할 지를 명령한다. 제어부는 각 구성요소가 자신의 기능을 수행하여 얻은 정보를 취합하고, 이 정보를 토대로 다른 구성요소를 동작하게 하는 조정자 역할을 한다.
주행부(110)는 이동부와 이동부와 연결된 이동형 가전기기를 이동시키는 역할을 한다. 바퀴, 캐터필러 등을 통해 구현 가능하며, 바퀴 이외에도 최근 로봇의 이동에 사용되는 4족보행도 이에 포함된다.
구동부(120)는 주행부(110)에 동력을 전달하고 방향을 조절한다. 구동부(120)는 조향부(122)와 동력전달부(124)를 포함한다. 동력전달부(124)의 일 실시예 는 전력과 같은 에너지원으로부터 동력을 생성하는 모터이다. 조향부(122)는 주행부(110)의 방향을 조절하여 이동 방향을 제어한다. 방향 제어는 어느 하나 이상의 주행부(110)의 방향을 조절하는 것을 통해 가능하다. 방향 조절 방식 외에도 양측 바퀴의 회전 속도를 달리해서 방향을 바꿀 수 있다.
이동거리산출부(130)는 주행부(110)가 이동한 거리를 계산한다. 계산하는 방식의 일 실시예로 왼쪽과 오른쪽 주행부(110)의 회전횟수를 카운터하여 주행부의 지름을 곱하면 이동한 거리를 계산할 수 있다. 한편, 이동거리산출부(130)는 구동부가 전달한 동력을 통해서도 이동 거리 산출을 보완할 수 있다. 예를 들어, 모터의 회전횟수를 카운팅하고, 조향부의 각도를 통해 이동거리를 산출할 수 있다. 이동거리산출부(130)는 구동부(120)에서 생성한 거리 정보와 주행부(110)를 통해 얻은 실질적인 거리 정보를 상호 보완하여 이동 거리를 산출할 수 있다.
도 10은 본 발명의 일 실시예에 따른 센서부의 구성 요소를 보여주는 예시도이다.
이동형 가전기기(1000)에는 이동형 가습기, 이동형 청소기, 또는 이동형 청정기등이 포함될 수 있다. 이동부(100)는 이동형 가전기기(1000)의 하부에 장착된다. 이동형 가전기기에는 네 가지의 센서부가 있다. 전방의 장애물을 감지하는 장애물센서부(210), 다른 물체와의 충돌을 감지하는 충돌센서부(220), 진행 방향부근의 바닥에 함몰되거나 돌출한 장애물이 존재하는지를 감지하는 추락센서부(230), 벽을 감지하는 벽센서부(240)가 있다. (a)는 이동형 가전기기의 사시도이며, (b)는 측면에서 바라본 도면이고, (c)는 정면에서 바라본 도면이다. (b)의 화살표는 이동 형 가전기기(1000)의 이동 방향을 나타낸다.
장애물센서부(210)는 이동시 전방에 존재하는 장애물을 감지할 수 있다. 특히, 도 8에서 살펴본 바와 같이, 다음 경유점으로 이동하기 전에, 이동하고자 하는 방향으로 장애물이 존재하는지를 감지하기에 적합하다. 그리고, 새로운 장애물이 어느정도의 영역을 차지하는지 판단하기에 적합하다.
충돌센서부(220)는 이동중에 다른 물체 또는 장애물과 충돌하는 것을 감지한다. 충돌센서부(220)는 도면에 도시된 바와 같이, 여러 개의 온/오프 신호를 발생시키는 작은 스위치들을 이동형 가전기기(1000)의 외부에 장착시킨다. 그리고 이동시에 다른 물체 또는 장애물과 충돌할 경우, 어느 방향으로 물체가 존재하는지 감지할 수 있다. 이 결과는 도 7의 실시예에서 살펴본 바와 같이, 이동중에 새로운 장애물과 충돌한 경우, 이전에 계획하여 설정한 경로를 다시 수정하여 재설정한 경로로 이동할 수 있게 한다.
추락센서부(230)는 지면에서 움푹 들어간 곳 또는 경사가 급격한 곳, 계단 등을 센서를 통해 감지하여 더 이상 진행하지 않게 한다. 추락센서부(250)는 센서를 통해 진행하는 방향으로 보낸 신호가 균일하게 들어오는지 등을 통해 움푹 들어간 곳을 감지할 수 있다. 따라서 추락센서부(230)는 이동형 가전기기의 하단부에 장착되어 정확하게 측정할 수 있다. 또는 이동형 가전기기의 상단에 장착되어 먼 거리에 존재하는 추락 여부를 감지할 수 있다. 추락센서부(250) 역시 장애물센서부(210)와 같이, 다음 경유점으로 이동하기 전에 이동이 가능한지를 미리 판단할 수 있다.
벽센서부(240)는 벽을 감지하며 이동형 가전기기가 벽과 부딪히지 않게 한다. 또한 사용자 또는 미리 저장된 값에 의해 경로를 생성함에 있어서, 벽의 위치에 대한 정보가 잘못 기입된 경우, 또는 수정사항이 있는 경우, 수정할 수 있게 한다. 벽 센서부(240)는 측면에 장착되어 이동 방향의 측면에 존재하는 물체와의 거리를 조절할 수 있다.
도 11은 본 발명의 일 실시예에 따른 이동부의 구성요소를 보여주는 예시도이다.
(a)는 이동부를 구성하는 요소들의 일 실시예를 보여준다.
주행부(112, 116, 118)는 이동부와 이동부와 연결된 공기청정 장치를 이동시키는 역할을 한다. 바퀴를 통해 구현 가능하며, 바퀴 이외에도 최근 로봇의 이동에 사용되는 4족보행도 이에 포함된다.
구동부(120)는 주행부에 동력을 전달하고 방향을 조절한다. 구동부(120)는 조향부(122)와 동력전달부(124)를 포함한다. 동력전달부(124)는 전력과 같은 에너지원으로부터 동력을 생성하는 모터를 포함한다. 조향부(122)는 주행부(112)의 방향을 조절하여 이동 방향을 제어한다. 방향 제어는 어느 하나 이상의 주행부(112, 116, 118)의 방향을 조절하는 것을 통해 가능하다. 또한 도 11에는 도시되지 않았으나, 이동방향에 있는 주행부(116)의 좌우 방향을 조절하여 이동 방향을 제어할 수 있다.
이동거리산출부(132, 136)는 주행부(112, 118)가 이동한 거리를 계산한다. 계산하는 방식의 일 실시예로 왼쪽과 오른쪽 주행부(112, 118)의 회전횟수를 카운 터하여 주행부의 지름을 곱하면 이동한 거리를 계산할 수 있다.
(b)는 조향부와 동력전달부가 분리된 경우를 보여준다. 주행부(116)에 조향부(122)가 장착되었고, 동력전달부(124)는 다른 주행부(112, 118)에 동력을 전달한다. 구동부를 구성하는 조향부와 동력전달부가 각기 다른 주행부에 장착된 예이다.
(c)는 동력전달부만으로 조향을 수행하는 경우를 보여준다. 동력전달부(124)는 각각 주행부(112, 118)에 장착되고, 동력전달부(124)는 양 주행부(112, 118)의 속도를 제어하여 방향을 수정한다. 예를 들어, 왼쪽으로 가고자 할 경우에는 왼쪽 주행부(112)보다 오른쪽 주행부(118)의 회전 속도를 높여서 이동 방향을 조정할 수 있다.
(d)는 조향부와 동력전달부가 결합된 경우이다. 구동부(120)내에 조향부와 동력전달부가 설치되고, 이동과 방향의 전환은 주행부(112와 118)에서 이루어진다. 이는 (a)의 구성과 유사하다.
도 12와 도 13은 D* 알고리즘과 본 발명에 따라 이동한 경로를 비교하는 실험예이다.
도 12와 도 13에서의 이동형 가전기기의 속도는 15cm/sec이며, 장애물을 검출하기위한 거리 센서를 장착하고 있다. 그리고 전체 이동 공간은 가로 6m, 세로 3m이며, 셀의 크기는 가로, 세로 30cm이다. 그 결과 가로 20개, 세로 10개의 300개의 셀로 구성된다. 장애물은 크게 알려진 장애물과 알려지지 않은 장애물이 존재하며, 출발전에 경로를 설정시에는 알려진 장애물에 대해 경로를 설정한다.
도 12는 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 제 1 실시예이 다.
알려진 장애물(10)의 위치 정보에 따라 경로 설정 결과 출발점 S에서 직진을 하면 목적지 G에 도달가능하다. 그런데, 이동 도중에 알려지지 않은 장애물(20)과 충돌하거나, 장애물 센서부를 통해 이동이 불가능함을 판단한다.
(a)는 D* 알고리즘에 의해 이동하는 경로를 보여준다. 알려지지 않은 장애물(20) 때문에 직진도중에 이동이 불가능함을 판단하여, 다시 경로를 재설정하여 장애물을 회피하여 가는 경로가 (a)에 나타나있다. 그런데, D* 알고리즘은 셀 단위로 움직이기 때문에, 경유점 v1에서 v2를 거쳐서 목표점인 G에 도달한다. v1에서 v2를 거쳐 G까지의 이동거리는 280cm가 된다.
(b)는 본 발명의 일 실시예에 따라 이동하는 경로를 보여준다. 알려지지 않은 장애물(20) 때문에 직진 도중에 이동이 불가능함을 판단하여, 다시 경로를 재설정하여 장애물을 회피한다. 그런데, 본 발명의 일 실시예는 경로를 설정시 셀단위로 움직이는 것이 아니므로 (b)의 경유점 v1에서 바로 목적지 G까지 이동할 수 있다. 그 결과, v1에서 G까지의 이동거리는 260cm가 된다. (a) 보다 약 20cm 줄어든 거리를 이동한다.
도 13은 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 제 2 실시예이다.
초기에 알려진 장애물(10)의 위치를 파악하여, 장애물(10)을 피하여 목적점인 G에 도달하도록 경로를 설정한다. 그런데, 경로에 따라 이동 도중에 알려지지 않은 장애물(20)과 충돌하거나, 장애물 센서부를 통해 이동이 불가능함을 판단한 다.
(a)는 D* 알고리즘에 의해 이동하는 경로를 보여준다. 알려지지 않은 장애물(20) 때문에 직진도중에 이동이 불가능함을 판단하여, 다시 경로를 재설정하여 장애물을 회피하여 가는 경로가 (a)에 나타나있다. 그런데, D* 알고리즘은 셀 단위로 움직이기 때문에, 경유점 v1에서 v2를 거쳐서 v3, v4, v5를 거쳐서 목표점인 G에 도달한다.
(b)는 본 발명의 일 실시예에 따라 이동하는 경로를 보여준다. 알려지지 않은 장애물(20) 때문에 직진 도중에 이동이 불가능함을 판단하여, 다시 경로를 재설정하여 장애물을 회피한다. 그런데, 본 발명의 일 실시예는 경로를 설정시 셀단위로 움직이는 것이 아니므로 (a)에서 나타난 경유점 v1, v5는 불필요하므로 삭제되었다. 그리고 v2에서 v3를 거쳐 v4를 통해 목적지 G까지 이동할 수 있다.
(a)와 (b)의 경로를 비교하면 이동거리가 짧아짐을 알 수 있다.
도 14는 본 발명의 일 실시예와 종래의 D* 알고리즘에 따른 이동에 따른 경과 시간을 비교하는 도표이다.
도 12에서는 D* 알고리즘에 비해 본 발명이 약 30초 정도 시간을 절약하며, 도 13에서는 D* 알고리즘에 비해 본 발명이 약 10초 정도 시간을 절약하는 것을 알 수 있다. 또한, 셀의 개수는 변함이 없으므로, 셀 개수의 증가로 인한 계산 시간이 길어지는 점 또는 메모리의 부족에 따른 문제점도 발생하지 않으면서, 최소 이동 경로를 이동할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 그리드 맵을 사용하여 장애물을 회피하며 최소 이동 경로로 이동할 수 있다.
본 발명을 구현함으로써 그리드 맵의 인접 셀간의 위치에 제한되지 않는 방향을 사용하여 최소 이동 경로로 이동할 수 있다.

Claims (27)

  1. 동력을 이용하여 이동하는 이동부와 상기 이동부를 제어하여 이동 경로에 따라 이동하도록 하는 제어부를 포함하는 이동형 가전기기가 최소 이동 경로로 이동하는 방법에 있어서,
    상기 제어부가 상기 이동형 가전기기가 이동하는 공간을 구성하는 다수의 셀에서 목적지까지의 이동 비용을 계산하여 상기 이동 비용을 기준으로 목적지까지의 이동 경로를 생성하는 단계;
    상기 제어부가 상기 이동 경로에서 방향이 변하는 경유점을 생성하는 단계;
    상기 제어부가 상기 경유점에서 인접하지 않는 제 1 경유점과 제 2 경유점 사이에 이동이 가능한지를 판단하고, 상기 판단결과 이동이 가능한 경우, 상기 제 1 경유점과 상기 제 2 경유점 사이에 존재하는 경유점을 제거함으로써 상기 경유점에서 최단 거리 경유점을 선택하여 상기 이동 경로에서 최소 이동 경로를 산출하는 단계; 및
    상기 제어부의 제어에 따라 상기 이동부가 상기 선택된 최단 거리 경유점 중 제 1 최단 거리 경유점에서 제 2 최단 거리 경유점으로 이동하는 제 1 이동 단계를 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  2. 제 1항에 있어서,
    상기 이동형 가전기기가 이동하는 공간에 대한 정보를 수신하는 단계를 더 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  3. 제 1항에 있어서,
    상기 이동 비용은 상기 목적지까지 이동하는 거리 중 최단 거리로 산출한, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  4. 삭제
  5. 제 1항에 있어서,
    상기 제 2 최단 거리 경유점으로 이동하는 방향에 존재하는 장애물을 감지하는 단계;
    상기 장애물이 감지된 경우 상기 최소 이동 경로를 재생성하는 단계; 및
    상기 재생성한 경로에 존재하는 제 3 경유점으로 이동하는 제 2 이동 단계를 더 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  6. 제 5항에 있어서,
    상기 재생성하는 단계는,
    상기 감지한 장애물의 위치에 대한 정보를 바탕으로 상기 셀에서 경유점을 선택하는 단계; 및
    상기 선택한 경유점에서 최단 거리 경유점을 선택하여 상기 최소 이동 경로를 재생성하는 단계를 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  7. 제 5항에 있어서,
    상기 장애물은 상기 제 1 이동 단계에서 충돌에 의해 감지된 장애물인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  8. 제 5항에 있어서,
    상기 장애물은 상기 제 1 최단 거리 경유점에서 상기 제 2 최단 거리 경유점으로 이동하기 전 또는 이동하는 도중에 감지된 장애물인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  9. 제 5항에 있어서,
    상기 장애물은 상기 제 1 이동 단계에서 이동하는 방향의 지면에 존재하는 함몰된 구역 또는 돌출된 구역인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  10. 제 5항에 있어서,
    상기 제 1 이동 단계 또는 상기 제 2 이동 단계에서 이동하는 방향의 측면에 존재하는 벽을 감지하여 상기 이동 공간에 대한 정보를 수정하는 단계를 더 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  11. 동력을 이용하여 이동하는 이동부와 상기 이동부를 제어하여 이동 경로에 따라 이동하도록 하는 제어부를 포함하는 이동형 가전기기가 최소 이동 경로로 이동하는 방법에 있어서,
    상기 제어부가 상기 이동형 가전기기가 이동하는 공간을 출발점과 목표점을 포함하는 다수의 셀로 나누어 셀을 기반으로 이동이 가능한 최소 이동 경로를 생성하는 단계; 및
    상기 제어부의 제어에 따라 상기 이동부가 상기 최소 이동 경로를 따라 제 1 셀에서 제 2 셀로 이동하는 제 1 이동 단계를 포함하며,
    상기 제 1 셀과 상기 제 2 셀이 인접하지 않는 경우, 상기 이동하는 방향은 인접하지 않는 두 셀의 물리적 위치에서 산출되는 비인접 셀 기반 이동방향인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  12. 제 11항에 있어서,
    상기 이동형 가전기기가 이동하는 공간에 대한 정보를 수신하는 단계를 더 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  13. 제 11항에 있어서,
    상기 제 2 셀로 이동하는 방향에 존재하는 장애물을 감지하는 단계;
    상기 장애물이 감지된 경우 상기 최소 이동 경로를 재생성하는 단계; 및
    상기 재생성한 경로에 존재하는 제 3 셀로 이동하는 제 2 이동 단계를 더 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  14. 제 13항에 있어서,
    상기 재생성하는 단계는,
    현재 이동형 가전기기의 위치에서 상기 제 2 셀 또는 상기 목표점으로 이동하는 최소 이동 경로를 재생성하는 단계를 포함하는, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  15. 제 13항에 있어서,
    상기 장애물은 상기 제 1 이동 단계에서 충돌에 의해 감지된 장애물인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  16. 제 13항에 있어서,
    상기 장애물은 상기 제 1 셀에서 상기 제 2 셀로 이동하기 전 또는 이동하는 도중에 감지된 장애물인, 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법.
  17. 동력을 이용하여 이동하는 이동부; 및
    상기 이동부가 이동할 경로를 생성하여 상기 경로에 따라 이동하도록 상기 이동부를 제어하는 제어부를 포함하며,
    상기 제어부는,
    상기 이동형 가전기기가 이동하는 공간을 구성하는 다수의 셀에서 목적지까지의 이동 비용을 계산하고 상기 이동 비용을 기준으로 목적지까지의 이동 경로를 생성하는 경로 생성부;
    상기 이동 경로에서 방향이 변하는 경유점을 생성하는 경유점 생성부; 및
    상기 경유점에서 인접하지 않는 제 1 경유점과 제 2 경유점 사이에 이동이 가능한지를 판단하여, 판단결과 이동이 가능한 경우, 상기 제 1 경유점과 상기 제 2 경유점 사이에 존재하는 경유점을 제거함으로써 상기 경유점에서 최단 거리 경유점을 선택하여 상기 이동 경로에서 최소 이동 경로를 산출하는 최소 이동 경로 생성부를 포함하는, 이동형 가전기기.
  18. 제 17항에 있어서,
    상기 이동하는 공간에 대한 정보를 수신하는 사용자 인터페이스부를 더 포함하는, 이동형 가전기기.
  19. 제 17항에 있어서,
    상기 이동 비용은 상기 목적지까지 이동하는 거리 중 최단 거리로 산출한, 이동형 가전기기.
  20. 제 17항에 있어서,
    상기 제어부는
    상기 이동부가 상기 최소 이동 경로 생성부에서 선택한 제 1 최단 거리 경유점에서 제 2 최단 거리 경유점으로 이동하도록 제어하는, 이동형 가전기기.
  21. 삭제
  22. 제 17항에 있어서,
    상기 이동부가 이동하는 방향을 기준으로 전방에 존재하는 장애물을 감지하는 센서부를 더 포함하며,
    상기 제어부는 상기 센서부에서 장애물을 감지하는 경우, 상기 최소 이동 경로를 재생성하는 재계획 경로생성부를 포함하는, 이동형 가전기기.
  23. 제 22항에 있어서,
    상기 재계획 경로 생성부는
    상기 센서부에서 감지한 장애물의 위치에 대한 정보를 바탕으로 상기 셀에서 경유점을 선택하고, 선택한 경유점에서 최단 거리 경유점을 선택하여 상기 최소 이동 경로를 재생성하는, 이동형 가전기기.
  24. 제 22항에 있어서,
    상기 센서부는
    충돌을 감지하는 충돌 센서부; 및
    일정 거리 내에 존재하는 장애물을 감지하는 장애물 센서부 중 적어도 하나를 포함하는, 이동형 가전기기.
  25. 제 22항에 있어서,
    상기 센서부는 상기 이동부가 이동하는 방향의 지면이 함몰 또는 돌출되었는지를 감지하는 추락 센서부를 더 포함하는, 이동형 가전기기.
  26. 제 22항에 있어서,
    상기 센서부는 상기 이동부가 이동하는 방향의 측면에 존재하는 벽을 감지하는 벽센서부를 더 포함하는, 이동형 가전기기.
  27. 제 17항에 있어서,
    상기 이동부는
    전원으로부터 동력을 전달받고 이동의 방향을 조절하는 구동부;
    상기 구동부로부터 동력을 전달받아 상기 구동부에서 조절한 방향으로 이동하는 주행부; 및
    상기 주행부를 통해 이동한 거리를 산출하는 이동거리산출부를 포함하는, 이동형 가전기기.
KR1020040116864A 2004-12-30 2004-12-30 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치 KR100745975B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040116864A KR100745975B1 (ko) 2004-12-30 2004-12-30 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치
US11/319,054 US7953551B2 (en) 2004-12-30 2005-12-28 Method and apparatus for moving in minimum cost path using grid map

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040116864A KR100745975B1 (ko) 2004-12-30 2004-12-30 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치

Publications (2)

Publication Number Publication Date
KR20060078162A KR20060078162A (ko) 2006-07-05
KR100745975B1 true KR100745975B1 (ko) 2007-08-06

Family

ID=36641722

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040116864A KR100745975B1 (ko) 2004-12-30 2004-12-30 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치

Country Status (2)

Country Link
US (1) US7953551B2 (ko)
KR (1) KR100745975B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105325B1 (ko) 2009-09-08 2012-01-16 부산대학교 산학협력단 실제 로봇의 다중 경로계획 방법
KR101278708B1 (ko) * 2011-05-18 2013-06-25 부산대학교 산학협력단 수중로봇과 그 제어방법
US8996292B2 (en) 2010-01-20 2015-03-31 Samsung Electronics Co., Ltd. Apparatus and method generating a grid map
CN107357295A (zh) * 2017-08-16 2017-11-17 珠海市微半导体有限公司 一种基于栅格地图的路径搜索方法和芯片及机器人
KR101828255B1 (ko) * 2016-02-19 2018-02-13 국방과학연구소 주행정보 및 환경인식 기반 주행영역 갱신 장치 및 그 제어방법

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747258B2 (en) * 2005-02-04 2010-06-29 Qualcomm Incorporated Method and apparatus for performing position determination with pre-session action
CA2625885C (en) * 2005-10-14 2016-09-13 Aethon, Inc. Robotic ordering and delivery system software and methods
KR100915527B1 (ko) * 2007-07-03 2009-09-04 한국전자통신연구원 경로 탐색 방법
JP4661838B2 (ja) * 2007-07-18 2011-03-30 トヨタ自動車株式会社 経路計画装置及び方法、コスト評価装置、並びに移動体
KR100956663B1 (ko) * 2007-09-20 2010-05-10 한국과학기술연구원 로봇의 경로 설계 방법 및 그 로봇
DE102007052512B3 (de) * 2007-10-26 2009-04-09 Pilz Gmbh & Co. Kg Steuereinrichtung für eine Sicherheitsschaltvorrichtung, Sicherheitsschaltvorrichtung, Verwendung einer Steuereinrichtung und Verfahren zum Steuern einer Sicherheitsschaltvorrichtung
JP4968684B2 (ja) * 2007-12-10 2012-07-04 本田技研工業株式会社 目標経路設定支援システム
KR20090077547A (ko) * 2008-01-11 2009-07-15 삼성전자주식회사 이동 로봇의 경로 계획 방법 및 장치
JP4978494B2 (ja) * 2008-02-07 2012-07-18 トヨタ自動車株式会社 自律移動体、及びその制御方法
DE102008027957B4 (de) * 2008-03-11 2012-01-12 Navigon Ag Routingverfahren zur Berechnung einer Route
US8339417B2 (en) * 2008-07-25 2012-12-25 Navteq B.V. Open area maps based on vector graphics format images
US8374780B2 (en) * 2008-07-25 2013-02-12 Navteq B.V. Open area maps with restriction content
US20100021013A1 (en) * 2008-07-25 2010-01-28 Gale William N Open area maps with guidance
US8099237B2 (en) * 2008-07-25 2012-01-17 Navteq North America, Llc Open area maps
US8229176B2 (en) * 2008-07-25 2012-07-24 Navteq B.V. End user image open area maps
US8825387B2 (en) * 2008-07-25 2014-09-02 Navteq B.V. Positioning open area maps
US20100023251A1 (en) * 2008-07-25 2010-01-28 Gale William N Cost based open area maps
US8417446B2 (en) * 2008-07-25 2013-04-09 Navteq B.V. Link-node maps based on open area maps
US20100088016A1 (en) * 2008-10-02 2010-04-08 International Business Machines Corporation Environmentally aware travel routing
KR101633889B1 (ko) * 2009-02-18 2016-06-28 삼성전자주식회사 격자지도를 이용한 경로 생성 장치 및 방법
US8392117B2 (en) * 2009-05-22 2013-03-05 Toyota Motor Engineering & Manufacturing North America, Inc. Using topological structure for path planning in semi-structured environments
US8812015B2 (en) 2009-10-01 2014-08-19 Qualcomm Incorporated Mobile device locating in conjunction with localized environments
US9116003B2 (en) 2009-10-01 2015-08-25 Qualcomm Incorporated Routing graphs for buildings
US8880103B2 (en) 2009-10-12 2014-11-04 Qualcomm Incorporated Method and apparatus for transmitting indoor context information
KR101325145B1 (ko) * 2009-10-28 2013-11-06 한국전자통신연구원 이동 로봇의 길 지도를 이용한 경로 탐색 장치 및 방법
NL1037476C2 (nl) * 2009-11-17 2011-05-18 Lely Patent Nv Autonoom verrijdbaar landbouwvoertuig.
WO2011064821A1 (ja) 2009-11-27 2011-06-03 トヨタ自動車株式会社 自律移動体及びその制御方法
US20110172916A1 (en) * 2010-01-14 2011-07-14 Qualcomm Incorporated Mobile Device Positioning In A Constrained Environment
US20110178705A1 (en) * 2010-01-15 2011-07-21 Qualcomm Incorporated Using Filtering With Mobile Device Positioning In A Constrained Environment
US9389085B2 (en) 2010-01-22 2016-07-12 Qualcomm Incorporated Map handling for location based services in conjunction with localized environments
CN102235873B (zh) * 2010-04-21 2013-12-11 北京四维图新科技股份有限公司 导航电子地图的处理方法和装置、导航仪
US8825388B2 (en) * 2010-07-13 2014-09-02 Qualcomm Incorporated Indoor likelihood heatmap
US20120016872A1 (en) * 2010-07-13 2012-01-19 Qualcomm Incorporated Methods and apparatuses for use in generating an encoded routeability graph description
KR101731968B1 (ko) * 2010-11-01 2017-05-04 삼성전자주식회사 로봇의 리로케이션 장치 및 방법
US8639393B2 (en) 2010-11-30 2014-01-28 Caterpillar Inc. System for automated excavation planning and control
US8548668B2 (en) 2010-11-30 2013-10-01 Caterpillar Inc. Control system having tool tracking
US8868302B2 (en) 2010-11-30 2014-10-21 Caterpillar Inc. System for autonomous path planning and machine control
US8930043B2 (en) 2010-11-30 2015-01-06 Caterpillar Inc. Machine control system having autonomous resource queuing
US8983707B2 (en) 2010-11-30 2015-03-17 Caterpillar Inc. Machine control system having autonomous dump queuing
KR101761313B1 (ko) * 2010-12-06 2017-07-25 삼성전자주식회사 로봇 및 로봇의 경로생성방법
KR101234371B1 (ko) * 2010-12-21 2013-02-18 고려대학교 산학협력단 이동 로봇의 최적 경로 생성 방법 및 이를 이용한 이동 로봇
US8861506B2 (en) 2011-12-27 2014-10-14 Apple Inc. Shortest path determination for large graphs
US8935606B2 (en) 2012-02-29 2015-01-13 Ebay Inc. Systems and methods for providing a user interface with grid view
KR101401311B1 (ko) * 2012-03-21 2014-05-29 한국과학기술원 복수의 이동체의 경로를 계획하는 장치 및 방법
US8464196B1 (en) * 2012-03-28 2013-06-11 Cadence Design Systems, Inc. Method and system for routing optimally between terminals through intermediate vias in a circuit design
DE102012207610A1 (de) * 2012-05-08 2013-11-14 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Verbessern der Positionierung eines Fußgängers unter Verarbeitung einer Fußgänger-Route
JP5831356B2 (ja) * 2012-05-15 2015-12-09 トヨタ自動車株式会社 移動体の経路計画方法
US20130345967A1 (en) * 2012-06-21 2013-12-26 Qualcomm Incorporated Routability graph with predetermined number of weighted edges for estimating a trajectory of a mobile device
US9228315B2 (en) * 2012-12-20 2016-01-05 Caterpillar Inc. System and method for modifying a path for a machine
US9020664B2 (en) 2013-04-15 2015-04-28 Honeywell International Inc. Methods and systems for displaying procedure information on an aircraft display
DE102013207899A1 (de) 2013-04-30 2014-10-30 Kuka Laboratories Gmbh Fahrerloses Transportfahrzeug, System mit einem Rechner und einem fahrerlosen Transportfahrzeug, Verfahren zum Planen einer virtuellen Spur und Verfahren zum Betreiben eines fahrerlosen Transportfahrzeugs
TWI474294B (zh) * 2013-05-10 2015-02-21 Univ Yuan Ze 導航環境之設置方法
CN104603820B (zh) * 2013-08-30 2016-08-17 株式会社小松制作所 矿山机械的管理系统及矿山机械的管理方法
US20150127302A1 (en) * 2013-11-07 2015-05-07 The Government Of The United States As Represented By The Secretary Of The Army Method and apparatus for optimized routing
KR101766640B1 (ko) * 2014-09-24 2017-08-09 삼성에스디에스 주식회사 이동체의 기준 경로 계산 장치 및 방법
US9436187B2 (en) 2015-01-15 2016-09-06 The United States Of America As Represented By The Secretary Of The Navy System and method for decentralized, multi-agent unmanned vehicle navigation and formation control
JP5973610B1 (ja) * 2015-03-27 2016-08-23 本田技研工業株式会社 無人作業車の制御装置
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US10186004B2 (en) * 2015-05-20 2019-01-22 Caterpillar Inc. System and method for evaluating a material movement plan
CN105242669A (zh) * 2015-10-20 2016-01-13 安徽工程大学 基于加权平均距离视觉鱼群算法的移动机器人路径规划方法
US9798327B2 (en) * 2016-01-08 2017-10-24 King Fahd University Of Petroleum And Minerals Apparatus and method for deploying sensors
CN105928143B (zh) * 2016-04-28 2019-03-15 京东方科技集团股份有限公司 空气加湿装置的移动及控制方法、监控节点及系统
EP3264212B1 (en) * 2016-06-30 2019-01-02 Advanced Digital Broadcast S.A. System and method for determining an energy-efficient path of an autonomous device
US20180018880A1 (en) * 2016-07-12 2018-01-18 Caterpillar Inc. System and method for worksite route management
CN106527424B (zh) * 2016-09-20 2023-06-09 深圳银星智能集团股份有限公司 移动机器人及移动机器人的导航方法
WO2018064639A1 (en) 2016-09-30 2018-04-05 Staples, Inc. Hybrid modular storage fetching system
US10589931B2 (en) 2016-09-30 2020-03-17 Staples, Inc. Hybrid modular storage fetching system
US10683171B2 (en) 2016-09-30 2020-06-16 Staples, Inc. Hybrid modular storage fetching system
CN106805856A (zh) * 2016-12-31 2017-06-09 鸿奇机器人股份有限公司 控制清洁机器人的方法
CN108334062B (zh) * 2017-01-18 2020-12-04 华为技术有限公司 路径规划方法和装置
US10293485B2 (en) * 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
CN107677285B (zh) * 2017-04-11 2019-05-28 平安科技(深圳)有限公司 机器人的路径规划系统及方法
JP6897376B2 (ja) * 2017-07-11 2021-06-30 トヨタ自動車株式会社 移動計画装置、移動ロボット、および移動計画プログラム
CN107871044B (zh) * 2017-11-13 2021-05-18 杭州电魂网络科技股份有限公司 行进路线设置方法及装置
JP7072376B2 (ja) * 2017-12-05 2022-05-20 株式会社クボタ 管理システム
KR20190123673A (ko) * 2018-04-06 2019-11-01 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102249808B1 (ko) 2018-04-06 2021-05-10 엘지전자 주식회사 이동 로봇 시스템 및 이동 로봇 시스템의 제어 방법
US11243540B2 (en) * 2018-05-17 2022-02-08 University Of Connecticut System and method for complete coverage of unknown environments
KR102242713B1 (ko) 2018-08-03 2021-04-22 엘지전자 주식회사 이동 로봇 및 그 제어방법, 및 단말기
EP3829829A4 (en) * 2018-08-03 2022-06-08 LG Electronics Inc. MOBILE ROBOT AND CORRESPONDING CONTROL METHOD
KR102292267B1 (ko) 2018-08-03 2021-08-24 엘지전자 주식회사 이동 로봇, 이동 로봇 시스템 및 이동 로봇의 충전대 이동 방법
US11590997B1 (en) 2018-08-07 2023-02-28 Staples, Inc. Autonomous shopping cart
US11084410B1 (en) 2018-08-07 2021-08-10 Staples, Inc. Automated guided vehicle for transporting shelving units
US11630447B1 (en) 2018-08-10 2023-04-18 Staples, Inc. Automated guided vehicle for transporting objects
CN109471429A (zh) * 2018-09-29 2019-03-15 北京奇虎科技有限公司 一种机器人清扫方法、装置及电子设备
US11256261B1 (en) * 2018-10-16 2022-02-22 Amazon Technologies, Inc. System for movement of autonomous mobile device
CN109443363B (zh) * 2018-11-09 2020-10-16 厦门大学 分治确定性路径寻优算法
US11180069B2 (en) 2018-12-31 2021-11-23 Staples, Inc. Automated loading of delivery vehicles using automated guided vehicles
US11119487B2 (en) 2018-12-31 2021-09-14 Staples, Inc. Automated preparation of deliveries in delivery vehicles using automated guided vehicles
KR20200099264A (ko) 2019-02-14 2020-08-24 한화디펜스 주식회사 장애물 지도 생성 방법 및 그 장치
KR102097722B1 (ko) * 2019-03-25 2020-04-06 주식회사 트위니 빅셀그리드맵을 이용한 이동체의 자세 추정 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
NL2022800B1 (nl) 2019-03-25 2020-10-02 Vanderlande Ind Bv Systeem en werkwijze voor het intralogistiek transporteren van producten.
US11124401B1 (en) 2019-03-31 2021-09-21 Staples, Inc. Automated loading of delivery vehicles
CN110419985B (zh) * 2019-08-05 2021-04-09 小狗电器互联网科技(北京)股份有限公司 一种路径生成方法、装置及扫地设备
EP3816758B1 (en) * 2019-10-17 2024-01-17 Nokia Solutions and Networks Oy Grid-based movement control
CN110823240B (zh) * 2019-11-19 2021-05-11 齐鲁工业大学 一种具有航向约束的跟随机器人路径规划方法及系统
CN111006666B (zh) * 2019-11-21 2021-10-29 深圳市优必选科技股份有限公司 机器人路径规划方法、装置、存储介质和机器人
CN111811517A (zh) * 2020-07-15 2020-10-23 中国科学院上海微系统与信息技术研究所 一种动态局部路径规划方法及系统
KR102595387B1 (ko) 2021-03-09 2023-10-27 동의대학교 산학협력단 가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템
US11940800B2 (en) * 2021-04-23 2024-03-26 Irobot Corporation Navigational control of autonomous cleaning robots

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029833A (ja) * 2001-07-19 2003-01-31 Japan Atom Energy Res Inst 移動体の自律走行経路の生成法
KR20040062041A (ko) * 2002-12-31 2004-07-07 엘지전자 주식회사 로봇 청소기 및 그의 청소 영역 주행방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259988B1 (en) * 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
US6266610B1 (en) * 1998-12-31 2001-07-24 Honeywell International Inc. Multi-dimensional route optimizer
US6167332A (en) * 1999-01-28 2000-12-26 International Business Machines Corporation Method and apparatus suitable for optimizing an operation of a self-guided vehicle
US6477515B1 (en) * 1999-08-11 2002-11-05 The United States Of America As Represented By The Secretary Of The Navy Efficient computation of least cost paths with hard constraints
US7251548B2 (en) * 2001-08-03 2007-07-31 Siemens Aktiengesellschaft Programming of an extended path for an autonomous mobile unit for the subsequent traversing of path sections that are temporarily blocked
US7440447B2 (en) * 2004-03-25 2008-10-21 Aiseek Ltd. Techniques for path finding and terrain analysis
KR100587572B1 (ko) * 2004-10-15 2006-06-08 삼성전자주식회사 카메라 픽셀 정보를 이용하여 공간상의 코너 포인트를추출하는 시스템 및 방법, 상기 시스템을 포함하는 이동로봇
KR100575708B1 (ko) * 2004-11-11 2006-05-03 엘지전자 주식회사 로봇청소기의 거리감지장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029833A (ja) * 2001-07-19 2003-01-31 Japan Atom Energy Res Inst 移動体の自律走行経路の生成法
KR20040062041A (ko) * 2002-12-31 2004-07-07 엘지전자 주식회사 로봇 청소기 및 그의 청소 영역 주행방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105325B1 (ko) 2009-09-08 2012-01-16 부산대학교 산학협력단 실제 로봇의 다중 경로계획 방법
US8996292B2 (en) 2010-01-20 2015-03-31 Samsung Electronics Co., Ltd. Apparatus and method generating a grid map
KR101278708B1 (ko) * 2011-05-18 2013-06-25 부산대학교 산학협력단 수중로봇과 그 제어방법
KR101828255B1 (ko) * 2016-02-19 2018-02-13 국방과학연구소 주행정보 및 환경인식 기반 주행영역 갱신 장치 및 그 제어방법
CN107357295A (zh) * 2017-08-16 2017-11-17 珠海市微半导体有限公司 一种基于栅格地图的路径搜索方法和芯片及机器人
CN107357295B (zh) * 2017-08-16 2021-02-23 珠海市一微半导体有限公司 一种基于栅格地图的路径搜索方法和芯片及机器人

Also Published As

Publication number Publication date
US7953551B2 (en) 2011-05-31
US20060149465A1 (en) 2006-07-06
KR20060078162A (ko) 2006-07-05

Similar Documents

Publication Publication Date Title
KR100745975B1 (ko) 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치
US7885738B2 (en) Method, medium, and apparatus for self-propelled mobile unit with obstacle avoidance during wall-following algorithm
US7206677B2 (en) Efficient navigation of autonomous carriers
KR930000081B1 (ko) 청소기의 자동 청소방법
JP3217281B2 (ja) ロボットの環境認識装置およびその制御方法
KR100690669B1 (ko) 자율 주행 로봇의 위치인식 시스템
US7397213B2 (en) Mobile robot and mobile robot charge station return system
EP2330473B1 (en) Mobile robot
KR920000946B1 (ko) 이 동 차
US8386081B2 (en) Navigational control system for a robotic device
KR101241411B1 (ko) 이동 로봇의 실내 지도 작성 장치 및 방법
JP2005224265A (ja) 自走式掃除機
US20100063628A1 (en) Navigational control system for a robotic device
EP3082542A1 (en) Sensing climb of obstacle of a robotic cleaning device
CN112423639B (zh) 自主行走式吸尘器
CN112596527B (zh) 基于斜坡结构的机器人卡住检测方法、芯片及清洁机器人
KR100722762B1 (ko) 로봇 청소기의 장애물 형태 감지 장치 및 그 방법
JP2004139264A (ja) 自律走行ロボット
JP7407421B2 (ja) 移動ロボット、制御方法、及び制御プログラム
JP5347108B2 (ja) 自走式機器装置の走行ルート計画方法
CN113194802A (zh) 机器人清洁器及其操作方法
JPH06202732A (ja) 移動体の運航装置及びその装置を利用したセキュリティロボット
JP2005209225A (ja) 自律移動装置
KR20050099189A (ko) 로봇 청소기의 제어 방법
JPH07111649B2 (ja) 作業車の作業経路決定装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130624

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140619

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150624

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160620

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170619

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190619

Year of fee payment: 13