KR20100104581A - 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 - Google Patents
이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20100104581A KR20100104581A KR1020090023096A KR20090023096A KR20100104581A KR 20100104581 A KR20100104581 A KR 20100104581A KR 1020090023096 A KR1020090023096 A KR 1020090023096A KR 20090023096 A KR20090023096 A KR 20090023096A KR 20100104581 A KR20100104581 A KR 20100104581A
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- feature points
- feature point
- feature
- map
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000000605 extraction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 239000013598 vector Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치가 개시된다. 본 발명에 따른 이동 로봇에서 자신의 위치를 추정하기 위한 방법은, 상기 로봇에 구비된 카메라를 이용하여 영상을 획득하는 단계; 상기 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출하는 단계; 상기 추출된 특징점들과 상기 로봇이 존재하는 공간을 미리 촬영하여 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 단계; 및 상기 검출된 특징점 쌍들 각각의 상기 3차원 지도에서의 좌표와 상기 획득된 영상에서의 좌표를 이용하여 로봇의 위치를 추정하는 단계를 포함하는 것을 특징으로 한다. 이러한 본 발명에 의하면 저가의 비젼 센서인 카메라로부터 획득된 영상을 이용하여 적은 비용으로 효과적으로 로봇의 위치를 추정할 수 있다.
로봇, 위치 추정, SIFT 알고리즘, 특징점
Description
본 발명은 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치에 관한 것으로 보다 상세하게는 카메라를 통하여 획득된 영상을 이용하여 위치를 추정하는 방법 및 장치에 관한 것이다.
초기의 로봇은 산업 현장에서의 대량 생산을 위한 도구로서 사용되었으며, 고정된 위치에서 단순하고 반복적인 작업을 수행하였다. 그러나 로봇 기술의 발달에 따라 로봇은 보다 다양한 형태를 가지게 되었으며, 보다 높은 지능과 다양한 작업을 할 수 있는 능력을 갖추게 되었다.
로봇이 좀 더 다양한 임무를 자동으로 수행하기 위해서는 로봇 스스로 주행할 수 있는 능력을 갖추어야 한다. 로봇의 자율 주행 문제를 해결하기 위해서는 우선 현재 로봇 자신의 위치가 어디인가를 판단할 수 있어야 한다. 특히 로봇이 자신의 초기 위치를 기억하고 현재까지의 이동 정보 및 이전의 위치 정보로부터 현재의 위치를 알아낼 수 있다고 하더라도 로봇이 외력에 의해 이동된 경우에는 그 전 위치까지 이동해 오면서 저장해 둔 이동 정보 및 위치 정보를 전혀 사용할 수 없는 문제에 직면하게 된다.
이러한 문제를 해결하기 위하여 레이저 센서나 초음파 센서와 같은 레인지 센서가 제안되고 있으나, 가격이 고가여서 비용이 많이 들고 주변 환경에 대하여 보다 구체적인 정보를 얻을 수 없는 한계를 가진다.
본 발명이 이루고자 하는 기술적 과제는 저가의 비젼 센서인 카메라로부터 획득된 영상을 이용하여 적은 비용으로 효과적으로 로봇의 위치를 추정할 수 있는, 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치를 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 이동 로봇에서 자신의 위치를 추정하기 위한 방법은, (a) 상기 로봇에 구비된 카메라를 이용하여 영상을 획득하는 단계; (b) 상기 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출하는 단계; (c) 상기 추출된 특징점들과 상기 로봇이 존재하는 공간을 미리 촬영하여 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 단계; 및 (d) 상기 검출된 특징점 쌍들 각각의 상기 3차원 지도에서의 좌표와 상기 획득된 영상에서의 좌표 및 상기 카메라의 초점 거리를 이용하여 로봇의 위치를 추정하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 (b) 단계는, 기술자(descriptor)가 일치하거나 유사한 특징점 쌍을 서로 매칭되는 특징점 쌍으로 검출할 수 있다.
또한, 상기 (c) 단계는, 상기 추출된 특징점들과 상기 3차원 지도 상에서 특징점들이 밀집되어 있는 영역인 특징점 클러스터 내의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출할 수 있다.
또한, 상기 위치 추정 방법은, 상기 (c) 단계에서 상기 특징점 쌍들이 검출되지 않는 경우 상기 로봇을 제자리에서 일정 각도 회전한 후 상기 (a) 단계 내지 상기 (c) 단계를 반복하여 수행하는 단계를 더 포함할 수 있다.
또한, 상기 (d) 단계는, 상기 추정된 로봇의 위치와 상기 3차원 지도에서의 특징점의 좌표를 이용하여 상기 로봇이 바라보는 방향을 추정할 수 있다.
또한, 상기 (d) 단계는 상기 검출된 특징점 쌍들 각각에 대하여 상기 로봇과 상기 3차원 지도 상의 특징점 간의 xy 평면 상의 거리를 구하고, 상기 구해진 거리 및 상기 3차원 지도에서의 좌표를 이용하여 상기 로봇 위치의 좌표를 계산할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 이동 로봇에서 자신의 위치를 추정하는 장치는, 상기 로봇에 구비된 카메라를 이용하여 획득된 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출하는 특징점 추출부; 상기 추출된 특징점들과 상기 로봇이 존재하는 공간을 미리 촬영하여 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 특징점쌍 검출부; 및 상기 검출된 특징점 쌍들 각각의 상기 3차원 지도에서의 좌표와 상기 획득된 영상에서의 좌표 및 상기 카메 라의 초점 거리를 이용하여 상기 로봇의 위치를 추정하는 위치 추정부를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른 이동 로봇에서 자신의 위치를 추정하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기된 본 발명에 의하면, 저가의 비젼 센서인 카메라로부터 획득된 영상을 이용하여 적은 비용으로 효과적으로 이동 로봇의 위치를 추정할 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇에서 자신의 위치를 추정하는 장치의 블록도이다. 본 실시예에 따른 위치 추정 장치는 자체적으로 이동 가능한 로봇에 구비되며, 카메라(110), 3차원 지도 저장부(120), 특징점 추출부(130), 특징점쌍 검출부(140), 위치 추정부(150), 제어부(160)를 포함하여 이루어진다.
카메라(110)는 기본적으로 로봇의 진행 방향을 향한 장면의 영상을 획득하며 로봇의 회전에 따라 카메라(110)에서 획득할 영상의 방향이 변하게 된다. 다만 로봇이 회전하지 않고 카메라를 로봇의 중심을 축으로 수평적으로 회전시켜 영상을 획득할 장면의 방향을 변화시킬 수도 있다.
3차원 지도 저장부(120)는 로봇이 존재하는 공간을 미리 촬영하여 SIFT(Scale Invariant Feature Transform) 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도를 저장한다. SIFT 알고리즘은 D.Lowe에 의해 고안된 특징점 추출 알고리즘으로서 이 알고리즘에 의해 추출된 특징점들은 영상의 스케일, 회전, 왜곡, 3D 관점 변화 등에 영향을 받지 않는 특성을 가진다. 이 방법은 스케일 공간에서의 불변 특징점을 구하여 관심점에 기술자(descriptor)를 만들어 적용하는 방 법이다. 특징점을 설명하는 기술자가 있기 때문에 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 지도에서는 이 기술자를 가지고 특징점의 위치를 찾을 수 있다.
상기 3차원 지도는 복도, 로비, 큰 방과 같은 공간의 경우 로봇이 주행을 하면서 일정 간격마다 벽면의 특징점을 추출하게 함으로써 구축될 수 있고, 작은 방 같은 구조일 경우에는 로봇이 제자리에서 회전을 하면서 또는 로봇에 구비된 카메라를 수평적으로 회전시키면서 일정 각도마다 영상을 획득하여 특징점을 추출함으로써 구축될 수 있다. 그리고 획득된 영상과 로봇의 위치 정보 등을 이용하여 특징점들의 3차원의 절대 좌표를 생성하게 된다. 이하에서 이 절대 좌표는 (x, y, z)로 표시하기로 한다.
도 2는 본 발명의 일 실시예에 따라 구축된 3차원 지도의 예를 나타낸다. 붉은색으로 표시된 점이 특징점들을 나타내며, 연두색으로 표시된 선은 특징점을 추출하면서 주행한 로봇의 이동 경로를 나타낸다.
본 실시예에서 설명되고 있는 로봇이 직접 특징점을 추출하여 상기 3차원 지도를 구축하도록 할 수도 있고, 먼저 다른 로봇 등이 특징점을 추출하여 3차원 지도를 구축하고, 이를 3차원 지도 저장부(120)에 저장할 수도 있다. 또한, 본 실시예에서 상기 3차원 지도는 로봇에 구비되는 3차원 지도 저장부(120)에 저장되는 것으로 설명하나, 별도로 마련된 다른 서버 등에 저장하여 두고 필요한 경우에 무선 통신 수단을 이용하여 그로부터 전송받는 방식으로 구현될 수도 있다.
특징점 추출부(130)는 카메라(110)를 이용하여 획득된 영상으로부터 SIFT 알 고리즘을 이용하여 특징점들을 추출한다. 현재 로봇은 자신이 어디에 있는지 그 위치를 알지 못한 상황을 가정하므로, 특징점 추출부(130)는 추출된 특징점들의 획득된 영상 내에서의 좌표를 얻게 된다. 이 영상 내에서의 좌표를 (u, v)로 표시하면, 일반적으로 이 좌표 (u, v)는 영상의 왼쪽 상단을 원점으로 하는 좌표계를 가진다. 다만, 본 실시예에서는 편의를 위해 원점을 영상의 중심으로 옮겼다고 가정하고 특징점의 좌표를 표시하기로 한다. 이러한 변환은 다음 수학식과 같이 표현될 수 있다.
여기서, u′와 v′는 원점을 영상의 왼쪽 상단으로 하는 좌표계를 의미한다. 따라서 u와 v는 원점을 영상의 중심으로 하는 좌표계이다. u는 양의 방향을 오른쪽으로 하고, v는 양의 방향을 위쪽으로 한다.
특징점쌍 검출부(140)는 특징점 추출부(130)에서 추출된 특징점들과 3차원 지도 저장부(120)에 저장된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출한다. 특징점 추출부(130)에서 추출된 특징점과 3차원 지도 상의 특징점이 서로 매칭되는지는 기술자의 동일성 여부로 판단할 수 있다. 다만, 기술자가 정확히 일치하는 특징점 쌍을 검출하는 것이 원칙이나, 처리 상의 오류 등으로 인해 기술자 값에서 약간의 오차가 발생할 수 있으므로, 허용하 는 범위 내에서 기술자가 유사한 특징점까지 검출하도록 한다. 다시 말하면, 특징점 추출부(130)에서 추출된 특징점과 3차원 지도 상의 특징점 각각을 비교하여 기술자가 정확히 일치하거나 기술자 간의 차이가 일정 임계값 이내인 특징점 쌍을 검출한다. 셋 이상의 특징점 쌍이 검출되면 정확히 일치하거나 가장 유사한 세 개의 특징점 쌍을 취한다.
다만, 인공적인 인식용 마크를 사용하지 않고 실내에 존재하는 물체들로부터 추출되는 특징점을 사용하기 때문에 별개의 비슷한 물체에서 유사한 특징점들이 발생되는 경우가 생길 수 있다. 예를 들어 빌딩 복도의 경우 일정 거리마다 소화기를 놓게 되는데, 이 소화기들이 모두 같은 종류인 경우가 많다. 따라서 이들로부터 동일한 기술자가 둘 이상 추출될 수 있다. 이러한 경우 특징점 추출부(130)로부터 추출되는 특징점과 3차원 지도 상의 특징점을 비교할 때 혼란이 생길 수밖에 없다. 왜냐하면, 획득된 영상의 한 특징점과 매칭되는 3차원 지도 상의 특징점이 둘 이상 나오게 되기 때문이다. 다시 말하면, 로봇이 어떤 소화기를 보고 있는데 그 소화기가 어느 소화기인지 확신할 수가 없는 것이다.
이러한 문제를 해결하기 위하여 특징점쌍 검출부(140)는 특징점 추출부(130)에서 추출된 특징점들과 3차원 지도 상에서 특징점들이 밀집되어 있는 영역인 특징점 클러스터 내의 특징점들을 비교하여 기술자가 일치하거나 유사한 특징점 쌍들을 검출할 수 있다. 즉, 특징점 추출부(130)에서 추출된 특징점들로부터 3차원 지도 전체에 걸쳐서 기술자가 일치하거나 유사한 특징점들을 찾는 것이 아니라 3차원 지도 상에서 특징점이 뭉쳐 있는 영역인 특징점 클러스터들마다 찾는 것이다.
특징점 클러스터의 형성은 예를 들어 일정 크기의 윈도우를 설정하고, 이 윈도우를 3차원 지도 상에서 이동시켜 가면서 그 내부에 속하게 되는 특징점들의 개수가 일정 수 이상이 되는 경우에 해당하는 윈도우 내부를 특징점 클러스터로 정의할 수 있다. 그러나 특징점 클러스터를 형성하는 방법은 이 외에도 다양한 변형예가 있을 수 있다. 한편, 특징점 클러스터의 형성은 3차원 지도 구축 시에 이를 함께 수행하여 클러스터에 관한 정보를 3차원 지도 저장부(120)에 미리 저장하여 둘 수도 있고, 특징점쌍 검출부(140)가 특징점 쌍들을 검출하기 위하여 3차원 지도 저장부(120)로부터 3차원 지도를 읽어들인 후 이를 분석하여 특징점 클러스터를 생성한 후 특징점 쌍들을 검출할 수도 있다.
도 3은 도 2에 도시된 3차원 지도를 위에서 내려다본 방향으로, 즉 xy 평면 상으로 투영한 형태의 지도를 나타내며, 도 4는 도 3에 도시된 지도에서 상단 방향을 바라보는 시점에서 형성되는 특징점 클러스터를 확대하여 나타낸 도면이다. 도 4를 참조하면, 두 부분에서 특징점들이 밀집되어 있는 것을 확인할 수 있으며, 따라서 이들 두 영역이 각각 특징점 클러스터가 된다.
특징점쌍 검출부(140)는 특징점 추출부(130)에서 추출된 특징점들과 위와 같이 형성된 특징점 클러스터 내의 특징점들을 비교하여 기술자가 일치하거나 유사한 특징점 쌍들을 검출한다. 이렇게 함으로써 특징점 추출부(130)로부터 추출되는 특징점과 올바르게 매칭되는 3차원 지도 상의 특징점을 찾을 수 있고, 위치 인식의 정확도를 높일 수 있게 된다.
다시 도 1을 참조하여, 특징점쌍 검출부(140)로부터 3개의 특징점 쌍들이 검 출되면, 위치 추정부(150)는 특징점 쌍들 각각의 3차원 지도에서의 좌표와 카메라(110)로부터 획득된 영상에서의 좌표를 이용하여 로봇의 위치를 추정한다. 로봇의 위치 추정에 관한 보다 상세한 과정은 후술하기로 한다. 만일 특징점쌍 검출부(140)에서 3개의 특징점 쌍들이 검출되지 않는다면 이를 알리는 신호를 제어부(160)로 전달한다. 제어부(160)는 로봇의 이동 및 회전을 제어하는 기능을 하는 모듈이다. 제어부(160)는 상기 신호를 전달받으면 로봇을 제자리에서 일정 각도 회전하게 하여 다른 방향을 바라보도록 한다. 그리고 나서 상술한 동작들, 즉 카메라(110)가 영상을 획득하고, 특징점 추출부(130)가 영상으로부터 특징점들을 추출하고, 특징점쌍 검출부(140)가 매칭되는 특징점 쌍들을 검출하는 동작을 다시 수행한다. 이러한 과정은 3개의 특징점 쌍들이 검출될 때까지 반복되고, 3개의 특징점 쌍들이 검출되면 비로소 위치 추정부(150)가 그에 관한 정보를 가지고 로봇의 위치를 추정한다.
특징점 쌍들을 가지고 로봇의 위치를 추정하는 과정을 상세히 설명하면 다음과 같다. 이 과정은 이미 설명한 바와 같이 현재 세 특이점 쌍에 대응하는 3차원 지도 상의 절대 좌표 (x, y, z)와 영상 좌표계에서의 좌표 (u, v)를 알고 있다는 데서 출발한다.
도 5는 로봇의 위치를 추정하는 과정을 설명하기 위한 참고도이다. 도 5를 참조하면, 절대 좌표계의 특이점과 그에 대응하는 영상 좌표계의 특이점을 잇는 벡터를 각각 그리면 각 특이점 쌍에 해당하는 세 벡터가 나오게 되는데, 이 벡터들의 교점이 곧 로봇(카메라)의 위치가 된다. 편의상 본 실시예에서는 로봇의 위치가 공 간에서 수직 방향으로는 변하지 않는 것을 전제로 하여 로봇 위치의 z 좌표값을 0으로 가정하고 설명하기로 한다.
영상 좌표값이 (u, v)이고, 3차원 지도 상의 절대 좌표값이 (xfeature, yfeature, zfeature)인 특이점에 대하여, 로봇과 3차원 지도 상의 특징점 간의 xy 평면 상의 거리를 dxy 라 하고, 카메라(110)의 초점거리(focal length)를 f 라 하면, 삼각형의 닮은꼴 원리에 의해 다음 비례식이 성립한다.
상기 수학식은 로봇 위치의 z 좌표값을 0으로 가정하였기 때문에 성립하는 식이다.
상기 수학식 2로부터 다음 수학식이 성립한다.
한편, 세 개의 특이점의 절대 좌표를 각각 (xfeature1, yfeature1, zfeature1), (xfeature2, yfeature2, zfeature2), (xfeature3, yfeature3, zfeature3) 라 하고, 로봇의 위치 좌표를 (xrobot, yrobot)라 하고, 로봇과 3차원 지도 상의 각 특이점 간의 xy 평면 상의 거 리를 각각 dxy1, dxy2, dxy3 라 하면 다음 수학식이 성립한다.
상기 수학식 4의 첫 번째 식으로부터 세 번째 식을 빼고, 두 번째 식으로부터 세 번째 식을 빼서 연립하면 다음 수학식이 성립한다.
상기 수학식 5를 행렬식으로 정리하면 다음과 같다.
상기 수학식 6에서 로봇의 x, y 좌표값 이외의 값들은 모두 알 수 있다. 즉, 특징점의 절대 좌표값은 이미 주어진 값이며, dxy1, dxy2, dxy3 는 상기 수학식 3으로부터 구할 수 있다. 따라서 로봇 위치의 좌표 (xrobot, yrobot)을 구할 수 있다.
로봇의 위치 뿐만 아니라 카메라가 향하고 있는 방향, 즉 로봇이 바라보는 방향(robot bearing) 역시 구할 필요가 있다. 도 6은 xy 평면에서 로봇이 바라보는 방향과 특이점을 향한 방향의 관계를 나타낸 도면이다. 도 6을 참조하면, θ1 은 로봇과 3차원 지도 상의 특징점을 잇는 직선과, 기준이 되는 축인 x 축 사이의 각도를, θ2 는 상기 직선과 로봇(카메라)이 바라보는 방향과의 각도를 의미한다. 영상 좌표 u 가 커진다는 것은 특이점이 시계 방향으로 이동한다는 것을 의미하므로 각도 측정의 기준 방향인 반시계 방향과는 반대 방향이 된다. 로봇이 향하고 있는 방향은 θ1 과 θ2 는 합이 되며, θ1 및 θ2 는 다음 수학식을 이용하여 구할 수 있다.
여기서, f 는 카메라(110)의 초점거리이다.
상술한 바와 같이, 카메라(110)로 획득된 영상에서의 특이점의 좌표값과 그에 대응되는 3차원 지도 상의 절대 좌표값으로부터 로봇의 위치 및 로봇이 향하고 있는 방향을 구할 수 있다.
도 7은 본 발명의 일 실시예에 따른 로봇에서 자신의 위치를 추정하는 방법을 나타낸 흐름도이다. 본 실시예에 따른 위치 추정 방법은 이상에서 설명된 위치 추정 장치에서 처리되는 단계들로 구성된다. 따라서 이하 생략된 내용이라 하더라도 위치 추정 장치에 관하여 이상에서 기술된 내용은 본 실시예에 따른 위치 추정 방법에도 적용된다.
로봇에 구비된 카메라를 이용하여 영상을 획득하고(610단계), 이 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출한다(620단계).
그리고 추출된 특징점과 미리 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출한다(630단계). 이때 적어도 3개의 특징점 쌍들이 검출되지 않으면(640단계), 로봇을 제자리에서 일정 각도 회전시킨 후(650단계), 다시 상기 610단계 내지 640단계를 반복 수행한다.
630단계에서는 촬영된 영상과 3차원 지도 상의 특징점 간에 기술자가 일치하거나 유사한지를 가지고 서로 매칭되는지 판단할 수 있다. 그리고 촬영된 영상으로부터 추출된 특징점들을 3차원 지도 상의 특징점들과 비교함에 있어서, 3차원 지도 상에서 정의된 특징점 클러스터 내의 특징점들과 비교하여 적어도 3개의 특징점 쌍들이 검출되는지 여부를 확인하는 것이 바람직하다.
3개의 특징점 쌍들이 검출되면, 특징점 쌍들 각각의 3차원 지도에서의 좌표와 상기 610단계에서 획득된 영상에서의 좌표를 이용하여 로봇의 현재 위치를 추정한다(660단계).
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으 로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇에서 자신의 위치를 추정하는 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따라 구축된 3차원 지도의 예를 나타낸다.
도 3은 도 2에 도시된 3차원 지도를 위에서 바라본 방향으로, 즉 xy 평면 상으로 투영한 형태의 지도를 나타낸다.
도 4는 도 3에 도시된 지도에서 상단 방향을 바라보는 시점에서 형성되는 특징점 클러스터를 확대하여 나타낸 도면이다.
도 5는 로봇의 위치를 추정하는 과정을 설명하기 위한 참고도이다.
도 6은 xy 평면에서 로봇이 바라보는 방향과 특이점을 향한 방향의 관계를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇에서 자신의 위치를 추정하는 방법의 흐름도이다.
Claims (13)
- 이동 로봇에서 자신의 위치를 추정하기 위한 방법에 있어서,(a) 상기 로봇에 구비된 카메라를 이용하여 영상을 획득하는 단계;(b) 상기 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출하는 단계;(c) 상기 추출된 특징점들과 상기 로봇이 존재하는 공간을 미리 촬영하여 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 단계; 및(d) 상기 검출된 특징점 쌍들 각각의 상기 3차원 지도에서의 좌표와 상기 획득된 영상에서의 좌표 및 상기 카메라의 초점 거리를 이용하여 로봇의 위치를 추정하는 단계를 포함하는 것을 특징으로 하는 위치 추정 방법.
- 제1항에 있어서,상기 (b) 단계는, 기술자(descriptor)가 일치하거나 유사한 특징점 쌍을 서로 매칭되는 특징점 쌍으로 검출하는 것을 특징으로 하는 위치 추정 방법.
- 제1항에 있어서,상기 (c) 단계는, 상기 추출된 특징점들과 상기 3차원 지도 상에서 특징점들이 밀집되어 있는 영역인 특징점 클러스터 내의 특징점들을 비교하여 서로 매칭되 는 적어도 3개의 특징점 쌍들을 검출하는 것을 특징으로 하는 위치 추정 방법.
- 제1항에 있어서,상기 (c) 단계에서 상기 특징점 쌍들이 검출되지 않는 경우 상기 로봇을 제자리에서 일정 각도 회전한 후 상기 (a) 단계 내지 상기 (c) 단계를 반복하여 수행하는 단계를 더 포함하는 것을 특징으로 하는 위치 추정 방법.
- 제1항에 있어서,상기 (d) 단계는, 상기 추정된 로봇의 위치와 상기 3차원 지도에서의 특징점의 좌표를 이용하여 상기 로봇이 바라보는 방향을 추정하는 것을 특징으로 하는 위치 추정 방법.
- 제1항에 있어서,상기 (d) 단계는 상기 검출된 특징점 쌍들 각각에 대하여 상기 로봇과 상기 3차원 지도 상의 특징점 간의 xy 평면 상의 거리를 구하고, 상기 구해진 거리 및 상기 3차원 지도에서의 좌표를 이용하여 상기 로봇 위치의 좌표를 계산하는 것을 특징으로 하는 위치 추정 방법.
- 제1항 내지 제6항 중 어느 한 항에 기재된 이동 로봇에서 자신의 위치를 추정하기 위한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기 록 매체.
- 이동 로봇에서 자신의 위치를 추정하는 장치에 있어서,상기 로봇에 구비된 카메라를 이용하여 획득된 영상으로부터 SIFT 알고리즘을 이용하여 특징점들을 추출하는 특징점 추출부;상기 추출된 특징점들과 상기 로봇이 존재하는 공간을 미리 촬영하여 SIFT 알고리즘을 이용하여 추출된 특징점들로 구축된 3차원 지도 상의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 특징점쌍 검출부; 및상기 검출된 특징점 쌍들 각각의 상기 3차원 지도에서의 좌표와 상기 획득된 영상에서의 좌표 및 상기 카메라의 초점 거리를 이용하여 상기 로봇의 위치를 추정하는 위치 추정부를 포함하는 것을 특징으로 하는 위치 추정 장치.
- 제8항에 있어서,상기 특징점쌍 검출부는 기술자(descriptor)가 일치하거나 유사한 특징점 쌍을 서로 매칭되는 특징점 쌍으로 검출하는 것을 특징으로 하는 위치 추정 장치.
- 제8항에 있어서,상기 특징점쌍 검출부는, 상기 추출된 특징점들과 상기 3차원 지도 상에서 특징점들이 밀집되어 있는 영역인 특징점 클러스터 내의 특징점들을 비교하여 서로 매칭되는 적어도 3개의 특징점 쌍들을 검출하는 것을 특징으로 하는 위치 추정 장 치.
- 제8항에 있어서,상기 특징점쌍 검출부에서 상기 특징점 쌍들이 검출되지 않는 경우 상기 로봇을 제자리에서 일정 각도 회전하도록 제어하는 제어부를 더 포함하고, 상기 특징점 추출부 및 상기 특징점쌍 검출부는 상기 로봇이 회전한 후 반복적으로 상기 특징점들을 추출하고 상기 특징점 쌍들을 검출하는 것을 특징으로 하는 위치 추정 장치.
- 제8항에 있어서,상기 위치 추정부는, 상기 추정된 로봇의 위치와 상기 3차원 지도에서의 특징점의 좌표를 이용하여 상기 로봇이 바라보는 방향을 추정하는 것을 특징으로 하는 위치 추정 장치.
- 제8항에 있어서,상기 위치 추정부는 상기 검출된 특징점 쌍들 각각에 대하여 상기 로봇과 상기 3차원 지도 상의 특징점 간의 xy 평면 상의 거리를 구하고, 상기 구해진 거리 및 상기 3차원 지도에서의 좌표를 이용하여 상기 로봇 위치의 좌표를 계산하는 것을 특징으로 하는 위치 추정 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090023096A KR101072876B1 (ko) | 2009-03-18 | 2009-03-18 | 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090023096A KR101072876B1 (ko) | 2009-03-18 | 2009-03-18 | 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100104581A true KR20100104581A (ko) | 2010-09-29 |
KR101072876B1 KR101072876B1 (ko) | 2011-10-17 |
Family
ID=43008813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090023096A KR101072876B1 (ko) | 2009-03-18 | 2009-03-18 | 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101072876B1 (ko) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012167619A1 (en) * | 2011-07-11 | 2012-12-13 | Huawei Technologies Co., Ltd. | Image topological coding for visual search |
KR101243133B1 (ko) * | 2011-01-28 | 2013-03-13 | 충북대학교 산학협력단 | 이동로봇의 위치추정 장치 및 방법 |
KR101304579B1 (ko) * | 2011-07-15 | 2013-09-05 | 삼성중공업 주식회사 | 수중 이동체 위치측정장치 및 그 방법 |
KR20170024072A (ko) * | 2014-06-27 | 2017-03-06 | 크라운 이큅먼트 코포레이션 | 연관된 특징 쌍들을 이용한 차량 포지셔닝 또는 내비게이션 |
US9875386B2 (en) | 2011-11-15 | 2018-01-23 | Futurewei Technologies, Inc. | System and method for randomized point set geometry verification for image identification |
WO2018074903A1 (ko) | 2016-10-20 | 2018-04-26 | 엘지전자 주식회사 | 이동 로봇의 제어방법 |
WO2018074904A1 (ko) | 2016-10-20 | 2018-04-26 | 엘지전자 주식회사 | 이동 로봇 및 이동 로봇의 제어방법 |
KR20180057029A (ko) * | 2016-11-21 | 2018-05-30 | 현대자동차주식회사 | 차량의 주행차로 추정 장치 및 방법 |
KR20180125010A (ko) | 2016-04-25 | 2018-11-21 | 엘지전자 주식회사 | 이동 로봇 및 이동 로봇의 제어방법 |
KR20190011576A (ko) | 2017-07-25 | 2019-02-07 | 엘지전자 주식회사 | 이동 로봇 |
CN109376208A (zh) * | 2018-09-18 | 2019-02-22 | 高枫峻 | 一种基于智能终端的定位方法、系统、存储介质及设备 |
EP3502822A1 (en) | 2017-12-21 | 2019-06-26 | LG Electronics Inc. | Moving-robot and control method for the same |
EP3644154A1 (en) | 2018-10-22 | 2020-04-29 | LG Electronics Inc. | Controlling method for artificial intelligence moving robot |
WO2020197303A1 (en) | 2019-03-27 | 2020-10-01 | Lg Electronics Inc. | Mobile robot control method |
US11400600B2 (en) | 2019-03-27 | 2022-08-02 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
US11709499B2 (en) | 2018-10-22 | 2023-07-25 | Lg Electronics Inc. | Controlling method for artificial intelligence moving robot |
US11747822B2 (en) | 2015-11-02 | 2023-09-05 | Starship Technologies Oü | Mobile robot system and method for autonomous localization using straight lines extracted from visual images |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101629649B1 (ko) * | 2014-09-30 | 2016-06-13 | 엘지전자 주식회사 | 로봇 청소기 및 로봇 청소기의 제어방법 |
KR102203434B1 (ko) * | 2016-04-22 | 2021-01-14 | 엘지전자 주식회사 | 로봇 청소기 및 로봇 청소기의 제어방법 |
KR101855870B1 (ko) | 2016-08-08 | 2018-05-10 | 고려대학교 산학협력단 | 3차원 공간에서의 위치 추정에 이용되는 회전이동값 추정 방법 및 장치 |
KR102325121B1 (ko) * | 2020-04-29 | 2021-11-12 | 주식회사 모빌테크 | 맵 정보과 영상 매칭을 통한 실시간 로봇 위치 예측 방법 및 로봇 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100835906B1 (ko) * | 2007-05-03 | 2008-06-09 | 고려대학교 산학협력단 | 로봇 전역 위치 추정 방법 및 로봇 전역 위치 추정 장치 |
-
2009
- 2009-03-18 KR KR1020090023096A patent/KR101072876B1/ko not_active IP Right Cessation
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101243133B1 (ko) * | 2011-01-28 | 2013-03-13 | 충북대학교 산학협력단 | 이동로봇의 위치추정 장치 및 방법 |
US8718378B2 (en) | 2011-07-11 | 2014-05-06 | Futurewei Technologies, Inc. | Image topological coding for visual search |
WO2012167619A1 (en) * | 2011-07-11 | 2012-12-13 | Huawei Technologies Co., Ltd. | Image topological coding for visual search |
KR101304579B1 (ko) * | 2011-07-15 | 2013-09-05 | 삼성중공업 주식회사 | 수중 이동체 위치측정장치 및 그 방법 |
US9335172B2 (en) | 2011-07-15 | 2016-05-10 | Samsung Heavy Ind. Co., Ltd | Apparatus for measuring location of underwater vehicle and method thereof |
US9875386B2 (en) | 2011-11-15 | 2018-01-23 | Futurewei Technologies, Inc. | System and method for randomized point set geometry verification for image identification |
KR20170024072A (ko) * | 2014-06-27 | 2017-03-06 | 크라운 이큅먼트 코포레이션 | 연관된 특징 쌍들을 이용한 차량 포지셔닝 또는 내비게이션 |
US11747822B2 (en) | 2015-11-02 | 2023-09-05 | Starship Technologies Oü | Mobile robot system and method for autonomous localization using straight lines extracted from visual images |
KR20180125010A (ko) | 2016-04-25 | 2018-11-21 | 엘지전자 주식회사 | 이동 로봇 및 이동 로봇의 제어방법 |
US10939791B2 (en) | 2016-04-25 | 2021-03-09 | Lg Electronics Inc. | Mobile robot and mobile robot control method |
DE112017002154B4 (de) * | 2016-04-25 | 2020-02-06 | Lg Electronics Inc. | Mobiler Roboter und Steuerverfahren für einen mobilen Roboter |
DE112017002154T5 (de) | 2016-04-25 | 2019-01-10 | Lg Electronics Inc. | Mobiler Roboter und Steuerverfahren für einen mobilen Roboter |
WO2018074903A1 (ko) | 2016-10-20 | 2018-04-26 | 엘지전자 주식회사 | 이동 로봇의 제어방법 |
KR20180043753A (ko) | 2016-10-20 | 2018-04-30 | 엘지전자 주식회사 | 이동 로봇 및 이동 로봇의 제어방법 |
WO2018074904A1 (ko) | 2016-10-20 | 2018-04-26 | 엘지전자 주식회사 | 이동 로봇 및 이동 로봇의 제어방법 |
US11561549B2 (en) | 2016-10-20 | 2023-01-24 | Lg Electronics Inc. | Method of controlling mobile robot |
KR20180043606A (ko) | 2016-10-20 | 2018-04-30 | 엘지전자 주식회사 | 이동 로봇의 제어방법 |
US11175676B2 (en) | 2016-10-20 | 2021-11-16 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
KR20180057029A (ko) * | 2016-11-21 | 2018-05-30 | 현대자동차주식회사 | 차량의 주행차로 추정 장치 및 방법 |
KR20190011576A (ko) | 2017-07-25 | 2019-02-07 | 엘지전자 주식회사 | 이동 로봇 |
KR20190075622A (ko) | 2017-12-21 | 2019-07-01 | 엘지전자 주식회사 | 인공지능을 이용한 이동 로봇 및 그 제어방법 |
US11119501B2 (en) | 2017-12-21 | 2021-09-14 | Lg Etectronics Inc. | Moving robot and control method for the same |
EP3502822A1 (en) | 2017-12-21 | 2019-06-26 | LG Electronics Inc. | Moving-robot and control method for the same |
CN109376208A (zh) * | 2018-09-18 | 2019-02-22 | 高枫峻 | 一种基于智能终端的定位方法、系统、存储介质及设备 |
US11055341B2 (en) | 2018-10-22 | 2021-07-06 | Lg Electronics Inc. | Controlling method for artificial intelligence moving robot |
EP3644154A1 (en) | 2018-10-22 | 2020-04-29 | LG Electronics Inc. | Controlling method for artificial intelligence moving robot |
US11709499B2 (en) | 2018-10-22 | 2023-07-25 | Lg Electronics Inc. | Controlling method for artificial intelligence moving robot |
WO2020197303A1 (en) | 2019-03-27 | 2020-10-01 | Lg Electronics Inc. | Mobile robot control method |
US11348276B2 (en) | 2019-03-27 | 2022-05-31 | Lg Electronics Inc. | Mobile robot control method |
US11400600B2 (en) | 2019-03-27 | 2022-08-02 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
Also Published As
Publication number | Publication date |
---|---|
KR101072876B1 (ko) | 2011-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101072876B1 (ko) | 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치 | |
US11668571B2 (en) | Simultaneous localization and mapping (SLAM) using dual event cameras | |
KR101725060B1 (ko) | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
KR101776621B1 (ko) | 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US10275649B2 (en) | Apparatus of recognizing position of mobile robot using direct tracking and method thereof | |
KR101708659B1 (ko) | 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법 | |
KR101784183B1 (ko) | ADoG 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
JP5444952B2 (ja) | センサフュージョンによる地図の自動生成、およびそのように自動生成された地図を用いて移動体の移動をするための、装置、方法、ならびにプログラム | |
KR20110122022A (ko) | 지도 생성 장치 및 방법 | |
Nair et al. | Moving obstacle detection from a navigating robot | |
US20220156973A1 (en) | Information processing apparatus, information processing method, and program | |
US8971576B2 (en) | Information processing apparatus and processing method thereof | |
CN113474819A (zh) | 信息处理装置、信息处理方法和程序 | |
Tamjidi et al. | 6-DOF pose estimation of a portable navigation aid for the visually impaired | |
JP6240706B2 (ja) | グラフマッチングおよびサイクル検出による自動モデル初期化を用いた線トラッキング | |
CN115371673A (zh) | 一种未知环境中基于Bundle Adjustment的双目相机目标定位方法 | |
US20210027456A1 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium for storing program | |
Cupec et al. | Global localization based on 3d planar surface segments | |
CN114973075A (zh) | 运动状态确定方法、装置、设备及存储介质 | |
Valiente et al. | View-based SLAM using Omnidirectional Images. | |
Wang et al. | Real-time visual odometry estimation based on principal direction detection on ceiling vision | |
JP2018014064A (ja) | 室内用自走式ロボットの位置測定システム | |
CN116558526A (zh) | 基于视觉slam的动态物体识别避障导航方法及系统 | |
KR20220085682A (ko) | 전방향 영상센서 및 관성측정센서의 자세추정 융합 방법 및 시스템 |
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: 20140804 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160105 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161005 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |