Nothing Special   »   [go: up one dir, main page]

KR102392122B1 - 이동 로봇 및 이의 위치 추정 방법 - Google Patents

이동 로봇 및 이의 위치 추정 방법 Download PDF

Info

Publication number
KR102392122B1
KR102392122B1 KR1020200128706A KR20200128706A KR102392122B1 KR 102392122 B1 KR102392122 B1 KR 102392122B1 KR 1020200128706 A KR1020200128706 A KR 1020200128706A KR 20200128706 A KR20200128706 A KR 20200128706A KR 102392122 B1 KR102392122 B1 KR 102392122B1
Authority
KR
South Korea
Prior art keywords
processor
estimating
external force
mobile robot
generation
Prior art date
Application number
KR1020200128706A
Other languages
English (en)
Other versions
KR20220045725A (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 KR1020200128706A priority Critical patent/KR102392122B1/ko
Publication of KR20220045725A publication Critical patent/KR20220045725A/ko
Application granted granted Critical
Publication of KR102392122B1 publication Critical patent/KR102392122B1/ko

Links

Images

Classifications

    • 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
    • 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
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • 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/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

이동 로봇의 위치 추정 방법이 개시된다. 복수의 바퀴들, 상기 복수의 바퀴들 각각의 회전을 감지하여 각각의 감지 신호를 전송하는 복수의 엔코더들, IMU 센서, 메모리, 및 프로세서를 포함하는 이동 로봇의 위치 추정 방법은 상기 프로세서는 평상시 상기 복수의 엔코더들의 감지 신호들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계, 상기 프로세서는 상기 복수의 엔코더들과 상기 IMU 센서를 이용하여 외력 발생을 추정하는 단계, 상기 외력 발생이 추정될 때, 상기 프로세서는 상기 복수의 엔코더들을 이용하지 않고, 상기 IMU 센서에 의해 추정된 추정 신호만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계, 및 상기 외력 발생이 종료될 때, 상기 프로세서는 상기 IMU 센서를 이용하지 않고 상기 복수의 엔코더들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계를 포함한다. 상기 외력 발생을 추정하는 단계는 상기 프로세서는 상기 복수의 엔코더들로부터 각각의 감지 신호를 수신하여 상기 이동 로봇의 제1헤딩 방향을 추정하는 제1추정 동작을 실행하는 단계, 상기 프로세서는 상기 IMU 센서에 의해 측정된 측정 신호를 수신하여 상기 이동 로봇의 제2헤딩 방향을 추정하는 제2추정 동작을 실행하는 단계, 상기 프로세서는 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산하는 계산 동작을 실행하는 단계, 상기 프로세서는 상기 계산된 각도에 대해 단위 시간당 각도 변화량을 계산하는 변화량 계산 동작을 실행하는 단계, 상기 프로세서는 상기 단위 시간당 각도 변화량을 미분하는 미분 동작을 실행하는 단계, 상기 프로세서는 계산된 단위 시간당 각도 변화량을 미분한 값의 절대값을 0과 비교하는 비교 동작을 실행하는 단계, 및 상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계를 포함한다. 상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계는 상기 미분한 값의 절대값이 상기 0보다 클 때, 상기 프로세서는 외력이 발생한 것으로 추정한다.

Description

이동 로봇 및 이의 위치 추정 방법 {Mobile robot and its location estimation method}
본 발명의 개념에 따른 실시 예는 이동 로봇 및 이의 위치 추정 방법에 관한 것으로, 특히, 외력 상황에 강인한 이동 로봇 및 이의 위치 추정 방법에 관한 것이다.
이동 로봇은 공장, 물류 센터, 박물관, 식당, 또는 스마트 팜 등 다양한 곳에서 물건을 싣고 이동하거나, 사람들에게 이동하면서 정보, 또는 서비스를 제공하는데 이용될 수 있다.
이동 로봇의 동작을 제어하기 위해 이동 로봇의 위치가 추정되어야 한다. 종래의 이동 로봇은 바퀴의 회전을 감지하기 위한 엔코더(encoder)를 통해 이동 로봇의 위치를 추정하거나, IMU(Inertial Measurement Unit) 센서를 이용하여 이동 로봇의 위치를 추정하거나, 엔코더와 IMU 센서를 조합하여 이동 로봇의 위치를 추정하였다.
이동 로봇은 바퀴가 미끄러져 의도하지 않게 다른 위치로 이동할 수 있다. 이러한 상황은 외력 상황으로 정의될 수 있다. 외력 상황에서 엔코더 기반의 위치 추정은 부정확할 수 있다. 외력 상황에서 이동 로봇의 바퀴가 회전하지 않아 엔코더는 바퀴의 회전을 감지하지 않지만, 이동 로봇의 위치는 변경된다. 외력 상황에서 이동 로봇은 실제로 이동하였지만, 이동 로봇의 엔코더가 바퀴의 회전을 감지하지 않아 이동하지 않는 것으로 잘못 판단할 수 있다.
IMU 센서를 이용하여 이동 로봇의 위치를 추정할 때, IMU 센서의 오프셋 때문에 이동 로봇이 실제로 움직이지 않더라도 움직이는 것으로 판단하는 에러가 발생할 수 있다.
또한, 엔코더와 IMU 센서를 조합하여 이동 로봇의 위치를 추정할 때, 엔코더와 IMU 센서를 얼마나 이용하는지 각각의 이용 비율을 알아야 한다. 또한, 엔코더와 IMU 센서를 조합하여 이동 로봇의 위치를 추정할 때, 앞에서 언급한 엔코더를 이용하여 위치를 추정할 때의 단점과, IMU 센서를 이용하여 위치를 추정할 때의 단점을 그대로 가지고 있다.
이러한 문제점을 해결하기 위한 새로운 이동 로봇의 위치 추정 방법이 요구된다.
한국 공개특허공보 제10-2013-0034082호(2013.04.05.) 한국 등록특허공보 제10-0580628호(2006.05.09.)
본 발명이 이루고자 하는 기술적인 과제는 종래의 엔코더 기반의 위치 추정 방법에서 발생할 수 있는 문제점을 해결하기 위한 이동 로봇 및 이의 위치 추정 방법을 제공하기 위한 것이다.
본 발명의 실시 예에 따른 복수의 바퀴들, 상기 복수의 바퀴들 각각의 회전을 감지하여 각각의 감지 신호를 전송하는 복수의 엔코더들, IMU 센서, 메모리, 및 프로세서를 포함하는 이동 로봇의 주행 방향 제어 방법은 상기 프로세서는 평상시 상기 복수의 엔코더들의 감지 신호들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계, 상기 프로세서는 상기 복수의 엔코더들과 상기 IMU 센서를 이용하여 외력 발생을 추정하는 단계, 상기 외력 발생이 추정될 때, 상기 프로세서는 상기 복수의 엔코더들을 이용하지 않고, 상기 IMU 센서에 의해 추정된 추정 신호만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계, 및 상기 외력 발생이 종료될 때, 상기 프로세서는 상기 IMU 센서를 이용하지 않고 상기 복수의 엔코더들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계를 포함한다.
본 발명의 실시 예에 따른 상기 외력 발생을 추정하는 단계는 상기 프로세서는 상기 복수의 엔코더들로부터 각각의 감지 신호를 수신하여 상기 이동 로봇의 제1헤딩 방향을 추정하는 제1추정 동작을 실행하는 단계, 상기 프로세서는 상기 IMU 센서에 의해 측정된 측정 신호를 수신하여 상기 이동 로봇의 제2헤딩 방향을 추정하는 제2추정 동작을 실행하는 단계, 상기 프로세서는 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산하는 계산 동작을 실행하는 단계, 상기 프로세서는 상기 계산된 각도에 대해 단위 시간당 각도 변화량을 계산하는 변화량 계산 동작을 실행하는 단계, 및 상기 프로세서는 계산된 단위 시간당 각도 변화량을 보정하고 보정된 값의 절대값을 문턱값과 비교하는 비교 동작을 실행하는 단계, 및 상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계를 포함한다.
상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계는 상기 보정된 값의 절대값이 상기 문턱값보다 클 때, 상기 프로세서는 외력이 발생한 것으로 추정하며, 상기 보정된 값의 절대값이 상기 문턱값보다 작을 때, 상기 프로세서는 외력이 발생되지 않은 것으로 추정한다.
상기 제1추정 동작, 상기 제2추정 동작, 상기 계산 동작, 상기 변화량 계산 동작, 상기 비교 동작, 및 상기 외력 발생 추정 동작은 일정 시간마다 반복적으로 수행된다.
본 발명의 또 다른 실시 예에 따른 상기 외력 발생을 추정하는 단계는 상기 프로세서는 상기 복수의 엔코더들로부터 각각의 감지 신호를 수신하여 상기 이동 로봇의 제1헤딩 방향을 추정하는 제1추정 동작을 실행하는 단계, 상기 프로세서는 상기 IMU 센서에 의해 측정된 측정 신호를 수신하여 상기 이동 로봇의 제2헤딩 방향을 추정하는 제2추정 동작을 실행하는 단계, 상기 프로세서는 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산하는 계산 동작을 실행하는 단계, 상기 프로세서는 상기 계산된 각도에 대해 단위 시간당 각도 변화량을 계산하는 변화량 계산 동작을 실행하는 단계, 상기 프로세서는 상기 단위 시간당 각도 변화량을 미분하는 미분 동작을 실행하는 단계, 및 상기 단위 시간당 각도 변화량을 미분한 값의 절대값이 0보다 클 때, 상기 프로세서는 상기 외력이 발생된 것으로 추정하는 외력 발생 추정 동작을 실행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 이동 로봇은 복수의 바퀴들, 상기 복수의 바퀴들 각각의 회전을 감지하여 각각의 감지 신호를 전송하는 복수의 엔코더들, 상기 이동 로봇의 움직임을 측정하여 측정 신호를 전송하는 IMU 센서, 명령들을 저장하는 메모리, 및 상기 명령들을 실행하는 프로세서를 포함한다.
상기 명령들은 평상시 상기 복수의 엔코더들의 감지 신호들만을 이용하여 상기 이동 로봇의 위치를 추정하며, 상기 복수의 엔코더들과 상기 IMU 센서를 이용하여 외력 발생을 추정하며, 상기 외력 발생이 추정될 때, 상기 프로세서는 상기 복수의 엔코더들을 이용하지 않고, 상기 IMU 센서에 의해 추정된 추정 신호만을 이용하여 상기 이동 로봇의 위치를 추정하며, 상기 외력 발생이 종료될 때, 상기 프로세서는 상기 IMU 센서를 이용하지 않고 상기 복수의 엔코더들만을 이용하여 상기 이동 로봇의 위치를 추정하도록 구현된다.
본 발명의 실시 예에 따른 이동 로봇 및 이의 위치 추정 방법은 외력 상황 발생시 엔코더 기반이 아닌 IMU 센서에만 의존하여 이동 로봇의 위치를 추정함으로써 종래의 엔코더 기반의 위치 추정 방법에서 발생할 수 있는 위치 추정의 부정확성을 해결할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 이동 로봇의 블록도를 나타낸다.
도 2는 도 1에 도시된 이동 로봇이 평상시와 외력이 발생할 때를 나타내는 타이밍도이다.
도 3은 도 1에 도시된 이동 로봇의 외력 발생 추정의 어려움을 설명하기 위한 개념도를 나타낸다.
도 4는 본 발명의 실시 예에 따른 도 1에 도시된 이동 로봇의 외력 발생 추정을 설명하기 위한 개념도를 나타낸다.
도 5는 상대적으로 좋은 성능을 가지는 IMU 센서에 따른 이동 로봇의 개념도를 나타낸다.
도 6은 상대적으로 좋지 않은 성능을 가지는 IMU 센서에 따른 이동 로봇의 개념도를 나타낸다.
도 7은 도 1에 도시된 복수의 엔코더들과 IMU 센서에 의해 도출되는 신호들의 그래프들을 나타낸다.
도 8은 도 1에 도시된 이동 로봇의 외력 발생을 추정하기 위한 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 이동 로봇의 블록도를 나타낸다.
도 1을 참고하면, 이동 로봇(100)은 공장, 물류 센터, 박물관, 식당, 또는 스마트 팜 등 다양한 장소에서 물건을 싣고 이동하거나, 사람들에게 이동하면서 정보, 또는 서비스를 제공하는데 이용되는 장치를 의미한다. 이동 로봇(100)은 자율 주행 장치, 자율 주행 로봇 등 다양한 용어로 사용될 수 있다.
이동 로봇(100)은 바디(11), 복수의 바퀴들(13, 15), 복수의 모터들(17, 19), 프로세서(20), 메모리(21), 복수의 엔코더들(23, 25), 카메라(27), 및 IMU(Inertial Measurement Unit) 센서(29)를 포함한다. 실시 예에 따라 이동 로봇(100)은 라이다 센서(31)를 더 포함할 수 있다. 라이더 센서(31)는 지지대(33)가 위 아래로 이동함에 따라 다양한 위치들에서 물체를 감지할 수 있다. 이동 로봇(100)은 다양한 형태들로 구현될 수 있으며, 도 1은 이동 로봇(100)의 일 실시 예를 나타낸다. 도 1에서 이동 로봇(100)은 2개의 바퀴들(13, 15)을 포함하는 것으로 도시되었으나, 실시 예에 따라 이동 로봇(100)은 4개의 바퀴들, 또는 그 이상의 바퀴들을 포함할 수 있다. 복수의 모터들(17, 19)은 복수의 바퀴들(13, 15)과 결합되며, 프로세서(20)의 제어 하에 복수의 바퀴들(13, 15)을 구동하기 위해 이용된다.
바디(11) 내부에서 프로세서(20), 메모리(21), 복수의 엔코더들(23, 25), 카메라(27), 및 IMU 센서(29)가 구현될 수 있다. 프로세서(20)는 각 구성요소들(23, 25, 27, 또는 29)을 제어하기 위한 명령들을 실행한다. 구체적으로 프로세서(20)는 이동 로봇(100)의 위치를 추정한다. 메모리(21)는 상기 명령들을 저장한다. 이동 로봇(100)의 추정에 대해서는 뒤에서 자세히 설명될 것이다.
복수의 엔코더들(23, 25) 각각은 복수의 바퀴들(13, 15) 각각의 회전을 감지하여 각각의 감지 신호를 프로세서(20)로 전송한다. 프로세서(20)는 복수의 엔코더들(23, 25)로부터 수신된 각각의 감지 신호를 이용하여 이동 로봇(100)의 위치를 추정할 수 있다. 또한, 프로세서(20)는 복수의 엔코더들(23, 25)로부터 수신된 각각의 감지 신호를 이용하여 이동 로봇(100)의 제1헤딩 방향을 추정하는 제1추정 동작을 실행한다. 상기 제1헤딩 방향은 이동 로봇(100)의 진행 방향을 의미한다. 또한, 상기 제1헤딩 방향은 바디(11)의 정면에 설치된 카메라(27)가 촬영하는 방향을 의미할 수도 있다. 카메라(27)가 촬영하는 방향이 이동 로봇(100)을 기준으로 정북일 때, 상기 제1헤딩 방향도 정북이며, 카메라(27)가 촬영하는 방향이 이동 로봇(100)을 기준으로 정남일 때, 상기 제1헤딩 방향도 정남이다. 제1헤딩 방향의 추정 동작의 원리는 아래와 같다. 이동 로봇(100)이 왼쪽으로 이동할 때, 왼쪽의 바퀴(13)보다 오른쪽 바퀴(15)가 더 많이 이동된다. 따라서 복수의 엔코더들(23, 25)은 복수의 바퀴들(13, 15)의 회전수를 감지하고 각각의 바퀴들(13, 15)의 회전수를 비교함으로써 제1헤딩 방향이 추정될 수 있다.
카메라(27)는 이동 로봇(100)의 주변을 촬영하고, 촬영된 영상을 프로세서(20)로 전송한다.
IMU 센서(29)는 이동 로봇(100)의 움직임을 측정하여 측정 신호를 프로세서(20)로 전송한다. IMU 센서(29)는 바디(11)의 다양한 위치들에 구현될 수 있다. 프로세서(20)는 IMU 센서(29)로부터 수신된 측정 신호를 이용하여 이동 로봇(100)의 위치를 추정할 수 있다. 또한, 프로세서(20)는 IMU 센서(29)로부터 수신된 측정 신호를 이용하여 이동 로봇(100)의 제2헤딩 방향을 추정하는 제2추정 동작을 실행한다. 상기 제2헤딩 방향도 이동 로봇(100)의 진행 방향을 나타낸다. 또한, 상기 제2헤딩 방향도 상기 제1헤딩 방향과 유사하게 바디(11)의 정면에 설치된 카메라(27)가 촬영하는 방향을 의미할 수 있다. IMU 센서(29)는 바디(11)에 구현되며, IMU 센서(29)의 X축, Y축, 및 Z축 방향과, X축, Y축, 및 Z축 방향으로 회전하였는지 여부를 측정함으로써 제2헤딩 방향이 추정될 수 있다.
복수의 엔코더들(23, 25)만을 이용하여 이동 로봇(100)의 위치가 추정될 때, 바퀴(13, 또는 15)가 미끄러져 의도하지 않게 다른 위치로 이동하는 외력 상황이 발생할 수 있다. 외력 상황이 발생할 경우, 실제 이동 로봇(100)의 위치와 복수의 엔코더들(23, 25)에 의해 추정된 위치가 다르게 된다. 본 명세서에는 외력 상황 발생 대신에 외력 발생으로 사용한다.
반면, IMU 센서(29)만을 이용하여 이동 로봇(100)의 위치가 추정될 때, IMU 센서(29)의 오프셋(offset) 때문에 실제 이동 로봇(100)이 움직이지 않았음에도 불구하고, IMU 센서(29)는 이동 로봇(100)이 움직인 것으로 판단할 수 있다. IMU 센서(29)는 MEMS(Micro Electro Mechanical System) 센서이다. MEMS 센서의 물리적 특성들은 시간이 지남에 따라 변화한다. 이는 IMU 센서(29)의 오프셋을 초래한다. IMU 센서(29)만으로 이동 로봇(100)의 위치를 추정할 때, IMU 센서(29)의 오프셋이 보정되어야한다.
도 2는 도 1에 도시된 이동 로봇이 평상시와 외력이 발생할 때를 나타내는 타이밍도이다.
도 1과 도 2를 참고하면, 본 발명에서 이동 로봇(100)의 위치 추정은 아래와 같이 수행된다.
프로세서(20)는 평상시(ND) 복수의 엔코더들(23, 25)의 감지 신호들만을 이용하여 이동 로봇(100)의 위치를 추정한다. 복수의 엔코더들(23, 25)의 감지 신호들만을 이용하여 이동 로봇(100)의 위치를 추정하는 방법은 다양한 알고리즘들이 개시되어 있으므로, 이에 대해서는 자세하게 언급하지 않는다. 평상시(ND)란 외력 발생이 없는 경우를 의미한다. 외력 발생이 없을 때, 복수의 엔코더들(23, 25)만을 이용함으로 IMU(29)의 오프셋 보정이 필요 없다.
프로세서(20)는 복수의 엔코더들(23, 25)과 IMU 센서(29)를 이용하여 외력 발생을 추정한다. 도 2에서 복수의 화살표들은 외력 발생을 추정하는 시기를 나타낸다. 즉, 외력 발생은 일정한 시간(예컨대, 10Hz)마다 반복적으로 추정된다. 외력 발생의 추정 동작은 뒤에서 자세히 설명될 것이다.
상기 외력 발생이 추정될 때(AB), 프로세서(20)는 복수의 엔코더들(23, 25)을 이용하지 않고, IMU 센서(29)에 의해 추정된 추정 신호만을 이용하여 이동 로봇(100)의 위치를 추정한다. IMU 센서(29)를 이용하여 이동 로봇(100)의 위치를 추정하는 방법은 다양한 알고리즘들이 개시되어 있으므로, 이에 대해서는 자세하게 언급하지 않는다.
도 2를 참고하면, 외력이 발생되는 시기(AB)는 전체 시간 중에 일부분이다. 즉, 외력이 발생하는 짧은 시간(예컨대, AB) 동안에만 IMU 센서(29)만을 이용함으로써 IMU 센서(29)의 오프셋 보정 횟수를 최소화할 수 있다.
상기 외력 발생이 종료될 때(T1), 프로세서(20)는 IMU 센서(29)를 이용하지 않고 복수의 엔코더들(23, 25)만을 이용하여 이동 로봇(100)의 위치를 추정한다.
도 3은 도 1에 도시된 이동 로봇의 외력 발생 추정의 어려움을 설명하기 위한 개념도를 나타낸다. 도 3의 (a)는 t시간에서 이동 로봇의 상태, 도 3의 (b)는 (t+1)시간에서 이동 로봇의 상태를, 도 3의 (c)는 (t+2)시간에서 이동 로봇의 상태를 나타낸다. 이동 로봇(100)은 t시간에서 (t+2)시간 동안 정지해있다고 가정한다.
도 3의 (a)을 참고하면, θt wheel는 t시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. θt IMU는 t시간에서 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. dθt는 t시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이를 나타낸다.
도 3의 (b)를 참고하면, θt + 1 wheel는 (t+1)시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. θt + 1 IMU는 (t+1)시간에서 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. dθt + 1는 (t+1)시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이를 나타낸다.
도 3의 (c)를 참고하면, θt + 2 wheel는 (t+2)시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. θt + 2 IMU는 (t+2)시간에서 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향을 나타낸다. dθt +2는 (t+2)시간에서 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이를 나타낸다.
도 3의 (a), (b), 및 (c)를 참고하면, 이동 로봇(100)이 t시간에서 (t+2)시간 동안 정지해있음에도 불구하고, 시간이 지남에 따라 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향(θt IMUt + 1 IMUt + 2 IMU)은 IMU 센서(29)의 오프셋 때문에 변화한다. 따라서 IMU 센서(29)가 시간이 지남에 따라 변화기 때문에 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이(dθt,dθt + 1,dθt + 2)만으로는 외력 발생을 추정하기가 어렵다.
도 4는 본 발명의 실시 예에 따른 도 1에 도시된 이동 로봇의 외력 발생 추정을 설명하기 위한 개념도를 나타낸다.
본 발명에서는 외력 발생의 추정을 위해 아래와 같은 동작들이 제안된다.
도 1과 도 4를 참고하면, 프로세서(20)는 복수의 엔코더들(23, 25)과 IMU 센서(29)를 이용하여 외력 발생을 추정한다. 외력 발생의 추정은 일정한 시간마다 반복적으로 추정된다.
구체적으로, 프로세서(20)는 서로 다른 시간(t, t+1, 및 t+2)에 복수의 엔코더들(23, 25)로부터 각각의 감지 신호를 수신하여 이동 로봇(100)의 제1헤딩 방향(θt wheelt+1 wheel, θt+2 wheel)을 추정하는 제1추정 동작을 실행한다.
프로세서(20)는 IMU 센서(29)에 의해 측정된 측정 신호를 수신하여 이동 로봇(100)의 제2헤딩 방향(θt IMUt + 1 IMUt + 2 IMU)을 추정하는 제2추정 동작을 실행한다.
프로세서(20)는 제1헤딩 방향(θt wheelt + 1 wheel, θt + 2 wheel)과 제2헤딩 방향(θt IMUt+1 IMUt+2 IMU) 사이의 각도(dθt,dθt +1, dθt + 2)를 계산하는 계산 동작을 실행한다.
프로세서(20)는 상기 계산된 각도(dθt,dθt +1, dθt + 2)에 대해 단위 시간당 각도 변화량(d'θt+1, d'θt+2)을 계산하는 변화량 계산 동작을 실행한다.
단위 시간당 각도 변화량(d'θt +1, d'θt + 2)은 다음과 같이 정의된다.
[수학식 1]
d'θt +1=(d'θt +1-d'θt)/dt
[수학식 2]
d'θt +2=(d'θt +2-d'θt +1)/dt
프로세서(20)는 계산된 단위 시간당 각도 변화량(d'θt +1, d'θt + 2)을 보정한다. 상기 보정이란 IMU 센서(29)의 오프셋 보정을 의미한다. 예컨대, 단위 시간당 각도 변화량(d'θt +1, d'θt + 2)에서 일정한 시간마다 일정한 각도를 가감함으로써 보정 동작이 수행될 수 있다.
프로세서(20)는 상기 보정된 값의 절대값을 문턱값과 비교하는 비교 동작을 실행한다. 이는 아래의 수학식으로 표현될 수 있다.
[수학식 3]
|d'θt +1 - OFF|>Thres
[수학식 4]
|d'θt +2 - OFF|>Thres
상기 OFF는 오프셋 보정의 값을 의미하며, 상기 |d'θt +1 - OFF|, 또는 상기 |d'θt+2 - OFF|는 보정된 값의 절대값을 의미하며, 상기 Thres는 문턱값을 의미한다. 문턱값은 양의 문턱값과 음의 문턱값이 있으며, 특별한 언급이 없는 한 상기 문턱값은 양의 문턱값을 의미한다.
상기 비교 결과에 따라 프로세서(20)는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행한다.
구체적으로, 상기 보정된 값의 절대값(|d'θt+1 - OFF|, 또는 |d'θt +2 - OFF|)이 문턱값(Thres)보다 클 때, 프로세서(20)는 외력이 발생한 것으로 추정한다. 상기 외력이 발생된 것으로 추정될 때, 프로세서(20)는 IMU 센서(29)만을 이용하여 이동 로봇(100)의 주행 방향을 추정한다.
상기 보정된 값의 절대값(|d'θt+1 - OFF|, 또는 |d'θt +2 - OFF|)이 문턱값(Thres)보다 작을 때, 프로세서(20)는 외력이 발생되지 않은 것으로 추정한다. 상기 외력이 발생되지 않은 것으로 추정될 때, 프로세서(20)는 복수의 엔코더들(23, 25)만을 이용하여 이동 로봇(100)의 주행 방향을 추정한다.
외력 발생의 추정 동작은 상기 제1추정 동작, 상기 제2추정 동작, 상기 계산 동작, 상기 변화량 계산 동작, 상기 비교 동작, 및 상기 외력 발생 추정 동작을 포함한다.
도 5는 상대적으로 좋은 성능을 가지는 IMU 센서에 따른 이동 로봇의 개념도를 나타낸다.
도 5를 참고하면, 상대적으로 좋은 성능을 가지는 IMU 센서(29)는 IMU 센서(29)의 오프셋에 상대적으로 덜 민감하다. 상대적으로 좋은 성능을 가지는 IMU 센서(29)란 보다 정밀한 측정이 가능한 센서를 의미한다.
반면, 도 6을 참고하면, 상대적으로 좋지 않은 성능을 가지는 IMU 센서(29)는 IMU 센서(29)의 오프셋에 상대적으로 더 민감하다. 즉, 같은 시간이라도 상대적으로 좋지 않은 성능을 가지는 IMU 센서(29)는 훨씬 큰 오프셋을 가진다.
도 6은 상대적으로 좋지 않은 성능을 가지는 IMU 센서에 따른 이동 로봇의 개념도를 나타낸다.
도 6을 참고하면, 상대적으로 좋은 성능을 가지는 IMU 센서(29)는 오프셋에 상대적으로 덜 민감하지만, 좋은 성능을 가지는 IMU 센서(29)도 오프셋을 가지므로, 외력 발생을 추정하기 위해서는 매번 IMU 센서(29)의 오프셋을 보정하는 동작이 요구된다.
도 7은 도 1에 도시된 복수의 엔코더들과 IMU 센서에 의해 도출되는 신호들의 그래프들을 나타낸다. 도 7의 (a)는 외력이 발생하지 않을 때, 상대적으로 좋지 않은 성능을 가지는 IMU 센서에 따른 신호들의 그래프를 나타내며, 도 7의 (b)는 외력이 발생하지 않을 때, 상대적으로 좋은 성능을 가지는 IMU 센서에 따른 신호들의 그래프를 나타내며, 도 7의 (c)는 외력이 발생할 때, 상대적으로 좋지 않은 성능을 가지는 IMU 센서에 따른 신호들의 그래프를 나타내며, 도 7의 (d)는 외력이 발생할 때, 상대적으로 좋은 성능을 가지는 IMU 센서에 따른 신호들의 그래프를 나타낸다. 도 7의 각각 그래프에서 x축은 시간을 y값은 값을 나타낸다. 또한, dθt는 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이를, d'θt는 단위 시간당 각도 변화량을, d''θt는 단위 시간당 각도 변화량을 미분한 값을 나타낸다.
도 7의 (a)를 참고하면, 외력이 발생하지 않을 때, 단위 시간당 각도 변화량(d'θt)은 일정하다. 다만, 복수의 엔코더들(23, 25)에서 의해 추정된 이동 로봇(100)의 헤딩 방향과 IMU 센서(29)에서 의해 추정된 이동 로봇(100)의 헤딩 방향의 차이(dθt)는 IMU 센서(29)의 오프셋 때문에 시간이 지남에 따라 커진다. 단위 시간당 각도 변화량(d'θt)은 일정하므로, 단위 시간당 각도 변화량을 미분한 값(d''θt)도 0이다.
도 7의 (b)를 참고하면, 외력이 발생하지 않을 때, 도 7의 (a)과 마찬가지로, 단위 시간당 각도 변화량(d'θt)은 일정하다. 다만, 도 7의 (b)에서 단위 시간당 각도 변화량(d'θt)은 도 7의 (a)에서 단위 시간당 각도 변화량(d'θt)보다 작다. 왜냐하면, 도 7의 (b)는 상대적으로 성능이 좋은 IMU 센서(29)를 이용하였기 때문이다. 상대적으로 성능이 좋은 IMU 센서(29)는 오프셋에 덜 민감하므로, 헤딩 방향의 차이(dθt)의 기울기가 도 7의 (a)의 헤딩 방향의 차이(dθt)의 기울기보다 원만하다. 따라서 도 7의 (b)에서 단위 시간당 각도 변화량(d'θt)은 도 7의 (a)에서 단위 시간당 각도 변화량(d'θt)보다 작다. 마찬가지로, 단위 시간당 각도 변화량(d'θt)은 일정하므로, 단위 시간당 각도 변화량을 미분한 값(d''θt)도 0이다.
도 7의 (c)를 참고하면, 외력이 발생할 때(AB), 단위 시간당 각도 변화량(d'θt)은 순간적으로 음수의 문턱값(Thres(-))보다 작아진다. 양수의 문턱값은 Thres(+)으로 표현된다. 상기 수학식 3, 또는 상기 수학식 4와 같이 단위 시간당 각도 변화량(d'θt)에서 보정한 값의 절대값(|d'θt - OFF|)이 문턱값(Thres)보다 크다. 상기 문턱값(Thres)은 양의 문턱값을 의미한다.
도 7의 (d)를 참고하면, 도 7의 (c)와 유사하다. 다만, 도 7의 (c)와의 차이점은 도 7의 (d)의 경우, 상대적으로 좋은 성능을 가지는 IMU 센서(29)를 가지므로, 도 7의 (c)와 비교할 때, 단위 시간당 각도 변화량(d'θt)에서 보정한 값의 절대값(|d'θt - OFF|)이 상대적으로 작다. 다만, 이 경우에도, 단위 시간당 각도 변화량(d'θt)에서 보정한 값의 절대값(|d'θt - OFF|)이 문턱값(Thres)보다 크다. 상기 문턱값(Thres)은 양의 문턱값을 의미한다.
다시 도 7의 (c)를 참고하면, 단위 시간당 각도 변화량(d'θt)을 이용하여 외력 발생을 추정할 때마다 단위 시간당 각도 변화량(d'θt)의 오프셋이 보정되어야만한다. 하지만, 단위 시간당 각도 변화량(d'θt)을 미분한 값(d''θt)을 이용할 경우, 오프셋의 보정이 요구되지 않는다. 외력 발생 순간은 순간적이기 때문에 헤딩 방향의 차이(dθt)가 작다. 따라서 오프셋을 보정하지 않더라도 단위 시간당 각도 변화량(d'θt)을 미분한 값(d''θt)만을 이용하여 외력 발생의 추정이 가능하다.
즉, 단위 시간당 각도 변화량(d'θt)을 미분한 값(d''θt)의 절대값이 0보다 클 때, 프로세서(20)는 외력이 발생한 것으로 추정한다. 다음의 수학식으로 표현될 수 있다.
[수학식 5]
|d''θt|>0
실시 예에 따라 프로세서(20)는 단위 시간당 각도 변화량(d'θt)에서 보정한 값의 절대값(|d'θt - OFF|) 대신에 단위 시간당 각도 변화량(d'θt)을 미분한 값(d''θt)을 이용하여 외력 발생 여부를 추정할 수 있다. 단위 시간당 각도 변화량(d'θt)을 미분한 값(d''θt)을 이용할 때의 장점은 보정이 요구되지 않는다는 것이다.
도 8은 도 1에 도시된 이동 로봇의 외력 발생을 추정하기 위한 흐름도를 나타낸다.
도 1과 도 8을 참고하면, 프로세서(20)는 복수의 엔코더들(23, 25)로부터 각각의 감지 신호를 수신하여 이동 로봇(100)의 제1헤딩 방향을 추정한다(S10).
프로세서(20)는 IMU 센서(29)에 의해 측정된 측정 신호를 수신하여 이동 로봇(100)의 제2헤딩 방향을 추정한다(S20).
프로세서(20)는 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산한다(S30).
프로세서(20)는 상기 계산된 각도에 대해 단위 시간당 변화량을 계산한다(S40).
프로세서(20)는 계산된 단위 시간당 각도 변화량을 보정하고 보정된 값의 절대값을 문턱값과 비교한다(S50). 실시 예에 따라 프로세서(20)는 단위 시간당 각도 변화량을 보정하는 대신에 단위 시간당 각도 변화량을 미분한 값을 문턱값(예컨대, 0)과 비교할 수 있다.
상기 비교 결과에 따라 프로세서(20)는 외력 발생을 추정한다(S60).
프로세서(20)는 외력 발생의 추정에 따라 복수의 엔코더들(23, 25), 또는 IMU 센서(29) 중 어느 하나만 이용하여 이동 로봇(100)의 위치를 추정한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 이동 로봇;
11: 바디;
13, 15: 바퀴;
17, 19: 모터;
20: 프로세서;
21: 메모리;
23, 25: 엔코더;
27: 카메라;
29: IMU 센서;
31: 라이다 센서;

Claims (5)

  1. 복수의 바퀴들, 상기 복수의 바퀴들 각각의 회전을 감지하여 각각의 감지 신호를 전송하는 복수의 엔코더들, IMU(Inertial Measurement Unit) 센서, 메모리, 및 프로세서를 포함하는 이동 로봇의 위치 추정 방법에 있어서,
    상기 프로세서는 평상시 상기 복수의 엔코더들의 감지 신호들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계;
    상기 프로세서는 상기 복수의 엔코더들과 상기 IMU 센서를 이용하여 외력 발생을 추정하는 단계;
    상기 외력 발생이 추정될 때, 상기 프로세서는 상기 복수의 엔코더들을 이용하지 않고, 상기 IMU 센서에 의해 추정된 추정 신호만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계; 및
    상기 외력 발생이 종료될 때, 상기 프로세서는 상기 IMU 센서를 이용하지 않고 상기 복수의 엔코더들만을 이용하여 상기 이동 로봇의 위치를 추정하는 단계를 포함하며,
    상기 외력 발생을 추정하는 단계는,
    상기 프로세서는 상기 복수의 엔코더들로부터 각각의 감지 신호를 수신하여 상기 이동 로봇의 제1헤딩 방향을 추정하는 제1추정 동작을 실행하는 단계;
    상기 프로세서는 상기 IMU 센서에 의해 측정된 측정 신호를 수신하여 상기 이동 로봇의 제2헤딩 방향을 추정하는 제2추정 동작을 실행하는 단계;
    상기 프로세서는 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산하는 계산 동작을 실행하는 단계;
    상기 프로세서는 상기 계산된 각도에 대해 단위 시간당 각도 변화량을 계산하는 변화량 계산 동작을 실행하는 단계;
    상기 프로세서는 상기 단위 시간당 각도 변화량을 미분하는 미분 동작을 실행하는 단계;
    상기 프로세서는 상기 계산된 단위 시간당 각도 변화량을 미분한 값의 절대값을 0과 비교하는 비교 동작을 실행하는 단계; 및
    상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계를 포함하며,
    상기 프로세서는 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 단계는,
    상기 미분한 값의 절대값이 상기 0보다 클 때, 상기 프로세서는 외력이 발생한 것으로 추정하는 이동 로봇의 위치 추정 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 제1추정 동작, 상기 제2추정 동작, 상기 계산 동작, 상기 변화량 계산 동작, 상기 미분 동작, 상기 비교 동작, 및 상기 외력 발생 추정 동작은 일정 시간마다 반복적으로 수행되는 이동 로봇의 위치 추정 방법.
  5. 이동 로봇에 있어서,
    복수의 바퀴들;
    상기 복수의 바퀴들 각각의 회전을 감지하여 각각의 감지 신호를 전송하는 복수의 엔코더들;
    상기 이동 로봇의 움직임을 측정하여 측정 신호를 전송하는 IMU(Inertial Measurement Unit) 센서;
    명령들을 저장하는 메모리; 및
    상기 명령들을 실행하는 프로세서를 포함하며,
    상기 명령들은,
    평상시 상기 복수의 엔코더들의 감지 신호들만을 이용하여 상기 이동 로봇의 위치를 추정하며, 상기 복수의 엔코더들과 상기 IMU 센서를 이용하여 외력 발생을 추정하며, 상기 외력 발생이 추정될 때, 상기 프로세서는 상기 복수의 엔코더들을 이용하지 않고, 상기 IMU 센서에 의해 추정된 추정 신호만을 이용하여 상기 이동 로봇의 위치를 추정하며, 상기 외력 발생이 종료될 때, 상기 프로세서는 상기 IMU 센서를 이용하지 않고 상기 복수의 엔코더들만을 이용하여 상기 이동 로봇의 위치를 추정하도록 구현되며,
    상기 외력 발생을 추정하는 명령들은,
    상기 복수의 엔코더들로부터 각각의 감지 신호를 수신하여 상기 이동 로봇의 제1헤딩 방향을 추정하는 제1추정 동작을 실행하며, 상기 IMU 센서에 의해 측정된 측정 신호를 수신하여 상기 이동 로봇의 제2헤딩 방향을 추정하는 제2추정 동작을 실행하며, 상기 제1헤딩 방향과 상기 제2헤딩 방향 사이의 각도를 계산하는 계산 동작을 실행하며, 상기 계산된 각도에 대해 단위 시간당 각도 변화량을 계산하는 변화량 계산 동작을 실행하며, 상기 단위 시간당 각도 변화량을 미분하는 미분 동작을 실행하며, 상기 계산된 단위 시간당 각도 변화량을 미분한 값의 절대값을 0과 비교하는 비교 동작을 실행하며, 상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하도록 구현되며,
    상기 비교 결과에 따라 상기 프로세서는 상기 외력 발생을 추정하는 외력 발생 추정 동작을 실행하는 명령들은,
    상기 미분한 값의 절대값이 상기 0보다 클 때, 상기 외력이 발생한 것으로 추정하도록 구현되는 이동 로봇.
KR1020200128706A 2020-10-06 2020-10-06 이동 로봇 및 이의 위치 추정 방법 KR102392122B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200128706A KR102392122B1 (ko) 2020-10-06 2020-10-06 이동 로봇 및 이의 위치 추정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200128706A KR102392122B1 (ko) 2020-10-06 2020-10-06 이동 로봇 및 이의 위치 추정 방법

Publications (2)

Publication Number Publication Date
KR20220045725A KR20220045725A (ko) 2022-04-13
KR102392122B1 true KR102392122B1 (ko) 2022-04-29

Family

ID=81212928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200128706A KR102392122B1 (ko) 2020-10-06 2020-10-06 이동 로봇 및 이의 위치 추정 방법

Country Status (1)

Country Link
KR (1) KR102392122B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580628B1 (ko) 2003-11-08 2006-05-16 삼성전자주식회사 이동물체의 진행방향 추정 방법 및 시스템
KR100630356B1 (ko) * 2004-12-07 2006-10-02 한국전자통신연구원 이동 시스템 및 이동 시스템의 주행 방법
KR100912874B1 (ko) * 2007-06-28 2009-08-19 삼성전자주식회사 이동 로봇의 리로케이션 방법 및 장치
KR20130034082A (ko) 2011-09-28 2013-04-05 삼성전자주식회사 로봇 및 그 제어 방법
EP3595502A1 (en) * 2017-03-15 2020-01-22 Aktiebolaget Electrolux Estimating wheel slip of a robotic cleaning device

Also Published As

Publication number Publication date
KR20220045725A (ko) 2022-04-13

Similar Documents

Publication Publication Date Title
KR101234798B1 (ko) 이동 로봇의 위치 측정 방법 및 장치
KR102440358B1 (ko) 관성 기반 항법 장치 및 상대사전적분에 따른 관성 기반 항법 방법
KR100922494B1 (ko) 이동 로봇의 자세 측정 방법 및 상기 방법을 이용한 위치측정 방법 및 장치
US8873832B2 (en) Slip detection apparatus and method for a mobile robot
US8793069B2 (en) Object recognition system for autonomous mobile body
CN109394095B (zh) 一种机器人运动地毯偏移的控制方法、芯片及清洁机器人
JP5434608B2 (ja) 測位装置及び測位方法
JP2000097637A5 (ja) 姿勢位置検出装置及び移動体姿勢検出装置
KR101738750B1 (ko) 실외 환경에서의 강인한 위치 인식 방법 및 장치
JP6601352B2 (ja) 車両姿勢推定装置
JP7096053B2 (ja) 車両の車両カメラを較正するための方法および装置
EP3990234A1 (en) Gyroscope and optical flow sensor scale calibration
KR101262277B1 (ko) 로봇의 충돌검지 방법
CN111738047B (zh) 自身位置推测方法
CN111989631A (zh) 自身位置推定方法
KR102392122B1 (ko) 이동 로봇 및 이의 위치 추정 방법
JP2012042285A (ja) ヨー角初期化異常判定装置及び方法
Lee et al. A new localization method for mobile robot by data fusion of vision sensor data and motion sensor data
JP7152285B2 (ja) 電子機器、補正方法およびプログラム
CN114789439B (zh) 斜坡定位校正方法、装置、机器人及可读存储介质
KR101789776B1 (ko) 주행로봇의 진행각 추정을 위한 바이어스 보정 장치 및 방법
CN111326012A (zh) 图像处理设备和图像处理方法
KR101998071B1 (ko) 레일 가이드형 이동 장치
Ogata et al. A robust position and posture measurement system using visual markers and an inertia measurement unit
JP6440406B2 (ja) ストライド計測システム

Legal Events

Date Code Title Description
GRNT Written decision to grant