KR20210112106A - 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치 - Google Patents

과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20210112106A
KR20210112106A KR1020200027252A KR20200027252A KR20210112106A KR 20210112106 A KR20210112106 A KR 20210112106A KR 1020200027252 A KR1020200027252 A KR 1020200027252A KR 20200027252 A KR20200027252 A KR 20200027252A KR 20210112106 A KR20210112106 A KR 20210112106A
Authority
KR
South Korea
Prior art keywords
line
mobile robot
global
local
generating
Prior art date
Application number
KR1020200027252A
Other languages
English (en)
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 KR1020200027252A priority Critical patent/KR20210112106A/ko
Priority to US17/188,688 priority patent/US11841706B2/en
Publication of KR20210112106A publication Critical patent/KR20210112106A/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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • 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
    • 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치가 제공된다. 상기 방법은 과수원 환경에 대한 3D 포인트 클라우드 데이터를 2D 그리드 맵으로 변환하고, 2D 그리드 맵을 기반으로 모바일 로봇의 위치를 획득하며, 2D 그리드 맵의 각 그리드의 점유율을 기반으로 2D 그리드 맵으로부터 나무를 추출한다. 그리고, 추출된 나무들의 중심점을 기반으로 유효 라인을 획득하고, 획득된 유효 라인을 토대로 목적지를 생성하며, 성된 목적지에 따라 주행 경로를 생성한다.

Description

과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치{Method and apparatus for autonomous driving of mobile robot in orchard environment}
본 발명은 모바일 로봇 자율 주행에 관한 것으로, 더욱 상세하게 말하자면, 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치에 관한 것이다.
일반적으로 과수원에서 작업을 할 때에는 사람이나 차량이 동원된다. 과수원에서는 재배 면적 내 많은 수의 과수가 재배됨에 따라, 재배하는 과정에서 작업자가 제초 및 병충해 방제작업 또는 과수로부터 과실을 수확하는 등의 각종 농작업의 진행시 어려움이 많다. 최근에는, 이러한 어려움을 해결하기 위해, 작업자를 대신하여 농작업을 수행하는 모바일 로봇이 주요 이슈로 대두되고 있다.
이러한 모바일 로봇은 과수원 내에서 이동하면서 과수에 대한 각종 농작업을 진행하여, 작업자의 노동력 소모를 감소시키고 편의성을 향상시키며, 작업시간 등을 단축하는 효과를 가져올 수 있다.
따라서 이러한 모바일 로봇이 과수원 환경에서 자율적으로 정확하면서도 안정적으로 주행할 수 있는 방법이 요구된다.
본 발명이 해결하고자 하는 과제는, 과수원 환경에서 모바일 로봇이 자율 주행할 수 있도록 위치를 인식하고 경로 정보를 생성하는 방법 및 장치를 제공하는 것이다.
본 발명의 실시 예에 따르면, 과수원 환경에서 모바일 로봇의 자율 주행을 위해 위치를 인식하고 경로를 생성하는 방법이 제공된다. 상기 방법은, 상기 과수원 환경에 대한 3D(three dimension) 포인트 클라우드 데이터를 2D 그리드 맵으로 변환하는 단계; 상기 2D 그리드 맵에 대한 로컬 스캔 매칭 및 글로벌 스캔 매칭을 수행하여 상기 모바일 로봇의 위치를 획득하는 단계; 상기 2D 그리드 맵의 각 그리드의 점유율을 기반으로 상기 2D 그리드 맵으로부터 나무를 추출하는 단계; 상기 추출된 나무들의 중심점을 기반으로 유효 라인을 획득하는 단계; 및 상기 획득된 유효 라인을 토대로 목적지를 생성하고, 상기 생성된 목적지와 상기 모바일 로봇의 위치에 따라 주행 경로를 생성하는 단계를 포함하다.
일 구현 예에서, 상기 나무를 추출하는 단계는, 상기 2D 그리드 맵에 대해 로컬 영역별로 가장 큰 점유율을 가지는 그리드를 기반으로 나무 후보군을 생성하는 단계; 및 상기 나무 후보군으로부터 이상치(outlier)를 제거하여 나무들을 추출하는 단계를 포함할 수 있다.
일 구현 예에서, 그리드에 포함되는 각 포인트와 설정된 평면의 거리값이 작을수록 더 많은 가중치를 주는 방식으로 각 그리드에 대한 점유율이 계산된다. 이 경우, 상기 이상치를 제거하여 나무들을 추출하는 단계는, 상기 나무 후보군에 포함되는 나무 후보의 중심 주위의 로우(raw) 3D 포인트 클라우드 중에서 설정 개수의 포인트를 이용하여 (x-y) 평면에 투영된 2D 공분산 행렬을 생성하는 단계; 상기 생성된 2D 공분산 행렬에서 고유값의 비율을 계산하는 단계; 및 각 나무 후보에 대해 획득된 고유값의 비율 또는 그 역이 미리 설정된 값 이상인 경우, 해당 나무 후보를 나무 후보군에서 제외시키는 단계를 포함한다.
일 구현 예에서, 상기 유효 라인을 획득하는 단계는, 상기 과수원 환경에서 나무들이 종축 및 횡축으로 설정 간격을 두고 배치되어 있는 특성을 고려하여, 상기 추출된 나무들의 중심점을 추출하는 단계; 및 상기 추출된 나무들의 중심점을 이용하여 경로 생성을 위한 유효 라인을 획득하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 경로 생성을 위한 유효 라인을 획득하는 단계는, 상기 나무 중심점들의 거리를 기반으로 클러스터링을 수행하는 단계; 상기 클러스터링에 따라 획득되는 각 클러스터 내에서 라인 피팅(line fitting)을 수행하여 모바일 로봇 주변의 로컬 라인을 추출하는 단계; 및 상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계는, 미리 등록된 글로벌 라인과 상기 추출된 로컬 라인 사이의 유사도를 기반으로 상기 추출된 로컬 라인을 상기 등록된 글로벌 라인과 병합시키거나 새로운 글로벌 라인으로 등록하는 과정을 통해, 글로벌 라인군을 획득하고, 획득된 글로벌 라인군에서 유효 라인을 획득할 수 있다.
일 구현 예에서, 상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계는, 상기 글로벌 라인군에 포함되는 글로벌 라인들 중에서 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 왼쪽에 위치되는 글로벌 라인인 왼쪽 라인과, 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 오른쪽에 위치되는 글로벌 라인인 오른쪽 라인을 유효 라인으로 획득할 수 있다.
일 구현 예에서, 상기 주행 경로를 생성하는 단계는, 상기 유효 라인이 상기 모바일 로봇의 왼쪽에 위치되는 왼쪽 라인과 상기 모바일 로봇의 오른쪽에 위치되는 오른쪽 라인을 포함하는 경우, 상기 왼쪽 라인의 엔드 포인트(end point)와 상기 오른쪽 라인의 엔드 포인트의 중심점을 상기 모바일 로봇의 주행의 목적지로 결정하는 단계; 및 상기 유효 라인이 상기 왼쪽 라인 또는 상기 오른쪽 라인만을 포함하는 경우, 상기 모바일 로봇의 회전 방향을 고려하여 상기 포함된 라인에 수직하게 설정 거리 떨어진 지점을 목적지로 결정하는 단계를 포함할 수 있으며, 상기 설정 거리는 상기 과수원 환경에서 배열되어 있는 나무들의 횡축 간격의 반에 대응할 수 있다.
일 구현 예에서, 상기 주행 경로를 생성하는 단계는, 상기 목적지에 따라 상기 모바일 로봇의 직진의 주행 경로를 생성하는 단계; 상기 목적지와 상기 모바일 로봇의 중심 사이에 장애물이 존재하는 경우, 상기 장애물의 위치를 추가적으로 고려하여 상기 장애물을 회피하는 직진의 장애물 회피 경로를 생성하는 단계; 및 상기 유효 라인의 엔드 포인트와 상기 모바일 로봇 사이의 거리가 최소 거리보다 작은 경우, 상기 모바일 로봇의 회전 방향을 고려하여 회전 경로를 생성하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 모바일 로봇의 위치를 획득하는 단계는, t-1 시점에 입력되는 3D 포인트 클라우드 데이터와 t 시점에 입력되는 3D 포인트 클라우드 데이터를 기반으로 로컬 스캔 매칭을 수행하는 단계; 상기 t 시점에 입력되는 3D 포인트 클라우드 데이터와 글로벌 포인트 클라우드 맵을 이용하여 글로벌 스캔 매칭을 수행하는 단계; 및 상기 로컬 스캔 매칭 결과 및 상기 글로벌 스캔 매칭 결과를 기반으로, 상기 모바일 로봇의 위치를 획득하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 로컬 스캔 매칭 결과 및 상기 글로벌 스캔 매칭 결과를 기반으로, 상기 모바일 로봇의 위치를 획득하는 단계는, 상기 모바일 로봇의 추정 위치를 상기 로컬 스캔 매칭 결과에 따른 위치 에러와 상기 그로벌 스캔 매칭 결과에 따른 위치 에러를 기반으로 보정하여 최종적으로 상기 모바일 로봇의 위치를 획득하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 2D 그리드 맵으로 변환하는 단계는, 상기 3D 포인트 클라우드 데이터로부터 획득되는 로컬 3D 포인트 데이터에 대해 투영될 평면을 추출하는 단계; 및 상기 로컬 3D 포인트 데이터의 각각의 3D 포인트를 상기 평면에 투영시켜 상기 2D 그리드 맵을 획득하는 단계를 포함할 수 있으며, 상기 평면은 지면일 수 있다.
일 구현 예에서, 상기 방법은, 상기 2D 그리드 맵으로 변환하는 단계 이후에, 상기 2D 그리드 맵의 각 그리드의 주변부 그리드의 값을 이용하여 스무딩(smoothing)을 수행하는 단계를 더 포함할 수 있으며, 상기 모바일 로봇의 위치를 획득하는 단계 및 상기 나무를 추출하는 단계는 상기 스무딩 처리된 2D 그리드 맵을 기반으로 수행될 수 있다.
본 발명의 다른 실시 예에 따르면, 과수원 환경에서 모바일 로봇의 자율 주행을 위해 위치를 인식하고 경로를 생성하는 장치가 제공된다. 상기 장치는, 상기 과수원 환경에 대한 3D(three dimension) 포인트 클라우드 데이터를 입력받도록 구성된 인터페이스 장치; 및 상기 3D 포인트 클라우드 데이터를 토대로 상기 모바일 로봇의 위치를 인식하고 경로를 생성하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 상기 3D 포인트 클라우드 데이터를 2D 그리드 맵으로 변환하는 동작; 상기 2D 그리드 맵에 대한 로컬 스캔 매칭 및 글로벌 스캔 매칭을 수행하여 상기 모바일 로봇의 위치를 획득하는 동작; 상기 2D 그리드 맵의 각 그리드의 점유율을 기반으로 상기 2D 그리드 맵으로부터 나무를 추출하는 동작; 상기 추출된 나무들의 중심점을 기반으로 유효 라인을 획득하는 동작; 및 상기 획득된 유효 라인을 토대로 목적지를 생성하고, 상기 생성된 목적지와 상기 모바일 로봇의 위치에 따라 주행 경로를 생성하는 동작을 수행하도록 구성된다.
일 구현 예에서, 상기 프로세서는, 상기 2D 그리드 맵에 대해 로컬 영역별로 가장 큰 점유율을 가지는 그리드를 기반으로 나무 후보군을 생성하는 동작; 상기 나무 후보군에 포함되는 나무 후보의 중심 주위의 로우 3D 포인트 클라우드 중에서 설정 개수의 포인트를 이용하여 (x-y) 평면에 투영된 2D 공분산 행렬을 생성하는 동작; 상기 생성된 2D 공분산 행렬에서 고유값의 비율을 계산하는 동작; 및 각 나무 후보에 대해 획득된 고유값의 비율 또는 그 역이 미리 설정된 값 이상인 경우, 해당 나무 후보를 나무 후보군에서 제외시키는 동작을 수행하도록 구성될 수 있으며, 그리드에 포함되는 각 포인트와 설정된 평면의 거리값이 작을수록 더 많은 가중치를 주는 방식으로 각 그리드에 대한 점유율이 계산될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 유효 라인을 획득하는 경우, 상기 과수원 환경에서 나무들이 종축 및 횡축으로 설정 간격을 두고 배치되어 있는 특성을 고려하여, 상기 추출된 나무들의 중심점을 추출하는 동작; 상기 나무 중심점들의 거리를 기반으로 클러스터링을 수행하는 동작; 상기 클러스터링에 따라 획득되는 각 클러스터 내에서 라인 피팅을 수행하여 모바일 로봇 주변의 로컬 라인을 추출하는 동작; 및 상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는, 미리 등록된 글로벌 라인과 상기 추출된 로컬 라인 사이의 유사도를 기반으로 상기 추출된 로컬 라인을 상기 등록된 글로벌 라인과 병합시키거나 새로운 글로벌 라인으로 등록하는 과정을 통해, 글로벌 라인군을 획득하고, 획득된 글로벌 라인군에 포함되는 글로벌 라인들 중에서 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 왼쪽에 위치되는 글로벌 라인인 왼쪽 라인과, 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 오른쪽에 위치되는 글로벌 라인인 오른쪽 라인을 유효 라인으로 획득하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 주행 경로를 생성하는 경우, 상기 유효 라인이 상기 모바일 로봇의 왼쪽에 위치되는 왼쪽 라인과 상기 모바일 로봇의 오른쪽에 위치되는 오른쪽 라인을 포함하는 경우, 상기 왼쪽 라인의 엔드 포인트와 상기 오른쪽 라인의 엔드 포인트의 중심점을 상기 모바일 로봇의 주행의 목적지로 결정하는 동작; 및 상기 유효 라인이 상기 왼쪽 라인 또는 상기 오른쪽 라인만을 포함하는 경우, 상기 모바일 로봇의 회전 방향을 고려하여 상기 포함된 라인에 수직하게 설정 거리 떨어진 지점을 목적지로 결정하는 동작을 수행하도록 구성될 수 있으며, 상기 설정 거리는 상기 과수원 환경에서 배열되어 있는 나무들의 횡축 간격의 반에 대응할 수 있다.
일 구현 예에서, 상기 프로세서는 상기 주행 경로를 생성하는 경우, 상기 목적지에 따라 상기 모바일 로봇의 직진의 주행 경로를 생성하는 동작; 상기 목적지와 상기 모바일 로봇의 중심 사이에 장애물이 존재하는 경우, 상기 장애물의 위치를 추가적으로 고려하여 상기 장애물을 회피하는 직진의 장애물 회피 경로를 생성하는 동작; 및 상기 유효 라인의 엔드 포인트와 상기 모바일 로봇 사이의 거리가 최소 거리보다 작은 경우, 상기 모바일 로봇의 회전 방향을 고려하여 회전 경로를 생성하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 모바일 로봇의 위치를 획득하는 경우, t-1 시점에 입력되는 3D 포인트 클라우드 데이터와 t 시점에 입력되는 3D 포인트 클라우드 데이터를 기반으로 로컬 스캔 매칭을 수행하는 동작; 상기 t 시점에 입력되는 3D 포인트 클라우드 데이터와 글로벌 포인트 클라우드 맵을 이용하여 글로벌 스캔 매칭을 수행하는 동작; 및 상기 모바일 로봇의 추정 위치를 상기 로컬 스캔 매칭 결과에 따른 위치 에러와 상기 그로벌 스캔 매칭 결과에 따른 위치 에러를 기반으로 보정하여 최종적으로 상기 모바일 로봇의 위치를 획득하는 동작을 수행하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 과수원 환경에서 모바일 로봇의 위치를 추정하고 경로를 생성하여 모바일 로봇을 정확하고 안정적으로 주행시킬 수 있다. 모바일 로봇을 이용하여 과수원 작업을 수행할 수 있으므로, 농가 작업시간 및 노동력을 단축시킬 수 있다.
또한, 모바일 로봇을 방제기로 사용하는 경우, 농민의 농약 접촉과 흡입을 방지할 수 있으며, 향후 트랙터, 수확기 등의 농기계에 활용할 수 있다.
도 1은 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치의 구조를 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 주행 맵을 작성하고 위치를 인식하는 방법의 흐름도이다.
도 3은 본 발명의 실시 예에 따른 로컬 스캔 매칭을 나타낸 예시도이다.
도 4는 본 발명의 실시 예에 따른 글로벌 스캔 매칭을 나타낸 예시도이다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 주행 경로를 생성하는 방법의 흐름도이다.
도 6은 본 발명의 실시 예에 따른 2D 그리드 맵과 스무딩 처리된 2D 그리드 맵을 나타낸 예시도이다.
도 7은 본 발명의 실시 예에 따른 나무 추출 결과를 나타낸 예시도이다.
도 8은 본 발명의 실시 예에 따른 로컬 라인 추출 결과를 나타낸 예시도이다.
도 9는 본 발명의 실시 예에 따라 글로벌 라인 추출 및 등록 결과를 나타낸 예시도이다.
도 10은 본 발명의 실시 예에 따른 직진의 주행 경로를 나타낸 예시도이다.
도 11은 본 발명의 실시 예에 따른 장애물 회피 경로를 나타낸 예시도이다.
도 12는 본 발명의 실시 예에 따른 회전 경로를 나타낸 예시도이다.
도 13은 본 발명의 실시 예에 따른 주행 환경 조건에 따른 회전 경로를 나타낸 예시도이다.
도 14는 본 발명의 실시 예에 따른 장애물 탐지 결과를 나타낸 예시도이다.
도 15는 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 제어 방법의 전체 흐름도이다.
도 16은 본 발명의 다른 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
또한, 본 발명의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 본 발명의 실시 예에 따른 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치에 대하여 설명한다.
도 1은 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치의 구조를 나타낸 도이다.
첨부한 도 1에서와 같이, 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치(이하, 설명의 편의를 위해, 자율 주행 장치라고 명명함)(1)는, 위치 획득부(10), 경로 생성부(20), 장애물 검출부(30) 및 움직임 제어부(40)를 포함한다.
위치 획득부(10)는 SLAM(Simultaneous Localization and Mapping) 매칭부(11) 및 위치 추정부(12)를 포함한다. SLAM 매칭부(11)는 도시하지 않은 센서부로부터 제공되는 센싱 데이터(예를 들어, LIDAR 센서로부터의 데이터)을 맵 상의 위치와 비교하여 모바일 로봇의 주행 거리 정보 예를 들어, 오도메트리(odometry) 정보를 획득한다. SLAM 매칭부(11)는 일반화된 ICP(Iterative closest point) 매칭 기반으로 동작할 수 있다. 또한, SLAM 매칭부(11)는 LIDAR 센서로부터 측정되는 3D(three dimension) 포인트 클라우드와 IMU(Inertial Measurement Unit) 센서로부터의 데이터(롤(roll), 피치(pitch), 요(yaw))를 기반으로, 모바일 로봇의 주행 맵을 작성하고 위치를 인식할 수 있다. 3D 포인트 클라우드 데이터는 3차원 LIDAR로부터 제공되는 데이터이면서 또한 LIDAR에 의한 3차원 이미지 스캔 결과로 획득되는 얻어진 포인트들로 구성된 데이터를 나타낸다. 이러한 3D 포인트 클라우드 데이터는 가공되어 주행 경로 생성을 위한 로컬 포인트(local points)를 생성하여 경로 생성부(20)로 전달될 수 있다.
위치 추정부(12)는 모바일 로봇의 위치와 속도를 추정한다. 위치 추정부(12)는 EKF(Extended Kalman Filter)를 기반으로 모바일 로봇의 위치(x,y,z)와 속도(Vx, Vy, Vz)를 추정한다.
경로 생성부(20)는 모바일 로봇의 주행 경로를 생성하도록 구성된다. 이를 위해, 경로 생성부(20)는 그리드(grid) 맵 생성부(21), 트리(tree) 추출부(22), 라인(line) 매니저(manager)(23), 경로 처리부(24)를 포함한다.
그리드 맵 생성부(21)는 3D 포인트 클라우드 데이터를 기반으로 2D(two dimension) 그리드 맵을 생성한다. 트리 추출부(22)는 생성된 2D 그리드 맵으로부터 트리 즉, 나무를 추출한다. 라인 매니저(23)는 추출된 나무들에 대해서 나무의 중심점을 이용한 클러스터링(clustering)을 수행하고, 동일 클러스터(cluster) 내에서 라인을 추출한다. 그리고 추출된 라인의 라이프 시간(life time) 및 라인 병합(merging)를 수행한다. 경로 처리부(24)는 추출된 라인을 기반으로 경로를 생성하며, 생성되는 경로는 직진 및 회전 경로를 포함한다. 이러한 경로 처리부(24)는 경로 플래너(path planner)라고도 지칭된다.
장애물 검출부(30)는 모바일 로봇이 주행하는 경로 상의 장애물을 탐지한다. 예를 들어, 충돌 센서나 장애물 센서 등을 이용하여 장애물을 탐지할 수 있다.
움직임 제어부(40)는 위치 획득부(10), 경로 생성부(20), 그리고 장애물 검출부(30)의 처리 결과를 기반으로 모바일 로봇의 움직임을 제어하여 모바일 로봇이 자율 주행하도록 한다. 이를 위해, 움직임 제어부(40)는 모바일 로봇의 유형별로 움직임을 제어하기 위한 제어 정보를 생성할 수 있다. 예를 들어, 모바일 로봇이 디퍼런셜 휠(differential wheel) 유형의 로봇인 경우 (v, w)의 제어 정보를 생성하며, 여기서 v는 이동 속도를 나타내고, w는 회전속도를 나타낸다. 모바일 로봇이 아커만(Ackermann) 유형의 로봇이거나 더블(double) 아커만 유형의 로봇인 경우 (v, δ)의 제어 정보를 생성하며, 여기서 δ는 조향각을 나타낸다.
이러한 구조로 이루어지는 자율 주행 장치(1)에서, 각 부(10~40)는 독립적으로 실행될 수 있으며, 각 부(10~40)는 필요한 데이터(메시지)를 전달할 수 있다.
다음에는 이러한 자율 주행 장치(1)를 기반으로 모바일 로봇 자율 주행을 위한 방법에 대해 설명한다.
먼저, 모바일 로봇 자율 주행을 위한 주행 맵을 작성하고 위치를 인식하는 방법에 대해 설명한다.
도 2는 본 발명의 실시 예에 따른 주행 맵을 작성하고 위치를 인식하는 방법의 흐름도이다.
자율 주행 장치(1)의 위치 획득부(10)는 센서부 예를 들어, 벨로다인(velodyne) LIDAR 센서로부터 제공되는 3D 포인트 클라우드 데이터와 IMU 센서로부터의 데이터를 입력받아 3D 맵인 주행 맵을 작성하고, 동시에 작성된 주행 맵을 기반으로 모바일 로봇의 위치를 실시간으로 계산한다.
이를 위해, 위치 획득부(10)는 도 2에서와 같이, 3D 포인트 클라우드 데이터와 IMU 센서로부터의 데이터를 입력받는다(S100). 여기서, St-1은 t-1 시점의 3D 포인트 클라우드 데이터를 나타내고, St는 t 시점의 3D 포인트 클라우드 데이터를 나타내며, Mt는 글로벌 포인트 클라우드 맵을 나타낸다.
위치 획득부(10)의 프로세스가 시작되는 위치가 초기 위치(x, y, z, 롤, 피치, 요)가 된다. 위치 추정부(12)에 의해 초기 위치(x, y, z)를 토대로 EKF 기반 예측이 수행되어 예측 위치(P_)가 획득되며(S110), SLAM 매칭부(11)는 실시간으로 입력되는 3D 포인트 클라우드 데이터와 예측 위치(P_)를 토대로 로컬 스캔 매칭(local scan matching)을 수행한다(S120).
도 3은 본 발명의 실시 예에 따른 로컬 스캔 매칭을 나타낸 예시도이다.
모바일 로봇의 자율 주행을 위해서 오도메트리 정보가 요구되는데, 현재 모바일 로봇 자체에서 제공되는 오도메트리 정보가 없으므로, 로컬 스캔 매칭을 오도메트리 정보를 생성한다. 예를 들어, 도 3에서와 같이, t1 시점에서 획득한 포인트 클라우드 데이터(St-1)와 t 시점에서 획득한 포인트 클라우드 데이터(St)를 매칭하여 Δp(pose)를 추출한다. Δp를 연속적으로 누적하게 되면 모바일 로봇의 위치를 추정할 수 있다.
그리고, SLAM 매칭부(11)는 로컬 스캔 매칭 결과와 예측 위치(P_)를 기반으로 로컬 위치 에러(△Pl)를 획득한다(S130).
또한, SLAM 매칭부(11)는 글로벌 스캔 매칭(global scan matching)을 수행한다(S140).
도 4는 본 발명의 실시 예에 따른 글로벌 스캔 매칭을 나타낸 예시도이다.
로컬 스캔 매칭을 통해서 모바일 로봇의 위치를 추정할 수 있지만 주행을 계속함에 따라 위치 오차는 커지게 된다. 따라서 글로벌 스캔 매칭을 통하여 위치 오차가 누적되지 않도록 주기적인 스캔 매칭을 하여 모바일 로봇의 위치를 보정한다. 즉, 현재 포인트 클라우드 데이터(St)와 글로벌 포인트 클라우드 맵(Mt)을 이용한 매칭 스캔을 수행하여 도 4와 같은 맵이 작성되고 위치가 추정된다.
그리고 글로벌 스캔 매칭 결과와 예측 위치(P)를 기반으로 글로벌 위치 에러(△Pg)를 획득한다(S150).
이후, 위치 추정부(12)는 로컬 위치 에러(△Pl)와 글로벌 위치 에러(△Pg)를 기반으로 추정된 위치를 보정하여(S160), 최종적으로 모바일 로봇의 현재 위치(P)를 획득한다. 이와 같이 인식된 현재 위치(P)에 따른 위치 데이터(x,y,z)가 획득된다. 또한 로컬 매칭이 이루어질 때 Δt 동안의 이동 거리(Δx, Δy, Δz)를 알 수 있으므로 모바일 로봇의 이동 속도를 예측할 수 있다. 따라서 이동 거리를 기반으로 이동 속도(Vx, Vy, Vz)를 추정할 수 있다. 모바일 로봇의 위치와 이동 속도는 EKF를 이용하여 지속적으로 보정된다
이러한 과정을 통해 모바일 로봇 자율 주행을 위한 주행 맵을 작성하고 위치를 인식할 수 있다.
다음에는 모바일 로봇 자율 주행을 위한 주행 경로를 생성하는 방법에 대해 설명한다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 주행 경로를 생성하는 방법의 흐름도이다.
과수원의 나무는 일반적으로 종횡 축으로 일정한 간격(예를 들어, 종축으로 1.5m~2m의 간격, 횡축으로 3m~4m의 간격)으로 배치되어 있다. 본 발명의 실시 예에서는 이러한 과수원 환경의 특징을 고려하여 주행 경로를 생성하기 위해, 각 나무의 중심점을 추출한다. 그리고 추출된 각 나무의 중심점 사이의 거리를 이용하여 클러스터링하고, 동일 클러스터 내에서 로컬 라인(local line)을 추출하며, 추출된 라인 정보를 이용하여 직진 경로 생성 및 회전 경로를 생성한다.
벨로다인 LIDAR 센서로부터 획득된 3D 포인트 클라우드 데이터는 위치 획득부(10)에 의해 가공되어 주행 경로 생성을 위한 로컬 3D 포인트 데이터가 획득되며, 로컬 3D 포인트 데이터를 경로 생성부(20)로 전달된다.
도 5a에 도시되어 있듯이, 경로 생성부(20)의 그리드 맵 생성부(21)는 로컬 3D 포인트 데이터가 입력되면(S300), 먼저 그리드 맵을 생성한다.
그리드 맵을 생성하기 위해 나무의 중심점을 추출해야 한다. 로컬 3D 포인트 데이터에서 직접 나무의 중심점을 추출하는 것보다는 2D 공간에서 추출하는 것이 처리 속도면에서 유리하므로, 본 발명의 실시 예에서는 먼저 z축의 차원을 줄여 로컬 3D 포인트 데이터를 2D 그리드 맵으로 변환한다. 이를 위해, 로컬 3D 포인트 데이터가 투영될 평면(즉, 지면)을 추출한다(S310). 현재까지 생성된 맵의 지면 후보 포인트를 그룹화하여 RANSAC(Random sample Consensus) 기반의 평면 피팅(plane fitting)을 수행하여 지면을 추출한다. 그리고, 각 3D 포인트를 추출된 지면과 평행한 평면(예를 들어, 벨로다인 LIDAR 센서의 중심을 지나는 평면)에 투영시켜서 2D 그리드 맵을 획득한다(S320, S330).
그리고 획득된 2D 그리드 맵에 대해 스무딩(smoothing)을 수행한다(S340). 나뭇잎이 무성할 경우 나무의 정확한 중심점을 찾기가 힘들 수 있다. 그러므로 본 발명의 실시 예에서는 2D 그리드 맵의 각 그리드의 주변부(neighboring grid)의 값을 이용하여 스무딩 과정을 수행하여 보다 용이하게 나무의 중심점을 찾을 수 있도록 한다.
이를 위해, 2D 그리드 맵의 각각의 그리드에 대해 점유율을 계산하며, 본 발명의 실시 예에서는 각 포인트와 평면의 거리값이 작을수록(즉, LIDAR 센서의 센서 중심 평면에 가까울수록) 더 많은 가중치(weight)를 주는 방식으로 각 그리드의 점유율을 계산한다. 그리고, 위해 각 그리드의 주변부(neighboring grid)의 점유율 값을 이용하여 스무딩 과정을 수행하여 스무딩 처리된 2D 그리드 맵을 획득한다.
예를 들어, 이미지 픽셀 형태로 다음과 같이 점유율이 계산된 것으로 가정하면, 구별되게 표시된 영역의 중앙부 값(48)을 주변의 픽셀들의 값을 이용하여 평균한 값으로 치환하는 스무딩 처리를 수행한다. 즉, 중앙부 값(48)을 89+44+37+78+48+65+58+65+45)/9 = 58로 치환한다.
Figure pat00001
이러한 스무딩 처리를 다른 픽셀값들에 대해서도 동일하게 수행하여 치환을 한다. 이러한 방식으로 각 그리드에 대해 스무딩을 수행하여 스무딩 처리된 2D 그리드 맵을 획득한다. 한편 모든 픽셀에 대해서 스무딩 처리를 수행하는 경우 연산 시간이 증가되는 것을 고려하여, 각 그리드의 주변부 값의 합을 빠르게 추출하기 위해 적분 영상(integral image) 방법을 이용할 수 있다.
도 6은 본 발명의 실시 예에 따른 2D 그리드 맵과 스무딩 처리된 2D 그리드 맵을 나타낸 예시도이다.
도 6의 (a)와 같은 2D 그리드 맵에 대하여 스무딩 처리를 수행하여 도 6의 (b)와 같은 스무딩 처리된 2D 그리드 맵이 획득될 수 있다. 이에 따라 스무딩 처리된 2D 그리드 맵을 토대로 보다 개선된 중심점을 찾을 수 있다.
다음, 경로 생성부(20)의 트리 추출부(22)가 스무딩 처리된 2D 그리드 맵에서 나무의 중심점을 찾는다. 스무딩 처리된 2D 그리드 맵에서 그리드의 점유율이 가장 높은 지점이 나무의 중심점일 확률이 높다. 따라서 NMS(Non-maximal suppression) 방법을 이용하여 로컬 영역별로 최대 점유율을 가지는 그리드의 좌표(x, y)를 추출하여 먼저 나무 후보군을 생성한다(S350).
나무 중심점 추출의 오류에 대비하기 위하여 연속적으로 추출되지 않는 나무는 후보군에서 제외한다. 여기서, 2D 그리드 맵에서 그리드의 점유율이 가장 높은 지점 즉, 주변부보다 차이 나게 큰 값을 가지는 픽셀을 나무의 중심으로 판단하는 나무 추출 과정을 수행할 수 있다. 예를 들어, 2D 그리드 맵을 1초에 10번 생성하여 나무 추출 과정을 1초에 10번 수행하는 경우, 센서 데이터에 따라 나무가 추출되지 않을 때도 있다. 예를 들어 10번의 나무 추출 수행 과정 중 나무 추출에 성공한 경우를 1, 그렇지 않으면 0이라고 했을 때, 10번의 나무 추출 수행 과정의 결과가 “1 0 0 1 1 0 0 0 0 1 (total score: 8)”와 같은 케이스 1과 “0 1 1 0 1 1 0 1 1 1 (total score: 29)”인 케이스 2가 획득된 것으로 가정한다.
여기서 총 스코어(total score)는 1일 경우 5의 스코어를 부여하고, 0일 경우 -2의 스코어를 부여하는 방식으로 계산되며, 이에 따라 케이스1의 총 스코어는 “8”이고, 케이스 2의 총 스코어는 29이다. 각 결과별로, 총 스코어값이 설정값(예를 들어, 20)보다 높은 경우에는 해당 결과가 연속적으로 추출되는 나무인 것으로 판단하고, 총 스코어값이 설정값(예를 들어, 20)보다 같거나 작은 경우에는 해당 결과가 연속적으로 추출되는 나무가 아닌 것으로 판단된다. 이러한 과정에 따라, 케이스 1은 연속적으로 추출되지 않는 나무라고 판단되어 후보군에서 제외되고, 케이스 2는 연속적으로 추출된 나무인 것으로 판단한다.
또한 구조화된 물체나 건물의 평면 등의 영역에서 나무 후보가 추출될 수 있다. 따라서 나무 후보군에서 이러한 이상치(outlier)를 제거한다(S360). 이를 위해, 나무 후보의 중심 주위의 로우(raw) 3D 포인트 클라우드 중에서 가까운 k 개의 포인트를 이용하여 (x-y) 평면에 투영된 2D 공분산 행렬(covariance matrix)을 생성하고, 생성된 2D 공분산 행렬에서 고유값(eigenvalue)의 비율을 계산한다. 각 나무 후보에 대해 획득된 고유값의 비율 또는 그 역이 미리 설정된 값 이상인 경우, 해당 나무 후보를 나무 후보군에서 제외시킨다. 이러한 제거 과정을 통해 도 7과 같은 나무가 추출될 수 있다.
도 7은 본 발명의 실시 예에 따른 나무 추출 결과를 나타낸 예시도이다.
예를 들어, 도 6의 (b)와 같은 스무딩 처리된 2D 그리드 맵에서 위와 같이 나무 후보군을 생성하고 이상치 제거를 수행하면, 도 7과 같은 나무 포인트 즉, 나무 중심점들이 추출될 수 있다.
다음에, 경로 생성부(20)의 라인 매니저(23)가 추출된 나무 중심점을 기반으로 모바일 로봇 주변의 로컬 라인을 추출한다. 이를 위해, 도 5b에 도시되어 있듯이, 나무 중심점들에 대한 클러스터링을 수행한다(S370). 추출된 나무 중심점들을 거리 기반으로 클러스터링한다.
클러스터링에 따라 획득되는 각 클러스터 내에서 라인 피팅(line fitting)을 수행하여 모바일 로봇 주변의 로컬 라인을 추출한다(S380).
도 8은 본 발명의 실시 예에 따른 로컬 라인 추출 결과를 나타낸 예시도이다.
하나의 클러스터 내에서 RANSAC 기반의 라인 피팅을 수행함에 따라 도 8과 같이 모바일 로봇 주변의 로컬 라인이 추출된다. 안정적인 로컬 라인 추출을 위해 연속적으로 추출된 로컬 라인만을 선택하여 노이지 라인(noisy line)을 감소시킨다.
다음에 기존에 등록된 글로벌 라인(global line)과 추출된 로컬 라인 사이의 유사도(예를 들어, 두 라인 사이의 각도, 거리, 오버래핑(overlapping) 정도))를 측정한다(S390). 그리고 측정된 유사도에 따라 해당 로컬 라인을 기존 글로벌 라인에 병합시킬지 아니면 새로운 글로벌 라인으로 등록할지를 결정한다(S400). 예를 들어, 유사도가 설정값 이상인 경우에는 해당 로컬 라인을 기존 글로벌 라인에 병합시키고, 유사도가 설정값 보다 작은 경우에는 해당 로컬 라인을 새로운 글로벌 라인으로 등록한다.
도 9는 본 발명의 실시 예에 따라 글로벌 라인 추출 및 등록 결과를 나타낸 예시도이다.
글로벌 라인으로 등록되어도 다음 단계에서 추출되는 로컬 라인과의 지속적인 매칭이 되지 않으면 글로벌 라인에서 삭제될 수 있다. 글로벌 라인으로 등록된 후 미리 설정된 횟수 이상 로컬 라인과의 연속적인 매칭이 이루어졌다면(예를 들어, 유사도가 설정값 이상으로 로컬 라인과 병합된 경우), 영구적 라인(permanent line)으로 등록되어 추후 로컬 라인과 더 이상 매칭이 되지 않더라도 삭제되지 않는다. 이와 같이 추출된 로컬 라인들에 대한 글로벌 라인 등록 처리에 따라 도 9와 같은 글로벌 라인이 획득될 수 있다.
한편, 글로벌 라인들에 대해서 주기적으로 서로의 유사도를 비교하여, 유사도가 높다고 판단되는 두 글로벌 라인은 병합될 수 있다. 병합 후 글로벌 라인을 구성하는 나무 중심점들은 재정렬되며, 라인의 엔드 포인트(end point)도 갱신된다.
다음, 경로 생성부(20)의 경로 처리부(24)가 추출된 라인(글로벌 라인)을 기반으로 경로를 생성한다. 이를 위해, 추출된 글로벌 라인들 중에서 유효(valid) 라인을 식별한다(S410). 글로벌 라인들 중에서 현재 모바일 로봇의 위치와 가장 가까운 왼쪽 라인과 오른쪽 라인을 유효 라인 즉, 경로 생성을 위한 기본 라인으로 식별한다. 추출된 글로벌 라인들로 이루어지는 글로벌 라인 군에서, 모바일 로봇의 위치와 가장 가까우면서 모바일 로봇의 왼쪽에 위치되는 글로벌 라인인 왼쪽 라인과, 모바일 로봇의 위치와 가장 가까우면서 모바일 로봇의 오른쪽에 위치되는 글로벌 라인인 오른쪽 라인을 식별한다.
기본 라인으로 식별된 왼쪽 라인과 오른쪽 라인의 엔드 포인트들의 중심점을 모바일 로봇의 주행의 목적지로 결정한다. 모바일 로봇이 주행함에 따라 기본 라인의 엔드 포인트도 갱신되며 이에 따라 목적지 역시 갱신된다. 왼쪽 라인과 오른쪽 라인 중 하나만 식별된 경우, 다음 회전 방향을 고려하여 식별된 라인에 수직하게 일정 거리(예를 들어, 나무 배열의 횡축 간격의 반) 떨어진 지점을 목적지로 결정한다.
이와 같이, 주행의 목적지가 결정되면, 현재 생성된 그리드 맵(예: 2D 그리드 맵)정보와 DT(Distance Transform, 거리 변환) 방법을 이용하여 최단거리의 직진의 주행 경로를 생성한다(S420).
도 10은 본 발명의 실시 예에 따른 직진의 주행 경로를 나타낸 예시도이다.
도 9와 같은 글로벌 라인들에서 모바일 로봇의 왼쪽 라인과 오른쪽 라인이 모두 기본 라인으로 식별된 경우, 도 10의 (a)와 같은 직진의 주행 경로가 생성될 수 있다. 반면, 모바일 로봇의 왼쪽 라인과 오른쪽 라인 중 하나만 기본 라인으로 식별된 경우, 도 10의 (b)와 같은 직진의 주행 경로가 생성될 수 있다.
한편, 이러한 직진의 주행 경로 생성시, 경로 처리부(24)는 장애물 검출부(30)로부터 제공되는 검출 결과를 기반으로, 모바일 로봇의 중심과 목적지 사이에 장애물이 존재하는 것으로 판단되면, 해당 장애물의 위치를 추가적으로 고려하여 DT 방법에 따라 장애물을 회피할 수 있는 경로를 생성한다.
도 11은 본 발명의 실시 예에 따른 장애물 회피 경로를 나타낸 예시도이다.
도 11의 왼쪽에 예시된 바와 같이, 모바일 로봇의 목적지 사이에 장애물이 있는 경우에, 도 11의 오른쪽에 예시된 바와 같이, 장애물을 회피할 수 있는 직진의 주행 경로 즉, 장애물 회피 경로가 생성된다.
한편, 단계(S410)에서 식별된 기본 라인의 엔드 포인트와 모바일 로봇 사이의 거리가 최소 거리보다 작아서, 모바일 로봇이 기본 라인의 엔드 포인트에 가깝게 위치된 것으로 판단되는 경우에는, 다음 회전 방향을 고려하여 회전 경로를 생성한다(S430).
도 12는 본 발명의 실시 예에 따른 회전 경로를 나타낸 예시도이다.
회전 경로는 도 12에 예시된 바와 같이, 모바일 로봇이 기본 라인의 엔드 포인트에 가깝게 위치되는 경우, 다음 회전 방향을 고려하여 생성될 수 있다.
회전 경로는 기본적으로 나무 배열 횡축 간격을 지름으로 하는 원을 기반으로 생성된다. 회전 영역이 협소할 경우 타원의 회전 경로를 생성하여, 주행 시 주위 물체들과 일정 간격을 유지할 수 있도록 한다.
도 13은 본 발명의 실시 예에 따른 주행 환경 조건에 따른 회전 경로를 나타낸 예시도이다.
예를 들어, 도 13에서, 회전 경로 1은 회전 시 주위 공간이 충분할 경우의 회전 경로이며, 회전 경로 2는 주위 공간이 협소할 경우의 경로이며, 회전 경로 3은 직진 주행 단계에서 왼쪽 장애물로 인한 비대칭 회전 경로이다.
위에 기술된 바와 같은 과정을 통하여, 본 발명의 실시 예에 따르면, 과수원 환경에서 모바일 로봇의 위치를 인식하고 주행 경로(직진의 주행 경로 및 회전 경로)를 생성할 수 있다.
한편, 장애물을 검출시, 장애물 검출부(30)는 모바일 로봇의 주행 중 사람이나 동물 등의 갑작스러운 물체에 대응하기 위해, 장애물을 검출한다.
도 14는 본 발명의 실시 예에 따른 장애물 탐지 결과를 나타낸 예시도이다.
모바일 로봇의 크기(넓이×높이×길이)에 기반하여 안전 영역(safety region)을 설정한다. 그리고 도 14에 도시되어 있듯이, 안정 영역 내부에서 탐지되는 클라우드 포인트 중에서 모바일 로봇의 중심과 가장 가까운 포인트를 탐지한다. 그리고 장애물 검출부(30)는 탐지된 장애물에 관련된 메시지를 경로 생성부(20)로 전달한다.
도 15는 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 제어 방법의 전체 흐름도이다.
본 발명의 실시 예에 따른 자율 주행 장치(1)는 3D 포인트 클라우드 데이터와 IMU 센서로부터의 데이터를 입력받으며(S500), 그리고 3D 맵인 주행 맵을 작성한다(S510).
그리고 3D 포인트 클라우드 데이터와 초기 위치를 기반으로 로컬 스캔 매칭 및 글로벌 스캔 매칭을 수행하여 모바일 로봇의 위치를 추정한다. 그리고 로컬 스캔 매칭 및 글로벌 스캔 매칭에 따라 획득되는 위치 에러를 기반으로 추정된 위치를 보정하여, 최종적으로 모바일 로봇의 위치 그리고 이동 속도를 획득한다(S520).
다음, 3D 포인트 클라우드 데이터로부터 획득되는 로컬 3D 포인트 데이터를 2D 그리드 맵으로 변환한다(S530). 2D 그리드 맵의 각 그리드에 대해 점유율을 계산하고, 2D 그리드 맵에 대해 스무딩 처리를 수행하여 스무딩 처리된 2D 그리드 맵을 획득한다(S550).
스무딩 처리된 2D 그리드 맵으로부터 점유율을 기반으로 나무 후보군을 생성하고 나무 후보군으로부터 나무를 추출한다(S560). 그리고 추출된 나무의 중심점을 기반으로 로컬 라인을 추출하고, 글로벌 라인과의 추출된 로컬 라인 사이의 유사도를 기반으로 유효 라인인 기본 라인을 획득한다(S570).
이후, 유효 라인인 기본 라인을 토대로 목적지를 생성하고, 목적지 사이의 장애물 여부 그리고 생성된 목적지를 기반으로 직진의 주행 경로를 생성한다. 그리고, 목적지와 모바일 로봇 사이의 관계에 따라 회전 경로를 선택적으로 생성한다(S580).
이와 같이 생성된 주행 경로(직진의 경로 및/또는 회전 경로)를 기반으로 모바일 로봇을 움직임을 제어하기 위한 제어 정보를 생성한다(S590). 예를 들어, 주행 경로에 따라 직진의 이동 속도와 회전속도(v, ω) 또는 이동 속도와 조향각도(v, δ)를 계산한다. 여기서, 생성된 경로 중 모바일 로봇의 중심에서 일정 거리(d) 떨어진 지점을 단기 목표점으로 설정하고, 예를 들어, Pure-pursuit 알고리즘을 이용하여 이동 속도와 회전 속도(또는 조향각)을 계산한다.
이와 같이 획득되는 제어 정보에 따라 모바일 로봇의 주행이 이루어진다.
도 16은 본 발명의 다른 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치의 구조를 나타낸 도이다.
첨부한 도 16에 도시되어 있듯이, 본 발명의 실시 예에 따른 모바일 로봇의 자율 주행을 위한 장치 즉, 자율 주행 장치(100)는, 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 네트워크 인터페이스 장치(150) 및 저장 장치(160)를 포함하며, 이들은 버스(170)를 통해 통신할 수 있다.
프로세서(110)는 위의 도 1 내지 도 15를 토대로 설명한 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(110)는 위치 획득부, 경로 생성부, 장애물 검출부, 움직임 제어부의 기능을 수행하도록 구성될 수 있다.
프로세서(110)는 중앙 처리 장치(CPU)이거나, 또는 메모리(120) 또는 저장 장치(160)에 저장된 명령을 실행하는 반도체 장치일 수 있다.
메모리(120)는 프로세서(110)와 연결되고 프로세서(110)의 동작과 관련한 다양한 정보를 저장한다. 메모리(120)는 프로세서(110)에서 수행하기 위한 명령어를 저장하고 있거나 저장 장치(160)로부터 명령어를 로드하여 일시 저장할 수 있다. 프로세서(110)는 메모리(120)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 메모리는 ROM(121) 및 RAM(122)를 포함할 수 있다.
본 발명의 실시 예에서 메모리(120)/저장 장치(160)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
입력 인터페이스 장치(130)는 입력되는 데이터를 제공받아 프로세서(110)로 전달하도록 구성될 수 있다. 출력 인터페이스 장치(140)는 프로세서(110)의 처리 결과를 출력하도록 구성될 수 있다.
네트워크 인터페이스 장치(150)는 네트워크를 통해 입력되는 데이터를 제공받아 프로세서(110)로 전달하거나, 프로세서(110)의 처리 결과를 네트워크를 통해 다른 장치로 전송하도록 구성될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (20)

  1. 과수원 환경에서 모바일 로봇의 자율 주행을 위해 위치를 인식하고 경로를 생성하는 방법으로서,
    상기 과수원 환경에 대한 3D(three dimension) 포인트 클라우드 데이터를 2D 그리드 맵으로 변환하는 단계;
    상기 2D 그리드 맵에 대한 로컬 스캔 매칭 및 글로벌 스캔 매칭을 수행하여 상기 모바일 로봇의 위치를 획득하는 단계;
    상기 2D 그리드 맵의 각 그리드의 점유율을 기반으로 상기 2D 그리드 맵으로부터 나무를 추출하는 단계;
    상기 추출된 나무들의 중심점을 기반으로 유효 라인을 획득하는 단계; 및
    상기 획득된 유효 라인을 토대로 목적지를 생성하고, 상기 생성된 목적지와 상기 모바일 로봇의 위치에 따라 주행 경로를 생성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 나무를 추출하는 단계는,
    상기 2D 그리드 맵에 대해 로컬 영역별로 가장 큰 점유율을 가지는 그리드를 기반으로 나무 후보군을 생성하는 단계; 및
    상기 나무 후보군으로부터 이상치(outlier)를 제거하여 나무들을 추출하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서,
    그리드에 포함되는 각 포인트와 설정된 평면의 거리값이 작을수록 더 많은 가중치를 주는 방식으로 각 그리드에 대한 점유율이 계산되며,
    상기 이상치를 제거하여 나무들을 추출하는 단계는,
    상기 나무 후보군에 포함되는 나무 후보의 중심 주위의 로우(raw) 3D 포인트 클라우드 중에서 설정 개수의 포인트를 이용하여 (x-y) 평면에 투영된 2D 공분산 행렬을 생성하는 단계;
    상기 생성된 2D 공분산 행렬에서 고유값의 비율을 계산하는 단계; 및
    각 나무 후보에 대해 획득된 고유값의 비율 또는 그 역이 미리 설정된 값 이상인 경우, 해당 나무 후보를 나무 후보군에서 제외시키는 단계
    를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 유효 라인을 획득하는 단계는
    상기 과수원 환경에서 나무들이 종축 및 횡축으로 설정 간격을 두고 배치되어 있는 특성을 고려하여, 상기 추출된 나무들의 중심점을 추출하는 단계; 및
    상기 추출된 나무들의 중심점을 이용하여 경로 생성을 위한 유효 라인을 획득하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 경로 생성을 위한 유효 라인을 획득하는 단계는,
    상기 나무 중심점들의 거리를 기반으로 클러스터링을 수행하는 단계;
    상기 클러스터링에 따라 획득되는 각 클러스터 내에서 라인 피팅(line fitting)을 수행하여 모바일 로봇 주변의 로컬 라인을 추출하는 단계; 및
    상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계
    를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계는,
    미리 등록된 글로벌 라인과 상기 추출된 로컬 라인 사이의 유사도를 기반으로 상기 추출된 로컬 라인을 상기 등록된 글로벌 라인과 병합시키거나 새로운 글로벌 라인으로 등록하는 과정을 통해, 글로벌 라인군을 획득하고, 획득된 글로벌 라인군에서 유효 라인을 획득하는, 방법.
  7. 제6항에 있어서,
    상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 단계는,
    상기 글로벌 라인군에 포함되는 글로벌 라인들 중에서 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 왼쪽에 위치되는 글로벌 라인인 왼쪽 라인과, 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 오른쪽에 위치되는 글로벌 라인인 오른쪽 라인을 유효 라인으로 획득하는, 방법.
  8. 제1항에 있어서,
    상기 주행 경로를 생성하는 단계는,
    상기 유효 라인이 상기 모바일 로봇의 왼쪽에 위치되는 왼쪽 라인과 상기 모바일 로봇의 오른쪽에 위치되는 오른쪽 라인을 포함하는 경우, 상기 왼쪽 라인의 엔드 포인트(end point)와 상기 오른쪽 라인의 엔드 포인트의 중심점을 상기 모바일 로봇의 주행의 목적지로 결정하는 단계; 및
    상기 유효 라인이 상기 왼쪽 라인 또는 상기 오른쪽 라인만을 포함하는 경우, 상기 모바일 로봇의 회전 방향을 고려하여 상기 포함된 라인에 수직하게 설정 거리 떨어진 지점을 목적지로 결정하는 단계
    를 포함하며, 상기 설정 거리는 상기 과수원 환경에서 배열되어 있는 나무들의 횡축 간격의 반에 대응하는, 방법.
  9. 제1항에 있어서,
    상기 주행 경로를 생성하는 단계는,
    상기 목적지에 따라 상기 모바일 로봇의 직진의 주행 경로를 생성하는 단계;
    상기 목적지와 상기 모바일 로봇의 중심 사이에 장애물이 존재하는 경우, 상기 장애물의 위치를 추가적으로 고려하여 상기 장애물을 회피하는 직진의 장애물 회피 경로를 생성하는 단계; 및
    상기 유효 라인의 엔드 포인트와 상기 모바일 로봇 사이의 거리가 최소 거리보다 작은 경우, 상기 모바일 로봇의 회전 방향을 고려하여 회전 경로를 생성하는 단계
    를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 모바일 로봇의 위치를 획득하는 단계는,
    t-1 시점에 입력되는 3D 포인트 클라우드 데이터와 t 시점에 입력되는 3D 포인트 클라우드 데이터를 기반으로 로컬 스캔 매칭을 수행하는 단계;
    상기 t 시점에 입력되는 3D 포인트 클라우드 데이터와 글로벌 포인트 클라우드 맵을 이용하여 글로벌 스캔 매칭을 수행하는 단계; 및
    상기 로컬 스캔 매칭 결과 및 상기 글로벌 스캔 매칭 결과를 기반으로, 상기 모바일 로봇의 위치를 획득하는 단계
    를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 로컬 스캔 매칭 결과 및 상기 글로벌 스캔 매칭 결과를 기반으로, 상기 모바일 로봇의 위치를 획득하는 단계는,
    상기 모바일 로봇의 추정 위치를 상기 로컬 스캔 매칭 결과에 따른 위치 에러와 상기 그로벌 스캔 매칭 결과에 따른 위치 에러를 기반으로 보정하여 최종적으로 상기 모바일 로봇의 위치를 획득하는 단계
    를 포함하는, 방법.
  12. 제1항에 있어서,
    상기 2D 그리드 맵으로 변환하는 단계는,
    상기 3D 포인트 클라우드 데이터로부터 획득되는 로컬 3D 포인트 데이터에 대해 투영될 평면을 추출하는 단계; 및
    상기 로컬 3D 포인트 데이터의 각각의 3D 포인트를 상기 평면에 투영시켜 상기 2D 그리드 맵을 획득하는 단계
    를 포함하고, 상기 평면은 지면인, 방법.
  13. 제1항에 있어서,
    상기 2D 그리드 맵으로 변환하는 단계 이후에,
    상기 2D 그리드 맵의 각 그리드의 주변부 그리드의 값을 이용하여 스무딩(smoothing)을 수행하는 단계
    를 더 포함하고,
    상기 모바일 로봇의 위치를 획득하는 단계 및 상기 나무를 추출하는 단계는 상기 스무딩 처리된 2D 그리드 맵을 기반으로 수행되는, 방법.
  14. 과수원 환경에서 모바일 로봇의 자율 주행을 위해 위치를 인식하고 경로를 생성하는 장치로서,
    상기 과수원 환경에 대한 3D(three dimension) 포인트 클라우드 데이터를 입력받도록 구성된 인터페이스 장치; 및
    상기 3D 포인트 클라우드 데이터를 토대로 상기 모바일 로봇의 위치를 인식하고 경로를 생성하도록 구성된 프로세서
    를 포함하고,
    상기 프로세서는,
    상기 3D 포인트 클라우드 데이터를 2D 그리드 맵으로 변환하는 동작;
    상기 2D 그리드 맵에 대한 로컬 스캔 매칭 및 글로벌 스캔 매칭을 수행하여 상기 모바일 로봇의 위치를 획득하는 동작;
    상기 2D 그리드 맵의 각 그리드의 점유율을 기반으로 상기 2D 그리드 맵으로부터 나무를 추출하는 동작;
    상기 추출된 나무들의 중심점을 기반으로 유효 라인을 획득하는 동작; 및
    상기 획득된 유효 라인을 토대로 목적지를 생성하고, 상기 생성된 목적지와 상기 모바일 로봇의 위치에 따라 주행 경로를 생성하는 동작을 수행하도록 구성되는, 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 2D 그리드 맵에 대해 로컬 영역별로 가장 큰 점유율을 가지는 그리드를 기반으로 나무 후보군을 생성하는 동작;
    상기 나무 후보군에 포함되는 나무 후보의 중심 주위의 로우 3D 포인트 클라우드 중에서 설정 개수의 포인트를 이용하여 (x-y) 평면에 투영된 2D 공분산 행렬을 생성하는 동작;
    상기 생성된 2D 공분산 행렬에서 고유값의 비율을 계산하는 동작; 및
    각 나무 후보에 대해 획득된 고유값의 비율 또는 그 역이 미리 설정된 값 이상인 경우, 해당 나무 후보를 나무 후보군에서 제외시키는 동작을 수행하도록 구성되고,
    그리드에 포함되는 각 포인트와 설정된 평면의 거리값이 작을수록 더 많은 가중치를 주는 방식으로 각 그리드에 대한 점유율이 계산되는, 장치.
  16. 제14항에 있어서,
    상기 프로세서는 상기 유효 라인을 획득하는 경우,
    상기 과수원 환경에서 나무들이 종축 및 횡축으로 설정 간격을 두고 배치되어 있는 특성을 고려하여, 상기 추출된 나무들의 중심점을 추출하는 동작;
    상기 나무 중심점들의 거리를 기반으로 클러스터링을 수행하는 동작;
    상기 클러스터링에 따라 획득되는 각 클러스터 내에서 라인 피팅을 수행하여 모바일 로봇 주변의 로컬 라인을 추출하는 동작; 및
    상기 추출된 로컬 라인을 이용하여 유효 라인을 획득하는 동작을 수행하도록 구성되는, 장치.
  17. 제16항에 있어서,
    상기 프로세서는, 미리 등록된 글로벌 라인과 상기 추출된 로컬 라인 사이의 유사도를 기반으로 상기 추출된 로컬 라인을 상기 등록된 글로벌 라인과 병합시키거나 새로운 글로벌 라인으로 등록하는 과정을 통해, 글로벌 라인군을 획득하고, 획득된 글로벌 라인군에 포함되는 글로벌 라인들 중에서 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 왼쪽에 위치되는 글로벌 라인인 왼쪽 라인과, 상기 모바일 로봇의 위치와 가장 가까우면서 상기 모바일 로봇의 오른쪽에 위치되는 글로벌 라인인 오른쪽 라인을 유효 라인으로 획득하도록 구성되는, 장치.
  18. 제14항에 있어서,
    상기 프로세서는 상기 주행 경로를 생성하는 경우,
    상기 유효 라인이 상기 모바일 로봇의 왼쪽에 위치되는 왼쪽 라인과 상기 모바일 로봇의 오른쪽에 위치되는 오른쪽 라인을 포함하는 경우, 상기 왼쪽 라인의 엔드 포인트와 상기 오른쪽 라인의 엔드 포인트의 중심점을 상기 모바일 로봇의 주행의 목적지로 결정하는 동작; 및
    상기 유효 라인이 상기 왼쪽 라인 또는 상기 오른쪽 라인만을 포함하는 경우, 상기 모바일 로봇의 회전 방향을 고려하여 상기 포함된 라인에 수직하게 설정 거리 떨어진 지점을 목적지로 결정하는 동작을 수행하도록 구성되며,
    상기 설정 거리는 상기 과수원 환경에서 배열되어 있는 나무들의 횡축 간격의 반에 대응하는, 장치.
  19. 제14항에 있어서,
    상기 프로세서는 상기 주행 경로를 생성하는 경우,
    상기 목적지에 따라 상기 모바일 로봇의 직진의 주행 경로를 생성하는 동작;
    상기 목적지와 상기 모바일 로봇의 중심 사이에 장애물이 존재하는 경우, 상기 장애물의 위치를 추가적으로 고려하여 상기 장애물을 회피하는 직진의 장애물 회피 경로를 생성하는 동작; 및
    상기 유효 라인의 엔드 포인트와 상기 모바일 로봇 사이의 거리가 최소 거리보다 작은 경우, 상기 모바일 로봇의 회전 방향을 고려하여 회전 경로를 생성하는 동작을 수행하도록 구성되는, 장치.
  20. 제14항에 있어서,
    상기 프로세서는 상기 모바일 로봇의 위치를 획득하는 경우,
    t-1 시점에 입력되는 3D 포인트 클라우드 데이터와 t 시점에 입력되는 3D 포인트 클라우드 데이터를 기반으로 로컬 스캔 매칭을 수행하는 동작;
    상기 t 시점에 입력되는 3D 포인트 클라우드 데이터와 글로벌 포인트 클라우드 맵을 이용하여 글로벌 스캔 매칭을 수행하는 동작; 및
    상기 모바일 로봇의 추정 위치를 상기 로컬 스캔 매칭 결과에 따른 위치 에러와 상기 그로벌 스캔 매칭 결과에 따른 위치 에러를 기반으로 보정하여 최종적으로 상기 모바일 로봇의 위치를 획득하는 동작을 수행하도록 구성되는, 장치.















KR1020200027252A 2020-03-04 2020-03-04 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치 KR20210112106A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200027252A KR20210112106A (ko) 2020-03-04 2020-03-04 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치
US17/188,688 US11841706B2 (en) 2020-03-04 2021-03-01 Method and apparatus for autonomous driving of mobile robot in orchard environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200027252A KR20210112106A (ko) 2020-03-04 2020-03-04 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210112106A true KR20210112106A (ko) 2021-09-14

Family

ID=77554811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200027252A KR20210112106A (ko) 2020-03-04 2020-03-04 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치

Country Status (2)

Country Link
US (1) US11841706B2 (ko)
KR (1) KR20210112106A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114227683A (zh) * 2021-12-23 2022-03-25 江苏木盟智能科技有限公司 机器人控制方法、系统、终端设备和存储介质
CN114485667A (zh) * 2022-01-13 2022-05-13 中国农业大学 一种轻智能化的果园地头导航方法
CN117451033A (zh) * 2023-12-21 2024-01-26 广东石油化工学院 一种同步定位与地图构建方法、装置、终端及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202200001616A1 (it) * 2022-01-31 2023-07-31 Cnh Ind Italia Spa Metodo per la gestione di un veicolo agricolo durante il processo di raccolta in una piantagione di alberi da frutto, come un aranceto

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010561A2 (en) * 2003-07-22 2005-02-03 L-3 Communications Security and Detection Systems Corporation Methods and apparatus for detecting objects in baggage using x-rays
US7554883B2 (en) * 2004-10-11 2009-06-30 Landmark Graphics Corporation Fault filter for seismic discontinuity data
US9026054B2 (en) * 2011-12-20 2015-05-05 Lg Electronics Inc. Method and apparatus for detecting radio signal
US10728130B2 (en) 2016-04-21 2020-07-28 Cisco Technology, Inc. Distributed stateless inference of hop-wise delays and round-trip time for internet protocol traffic
WO2018214084A1 (en) * 2017-05-25 2018-11-29 Bayerische Motoren Werke Aktiengesellschaft Method and apparatus for representing environmental elements, system, and vehicle/robot
KR102160968B1 (ko) 2017-07-17 2020-09-29 한국전자통신연구원 자율주행 로봇 장치 및 자율 주행 방법
KR102466940B1 (ko) 2018-04-05 2022-11-14 한국전자통신연구원 로봇 주행용 위상 지도 생성 장치 및 방법
US11277956B2 (en) * 2018-07-26 2022-03-22 Bear Flag Robotics, Inc. Vehicle controllers for agricultural and industrial applications

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114227683A (zh) * 2021-12-23 2022-03-25 江苏木盟智能科技有限公司 机器人控制方法、系统、终端设备和存储介质
CN114227683B (zh) * 2021-12-23 2024-02-09 江苏木盟智能科技有限公司 机器人控制方法、系统、终端设备和存储介质
CN114485667A (zh) * 2022-01-13 2022-05-13 中国农业大学 一种轻智能化的果园地头导航方法
CN117451033A (zh) * 2023-12-21 2024-01-26 广东石油化工学院 一种同步定位与地图构建方法、装置、终端及介质

Also Published As

Publication number Publication date
US11841706B2 (en) 2023-12-12
US20210278848A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
KR20210112106A (ko) 과수원 환경에서의 모바일 로봇 자율 주행을 위한 방법 및 장치
AU2019404207B2 (en) Collaborative autonomous ground vehicle
KR101619076B1 (ko) 모바일 플랫폼의 동적 물체 검출 및 추적 방법
US9274526B2 (en) Autonomous vehicle and method of estimating self position of autonomous vehicle
US8515612B2 (en) Route planning method, route planning device and autonomous mobile device
JP5782708B2 (ja) 走行支援装置
KR102056147B1 (ko) 자율주행차량을 위한 거리 데이터와 3차원 스캔 데이터의 정합 방법 및 그 장치
JP6240595B2 (ja) 自己位置推定装置及び自己位置推定装置を備えた移動体
TWI772743B (zh) 資訊處理裝置以及移動機器人
JP2011054082A (ja) 自律移動装置
KR102547274B1 (ko) 이동 로봇 및 이의 위치 인식 방법
Maier et al. Self-supervised obstacle detection for humanoid navigation using monocular vision and sparse laser data
Yang et al. FAR planner: Fast, attemptable route planner using dynamic visibility update
JP2019152575A (ja) 物体追跡装置、物体追跡方法及び物体追跡用コンピュータプログラム
CN113701780A (zh) 基于a星算法的实时避障规划方法
JP2017146893A (ja) 自己位置推定方法
JP6649054B2 (ja) 移動体
JP6900029B2 (ja) 無人航空機、位置推定装置、飛行制御装置、位置推定方法、制御方法及びプログラム
JP6299957B2 (ja) 移動体制御装置、移動体制御プログラムおよび移動体制御方法
JP6438354B2 (ja) 自己位置推定装置及び自己位置推定装置を備えた移動体
JP7278740B2 (ja) 移動体制御装置
JP5895682B2 (ja) 障害物検出装置及びそれを備えた移動体
US20230185317A1 (en) Information processing device, information processing system, method, and program
US20240111297A1 (en) Travel control system, travel control method, and computer program
WO2022004385A1 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal