KR102403504B1 - 이동 로봇 및 그 제어 방법 - Google Patents

이동 로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR102403504B1
KR102403504B1 KR1020150166310A KR20150166310A KR102403504B1 KR 102403504 B1 KR102403504 B1 KR 102403504B1 KR 1020150166310 A KR1020150166310 A KR 1020150166310A KR 20150166310 A KR20150166310 A KR 20150166310A KR 102403504 B1 KR102403504 B1 KR 102403504B1
Authority
KR
South Korea
Prior art keywords
mobile robot
obstacle
map
position information
information
Prior art date
Application number
KR1020150166310A
Other languages
English (en)
Other versions
KR20170061373A (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 KR1020150166310A priority Critical patent/KR102403504B1/ko
Priority to EP16868904.0A priority patent/EP3367199B1/en
Priority to CN201680069236.8A priority patent/CN108290294B/zh
Priority to PCT/KR2016/013630 priority patent/WO2017091008A1/ko
Publication of KR20170061373A publication Critical patent/KR20170061373A/ko
Application granted granted Critical
Publication of KR102403504B1 publication Critical patent/KR102403504B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • 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/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0248Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • G06V20/36Indoor scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Multimedia (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명은3차원 영상을 이용한 이동 로봇의 위치 인식 및 지도 작성에 관한 기술에 관한 발명이다.
본 발명은 이동 로봇 주변의3차원 영상을 촬영하고 상기 촬영된 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하는 촬영부와 상기 촬영부에서 촬영한 3차원 영상을 이용하여 장애물을 감지하는 장애물 감지부, 상기 장애물 감지부에서 인식한 장애물의 영역을 제외한 영역내에서 관성센서(IMU)와 오드메트리(Odometry)를 이용하여 이동 로봇의 제 1위치 정보를 추정하는 위치 추정부와 상기 추출된 깊이(Depth) 영상 정보를 기초로 상기 추정된 이동 로봇의 제 1위치 정보를 보정하여 상기 이동 로봇의 제2위치 정보를 산출하고 상기 장애물 감지부에서 인식한 장애물의 영역을 제외한 지도를 작성하고 상기 로봇의 제 2위치와 상기 작성된 지도를 기초로 상기 로봇의 이동 경로를 계획하는 제어부를 포함하고 있다.
본 발명은 장애물 감지, 이동 로봇의 위치 인식 및 지도 작성과 경로 계획을 한꺼번에 할 수 있어 지도 작성을 위한 별도의 지도가 필요하지 않다. 또한 별도의 장애물 센서 없이 장애물을 인지할 수 있으며 장애물로 판별된 영역은 SLAM에 사용하지 않아 보다 빠르고 정확하게 SLAM을 수행할 수 있다.

Description

이동 로봇 및 그 제어 방법{Mobile Robot And Method Thereof}
본 발명은 이동 로봇 및 그 제어 방법에 관한 발명으로서 보다 상세하게는 3차원 공간 인식 센서를 이용하여 전방의 장애물을 파악하고 파악한 장애물의 정보를 이용하여 이동 로봇의 위치를 인식하고 동시에 지도를 작성하는 기술에 관한 발명이다.
일반적으로, 과거 로봇은 산업 기술 분야용으로 많이 개발되어 공장 자동화의 일부분으로 많이 사용되어 왔다. 그러나 최근에는 로봇을 응용한 분야가 더욱 확대되어 의료용 로봇, 우주 항공 로봇 등이 개발되었고, 일반 가정에서 사용할 수 있는 가정용 이동 로봇 또한 만들어지고 있다.
이동 로봇은 사용자의 조작 없이도 주행하고자 하는 영역을 자율적으로 이동하면서 사용자로부터 명령 받은 작업을 수행하는 로봇을 말한다. 그 예로는 청소 로봇, 텔레프레전스 로봇(telepresence robot), 경비 로봇(security robot) 등이 있다.
근래에는 이동 로봇을 이용한 응용 기술이 개발되고 있다. 예를 들어, 네트워크 기능을 가진 이동 로봇의 개발이 진행되어 사용자와 이동 로봇이 멀리 떨어져 있어도 제어 명령을 내릴 수 있거나 주변 상황을 모니터할 수 있는 기능들이 개발되고 있다. 또한 이동 로봇에 카메라나 장애물 감지 센서 등 각종 센서들을 이용하여 로봇의 위치를 인식하고 로봇의 이동 경로를 계획하는 기술도 개발되고 있다.
따라서 이러한 이동 로봇들이 자유롭게 이동하기 위해서는 로봇의 위치를 정확히 추적하고, 이동하는 구역에 대한 지도를 작성하는 것이 필수적이다. 명확한 지도가 작성되어야 이동 로봇의 경로를 계획하고 사람과의 통신 등의 작업을 수행할 수 있기 때문이다.
일반적으로 이동 로봇은 위치를 추정하기 위해 관성센서(IMU, Inertia Measurement Unit) 오드메트리(Odometry)를 이용하여 이동 로봇의 위치를 추정하고 지도를 작성하며 현대의 이동 로봇은 실시간으로 이동 로봇의 위치를 추정함과 동시에 지도를 작성하는 SLAM(Simultaneous Localization And Mapping) 기술을 많이 사용하고 있다.
그러나 종래 기술의 경우 SLAM을 수행하기 위해서는 영상 처리 알고리즘 및 3차원 좌표 추출 알고리즘이 따로 필요하며, 장애물을 감지하기 위해서 추가적인 장애물 센서가 필요하고 장애물 및 지형물 등 관리에 많은 계산량이 필요하다. 또한 이동 로봇의 경로를 계획하기 위해서는 별도의 지도를 구축해야 하는 문제점이 있었으며 장애물 감지, 이동 로봇의 위치 추정 및 이동 로봇의 경로 계획이 각각 독립적으로 이루어져 계산량이 많고 복잡한 문제가 있었다.
한국등록특허 KR 10-2012-0070291 A는 본원의 기초가 되는 보행 로봇 및 그의 동시 위치 인식 및 지도 작성 방법을 개시하고 있다.
본 발명은 상술한 문제점을 해결하기 위하여 개발된 발명으로서, 3차원 공간 인식 센서를 이용하여 장애물 감지를 하고 동시에 로봇의 위치 추정 및 지도 작성을 함으로써 보다 효율적으로 이동 로봇의 위치를 추정하고 지도를 작성하기 위함이다.
본 발명의 일 실시예에 따른 이동 로봇은 이동 로봇 주변의3차원 영상을 촬영하고 상기 촬영된 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하는 촬영부와 상기 촬영부에서 촬영한 3차원 영상을 이용하여 장애물을 감지하는 장애물 감지부와 상기 장애물 감지부에서 감지한 장애물의 영역을 제외한 영역 내에서 관성센서(Inertia Measurement Unit)와 오드메트리(Odometry)를 이용하여 이동 로봇의 제 1위치 정보를 추정하는 위치 추정부 및 상기 추정된 이동 로봇의 제 1위치 정보와 상기 추출된 깊이 영상(Depth Image) 정보를 이용하여 상기 이동 로봇의 제2위치 정보를 산출하고 상기 장애물 감지부에서 감지한 장애물의 영역을 제외한 지도를 작성하는 제어부를 포함할 수 있다.
상기 장애물 감지부는, 상기 촬영된 3차원 영상의 물체들 중에서 물체의 높이가 특정 평면의 높이보다 큰 경우에만 장애물로 감지할 수 있다.
상기 특정 평면은, 상기 로봇의 최하단부이거나 사용자가 특정 기하하적 평면으로 설정할 수 있다.
상기 특정 평면은, RANSAC(Random Sample Consensus) 방식을 이용하여 설정될 수 있다.
상기 장애물 감지부는 상기 감지된 장애물 중에서 움직임이 있는 장애물인 있는 경우 트래커(Tracker)를 이용하여 상기 감지된 장애물을 추적할 수 있다.
상기 제어부는, 상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하지 못하는 경우 상기 이동 로봇의 제 1위치 정보가 상기 이동 로봇의 제 2위치 정보가 될 수 있다.
상기 제어부는, 상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)와 기존에 저장되어 있는 지도를 이용하여 상기 이동 로봇의 제 2위치 정보를 산출할 수 있다.
상기 제어부는, 상기 이동 로봇의 제1위치 정보에 베이즈 필터를 사용한 확률 기반 필터링 방식을 이용하여 상기 이동 로봇의 제2위치 정보를 산출할 수 있다.
상기 베이즈 필터는, 칼만 필터(Kalman Filter), 확장 칼만 필터(Extended Kalman filter, EKF), 무향 칼만 필터(Unscented Kalman filter, UKF), 인포메이션 필터(Information filter), 히스토그람 필터(Histogram Filter) 및 파티클 필터(Particle Filter) 중 적어도 어느 하나를 포함할 수 있다.
상기 제어부는, 상기 이동 로봇의 제 2위치 정보에 대해 루프 클루져(Loop Closure)가 검출되면 상기 루프 클루져(Loop Closure)을 이용하여 지도를 보정할 수 있다.
상기 제어부는, 와이파이(Wi-Fi), 3D 정보, 비주얼 데이터(Visual Data), 도킹 스케이션(Doking Station) 중 적어도 어느 하나를 이용하여 루프 클루져(Loop Closure)를 감지할 수 있다.
상기 제어부는 상기 이동 로봇의 제 2위치 정보와 상기 작성된 지도를 기초로 상기 이동 로봇의 이동 경로를 계획하는 경로 계획부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 이동 로봇의 제어 방법은, 이동 로봇 주변의3차원 영상을 촬영하고 상기 촬영된 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하는 단계와 상기 촬영부에서 촬영한 3차원 영상을 이용하여 장애물을 감지하는 단계와 상기 장애물 감지부에서 감지한 장애물의 영역을 제외한 영역 내에서 관성센서(Inertia Measurement Unit)와 오드메트리(Odometry)를 이용하여 이동 로봇의 제 1위치 정보를 추정하는 단계와 상기 추정된 이동 로봇의 제 1위치 정보와 상기 추출된 깊이 영상(Depth Image) 정보를 이용하여 상기 이동 로봇의 제2위치 정보를 산출하는 단계와 상기 감지된 장애물의 영역을 제외한 지도를 작성하는 단계를 포함할 수 있다.
상기 장애물을 감지하는 단계는 상기 촬영된 3차원 영상의 물체들 중에서 물체의 높이가 특정 평면의 높이보다 큰 경우에만 장애물로 감지하는 단계를 더 포함할 수 있다.
상기 특정 평면은 상기 로봇의 최하단부이거나 사용자가 특정 기하하적 평면으로 설정할 수 있는 단계를 더 포함할 수 있다.
상기 특정 평면은RANSAC(Random Sample Consensus) 방식을 이용하여 설정될 수 있는 단계를 더 포함할 수 있다.
상기 장애물을 감지하는 단계는, 상기 감지된 장애물 중에서 움직임이 있는 장애물인 있는 경우 트래커(Tracker)를 이용하여 상기 감지된 장애물을 추적하는 단계를 더 포함할 수 있다.
상기 이동 로봇의 제2위치 정보를 산출하는 단계는, 상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하지 못하는 경우 상기 이동 로봇의 제 1위치 정보가 상기 이동 로봇의 제 2위치 정보가 되는 단계를 더 포함할 수 있다.
상기 이동 로봇의 제2위치 정보를 산출하는 단계는, 상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)와 기존에 저장되어 있는 지도를 이용하여 상기 이동 로봇의 제 2위치 정보를 산출하는 단계를 더 포함할 수 있다.
상기 이동 로봇의 제2위치 정보를 산출하는 단계는, 상기 이동 로봇의 제1위치 정보에 베이즈 필터를 사용한 확률 기반 필터링 방식을 이용하여 상기 이동 로봇의 제2위치 정보를 산출하는 단계를 더 포함할 수 있다.
상기 베이즈 필터는, 칼만 필터(Kalman Filter), 확장 칼만 필터(Extended Kalman filter, EKF), 무향 칼만 필터(Unscented Kalman filter, UKF), 인포메이션 필터(Information filter), 히스토그람 필터(Histogram Filter) 및 파티클 필터(Particle Filter) 중 적어도 어느 하나를 포함할 수 있다.
상기 지도를 작성하는 단계는, 상기 이동 로봇의 제 2위치 정보에 대해 루프 클루져(Loop Closure)가 검출되면 상기 루프 클루져(Loop Closure)를 이용하여 지도를 보정하는 단계를 더 포함할 수 있다.
상기 루프 클루져(Loop Closure)를 검출하는 단계는, 와이파이(Wi-Fi), 3D 정보, 비주얼 데이터(Visual Data), 도킹 스케이션(Doking Station) 중 적어도 어느 하나를 이용하여 루프 클루져(Loop Closure)를 감지하는 단계를 더 포함할 수 있다.
상기 이동 로봇의 제어 방법에 있어서 상기 이동 로봇의 제 2위치 정보와 상기 작성된 지도를 기초로 상기 이동 로봇의 이동 경로를 계획하는 단계를 더 포함할 수 있다.
본 발명은 장애물 감지, 이동 로봇의 위치 인식 및 지도 작성과 경로 계획을 한꺼번에 할 수 있어 지도 작성을 위한 별도의 지도가 필요하지 않으며 별도의 장애물 센서 없이 장애물을 인지할 수 있는 장점이 있다. 또한 장애물로 판별된 영역은 이동 로봇의 위치 인식 및 지도 작성에 사용하지 않아 보다 빠르고 정확하게 이동 로봇의 위치를 인식하고 지도 작성을 할 수 있다. 그리고 3차원 영상을 이용하기 때문에 기존의 2D 시스템에 비해 지도의 정밀도가 향상될 수 있으며 이를 이용한 지도 기반 로봇 서비스를 제공할 수 있다.
도1은 본 발명의 일 실시예에 따른 이동 로봇 시스템의 전체 구성을 나타낸 도면이다.
도2는 본 발명의 일 실시예에 따른 이동 로봇의 외관과 내부를 개략적으로 도시한 도면이다.
도 3은 본 발명의 기술 분야에 해당하는 이동 로봇의 위치 인식 및 지도 작성에 관한 종래 기술의 구조를 나타낸 도면이다.
도4는 본 발명의 일 실시예에 따른 이동 로봇의 구성을 나타낸 블록도이다.
도 5는 본 발명의 촬영부의 구성 요소에 해당하는 3차원 공간 인식 센서에 관한 구조를 도시한 도면이다.
도 6은 본 발명의 촬영부의 구성 요소에 해당하는 3차원 깊이 센서(Depth Image)의 구조를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 의한 이동 로봇의 현재 위치 추정 방법과 지도 작성하는 순서를 나타낸 순서도이다.
도 8은 본 발명에 해당하는 이동 로봇과 이동 로봇이 감지할 수 있는 영역 내에 존재 하는 장애물을 도시한 도면이다.
도9는 본 발명의 일 실시예에 따라 장애물을 감지하는 방법을 나타낸 도면이다.
도10은 본 발명의 일 실시예에 따라 기하학적 방법을 이용하여 기준 평면을 정하고 장애물을 감지하는 방법을 나타낸 도면이다.
도11은 본 발명의 일 실시예에 따른 RANSAC 방식을 적용하기 위한 가공하지 않은 실제 관측 데이터를 나타낸 도면이다.
도12는 도11의 데이터를 최소자승법을 이용하여 근사한 데이터를 나타낸 도면이다.
도13은 본 발명의 일 실시예에 따라 RANSAC 방식을 적용하여 근사한 데이터를 나타낸 도면이다.
도14는 본 발명의 일 실시예에 따라 RANSAC 방식을 적용하여 산출된 평면을 나타낸 도면이다.
도15는 본 발명의 일 실시예에 따라 움직이는 장애물을 감지하는 방법을 나타낸 도면이다.
도16은 본 발명의 일 실시예에 다라 이동 로봇이 3차원 영상을 획득하지 못하는 경우를 나타낸 도면이다.
도17은 본 발명의 일 실시예에 따라 이동 로봇이 파티클 기법을 사용하여 이동 로봇의 제2위치 정보를 산출하는 모습을 나타낸 도면이다.
도18은 본 발명의 일 실시예에 따라 지도 보정을 하기 전에 작성된 지도를 나타낸 도면이다.
도19는 본 발명의 일 실시예에 따라 Loop Closure을 검출하여 지도를 보정하는 순서를 나타낸 순서도이다.
도20은 본 발명의 일 실시예에 따라 이동 로봇의 실제 이동 경로와 추정된 이동 경로를 나타낸 도면이다.
도21은 본 발명의 일 실시예에 따라 최종적으로 획득된 지도를 나타낸 도면이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원 시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서의 각 도면에서 제시된 동일한 참조 번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성 요소를 나타낸다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, 본 명세서에서 사용한 "제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지는 않으며, 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1구성 요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1구성 요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
이하에서는 본 발명에 의한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시예에 의한 이동 로봇 시스템의 전체 구성을 도시한 도면이다.
도 1에서, 본 발명의 일 실시예에 의한 이동 로봇 시스템(1)은 일정 영역을 자율적으로 이동하면서 작업을 수행하는 이동 로봇(100)과, 이동 로봇(100)과 분리되어 이동 로봇(100)을 원격으로 제어하는 디바이스(200), 그리고 이동 로봇(100)과 분리되어 이동 로봇(100)의 배터리 전원을 충전하는 충전 스테이션(300)을 포함할 수 있다.
이동 로봇(100)은 사용자로부터 디바이스(200)의 제어 명령을 전달받아 제어 명령에 대응하는 동작을 수행하는 장치로, 충전 가능한 배터리를 구비하고, 주행 중 장애물을 피할 수 있는 장애물 센서를 구비하여 작업 영역을 자율적으로 주행하며 작업할 수 있다.
또한, 이동 로봇(100)은 카메라나 주위 환경을 인지할 수 있는 각종 센서들을 포함 할 수 있다. 따라서 이동 로봇(100)의 주변 환경에 대한 사전 정보가 없어도 자신의 위치를 스스로 인식하고, 자신의 주변 환경에 대한 정보로부터 지도를 작성하는 위치 인식(Localization)과 지도 작성(Map-building)의 과정을 수행할 수 있다.
디바이스(200)는 이동 로봇(100)의 이동을 제어하거나 이동 로봇(100)의 작업을 수행하기 위한 제어 명령을 무선으로 송신하는 원격 제어 장치에 해당한다. 따라서 디바이스(200)는 휴대폰(Cellphone, PCS phone), 스마트 폰(smart phone), 휴대 단말기(Personal Digital Assistants: PDA), 휴대용 멀티미디어 플레이어(Portable Multimedia Player: PMP), 노트북 컴퓨터(laptop computer), 디지털 방송용 단말기, 넷북, 태블릿, 네비게이션(Navigation) 등이 이에 해당할 수 있으며 이에 한정되지 않고 이동 로봇이 작업을 수행하기 위한 제어 명령을 무선으로 송신할 수 있는 장치이면 이에 해당할 수 있다.
이외에도, 디바이스(200)는 유무선 통신 기능이 내장된 디지털 카메라, 캠코더 등과 같이 여러 응용 프로그램을 이용한 다양한 기능의 구현이 가능한 모든 장치를 포함할 수 있다..
또한, 디바이스(200)는 간단한 형태의 일반적인 리모컨일 수 있다. 리모컨은 일반적으로 적외선 통신(IrDA, infrared Data Association)을 이용하여 이동 로봇(100)과 신호를 송수신한다.
또한, 디바이스(200)는 RF(Radio Frequency), 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 초광대역(Ultra-Wide Band: UWB) 통신 등 다양한 방식을 이용하여 이동 로봇(100)과 무선 통신 신호를 송수신할 수 있으며, 디바이스(200)와 이동 로봇(100)이 무선 통신 신호를 주고 받을 수 있는 것이면, 어느 방식을 사용하여도 무방하다.
또한, 디바이스(200)는 이동 로봇(100)의 전원을 온/오프를 제어하기 위한 전원 버튼과, 이동 로봇(100)의 배터리 충전을 위해 충전 스테이션(300)으로 복귀하도록 지시하기 위한 충전 복귀 버튼과, 이동 로봇(100)의 제어 모드를 변경하기 위한 모드 버튼 그리고 이동 로봇(100)의 동작을 시작하거나 정지시키기 위해서 제어 명령의 개시, 취소 및 확인을 위한 시작/정지 버튼과, 다이얼 등을 포함할 수 있다.
충전 스테이션(300)은 이동 로봇(100)의 배터리 충전을 위한 것으로, 이동 로봇(100)이 도킹되는 것을 안내하는 가이드 부재(미도시)가 마련되어 있고, 가이드 부재(미도시)에는 이동 로봇(100)에 구비된 전원부(130)를 충전시키기 위해 접속 단자(미도시)가 포함 될 수 있다.
도 2는 본 발명의 일 실시예에 의한 이동 로봇의 외관을 개략적으로 도시한 도면이다.
도 2를 참조하면, 이동 로봇(100)은 외관을 형성하는 본체(110)와, 본체(110)의 상부를 덮는 커버(120)와, 본체(110)를 구동시키기 위한 구동 전원을 공급하는 전원부(130)와, 본체(110)를 이동시키는 구동부(140)를 포함하여 구성될 수 있다. .
본체(110)는 이동 로봇(100)의 외관을 형성하는 한편, 그 내부에 설치되는 각종 부품들을 지지한다.
전원부(130)는 구동부(140) 및 그 외 본체(110)를 구동시키기 위한 각 부하와 전기적으로 연결되어 구동 전원을 공급하는 배터리를 포함할 수 있다. 배터리는 재충전이 가능한 2차 배터리로 마련될 수 있으며, 본체(110)가 작업을 완료하고 충전 스테이션(300)에 결합된 경우 충전 스테이션(300)으로부터 전력을 공급받아 충전된다.
또한, 전원부(130)는 배터리의 충전 잔량을 확인하고 배터리의 충전 잔량이 부족하다고 판단되면 충전 스테이션(300)으로부터 충전 전류를 공급받아 충전된다.
또한, 이동 로봇(100)의 본체(110) 전방에는 이동 로봇(100)이 이동하는 바닥 면의 상태에 따라 회전하는 각도가 변화하는 캐스터 휠(Caster Wheel)이 설치될 수 있다. 캐스터 휠은 이동 로봇(100)을 지지하여 이동 로봇(100)이 이동할 때 자세를 안정시키고 이동 로봇(100)의 추락 방지 등에 활용될 수 있다. 캐스터 휠은 롤러나 캐스터 형상의 휠로 구성될 수 있다.
구동부(140)는 본체(110)의 중앙부 양측에 각각 마련되어 본체(110)가 작업을 수행하는 과정에서 전진, 후진 및 회전주행 등의 이동 동작이 가능하도록 할 수 있다.
양 구동부(140)는 사용자로부터 특정 명령을 받거나 스스로 자유 주행을 하는 경우 전진 또는 후진 방향으로 각각 회전하여 이동 로봇(100)이 전진 또는 후진하거나 회전할 수 있도록 한다. 예를 들면 양 구동부(140)를 전진 또는 후진 방향으로 회전시켜 이동 로봇(100)이 전진 또는 후진 주행하도록 한다. 또한 좌측 구동부(140)를 후진 방향으로 회전시키는 동안 우측 구동부(140)를 전진 방향으로 회전시켜 이동 로봇(100)이 전방을 기준으로 좌측 방향으로 회전하도록 하고, 우측 구동부(140)를 후진 방향으로 회전시키는 동안 좌측 구동부(140)를 전진 방향으로 회전시켜 이동 로봇(100)이 전방을 기준으로 우측 방향으로 회전하도록 한다.
지금까지 이동 로봇(100)의 일반적인 구조 및 동작 원리에 대해 알아보았다. 이하 이동 로봇(100)의 위치 인식 및 지도 작성에 관한 종래 기술을 간단히 알아보고 종래 기술의 문제점을 해결한 본 발명의 특징에 대해 자세히 알아본다.
도 3은 위치 인식 및 지도 작성을 하는 로봇의 종래 구조를 간단히 나타난 도면이다.
일반적으로 현대 이동 로봇은 SLAM이라는 방식을 이용하여 이동 로봇(100)의 위치를 인식하고 지도를 작성한다. SLAM은 Simultaneous Localization And Mapping의 약자로서, 이동 로봇의 위치를 실시간으로 추정하고 동시에 지도를 작성하는 기술을 말한다.
도 3을 참조하면, 종래 이동 로봇의 경우 시각 센서(Visual Sensor)와 위치 추정 센서(Dead Reckoning Sensor)로부터 이동 로봇의 위치와 장애물에 관한 정보를 얻고 이를 이용하여 SLAM을 수행한다.
그러나 종래 기술의 경우, SLAM을 수행하기 위해서는 영상 처리 알고리즘 및 3차원 좌표 추출 알고리즘이 따로 필요하며, 장애물을 감지하기 위해서 추가적인 장애물 센서가 필요하고 장애물 및 지형물 등 관리에 많은 계산량이 필요하다. 그리고 이동 로봇의 경로를 계획하기 위해서는 별도의 지도를 구축해야 하는 문제점이 있었다.
즉, 장애물을 감지하는 단계와 이동 로봇의 위치를 추정하는 단계 그리고 이동 로봇의 경로를 계획하는 단계가 각각 독립적으로 이루어지기 때문에 계산량이 많고 복잡한 문제가 있었다.
따라서 본 발명은 이러한 문제점을 해결하기 위해 고안되었으며 이러한 과정들을 독립적으로 수행하지 않고 동시에 수행하여 간편히 SLAM수행할 수 있다는 것에 특징이 있다.
즉, 본 발명의 경우 비주얼 센서가 아닌 3차원 센서를 사용하기 때문에 별도의 장애물 센서 필요 없이 바로 장애물을 감지하고 SLAM을 수행할 수 있으며, 판별된 장애물 영역은 이동 로봇의 위치 추정 및 지도를 작성하는데 사용하지 않기 때문에 SLAM을 보다 효과적으로 수행할 수 있다.
또한 3차원 깊이 센서(Depth Sensor)를 이용하여 SLAM을 수행할 수 있어 경로 계획을 위한 별도의 지도 작성이 필요 없으며 3차원 내비게이션(Navigation) 시스템이므로 기존의 2D 시스템에 비해 지도의 정밀도가 향상 될 수 있다.
도4는 본 발명의 일 실시예에 따라 위치 인식 및 지도 작성을 하는 이동 로봇(100) 관한 제어 구성도이다.
도 4을 참조하면, 본 발명은 촬영부(200), 장애물 감지부(300), 위치 추정부(400), 및 제어부(500)를 포함할 수 있으며 촬영부(200)는 3차원 공간 인식 센서(210)와 3차원 깊이 센서(Depth Sensor)를, 위치 추정부(400)는 관성센서부(IMU, 410)와 오드메트리부(Odometry, 420)를, 제어부(500)는 위치 보정부(510), 지도 작성부(520), 경로 계획부(530) 및 저장부(540)를 더 포함 할 수 있다.
촬영부(200)부는 이동 로봇(100)의 전면에 설치되어 이동 로봇의 주위 환경을 촬영하는 역할을 한다.
따라서 이동 로봇(100)의 주위 환경을 촬영할 수 있는 카메라 및 센서 등이 구비 될 수 있으며 실시간으로 이동 로봇(100)이 이동하는 공간의 전방위 영상을 촬영하여 장애물 감지부(300) 및 위치 추정부(400)에 촬영한 영상을 제공한다.
3차원 공간 인식 센서로는 KINECT(RGB-D 센서), TOF(Structured Light Sensor), 스테레오 카메라(Stereo Camera) 등이 사용될 수 있으며 이에 한정되지 않고 비슷한 기능을 할 수 있는 다른 장치들도 포함될 수 있다.
도 5는 촬영부(200)의 구성 요소에 해당하는 일반적인 3차원 공간 인식 센서(3 Dimension Laser Range Finder Sensor)의 일반적인 구조를 도시한 도면이다.
3차원 공간 인식 센서(210)란, 광원으로부터 방출된 광원이 물체에 맞아서 다시 되돌아 왔을 때 그 신호를 센서를 통하여 검출한 후 일련의 수치적 계산을 하여 거리를 판단하는 센서를 말한다. 일반적인 3차원 공간 인식 센서(200)는 빛의 방사 및 입사 경로 상에 설치되는 반사경의 회전과, 수직 진동, 피치(Pitch)각 진동을 통하여 3차원적인 거리 측정을 할 수 있다.
도 5를 참조하면, 3차원 공간 인식 센서(210)는 광원 및 센서 등으로 구성되어 있는 LRF(Laser Range Finder) 구조물(212)과 방출광 및 입사광을 반사시키는 반사경(211)과 상기 반사경을 회전시키기 위한 회전수단을 포함하는 회전수단(미도시)과 상기 반사경을 기울기를 조절하는 상하 이동수단(미도시)과, 거리 측정에 사용되는 방출광을 상기 반사경의 반사를 통해 방출하고 상기 물체로부터 되돌아 오는 입사광을 상기 반사경의 반사를 통해 수신하는 스캐닝을 수행하는 본체(214)를 포함하고 있다. 또한 반사경(211)의 회전수단 및 반사경의 기울기를 조절하기 위해 별도의 구동부(213)를 구비하고 있다.
이와 같은 3차원 공간 인식 센서(210)는 이동 로봇(100)의 외부에 장착되는 구조로 설치될 수 있으며, 복수개가 설치될 수 있으며 각 3차원 공간 인식 센서(210)에 구비된 광원, 센서 및 반사경(211) 또한 복수 개가 설치될 수 있다.
도 6은 촬영부(200)의 구성 요소에 해당하는 3차원 깊이 센서(Depth Sensor)의 일반적인 구조를 도시한 도면이다.
3차원 깊이 센서(220)란, 적외선을 이용하여 깊이 영상 정보(Depth Image)를 검출하는 센서를 말한다. 발광부에서 적외선을 물체에 발광하면 물체의 의해 적외선이 반사되어 수광부로 돌아오는데, 이 시간 차이를 이용하여 센서와 물체 사이에 거리, 즉, 깊이 정보(Depth Image)를 얻을 수 있다. 이러한 방식을 일반적으로 TOF(Time Of Flight, 적외선의 수광 및 반사 시간을 이용한 계산)방식이라 부른다.
도6를 참조하면, 3차원 깊이 센서(220)는 적외선을 물체에 발광시키는 발광부(221)와 물체에 의해 반사되는 적외선을 수광하는 수광부(226), 복수의 깊이 픽셀들(검출기들 또는 센서들; 227)이 배열된 픽셀 어레이(228) 등을 포함하고 있으며 그 외 로우 디코더(Row Decoder, 222), 적외선의 발광 시간을 제어하는 타이밍 컨트롤러(T/C, 223), 포토 게이트 컨트롤러(PG CON, 224) 및 촬영한 깊이 영상 정보를 저장하는 저장부(225) 등을 포함할 수 있다.
따라서, 3차원 깊이 센서(220)는 이러한 정보를 통하여 물체와 센서간의 거리가 어떠한지 판단할 수 있으므로 판단된 거리를 이용하여 좀 더 정확한 로봇의 위치와 지도 보정을 수행할 수 있다. 이러한 보정 기능에 대해서는 후술하도록 한다.
장애물 감지부(300)는, 상기 3차원 공간 인식 센서(210)로부터 획득한 영상 정보를 분석하여 이동 로봇(100) 주변의 장애물을 감지한다. 여기서 장애물은 이동 로봇(100)의 주행 범위 내에서 특정 평면 이상으로 존재하는 모든 물건을 의미하는 것으로, 예를 들어 문턱, 가구, 사람, 동물 등이 포함될 수 있다. 장애물을 인지하는 자세하는 방법에 대해서는 후술 하도록 한다.
장애물 감지부(300)는 3차원 공간 인식 센서(210)에서 방출된 빛이 장애물을 맞고 되돌아 오는 반사 신호를 수신하여 장애물의 존재 여부를 판단하고, 3차원 공간 인식 센서(200)에 의한 거리 계측 신호를 통해 장애물의 근접 여부 등을 판단한다. 그리고 감지된 장애물의 정보를 위치 추정부(400) 및 제어부(500)로 보내는 역할을 할 수 있다.
위치 추정부(400)는 관성센서부(IMU, 410)와 오도메트리부(Odometry, 420)를 포함하며 장애물 감지부(300)로부터 받은 장애물에 관한 정보를 기초로 관성 센서부(410)와 오드메리트리(420)부로 부터 받은 정보를 이용하여 이동 로봇(100)의 현재 위치(이하 '제 1위치 정보'라 한다)를 추정할 수 있다.
관성센서부(410)는 관성센서(Inertia Measurement Uint)를 이용하여 이동 로봇(100)의 위치를 추정할 수 있다.
관성센서(IMU)란, 움직이는 대상의 관성력을 검출한 후 움직이는 물체의 가속도, 속도 방향, 거리 등 다양한 운동 정보를 측정할 수 있는 센서를 말하며 물체에 인가되는 가속도에 의해 관성체에 작용하는 관성력을 검출하는 원리로 작동된다.
관성 센서는 가속도계와 각속도계(Gyros Cope)로 분류될 수 있으며, 레이저를 이용한 방식과 비기계식 방식 등 여러 가지 방식으로 작동된다.
따라서 관성센서부(410)는 관성 입력을 이용한 관성 센서 예를 들어, 가속도 센서, 관성 센서, 지자기 센서 등을 포함할 수 있으며 가속도 센서는 압전형 가속도 센서, 정전 용량형 가속도 센서, 스트레인 게이지형 가속도 센서 등 중 적어도 어느 하나를 포함할 수 있다.
오도메트리부(420)부는 오도메트리(Odometry) 정보를 이용하여 이동 로봇(100)의 현재 위치와 방향을 추정할 수 있다.
오도메트리(Odometry)란 이동 로봇(100)의 위치 및 방향을 인식하는 방법을 말하는 것으로서, 다른 이름으로는 자율 항법이라고 부르기도 한다.
오도메트리(Odometry)가 적용된 이동 로봇(100)은 주행거리계(Odometer) 또는 휠 센서(Wheel Sensor)를 이용하여 이동 로봇(100)의 속도 정보를 얻고 자성 센서 등을 이용하여 이동 로봇(100)의 방위 정보를 얻은 후 이동 로봇(100)의 초기 위치에서 다음 위치까지의 이동 거리 및 방향에 대한 정보를 계산하여 이동 로봇(100)의 위치와 방향을 판단할 수 있다.
오도메트리(Odometry)는 외부로부터 별도의 정보를 받을 필요 없이 자체적으로 발생하는 정보만을 이용하여 이동 로봇(100)의 위치를 판단할 수 있어 비교적 구성이 간단하다. 그리고 오도메트리(Odometry)는 매우 높은 샘플링 속도로 이동 로봇(100)의 위치 정보를 획득하기 때문에 위치 정보의 업데이트가 빠르다. 뿐만 아니라 비교적 짧은 거리에서는 정확도가 매우 높으며 비용 또한 저렴하다.
위치 추정부(400)는 관성센서부(410)와 오도메트리부(420)에서 획득한 이동 로봇(100)에 관한 정보를 기초로 장애물 감지부(300)에서 수신 받은 장애물에 관한 영역을 제외하고 이동 로봇(100)의 제 1위치 정보를 추정한다. 장애물에 관한 영역을 제외하는 이유는 이동 로봇(100)은 장애물 영역을 통과할 수 없으므로 위치 추정의 대상이 되는 공간 내에서 장애물의 영역을 제외할 수 있다. 장애물의 영역을 제외하면 이동 로봇(100)의 위치 추정 범위가 작아지므로 보다 효율적으로 이동 로봇(100)의 위치를 추정할 수 있다.
위치 추정부(400)는 이러한 과정을 거쳐 추정된 이동 로봇(100)의 제 1위치 정보를 제어부(500)로 보낼 수 있다.
제어부는(500) 장애물 감지부(300)로부터 장애물에 관한 정보와 위치 추정부(400)로부터 이동 로봇(100)의 제 1위치 정보를 수신 받고 이를 기초로 이동 로봇(100)의 위치를 보정하여 보다 정확한 현재 이동 로봇(100)의 위치(이하 '제2위치 정보'라 한다) 산출할 수 있다.
그리고 추정한 이동 로봇(100)의 제2위치 정보와 장애물에 관한 영역을 이용하여 지도를 작성할 수 있으며 상기 이동 로봇(100)의 제 2위치 정보와 작성된 지도를 기초로 이동 로봇(100)이 움직일 경로를 계획할 수 있다.
또한, 추정된 이동 로봇(100)의 위치 정보와 작성된 지도를 저장하는 역할을 할 수 있다.
따라서 제어부(500)는 이동 로봇(100)의 제 2위치 정보를 산출하는 위치 보정부(510), 수신 받은 장애물에 관한 정보와 이동 로봇(100)의 제 2위치 정보를 기초로 지도를 작성하는 지도 작성부(520), 이동 로봇(100)의 제 2위치 정보와 작성된 기초로 앞으로 이동 로봇(100)이 움직일 경로를 계획하는 경로 계획부(530) 및 이동 로봇(100)의 위치 정보와 작성된 지도를 저장하는 저장부(540)를 포함할 수 있다.
위치 보정부(510)는 수신 받은 이동 로봇(100)의 제 1위치 정보를 보다 정확하게 보정하는 역할을 할 수 있다.
추정된 이동 로봇(100)의 제 1위치 정보를 보정하는 이유는 오도메트리(Odometry)는 적분을 통해 위치와 방향을 계산하기 때문에 주행 거리가 증가할수록 측정 오차가 누적(Incremental)되어 실제 이동 로봇(100)의 위치와 추정된 위치가 크게 달라질 수 있다.
또한, 관성센서부(410)를 통하여 얻은 정보 또한 오차를 가지고 있기 때문에 보다 정확한 이동 로봇(100)의 위치를 추정하기 위해서는 제 1위치 정보를 보정할 필요가 있다.
따라서, 위치 보정부(510)는 상기 3차원 깊이 센서(200)에서 검출한 깊이 영상의 정보와 저장부(500)에 저장되어 있는 기존의 지도와 비교하여 이동 로봇(100)의 제 1위치 정보를 보정하여 이동 로봇(100)의 제 2위치 정보를 산출할 수 있다.
이동 로봇(100)의 위치를 보정하는 방법은, 이동 로봇(100)의 제 1위치 정보 주변에 파티클(Particle)을 뿌린 후, 각 파티클에 해당하는 매칭 스코어(Matching Score)를 계산하여 가장 확률적으로 가능성이 높은 곳으로 이동 로봇(100)의 위치를 보정하여 이동 로봇(100)의 제 2위치 정보를 산출한다.
위치 보정부(510)는 확률 기반 필터링 방식에 따라 이동 로봇(100)의 위치를 보정하므로 파티클 필터를 포함할 수 있으며, 파티클 필더와 비슷한 기능을 할 수 있는 칼만 필터(Kalman Filter), 확장 칼만 필터(Extended Kalman filter, EKF), 무향 칼만 필터(Unscented Kalman filter, UKF), 인포메이션 필터(Information filter), 히스토그람 필터(Histogram Filter) 등 중 적어도 어느 하나를 포함할 수 있다. 상기 보정 방법 및 파티클 필터에 대한 자세한 설명은 도17에서 설명하도록 한다.
지도 작성부(520)는 위치 보정부(510)에서 산출된 이동 로봇(100)의 제 2위치 정보와 장애물 감지부(300)에서 감지한 장애물의 정보 및 3차원 공간 인식 센서(210)로부터 얻은 3차원 영상을 이용하여 지도를 작성할 수 있다.
지도 작성부(520)는 장애물 감지부(300)에서 감지한 장애물의 영역을 제외하고 지도를 작성할 수 있다. 장애물로 판별된 지역은 이미 장애물로 감지되었기 때문에 지도를 작성하는데 사용하지 않는다. 따라서 보다 효율적으로 지도를 작성할 수 있다.
또한 지도 작성부(520)는 SLAM에 의해 작성된 지도를 보다 정확한 지도로 만들기 위해 지도 왜곡의 보정, 즉 Pose Graph Optimization을 수행할 수 있다. 파티클 필터 기반의 SLAM은 지도 작업을 수행하는 공간이 커지면 지도에 왜곡이 발생할 수 있기 때문이다.
따라서 지도 작성부(520)는 이러한 왜곡을 방지하기 위해 일정 간격으로 이동 로봇(100)의 위치와 이동 로봇(100) 주의 3차원 영상을 스캔하면서 이동 로봇(100)의 이동 경로(Pose Graph)를 갱신한다. 그리고 이러한 정보를 이용하여 이동 로봇의 경로가 닫힌 경우(Loop Closure)가 검출이 되면 Pose Graph의 최적화(Opitimzation)을 수행하여 지도의 왜곡을 최소화한다. 상기 과정에 대한 자세한 설명은 후술하도록 한다.
지도 작성부(520)는 와이파이(Wi-Fi), 3D 영상, Visual Data, 도킹 스테이션(Docking Station) 중 적어도 어느 하나를 이용하여 닫힌 경로(Loop Closure)를 검출할 수 있으며, 상기 과정을 수행하도록 와이파이 통신 모듈, 도킹스테이션을 하기 위한 각종 장치들을 포함할 수 있다.
저장부(530)는 이동 로봇(100)에 관한 전반적인 정보, 즉 이동 로봇(100)이 동작하는 환경의 지도와, 이동 로봇(100)의 동작을 위한 운영 프로그램과 주행 패턴, 주행 과정에서 획득한 이동 로봇(100)의 위치 정보와 장애물 정보 등을 저장하는 역할을 할 수 있다.
그리고 상기 이러한 정보들은 지도 작성부(520)가 Pose Graph의 최적화(Optimzation)를 수행할 때 지도 작성부(520)로 보내질 수 있다.
따라서, 저장부(530)는 각종 정보를 저장하기 위한 저장 매체, 롬(Read Only Memory; ROM), 피롬(Programmable Read Only Memory; PROM), 이피롬(Erasable Programmed Read Only Memory; EPRM), 플레시 메모리(flash memory)와 같은 비활성 메모리 소자, 램(Random Access Memory; RAM)과 같은 휘발성 메모리 소자 또는 하드디스크(hard disc), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 광 디스크와 같은 저장 매체를 구비할 수 있다. 그러나 저장부(160)는 이에 한정되지 않으며 설계자가 고려할 수 있는 다양한 저장 매체가 사용될 수 있다.
지금까지 본 발명에 해당하는 이동 로봇(100)의 구성에 대해 알아보았다. 이하 본 발명의 특징인 이동 로봇(100) 위치 인식 및 지도 작성에 관한 알고리즘에 대해 알아본다.
도 7은 본 발명의 일 실시예에 의한 이동 로봇(100)의 현재 위치 추정 방법과 지도를 작성하는 순서를 나타낸 순서도이다.
이동 로봇(100)이 움직이면, 이동 로봇(100)은 3차원 공간 인식 센서를 이용하여 이동 로봇(100)의 주위 환경을 촬영하여 3차원 영상을 획득하며 동시에 3차원 영상에 대한 깊이 정보(Depth Image)를 추출한다.(S100)
3차원 영상은 실시간으로 획득 될 수 있으며 단순히 이동 로봇(100)의 전방뿐만 아니라 측면 및 후방까지도 자유롭게 촬영하여 3차원 영상을 획득할 수 있다.
또한, 동시에 촬영부(200)에 구비된 3차원 깊이 센서(220)는 상기 3차원 공간 인식 센서가 촬영한 구역을 같이 촬영하여 상기 구역에 대한 깊이 영상 정보(Depth Image)를 검출할 수 있다.
상기 촬영된 깊이 영상 정보는 추정된 이동 로봇(100)의 제 1위치 정보를 보정하여 이동 로봇(100)의 제 2위치 정보를 산출하는데 이용될 수 있다.
3차원 영상이 획득되면 획득한 영상을 분석하여 이동 로봇(100) 주변에 위치한 장애물을 감지한다.(S200)
장애물을 감지하는 방법은 획득한 3차원 영상을 바닥을 분할한 후 특정 평면 이상으로 존재하는 물체들에 대해서만 장애물로 인식하여 장애물의 영역을 판단할 수 있다. 장애물을 감지하고 장애물로 판별하는 과정에 대해서는 도 8 ~ 도 16에서 자세히 설명하도록 한다.
장애물의 영역이 감지되면 감지된 장애물의 영역을 제외하고 오도메트리(Odometry)와 관성센서(IMU)를 이용하여 로봇의 현재 위치 즉, 이동 로봇(100)의 제 1위치 정보를 추정한다.(S300)
전술한 바와 같이, 장애물의 영역을 제외하는 이유는 장애물이 존재하는 영역은 이동 로봇(100)이 주행할 수 없으므로 처음부터 장애물의 영역은 이동 로봇(100)이 위치할 수 없는 영역으로 지정해 놓아서 이동 로봇(100)의 위치 추정을 보다 정확하고 빠르게 할 수 있다.
S300 과정에 의해 이동 로봇(100)의 제 1위치 정보가 추정되면 상기 3차원 깊이 영상 정보(Depth Image)를 이용하여 이동 로봇(100)의 현재 위치를 보정한다. 즉, 이동 로봇(100) 제 1위치 보다 정확한 이동 로봇(100)의 제2위치 정보를 산출한다.(400)
상기 보정하는 방법은 전술한 바와 같이 추정된 이동 로봇(100)의 제 1위치 정보 주변에 파티클(Particle)을 뿌린 후, 각 파티클에 해당하는 매칭 스코어(Matching Score)를 계산하여 가장 확률적으로 가능성이 높은 곳으로 이동 로봇(100)의 위치를 보정한다. 이 방법에 대한 자세한 설명은 도 17에서 설명하도록 한다.
이동 로봇(100)의 제 2위치 정보가 산출되었다면, 감지된 장애물의 영역을 제외한 후 이동 로봇(100)이 이동할 수 있는 지도를 작성한다.(S500)
일반적으로, SLAM이라 불리는 이 과정은 3차원 공간 인식 센서(210)로부터 획득한 영상 및 이동 로봇(100)의 제 2위치 정보를 기초로 이루어질 수 있다.
S500 과정에 의해 지도가 작성되었다면 지도의 왜곡을 보정하는 지도 보정 작업(Pose Graph Optimzation)이 수행될 수 있다.(S600)
전술한 바와 같이 파티클 필터 기반의 SLAM은 지도 작업을 수행하는 공간이 커지면 지도에 왜곡이 발생할 수 있으므로 지도의 보정 작업이 꼭 필요하다.
이동 로봇(100)은 주행을 시작하면, 이동 로봇(100)의 위치와 이동 로봇(100) 주위의 3차원 영상을 스캔하면서 이동 로봇(100)의 이동 경로(Pose Graph)를 갱신한다. 그리고 이러한 정보를 이용하여 이동 로봇의 경로가 닫힌 경우(Loop Closure)가 검출이 되면 Pose Graph의 최적화(Opitimzation)을 수행하여 지도의 왜곡을 최소화한다. 상기 과정에 대한 자세한 설명은 도18 ~도 20에서 설명하도록 한다.
작성된 지도의 왜곡 보정이 이루어져 지도가 완성이 되면 이동 로봇(100)의 제 2위치 정보와 완성된 지도를 이용하여 이동 로봇(100)의 최적화된 이동 경로를 계획한다.(S800)
지금까지 도 7을 통하여 본 발명의 특징인 이동 로봇(100)의 위치 추정과 지도 작성에 대해 개략적으로 알아보았다. 이하 도면을 통하여 특정 순서들에 대해 자세히 알아보도록 한다.
도 8부터 도 15는 장애물을 감지하는 방법 즉, S200에 대한 과정을 자세히 설명한 도면이며, 도16과 도17은 이동 로봇(100)의 위치를 추정하는 단계(S300,S400)를 설명한 도면이다. 도 18 ~ 도21은 작성된 지도를 보정하는 단계(S600)을 자세히 설명한 도면이다.
도 8은 이동 로봇(100)과 이동 로봇(100)이 감지할 수 있는 영역 내에 존재 하는 장애물을 도시한 도면이다.
전술한 바와 같이 장애물은 이동 로봇의 주행 범위 내에서 특정 평면 이상으로 존재하는 모든 물건을 의미하는 것으로, 예를 들어 문턱, 가구, 사람, 동물 등이 포함될 수 있다.
그리고 장애물의 기준을 특정 평면 이상의 높이를 가지고 있는 물체로 기준을 정한 것은 이동 로봇(100)의 주행을 방해 하지 않는 작은 물체까지도 장애물로 감지하면 이동 로봇(100)의 주행을 방지하고 지도를 작성하는데도 데이터 양이 많아 많은 시간이 걸리기 때문이다.
도 8을 참조하면, 특정 구역 안에 존재하는 이동 로봇(100)의 앞에 다섯 가지의 물체가 존재하는 것을 알 수 있다.(A, B, C, D, E) 그리고 상기 다섯 가지의 물체들은 모두 3차원 공간 인식 센서(210)가 인식할 수 있는 범위 내에 존재한다.. 후술하는 도면들은 도면 8에 존재하는 물체들(A, B, C, D, E)을 기준으로 설명하도록 한다.
도 9은 도8에 해당하는 공간에서 이동 로봇(100)이 장애물을 감지하는 방법에 대한 알고리즘을 도시한 순서도이다..
이동 로봇(100)은 3차원 공간 인식 센서(210)를 이용하여 이동 로봇(100) 전방의 3차원 영상을 획득하고 획득한 영상 내에 존재하는 모든 물체들을 인식한다.(S210)
다만, 전술한 바와 같이 인식할 수 있는 모든 물체가 장애물이 되는 것은 아니므로 이동 로봇(100)은 바닥 분할 방식을 이용하여 장애물에 해당하는 물체들만 장애물로 인식한다.(S220)
바닥 분할 방식이란, 특정 평면 기준을 정한 후 이동 로봇(100)이 인식한 모든 물체들의 높이가 상기 특정 평면보다 높은 물체들만 장애물로 판별하는 것을 말한다.
여기서 바닥 분할 방식은 2가지를 사용할 수 있으며 하나는 기하학적 정보를 이용하여 정하는 방법과 RANSAC(Random Sample Consensus) 방식을 이용하여 정할 수 있으며 상기 방법에 대한 자세한 설명은 후술하도록 한다.
바닥 분할 방식을 이용하여 기준 평면이 정해지면 기준 평면에 따라 선택되어진 장애물만이 장애물로 판별한다.(S230)
그리고 장애물로 판별된 물체들을 Point Cloud을 이용하여 표현한 후 같은 장애물로 인식하기 위해 3D Grouping 및 Labeling을 수행하여 장애물에 관한 정보를 획득한다.(S240, S250)
상기 3D Grouping 및 Labeling을 하는 이유는 장애물은 항상 정적이지 않고 동적일 수 있기 때문에 Labeling을 함으로써, 이동하는 장애물을 쉽게 추적하기 위함이다. 동적 장애물을 추적하는 방법으로 트래커(Tracker)를 이용할 수 있다. 동적 장애물에 관한 설명은 도 15에서 설명하도록 한다.
도 10 ~ 도 14는 바닥 분할 방식, 즉 S220에 관해서 설명하기 위한 도면으로서, 도10은 기하학적 방법을 이용하여 기준 평면을 정하는 방법을 도시하였으며, 도 11 ~ 도14는 RANSAC 방식을 이용하여 정해지는 기준 평면을 설명하기 위한 도면이다.
도 10은 도 9 한 측면에서 이동 로봇(200)과 장애물을 바라본 사시도이다.
도 10을 참조하면, 이동 로봇(100)은 이동 로봇(100) 전방에 설치된 3차원 공간 인식 센서(200)를 통하여 이동 로봇 앞에 존재하는 물체들을 감지할 수 있는데 여기서 기하학적 방법이란, 3차원 공간 인식 센서를 기준으로 특정 높이를 지정하여 그 높이에 해당하는 평면을 특정 평면으로 설정하는 것을 말한다.
도 10에서 3차원 공간 인식 센서(210)가 존재하는 위치에 해당하는 수평선(h)가 있다고 하면, 상기 수평선을 기준으로 일정 거리(d1 또는 d2) 아래에 있는 위치에 존재하는 평면이 장애물을 결정하는 기준 평면이 될 수 있다.
만약, h에서 d1만큼 아래에 있는 높이에 장애물을 정하는 기준 평면이 설정된다면 물체 A(310)의 높이는 그 기준 평면보다 낮으므로 장애물로 인식되지 않는다. 그러나 B(320), C(330), D(340), E(350) 물체들의 높이는 상기 기준 평면보다 높으므로 B(320), C(330), D(340), E(350) 물체들은 장애물로 인식될 수 있다.
만약, h에서 d2만큼 아래에 있는 높이에 장애물을 정하는 기준 평면이 설정된다면 A(310), B(320) 물체는 그 기준 평면보다 아래에 존재하므로 장애물로 인식되지 않는다. 그러나 C(330), D(340), E(350) 물체들의 높이는 상기 기준 평면보다 높으므로 C(330), D(340), E(350) 물체들은 장애물로 인식된다.
상기 기준선은 일반적으로 이동 로봇(100)이 주행하는데 방해가 되지 않는 물체들은 장애물로 인식되지 않을 수 있는 높이로 설정될 수 있으며 사용자가 원하는 높이로 설정할 수 있다.
도 11 ~ 도14는 장애물을 감지하기 위한 평면을 설정하는 또 다른 방법인 RANSAC 방식을 설명하기 위한 도면이다.
도 11는 실제 관측 데이터를 표현한 그래프이고 도 12는 최소 자승법을 이용하여 근사한 결과를, 도13은 RANSAC 방식을 이용하여 근사한 결과를 나타낸 도면이다. 그리고 도 14는 RANSAC 방식을 이용하여 결정된 평면을 표시한 도면이다.
RANSAC 방식이란, Random Sample Consensus의 약자로서, 무작위로 샘플 데이터를 선정한 다음에 최대로 컨센시스가 형성되는 데이터를 선택하는 방법을 말한다.
더 자세히 설명하면, 무작위로 샘플 데이터를 몇 개 뽑은 후에 이 샘플 데이터들을 만족하는 모델 파라미터를 구하고 구한 모델과 가까이에 있는 데이터들의 개수를 계산하여 그 개수가 크다면 이 모델을 기억해 둔다. 그리고 이러한 과정을 N번 반목한 후 가장 일치 비율이 높은 모델을 최종 결과로 반환하여 표현한다.
최소자승법을 사용하는 것이 RANSAC 방식을 사용하는 것보다 더 간편하지만 최소자승법은 데이터가 오차가 별로 없거나 노이즈(Noise)가 별로 없는 경우 좋은 결과가 나오지만 도 11처럼 노이즈가 많아 데이터 자체가 틀어져 버린 경우 도 12처럼 실제 데이터와 별로 일치하지 않는 결과가 나온다. 그러나 RANSCA 방식을 이용하여 근사시키면 도 13처럼 깔끔한 결과를 얻을 수 있다.
도 14에 도시한 바와 같이 평면을 추출하는 것은 세그멘테이션된 픽셀들, 즉, 픽셀 집합과 대응하는 포인클라우드에 대해 RANSAC 방식을 이용하여 평면의 초기 모델을 생성한다. 여기서 평면에 수직한 백터를 표현하기 위한 두개의 각도 피라미터(α,β)와 평면의 원점으로부터의 수직 거리(d)를 이용하여 평면을 표현할 수 있다.
또한, 평면을 표현함에 있어서, 각도, 거리 등의 에러 모델, 즉 에러 분산(Variance)을 이용하여 표현할 수 있으며 평면을 구하기 위해 사용된 픽셀 집합에 대응되는 3차원 포인트들의 가우시안 분포를 사용할 수도 있다.
도 15는 장애물의 감지하는 방법의 또 다른 실시예로서, 움직이는 장애물의 감지하는 모습을 나타낸 도면이다.
도 15를 참고하면, C(330) 물체는 정적인 물이지만 외부 힘에 의해 이동되었고 강아지(360)가 이동하는 모습, 즉 동적 장애물이 이동하고 있는 것을 알 수 있다.
장애물들은 항상 정지해 있는 것은 아니므로 동적인 장애물도 인식할 수 있어야 한다. 그러나 조금이라도 움직인 장애물들을 새로운 장애물로 인식하여 다시 장애물을 감지하는 것은 비효율적이므로 전술한 바와 같이 장애물들을 Grouping을 하고 Labeling을 하여 하나의 장애물로 인식하여 움직이는 장애물을 계속 추적(Track)할 수 있다. 즉, 이러한 방식으로 정적인 물체의 움직임 또는 동적인 물체의 이동까지 장애물로 인식할 수 있어 장애물의 인식을 보다 간편하고 빠르게 할 수 있다.
도16과 도 17은 이동 로봇(100)의 위치 추정과 관련된 도면으로서 도16은 이동 로봇(100)이 3차원 영상을 획득하지 못한 경우를 도시한 도면이고 도 17은 파티클 기법을 사용하여 이동 로봇(100)의 제2위치 정보를 산출하는 모습을 나타낸 도면이다.
도 8을 참고하면, 이동 로봇(100)은 관성 센서와 오드메드리를 이용하여 이동 로봇(100)의 제 1위치 정보를 추정하고 3차원 깊이 센서(210)를 통해 획득한 깊이 영상 정보(Depth Image)를 이용하여 이동 로봇(100)의 제 2위치 정보를 산출한다. 따라서 이동 로봇(100)의 제 2위치 정보를 산출하기 위해서는 3차원 깊이 센서(210)로부터 깊이 영상 정보를 획득하여야 한다.
그러나 도 16에서 보듯이, 3차원 깊이 센서(210)가 언제나 3차원 영상을 획득할 수 있는 것은 아니다. 3차원 깊이 센서(210)가 감지할 수 있는 범위는 무한정 넓지 않고 제한되어 있다. 따라서 도 16과 같은 경우 멀리 있는 장애물(330, 340, 350)의 경우 3차원 영상 정보를 획득하지 못할 수 있다.
따라서 이러한 경우에는 이동 로봇(100)의 제 1위치 정보를 깊이 영상 정보를 이용하여 보정할 수 없으므로 이동 로봇(100)의 제 1위치 정보가 바로 이동 로봇(100)의 제2위치 정보로 산출될 수 있다.
도 17은 이동 로봇(100)이 제 1위치 정보를 기초로 파티클 필터 기법을 사용하여 이동 로봇(100)의 제2위치 정보를 산출하는 모습을 나타낸 도면이다.
이동 로봇(100)의 제2위치 정보를 산출하는 방법은, 제 1위치 정보 주변에 파티클(Particle)을 뿌린 후, 각 파티클에 해당하는 매칭 스코어(Matching Score)를 계산하여 가장 확률적으로 가능성이 높은 곳으로 이동 로봇(100)의 위치를 보정하여 이동 로봇(100)의 제 2위치 정보를 산출한다.
따라서, 이러한 보정은 확률 기반 필터링 방식을 사용하므로 일반적으로 베이즈 필터를 사용할 수 있다. 베이즈 필터는 베이즈 정리(Bayes Theorem)에 기초한 확률 기반 필터로서, 베이즈 정리는 사후 확률을 우도(Likelihood) 함수와 사전 확률 분포를 이용한다.
베이즈 필터의 가장 대표적인 방법으로서, 파티클 필터 기법을 들 수 있다. 파티클 필터 기법이란, 시행 착오(trial and error)에 기반한 시뮬레이션 방식으로서, 연속적인 몬테카를로 방법(SMC, Sequential Monte Carlo method)으로 불리기도 한다.
몬테카를로 방법(Monte Carlo Method)은 충분히 많은 수의 랜덤 입력 결과를 수집해 함수의 값을 확률적으로 계산하는 방식이다. 몬테 카를로 방법은 함수의 값을 확률적으로 계산 해서 시스템의 특성을 알아낸다.
따라서, 도 17에 도시한 바와 같이 이동 로봇(100)은 주행을 하면서 이동 로봇(100) 주위에 많은 파티클 입자(600)를 뿌리면서 보다 정확한 위치, 이동 로봇(100)의 제 2위치 정보를 산출할 수 있다.
지금까지 이동 로봇(100)이 장애물을 감지하고 이동 로봇(100)의 위치를 추정하는 방법에 대해 알아보았다. 이하 이동 로봇(100)이 지도를 작성하고 보정하는 방법에 대해 알아본다.
이동 로봇(100)의 제 2위치 정보가 산출되면 이동 로봇(100)의 상기 산출된 이동 로봇(100)의 제 2위치 정보와 장애물 감지부(300)에서 감지한 장애물의 영역 및 3차원 영상 인식 센서(210)로부터 획득한 3차원 영상 정보를 기초로 지도를 작성한다.
전술한 바와 같이 이동 로봇(100)은 장애물로 판별된 영역은 제외하고 지도를 작성한다. 따라서 다시 장애물 영역에 관한 정보를 얻을 필요가 없으므로 보다 효율적으로 지도를 작성할 수 있게 된다.
그러나 이동 로봇(100)과 같이 실시간으로 지도를 만들어 갱신을 하는 경우, 지도가 실제 지도와 달라지는 오차가 발생할 수 있다. 즉, 이동 로봇(100)의 주행계, 측정계 등의 영향에 따라 이동 로봇(100)이 작성한 지도와 실제 지도가 달라지는 지도의 왜곡 현상이 발생할 수 있다. 이러한 지도의 왜곡 현상에 대해 도 18에 도시하였다.
도 18을 참조하면, 실제 이동 로봇(100)이 주행하는 환경에 대한 지도는 700에 해당한다. 그러나 상기 설명한 바와 같이 측정 데이터에 오차가 발생하므로 이동 로봇(100)이 작성한 지도는 710 또는 720처럼 작성된다. 따라서 작성된 지도로 이동 로봇(100)의 주행 경로를 계획하면 정확한 주행 경로를 계획할 수 없는 단점이 발생한다. 따라서 이러한 왜곡 현상에 대해 보정을 할 필요가 있다.
도 19는 본 발명의 일 실시예에 따라 지도를 보정하는 방법을 나타낸 순서도이다.
도 19를 참고하면, 이동 로봇(100)은 주행을 하면서 실시간으로 SLAM을 수행한다.(S1000) 그리고 수행 한 결과를 스캔(SCAN)하여 스캔 데이터 저장부에 이를 저장하며(S1100) 동시에 이동 로봇(100)의 이동 경로(Pose Graph)를 갱신한다.(S1200) 여기서 스캔 데이터는 이동 영역을 센서로 스캔하여 얻은 기하하적 정보이다.
이동 로봇(100)은 이렇게 주기적으로 갱신된 Pose Graph를 분석하면서 이동 로봇(100)의 경로가 닫힌 경우(Loop Closure)가 생성 되었는지 검출한다.(S1300) 그리고 Loop Closure가 검출이 되었다면 이를 이용하여 지도 보정(Pose Graph Optinzatin)을 실행할 수 있다.(S1400)
여기서 말하는 Loop Closure라는 것은, 이동 로봇(100)이 초기 신뢰할 수 있는 위치 정보를 일정 정도 주행하여 그 지점에 다시 돌아왔을 때 인식하는 것을 말하며 다른 용어로는 재방문(Re-Visit) 또는 loop를 Closing 했다고 표현하기도 한다.
도 20은 이러한 Loop Closure을 표현한 도면으로서 이동 로봇(100)의 실제 이동경로 와 추정된 이동 로봇(100)의 이동 경로를 표시한 도면이다.
도 20과 같이 이동 로봇(100)은 X0 지점에서 출발하여 X1을 거쳐 X10까지 Pose Graph를 갱신하면서 이동하였다. 그러나 도20을 보듯이 이동 로봇(100)이 먼 거리를 주행하여 돌아오면 SLAM에 의한 오차가 발생하고 이동 로봇(100)은 정확히 초기 지점으로 들어오지 못하는 문제가 발생한다.
따라서 이동 로봇(100)의 초기 위치 정보와 다시 초기 정보 근처 위치로 재방문 하였을 때의 위치 정보를 종합하여 생성된 지도를 보정하는 것이 필요하며 이러한 과정을 Pose Graph Optimzation 이라고 한다.
Loop Closure을 검출하는 방법으로는 카메라로 획득한 이미지의 특징점 정보를 비교하여 판단할 수 있으며, 레이저 센서나 초음파 센서와 같이 센서의 기하 정보를 이용하여 미리 저장되어 있는 스캔 데이터와 새로 입력된 스캔 데이터의 비교를 통하여 Loop Closure를 판별할 수 있따.
또한 와이파이(Wi-Fi)와 같은 통신을 이용하여 Loop Closure검출할 수도 있으며 도킹 스테이션(Doking Station)을 이용하여 검출할 수도 있다.
도 21은 본 발명의 의해 획득되는 최종 지도를 나타낸 도면이다.
도 21의 경우 2차원 격자 지도(Grid Map)를 나타내었지만 3차원 격자 지도(Grid Map)로 생성될 수 있다. 격자 지도(Grid Map)는 이동 로봇(100)의 주위 환경을 작은 격자(Grid)로 나누어 각 격자에 물체가 있을 가능성을 확률적으로 표현한 지도로서, 확률 격자 지도라고도 한다.
도 21을 참고하면, 이동 로봇(100)은 일정 구역 안에서 루프(610) 그리며 이동을 하였고 파티클 입자(600)를 뿌리면서 이동 로봇(100)의 위치를 실시간으로 보정하였으며 장애물 감지부(300)에 의해 장애물(630)들이 발견되었음을 알 수 있다.
그리고 도 21의 620번의 경우 3차원 공간 인식 센서(210)에 의해 벽으로 감지되고 있는 영역을 표시한 것이며 실제 벽과 일치함을 알 수 있다.
이상 지금까지 본 발명에 해당하는 이동 로봇의 위치 인식 및 지도 작성에 관한 기술에 대해 알아보았다. 본 발명의 경우 3차원 영상을 이용하여 장애물 감지, 이동 로봇의 위치 인식 및 지도 작성, 이동 로봇의 경로 계획을 한꺼번에 할 수 있어 지도 작성을 위한 별도의 지도가 필요하지 않으며 장애물로 판별된 영역은 SLAM에 사용하지 않아 보다 빠르고 정확하게 SLAM을 수행할 수 있다. 또한 별도의 장애물 센서가 필요 없어 3차원 영상을 이용하여 다양한 장애물 감지, SLAM 및 경로 계획이 가능하다는 장점이 존재한다.
그리고 이러한 3차원 내비게이션 시스템은 기존의 2D 시스템에 비해 지도의 정밀도가 향상되어 이를 이용한 지도 기반 로봇 서비스가 가능한 특징이 존재한다.
100: 이동 로봇 200 : 촬영부
210 : 3차원 공간 인식 센서 220 : 3차원 깊이 센서
300 : 장애물 감지부 400 : 위치 추정부
410 : 관성 센서부 420 : 오도메트리
500 : 제어부 510 : 위치 보정부
520 : 지도작성부 530 : 경로 계획부
540 : 저장부

Claims (24)

  1. 이동 로봇 주변의3차원 영상을 촬영하고 상기 촬영된 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하는 촬영부;
    상기 촬영부에서 촬영한 3차원 영상을 이용하여 장애물을 감지하는 장애물 감지부;
    상기 장애물 감지부에서 감지한 장애물의 영역을 제외한 영역 내에서 관성센서(Inertia Measurement Unit)와 오드메트리(Odometry)를 이용하여 이동 로봇의 제 1위치 정보를 추정하는 위치 추정부; 및
    상기 추정된 이동 로봇의 제 1위치 정보와 상기 추출된 깊이 영상(Depth Image) 정보를 이용하여 상기 이동 로봇의 제2위치 정보를 산출하고 상기 장애물 감지부에서 감지한 장애물의 영역을 제외한 지도를 작성하는 제어부를 포함하는 이동 로봇
  2. 제 1항에 있어서,
    상기 장애물 감지부는,
    상기 촬영된 3차원 영상의 물체들 중에서 물체의 높이가 특정 평면의 높이보다 큰 경우에만 장애물로 감지하는 이동 로봇
  3. 제 2항에 있어서,
    상기 특정 평면은,
    상기 로봇의 최하단부이거나 사용자가 특정 기하하적 평면으로 설정할 수 있는 이동 로봇
  4. 제 2항에 있어서,
    상기 특정 평면은,
    RANSAC(Random Sample Consensus) 방식을 이용하여 설정될 수 있는 이동 로봇
  5. 제 1항에 있어서,
    상기 장애물 감지부는
    상기 감지된 장애물 중에서 움직임이 있는 장애물인 있는 경우 트래커(Tracker)를 이용하여 상기 감지된 장애물을 추적하는 이동 로봇
  6. 제 1항에 있어서,
    상기 제어부는,
    상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하지 못하는 경우 상기 이동 로봇의 제 1위치 정보가 상기 이동 로봇의 제 2위치 정보가 되는 이동 로봇
  7. 제 1항에 있어서
    상기 제어부는,
    상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)와 기존에 저장되어 있는 지도를 이용하여 상기 이동 로봇의 제 2위치 정보를 산출하는 이동 로봇
  8. 제 7항에 있어서,
    상기 제어부는,
    상기 이동 로봇의 제1위치 정보에 베이즈 필터를 사용한 확률 기반 필터링 방식을 이용하여 상기 이동 로봇의 제2위치 정보를 산출하는 이동 로봇
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8항에 있어서,
    상기 베이즈 필터는,
    칼만 필터(Kalman Filter), 확장 칼만 필터(Extended Kalman filter, EKF), 무향 칼만 필터(Unscented Kalman filter, UKF), 인포메이션 필터(Information filter), 히스토그람 필터(Histogram Filter) 및 파티클 필터(Particle Filter) 중 적어도 어느 하나를 포함하는 이동 로봇
  10. 제 1항에 있어서,
    상기 제어부는,
    상기 이동 로봇의 제 2위치 정보에 대해 루프 클루져(Loop Closure)가 검출되면 상기 루프 클루져(Loop Closure)을 이용하여 지도를 보정하는 이동 로봇
  11. 제 10항에 있어서,
    상기 제어부는,
    와이파이(Wi-Fi), 3D 정보, 비주얼 데이터(Visual Data), 도킹 스케이션(Doking Station) 중 적어도 어느 하나를 이용하여 루프 클루져(Loop Closure)를 감지하는 이동 로봇
  12. 제 1항에 있어서,
    상기 제어부는
    상기 이동 로봇의 제 2위치 정보와 상기 작성된 지도를 기초로 상기 이동 로봇의 이동 경로를 계획하는 경로 계획부를 더 포함하는 이동 로봇
  13. 이동 로봇 주변의3차원 영상을 촬영하고 상기 촬영된 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하는 단계;
    촬영부에서 촬영한 3차원 영상을 이용하여 장애물을 감지하는 단계;
    장애물 감지부에서 감지한 장애물의 영역을 제외한 영역 내에서 관성센서(Inertia Measurement Unit)와 오드메트리(Odometry)를 이용하여 이동 로봇의 제 1위치 정보를 추정하는 단계;
    상기 추정된 이동 로봇의 제 1위치 정보와 상기 추출된 깊이 영상(Depth Image) 정보를 이용하여 상기 이동 로봇의 제2위치 정보를 산출하는 단계;
    상기 감지된 장애물의 영역을 제외한 지도를 작성하는 단계를 포함하는 이동 로봇의 제어 방법
  14. 제 13항에 있어서,
    상기 장애물을 감지하는 단계는,
    상기 촬영된 3차원 영상의 물체들 중에서 물체의 높이가 특정 평면의 높이보다 큰 경우에만 장애물로 감지하는 단계를 더 포함하는 이동 로봇의 제어 방법
  15. 제 14항에 있어서,
    상기 특정 평면은,
    상기 로봇의 최하단부이거나 사용자가 특정 기하하적 평면으로 설정할 수 있는 단계를 더 포함하는 이동 로봇의 제어 방법
  16. 제 14항에 있어서,
    상기 특정 평면은,
    RANSAC(Random Sample Consensus) 방식을 이용하여 설정될 수 있는 단계를 더 포함하는 이동 로봇의 제어 방법
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제 13항에 있어서,
    상기 장애물을 감지하는 단계는,
    상기 감지된 장애물 중에서 움직임이 있는 장애물인 있는 경우 트래커(Tracker)를 이용하여 상기 감지된 장애물을 추적하는 단계를 더 포함하는 이동 로봇의 제어 방법
  18. 제 13항에 있어서,
    상기 이동 로봇의 제2위치 정보를 산출하는 단계는,
    상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)를 추출하지 못하는 경우 상기 이동 로봇의 제 1위치 정보가 상기 이동 로봇의 제 2위치 정보가 되는 단계를 더 포함하는 이동 로봇의 제어 방법
  19. 제 13항에 있어서,
    상기 이동 로봇의 제2위치 정보를 산출하는 단계는,
    상기 3차원 영상에 대한 깊이 영상 정보(Depth Image)와 기존에 저장되어 있는 지도를 이용하여 상기 이동 로봇의 제 2위치 정보를 산출하는 단계를 더 포함하는 이동 로봇의 제어 방법
  20. 제 19항에 있어서,
    상기 이동 로봇의 제2위치 정보를 산출하는 단계는,
    상기 이동 로봇의 제1위치 정보에 베이즈 필터를 사용한 확률 기반 필터링 방식을 이용하여 상기 이동 로봇의 제2위치 정보를 산출하는 단계를 더 포함하는 이동 로봇의 제어 방법
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20항에 있어서,
    상기 베이즈 필터는,
    칼만 필터(Kalman Filter), 확장 칼만 필터(Extended Kalman filter, EKF), 무향 칼만 필터(Unscented Kalman filter, UKF), 인포메이션 필터(Information filter), 히스토그람 필터(Histogram Filter) 및 파티클 필터(Particle Filter) 중 적어도 어느 하나를 포함하는 이동 로봇의 제어 방법
  22. 제 13항에 있어서,
    상기 지도를 작성하는 단계는,
    상기 이동 로봇의 제 2위치 정보에 대해 루프 클루져(Loop Closure)가 검출되면 상기 루프 클루져(Loop Closure)를 이용하여 지도를 보정하는 단계를 더 포함하는 이동 로봇의 제어 방법
  23. 제 22항에 있어서,
    상기 루프 클루져(Loop Closure)를 검출하는 단계는,
    와이파이(Wi-Fi), 3D 정보, 비주얼 데이터(Visual Data), 도킹 스케이션(Doking Station) 중 적어도 어느 하나를 이용하여 루프 클루져(Loop Closure)를 감지하는 단계를 더 포함하는 이동 로봇의 제어 방법
  24. ◈청구항 24은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 이동 로봇의 제 2위치 정보와 상기 작성된 지도를 기초로 상기 이동 로봇의 이동 경로를 계획하는 단계를 더 포함하는 이동 로봇의 제어 방법
KR1020150166310A 2015-11-26 2015-11-26 이동 로봇 및 그 제어 방법 KR102403504B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150166310A KR102403504B1 (ko) 2015-11-26 2015-11-26 이동 로봇 및 그 제어 방법
EP16868904.0A EP3367199B1 (en) 2015-11-26 2016-11-24 Moving robot and method of controlling the same
CN201680069236.8A CN108290294B (zh) 2015-11-26 2016-11-24 移动机器人及其控制方法
PCT/KR2016/013630 WO2017091008A1 (ko) 2015-11-26 2016-11-24 이동 로봇 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150166310A KR102403504B1 (ko) 2015-11-26 2015-11-26 이동 로봇 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20170061373A KR20170061373A (ko) 2017-06-05
KR102403504B1 true KR102403504B1 (ko) 2022-05-31

Family

ID=58763612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150166310A KR102403504B1 (ko) 2015-11-26 2015-11-26 이동 로봇 및 그 제어 방법

Country Status (4)

Country Link
EP (1) EP3367199B1 (ko)
KR (1) KR102403504B1 (ko)
CN (1) CN108290294B (ko)
WO (1) WO2017091008A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106643692A (zh) * 2016-09-28 2017-05-10 深圳乐行天下科技有限公司 一种机器人导航定位方法、***及机器人
KR102326077B1 (ko) * 2017-06-15 2021-11-12 엘지전자 주식회사 3차원 공간의 이동 객체를 식별하는 방법 및 이를 구현하는 로봇
CN109634267B (zh) * 2017-10-09 2024-05-03 北京瑞悟科技有限公司 一种用于商场超市智能拣货送货机器人
WO2019089018A1 (en) 2017-10-31 2019-05-09 Hewlett-Packard Development Company, L.P. Mobile robots to generate reference maps for localization
CN107909614B (zh) * 2017-11-13 2021-02-26 中国矿业大学 一种gps失效环境下巡检机器人定位方法
KR102051046B1 (ko) * 2017-11-21 2019-12-02 유진기술 주식회사 모바일 로봇의 태양광 패널 청소 로봇 추종 시스템 및 방법
WO2019104693A1 (zh) * 2017-11-30 2019-06-06 深圳市沃特沃德股份有限公司 视觉扫地机器人及建立场景地图的方法
CN108731736B (zh) * 2018-06-04 2019-06-14 山东大学 用于桥隧结构病害无损检测诊断的自动爬墙式雷达光电机器人***
KR102601141B1 (ko) 2018-06-22 2023-11-13 삼성전자주식회사 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법
KR102629036B1 (ko) * 2018-08-30 2024-01-25 삼성전자주식회사 로봇 및 그의 제어 방법
CN110967703A (zh) * 2018-09-27 2020-04-07 广东美的生活电器制造有限公司 使用激光雷达和摄像头的室内导航方法及室内导航装置
KR101948728B1 (ko) 2018-09-28 2019-02-15 네이버랩스 주식회사 데이터 수집 방법 및 시스템
CN109489660A (zh) * 2018-10-09 2019-03-19 上海岚豹智能科技有限公司 机器人定位方法及设备
CN109556616A (zh) * 2018-11-09 2019-04-02 同济大学 一种基于视觉标记的自动建图机器人建图修整方法
KR20200075140A (ko) * 2018-12-12 2020-06-26 엘지전자 주식회사 인공지능 이동 로봇 및 이의 제어 방법
US10991117B2 (en) 2018-12-23 2021-04-27 Samsung Electronics Co., Ltd. Performing a loop closure detection
CN111399492A (zh) * 2018-12-28 2020-07-10 深圳市优必选科技有限公司 一种机器人及其障碍物感知方法和装置
CN111376258B (zh) * 2018-12-29 2021-12-17 纳恩博(常州)科技有限公司 控制方法、装置、设备和存储介质
CN110110245B (zh) * 2019-05-06 2021-03-16 山东大学 一种家庭环境下动态物品搜索方法及装置
CN110207707B (zh) * 2019-05-30 2022-04-12 四川长虹电器股份有限公司 基于粒子滤波器的快速初始定位方法及机器人设备
US11363461B2 (en) 2019-08-23 2022-06-14 Electronics And Telecommunications Research Institute Method for managing security key of mobile communication system, and apparatus therefor
CN110928301B (zh) * 2019-11-19 2023-06-30 北京小米智能科技有限公司 一种检测微小障碍的方法、装置及介质
KR102295824B1 (ko) 2019-12-06 2021-08-31 엘지전자 주식회사 잔디깎기 로봇의 지도 생성방법
CN111399505B (zh) * 2020-03-13 2023-06-30 浙江工业大学 一种基于神经网络的移动机器人避障方法
CN113446971B (zh) * 2020-03-25 2023-08-08 扬智科技股份有限公司 空间识别方法,电子装置和非暂态计算机可读存储介质
CN111538329B (zh) * 2020-04-09 2023-02-28 北京石头创新科技有限公司 一种图像查看方法、终端及清洁机
CN111595328B (zh) * 2020-06-01 2023-04-25 四川阿泰因机器人智能装备有限公司 基于深度相机的真实障碍物地图构建和导航方法及***
CN111966088B (zh) * 2020-07-14 2022-04-05 合肥工业大学 一种自动驾驶儿童玩具车控制***及控制方法
TWI749656B (zh) * 2020-07-22 2021-12-11 英屬維爾京群島商飛思捷投資股份有限公司 定位圖資建立系統及建立方法
CN111898557B (zh) * 2020-08-03 2024-04-09 追觅创新科技(苏州)有限公司 自移动设备的地图创建方法、装置、设备及存储介质
CN111949929B (zh) * 2020-08-12 2022-06-21 智能移动机器人(中山)研究院 一种多传感器融合的四足机器人运动里程计设计方法
CN112330808B (zh) * 2020-10-30 2024-04-02 珠海一微半导体股份有限公司 一种基于局部地图的优化方法及视觉机器人
CN112348893B (zh) * 2020-10-30 2021-11-19 珠海一微半导体股份有限公司 一种局部点云地图构建方法及视觉机器人
CN112587035B (zh) * 2020-12-08 2023-05-05 珠海一微半导体股份有限公司 移动机器人识别工作场景的控制方法和***
CN112799095B (zh) * 2020-12-31 2023-03-14 深圳市普渡科技有限公司 静态地图生成方法、装置、计算机设备及存储介质
CN113552585B (zh) * 2021-07-14 2023-10-31 浙江大学 一种基于卫星地图与激光雷达信息的移动机器人定位方法
CN113538579B (zh) * 2021-07-14 2023-09-22 浙江大学 基于无人机地图与地面双目信息的移动机器人定位方法
CN113643568B (zh) * 2021-07-22 2022-11-15 吉林大学 一种基于无人机的车辆交叉路口避撞***及方法
KR102654852B1 (ko) * 2021-11-11 2024-04-05 한국과학기술원 이동 로봇 및 이의 위치 추정 방법
WO2024058402A1 (ko) * 2022-09-15 2024-03-21 삼성전자주식회사 주행 맵을 생성하는 주행 로봇 및 그 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276092A1 (en) 2008-04-30 2009-11-05 Samsung Electronics Co., Ltd. Robot and method of building map therefor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271132B2 (en) * 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
CN100449444C (zh) * 2006-09-29 2009-01-07 浙江大学 移动机器人在未知环境中同时定位与地图构建的方法
EP2495632B1 (en) * 2009-10-30 2018-09-12 Yujin Robot Co., Ltd. Map generating and updating method for mobile robot position recognition
KR101715780B1 (ko) * 2010-10-11 2017-03-13 삼성전자주식회사 복셀 맵 생성기 및 그 방법
KR101750340B1 (ko) * 2010-11-03 2017-06-26 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR20120070291A (ko) * 2010-12-21 2012-06-29 삼성전자주식회사 보행 로봇 및 그의 동시 위치 인식 및 지도 작성 방법
KR101371038B1 (ko) * 2011-10-26 2014-03-10 엘지전자 주식회사 이동 로봇 및 이의 목표물 추적 방법
KR101985188B1 (ko) * 2012-09-20 2019-06-04 엘지전자 주식회사 이동 로봇 및 이동 로봇의 주행방법
CN105091884A (zh) * 2014-05-08 2015-11-25 东北大学 基于传感器网络动态环境监测的室内移动机器人路径规划方法
CN104536445B (zh) * 2014-12-19 2018-07-03 深圳先进技术研究院 移动导航方法和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276092A1 (en) 2008-04-30 2009-11-05 Samsung Electronics Co., Ltd. Robot and method of building map therefor
KR100988568B1 (ko) 2008-04-30 2010-10-18 삼성전자주식회사 로봇 및 그 지도작성방법

Also Published As

Publication number Publication date
KR20170061373A (ko) 2017-06-05
EP3367199B1 (en) 2020-05-06
EP3367199A1 (en) 2018-08-29
CN108290294A (zh) 2018-07-17
CN108290294B (zh) 2022-05-10
WO2017091008A1 (ko) 2017-06-01
EP3367199A4 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
KR102403504B1 (ko) 이동 로봇 및 그 제어 방법
CN110522359B (zh) 清洁机器人以及清洁机器人的控制方法
CN111837083B (zh) 信息处理装置、信息处理方法和存储介质
US11960304B2 (en) Localization and mapping using physical features
US10102429B2 (en) Systems and methods for capturing images and annotating the captured images with information
EP2776216B1 (en) Robot apparautus and control method for resuming operation following a pause.
US7739034B2 (en) Landmark navigation for vehicles using blinking optical beacons
US10213082B2 (en) Robot cleaner
US8195331B2 (en) Method, medium, and apparatus for performing path planning of mobile robot
Li et al. Autonomous area exploration and mapping in underground mine environments by unmanned aerial vehicles
WO2020051923A1 (en) Systems And Methods For VSLAM Scale Estimation Using Optical Flow Sensor On A Robotic Device
CN111033561A (zh) 用于利用语义信息来导航机器人设备的***和方法
CN110597265A (zh) 一种扫地机器人回充方法和装置
EP3842885A1 (en) Autonomous movement device, control method and storage medium
Liao et al. Deploy indoor 2D laser SLAM on a raspberry pi-based mobile robot
CN112041634A (zh) 移动机器人的定位方法、构建地图的方法及移动机器人
Liu et al. A Review of Sensing Technologies for Indoor Autonomous Mobile Robots
Noaman et al. Landmarks exploration algorithm for mobile robot indoor localization using VISION sensor
CN110916562A (zh) 自主移动设备、控制方法及存储介质
Brahmanage Geometric Feature Based Rao-Blackwellized Particle Filter SLAM Using RGB-D Depth Images
Papakis A Bayesian Framework for Multi-Stage Robot, Map and Target Localization

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