KR100621096B1 - 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치 - Google Patents

자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치 Download PDF

Info

Publication number
KR100621096B1
KR100621096B1 KR1020050009187A KR20050009187A KR100621096B1 KR 100621096 B1 KR100621096 B1 KR 100621096B1 KR 1020050009187 A KR1020050009187 A KR 1020050009187A KR 20050009187 A KR20050009187 A KR 20050009187A KR 100621096 B1 KR100621096 B1 KR 100621096B1
Authority
KR
South Korea
Prior art keywords
angle
robot
error
distance
difference
Prior art date
Application number
KR1020050009187A
Other languages
English (en)
Other versions
KR20060088333A (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 KR1020050009187A priority Critical patent/KR100621096B1/ko
Publication of KR20060088333A publication Critical patent/KR20060088333A/ko
Application granted granted Critical
Publication of KR100621096B1 publication Critical patent/KR100621096B1/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/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • 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
    • 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/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C17/00Compasses; Devices for ascertaining true or magnetic north for navigation or surveying purposes
    • G01C17/02Magnetic compasses
    • G01C17/28Electromagnetic compasses
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C17/00Compasses; Devices for ascertaining true or magnetic north for navigation or surveying purposes
    • G01C17/02Magnetic compasses
    • G01C17/28Electromagnetic compasses
    • G01C17/30Earth-inductor compasses

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Geology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법은 기준 위치에서 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 1 계산 단계, 상기 기준 위치에서 로봇을 소정 거리만큼 이동시키는 단계, 상기 이동한 로봇의 변위에 따른 로봇의 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 2 계산 단계, 및 상기 제 1 계산 단계에서의 차이각과 상기 제 2 계산 단계에서의 차이각으로 상기 로봇의 오차를 보정하는 단계를 포함한다.
나침반(Compass), 자기장 정보, 추측항법

Description

자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법 및 장치{Method and apparatus for correcting systematic error using magnetic field}
도 1a와 도 1b는 종래에 이동 로봇에서 발생하는 시스템적 에러를 보정하는 방법을 보여주는 일 실시예이다.
도 2는 본 발명의 일 실시예에 따른 나침반 센서가 장착된 로봇이 이동하여 위치를 보정하는 예시도이다.
도 3은 나침반 센서의 특성을 보여주는 그래프이다.
도 4는 본 발명의 일 실시예에 따른 나침반 센서가 로봇의 방위각을 보정하는 예를 보여주는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 나침반 센서를 이용하여 보정하는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 로봇의 일부 구성요소를 보여주는 구성도이다.
<도면의 주요 부분에 대한 부호의 설명>
130: 계측부 300: 나침반 센서부
510: 오차보정부
스스로 이동하는 로봇의 경우, 현재 위치가 어디인지를 명확히 아는 것이 이동에 있어서 필수적인 요소이다. 따라서 로봇의 위치 정보를 습득하는 분야(Localization)에 대해 많은 연구가 있어왔다.
그중에서도 추측 항법(Dead Reckoning)은 출발지의 위치와 로봇이 이동한 거리를 계산하여 현재의 위치가 어디인지를 계산하는 방식이다. 기준이 되는 위치에 대한 정보만 알면, 로봇이 이동한 방향과 이동한 거리를 통해 현재 위치를 산술적으로 계산할 수 있다는 점에서 많은 로봇, 또는 이동형 기기에 적용되고 있다. 그러나, 로봇의 이동은 기계를 통해 이루어지며, 여기에는 로봇의 바퀴에 대한 정보나 방향에 대한 정보에 있어서 실제 정보와 계산된 정보와의 차이가 발생할 수 있다. 이를 시스템적인 에러(Systematic error)라고 한다. 한편 로봇이 이동시에 바퀴가 미끄러지거나, 또는 외부 요인에 의해 각도가 틀어지는 상황도 발생할 수 있다. 이를 비시스템적 에러(Nonsystematic error)라고 한다.
시스템적인 에러를 유발하는 것은 측정했거나 추산했던 로봇의 바퀴의 지름, 또는 바퀴와 바퀴 사이의 거리(Wheelbase)에 있어서 차이가 있거나, 또는 이동 방향을 제어하는 기기가 정확하게 방향을 잡아주지 않아서 발생하는 각도의 오차 등이 있다. 이러한 에러를 보정하지 않을 경우, 에러는 누적될 수 있다. 따라서, 추측 항법만으로는 에러의 누적을 피할 수 없으므로, 단독으로 로봇의 위치를 설정하고 이동하는 것에는 한계가 있다.
도 1a와 도 1b는 종래에 이동 로봇에서 발생하는 시스템적 에러를 보정하는 방법을 보여주는 일 실시예이다.
도 1a는 산술적인 이동시 나타나는 결과를 보여준다. 산술적인 계산에 의할 때, 로봇이 4m의 거리를 반시계 방향 또는 시계 방향으로 이동하며 직각으로 방향을 변경할 경우, 원래의 위치에 도달하게 된다. 그러나 전술한 시스템적 에러에 의해 실제로 이동했을 경우에는 각도와 거리의 오류로 인해 도 1b와 같이 출발점과 도착점이 달라질 수 있다.
이를 보정하기 위해서는 도 1b와 같이 로봇을 이동시킨 후, 측정한 오차를 계산하여 이동시 보정된 값으로 계산할 수 있게 한다. 측정한 오차에는 바퀴의 지름, 바퀴와 바퀴 사이의 거리, 각도 등이 될 수 있다.
보정된 결과에 따라 5cm 라 알고 있던 바퀴의 지름이 4.6cm 인 경우, 보정한 지름에 의해 로봇의 이동시에 어느 정도의 거리를 이동해야 할지 알 수 있다. 또한, 각도 측정에 있어서 90도로 알고 있었는데 87도가 나온다면, 다음에 각도를 측정하는 경우, 이 오류만큼 보정할 수 있다("Correction of Systematic Odometry Errors in Mobile Robots", Johann Borenstein, Liquiang Feng).
그런데, 살펴본 방식으로 로봇의 오류를 보정하기 위해서는 로봇을 도 1b와 같이 이동시킨 후, 로봇의 위치를 직접 측정하여 계산해야 한다. 예를 들어, 도 1b와 같이 로봇을 이동시킨 후에 로봇을 옮기고, 로봇의 중앙의 위치를 출발점 위치와 비교하여 계산하는 과정이 필요하다. 따라서 오류 한 회를 측정하는 데에도 오랜 시간이 걸릴 뿐만 아니라, 정확한 측정을 위해서는 여러 회를 거쳐 측정해야 한 다는 문제점이 있다.
또한, 모든 로봇에 이 방식을 적용시켜서 보정을 수행하기 위해서는 로봇 하나하나에 대해 보정을 수행해야 함을 의미한다. 즉, 로봇을 생산한 후에 오류가 있는지 검토하기 위해서는 일일이 도 1b에 나타난 방식으로 로봇을 이동시킨 후에 오차를 계산해야 하는데, 다량의 로봇을 생산하는 경우에 이 방식을 적용하는 것은 무리가 있다. 또한 보정을 하기 위한 측정시에도 로봇을 움직이는 과정에서 에러가 발생할 수 있다.
이외에도 천정에 카메라를 설치하거나 조명을 설치하여 이를 기준으로 위치를 측정하는 방법도 제시되었다. 그러나, 영상 처리를 위해 추가의 마이크로 프로세서를 장착해야 하는 문제점, 그리고 조명은 방안의 물체에 따라 달리 변할 수 있다는 점에서 정확한 측정에 어려움이 있었다.
따라서, 누적되는 에러를 보정하며, 또한 보정에 있어서 많은 시간과 작업없이 정확도를 향상시키는 방법 및 장치가 필요하다.
본 발명의 기술적 과제는 로봇에 존재하는 시스템적 에러를 쉽게 보정하는데 있다.
본 발명의 다른 기술적 과제는 시스템적 에러의 누적을 막으면서 추측항법을 가능하게 하는데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것 이다.
자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법은 기준 위치에서 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 1 계산 단계, 상기 기준 위치에서 로봇을 소정 거리만큼 이동시키는 단계, 상기 이동한 로봇의 변위에 따른 로봇의 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 2 계산 단계, 및 상기 제 1 계산 단계에서의 차이각과 상기 제 2 계산 단계에서의 차이각으로 상기 로봇의 오차를 보정하는 단계를 포함한다.
설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그러나 용어의 설명은 본 명세서의 이해를 돕기 위한 것으로서 명시적으로 본 발명을 한정하는 사항으로 기재하지 않은 경우에 본 발명의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.
- 나침반 센서(Compass Sensor)
나침반 센서는 지구 자기장을 기준으로 방위를 정하는 센서이다. 절대방위각을 측정하므로 에러가 누적되지 않는다. 또한, 동일 장소에서 시간에 따른 변화가 매우 적은 편이다. 한편 위치에 따른 오차는 크므로, 이전 위치와 현재 위치의 차이를 쉽게 알 수 있다.
- 기준위치(Base Position)
위치를 측정하기 위한 기준을 의미한다. 기준위치와의 거리, 방향 등을 측정하여, 현재 위치를 측정할 수 있다. 본 명세서에서의 기준 위치는 로봇이 출발하여 귀환하는 지점이다. 통상적인 가정용 로봇 또는 이동기기들이 충전 등의 용도로 홈베이스(Home Base)를 가지므로 이러한 홈베이스가 기준위치가 될 수 있다.
도 2는 본 발명의 일 실시예에 따른 나침반 센서가 장착된 로봇이 이동하여 위치를 보정하는 예시도이다.
(a)는 홈베이스를 떠나기 전의 상황이다. 로봇은 홈베이스를 떠나기 전 나침반 센서를 통해 절대방위각과 기준위치인 홈베이스와의 초기 각도 차이를 기록한다.
(b)는 이동하는 로봇을 보여준다. 이동시에는 절대방위각을 측정하지 않는다. 그리고 계측기(odometry)등을 통해 바퀴의 회전 등을 통해 추측 항법(Dead Reckoning)을 수행한다.
(c)는 로봇이 홈베이스로 귀환한 상황이다. 로봇은 나침반 센서를 통해 현재의 절대방위각을 산출한다. 그리고 (b)의 과정에서 계측기 등을 통해 산출한 각도와 비교하여 방위각을 보정하고, 계측기를 튜닝(Tunning)한다. 튜닝하여 보정된 각도와 보정된 바퀴 지름을 통해 (a), (b), (c) 과정을 수행한다. 이를 통해 지속적으로 보정을 수행할 수 있다.
도 3은 나침반 센서의 특성을 보여주는 그래프이다. 나침반 센서가 4m x 4m 의 사각 영역을 주행하면서 측정한 각도의 오차를 보여준다. 위치에 따라 오차의 크기가 심하게 변하는 것을 알 수 있다. 이는 지구 자기장이 실내 환경에서는 위치 에 따라 다른 정도로 왜곡되기 때문이다. 하지만 그래프의 시작점과 끝점의 오차는 거의 동일하다는 것을 발견할 수 있는데, 끝점은 4m x 4m 사각 영역을 주행하고 나서 시작 위치로 귀환한 시점이고, 이는?특정 위치에서의 나침반 센서의 오차는 시간에 따라 변하지 않고, 균일하다는 것을 의미한다.
도 4는 본 발명의 일 실시예에 따른 나침반 센서가 로봇의 방위각을 보정하는 예를 보여주는 예시도이다.
초기에 로봇의 기준좌표축과 나침반 센서간의 차이를 계산한다. 도 4에서 로봇의 기준좌표축에 의한 각도(Θi)를 측정하면 80도이다. 그리고 나침반 센서로 각도(Θci)를 측정하면 90도이다. 따라서 이들간에는 10도의 오차가 존재한다.
그리고 로봇을 일정거리를 이동시킨후, 원래 위치로 복귀하였을 때 각도를 측정한다. Θf는 로봇이 이동한 후에 기준좌표축에 의한 각도로, 로봇은 추측항법을 통해 초기의 80도에 맞게끔 이동하였으므로, Θf는 80도이다. 그런데, 나침반 센서로 측정한 값은 95도이다. 출발 전에 나침반 센서와 로봇의 기준좌표축과 10도의 오차가 있으므로, 실제 로봇은 85도임을 알 수 있다. 따라서 5도 만큼의 시스템 에러가 발생한 것이고, 이를 토대로 오차를 보정할 수 있다.
도 5는 본 발명의 일 실시예에 따른 나침반 센서를 이용하여 보정하는 순서도이다.
먼저 로봇의 초기 위치를 측정한다(S110). 홈베이스와 같이 기준위치를 측정 하는 것을 의미한다. 그리고 나침반 센서를 통해 방위각(θci)을 측정한다(S112). 그리고 로봇의 기준좌표축과의 차이(θoffset = θci - θi)를 기록한다(S114). 이는 로봇이 다시 홈베이스로 복귀했을 때 측정한 기준좌표축에 오차가 발생할 경우 이를 보정하기 위한 기준을 구하기 위함이다.
측정이 완료한 후에는 로봇을 이동시킨다(S120). 로봇은 이동중에 계측기(Odometry)를 이용하여 추측 항법(Dead Reckoning)을 수행한다(S122). 그 결과 좌표에 대한 거리 정보인 xd, yd, 그리고 각도 정보인 θd를 계산한다. 거리정보는 좌측 바퀴와 우측 바퀴의 누적된 회전 각도를 통해 구할 수 있다. 그리고 이동한 각도는 좌측 바퀴와 우측 바퀴의 누적된 이동 거리의 차를 이용하여 구할 수 있다.
S122 과정의 추측 항법으로 로봇은 홈베이스로 귀환한다(S124). 귀환한 위치에서 다시 나침반 센서를 통해 절대방위각 (θcf)을 측정한다(S126). 그리고 방위각을 보정한다(S128). 방위각의 보정은 S126 단계에서 측정한 방위각 데이터(θcf)와 S114 단계에서 계산한 θoffset을 뺀 결과인 θf를 사용한다. θf가 예전의 θi와 다를 경우에는 오차가 발생한 것이므로, 이 오차를 토대로 좌, 우측 바퀴의 지름에 대한 오차인 er, el을 구하여 바퀴의 좌, 우 지름을 보정한다(S130).
아래의 수식을 통해 오차를 보정하는 과정을 알 수 있다.
Figure 112005006120783-pat00001
Figure 112005006120783-pat00002
Figure 112005006120783-pat00003
Figure 112005006120783-pat00004
먼저 우측 바퀴의 이동 거리인 Ur과 좌측 바퀴의 이동 거리 Ul은 수학식 1을 통해 구할 수 있다. k는 변환 인자(Conversion factor)이고, Nr, Nl은 각각 우측과 좌측 바퀴가 회전하면서 누적된 각을 의미한다. 또한, Dr, Dl은 각각 우측, 좌측 바퀴의 지름이며, D'r, D'l은 각각 우측, 좌측 바퀴의 실제 지름을 의미한다. 따라서, 실제 바퀴 지름과 산술적인 바퀴 지름간의 오차는 eDr, eDl이다. 이동거리는 변환 인자와 누적된 각과 바퀴의 지름에 π를 곱한 결과이다.
이동한 후의 각도는 초기 각도에서 좌측 바퀴와 우측 바퀴의 이동거리의 누적된 차이를 계산하여 산출할 수 있다. 이는 수학식 2에 나타나있다.
Figure 112005006120783-pat00005
초기에 로봇의 방향에 대해 계측기가 측정한 각도가 Θ0, 나침반 센서가 측정한 각도가 ΘC0 이다. 그리고 이동한 후에 계측기가 측정한 각도가 Θ이며, 나침반 센서가 측정한 각도는 ΘC 이다.
수학식 2에 나타나듯이, 좌우 바퀴가 회전하여 로봇이 이동한 경우에 누적된 거리와 두 바퀴 사이의 거리의 비를 누적하여 더한 경우, 이동에 의해 변화된 각도 를 얻을 수 있다. 수학식 2의 Ur, Ul에 수학식 1을 적용했을 때 수학식 3과 같이 계산할 수 있다.
Figure 112005006120783-pat00006
Figure 112005006120783-pat00007
Figure 112005006120783-pat00008
상기 식의 결과에서 전반부의
Figure 112005006120783-pat00009
는 나침반 센서로 측정한 결과이며
Figure 112005006120783-pat00010
는 각도에 있어서의 오류(eΘ)이다.
각도에 있어서의 오류를 풀기 위해 수학식 4와 같이 전개한다.
Figure 112005006120783-pat00011
한편, 본 실험에서 직진시에는 에러가 없다는 것을 가정할 때, 즉, 회전 시에만 에러가 발생한다는 것을 가정할 때 수학식 5와 같은 식이 도출될 수 있다. 이는 직진은 보상하지 않음을 의미한다.
Figure 112005006120783-pat00012
수학식 5를 수학식 4에 대입시켜서 산출된 결과는 수학식 6과 같다.
Figure 112005006120783-pat00013
수학식 5에서 eDr과 eDl은 부호만 반대임을 알 수 있다. 따라서, 수학식 6을 통해 eDl을 수학식 7과 같이 산출할 수 있다.
Figure 112005006120783-pat00014
한편, 이전에 나침반 센서를 통해 측정한 각도와 로봇이 측정한 각도 사이의 오차는 Θoffset 이므로 수학식 8과 같다.
Figure 112005006120783-pat00015
그 결과 각도의 오차는 수학식 9와 같이 로봇의 현재 각도에서 나침반 센서에서 Θoffset을 뺀 값을 통해 구할 수 있다.
Figure 112005006120783-pat00016
도 6은 본 발명의 일 실시예에 따른 로봇의 일부 구성요소를 보여주는 구성도이다.
본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~모듈' 또는 '~부'는 어떤 기능들을 수행한다. 그렇지만 '~모듈' 또는 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~모듈' 또는 '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~모듈' 또는 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
도 6은 크게 3가지 구성요소로 나뉘어진다. 절대방위각을 측정하는 나침반 센서부(300), 주행을 담당하며 주행거리를 측정하는 이동부(100), 그리고 나침반 센서부(300)와 이동부(100)에서 생성한 데이터를 취합하여, 오류를 보정하는 제어부(500)를 포함한다.
나침반 센서부(300)는 절대방위각을 측정한다. 절대방위각이란, 자북극과 자남극을 기준으로 한 각도로, 동일한 장소에서는 언제나 동일한 값을 나타낸다. 나침반 센서부(300)는 자화된 금속과 회전각도를 감지하는 센서로 구성할 수 있다.
이동부(100)는 크게 주행부(110)와 계측부(130)를 포함한다. 도면에 미도시 되었으나 주행부에 동력을 전달하는 동력 전달부를 더 포함할 수 있다. 주행부(110)는 바퀴와 같이 이동을 가능하게 하는 부재를 포함한다. 계측부(130)는 주행부(110)의 회전수를 계산하여 이동 거리가 얼마인지를 계산한다. 본 명세서에서 언급한 계측기를 포함하며, 계측부(130)가 계산한 이동 거리의 오차는 주행부(110)의 지름의 크기를 잘못 계산한 경우, 또는 계측부(130)가 계산한 회전수가 실제와 다른 경우 등에서 발생 가능하다.
제어부는 오차 보정부(510), 절대방위각 제어부(530), 각도 측정부(540), 그리고 거리 측정부(560)를 포함한다.
절대방위각 제어부(530)는 나침반 센서(100)가 센싱한 절대방위각을 저장하고, 이동 후에 측정한 나침반 센서(100)의 절대방위각을 비교하는 작업을 한다.
거리 측정부(560)는 계측부(130)에서 측정한 주행부(110)의 이동 거리를 취합하여 거리를 측정한다. 좌, 우의 바퀴로 구성된 주행부(110)의 경우, 좌측과 우측 바퀴의 회전의 차이가 발생하므로 이동 거리를 산출하는 데에는 여러가지 계산 이 필요하다.
각도 측정부(540)는 계측부(130)에서 측정한 좌, 우측의 이동 거리의 차이에서 로봇의 이동 각도를 측정한다. 또한 로봇의 기준좌표축을 측정한다.
오차 보정부(510)는 절대방위각 제어부(530)에서 측정한 절대방위각과 각도 측정부(540) 및 거리 측정부(560)에서 측정한 결과에서 나온 값을 비교하여 오차가 발생할 시, 이를 보정하는 작업을 수행한다.
표 1은 본 발명에서 사용하는 나침반 센서의 방위각 보정 성능을 보여주는 표이다.
반시계방향 시계방향
계측기 (튜닝없이) 계측기 (UMB) 나침반 계측기 (튜닝없이) 계측기 (UMB) 나침반
1 4.09 0.49 0.15 4.57 0.89 0.45
2 4.59 0.99 0.6 4.56 0.89 0.01
3 4.09 0.49 0.29 4.58 0.91 0.23
4 5.07 1.47 0.01 4.57 0.89 0
5 5.06 1.46 0.49 3.91 0.23 0.36
6 5.06 1.46 0.57 3.96 0.29 0.8
7 4.06 0.45 0.25 3.93 0.25 2.12
8 5.25 1.65 0.28 3.94 0.27 0.97
평균 4.66 1.06 0.33 4.25 0.58 0.62
일정 방향, 즉 반시계 방향 또는 시계 방향으로 로봇을 주행시킨 후, 각각의 센서로 측정된 방위각의 정확도를 비교하는 실험이다. 실험 횟수로는 반시계 방향 8회, 시계 방향 8회이며, 각 실험은 계측기(odometry)로 측정한 각도의 차이, 그리고 나침반 센서의 각도의 차이, 그리고 나침반 센서에 의해 튜닝이 된 계측기가 측정한 각도의 차이를 나타내고 있다.
반시계 방향으로 로봇을 주행시킨 경우, 튜닝을 하지 않은 경우 계측기의 오차는 평균 4.66도이다. 계측기를 통해 튜닝을 한 경우의 오차는 1.06이다. 그러나 나침반 센서는 평균 평균 0.33도의 오차를 가지고 있음을 알 수 있다. 계측기의 오차보다 나침반 센서의 오차가 낮은 것을 알 수 있다.
한편 시계 방향으로 로봇을 주행시킨 경우, 튜닝을 하지 않은 경우 계측기의 오차는 평균 4.25도이며 튜닝을 한 경우에는 오차가 0.58도이다. 나침반 센서는 평균 0.62도의 오차를 가지고 있다.
8회씩, 반시계방향과 시계방향으로 실험한 결과 나침반 센서를 사용할 경우 계측기를 사용한 경우보다 오차가 적다.
표 2는 본 발명의 일 실시예와 기존의 UMB 방식의 성능을 비교한 실험 결과이다.
반시계방향 시계방향
Ex(mm) Ey(mm) EΘ(deg) Ex(mm) Ey(mm) EΘ(deg)
UMB마크 39.96 28.24 1.06 37.51 30.95 0.58
본 실시예 15.28 11.37 0.47 13.90 18.82 0.64
성능 향상 61.8% 59.7% 55.7% 62.9% 39.2% -10.6%
실험은 4m x 4m 사각 영역을 시계 방향 또는 반시계 방향으로 로봇을 주행시킨 계측 데이터를 바탕으로 UMB 마크 테스트(UMB mark test)를 이용해 계산된 튜닝 팩터를 사용한 결과와 본 명세서에서 제시한 방법을 적용한 결과를 비교하고 있다.
반시계방향(CCW)으로 주행시킨 경우, x좌표를 기준으로 UMB 마크 테스트의 경우 39.36 mm의 오차가 있으나 나침반 센서를 쓸 경우 15.28 mm의 오차가 있으며, 약 61.8%의 성능 향상이 있다. y좌표를 기준으로 UMB 마크 테스트의 경우 28.24 mm의 오차가 있으나 나침반 센서를 쓸 경우 11.37 mm의 오차가 있으며, 약 59.7%의 성능 향상이 있다. 그리고 각도의 오차에 있어서 UMB 마크 테스트의 경우 1.06도의 오차가 있으나 나침반 센서를 쓸 경우 0.47도의 오차가 있으며, 약 55.7%의 성능 향상이 있다.
시계방향(CW)으로 주행시킨 경우, x좌표를 기준으로 UMB 마크 테스트의 경우 37.51 mm의 오차가 있으나 나침반 센서를 쓸 경우 13.90 mm의 오차가 있으며, 약 62.9%의 성능 향상이 있다. y좌표를 기준으로 UMB 마크 테스트의 경우 30.95 mm의 오차가 있으나 나침반 센서를 쓸 경우 18.82 mm의 오차가 있으며, 약 39.2%의 성능 향상이 있다. 한편 각도의 오차에 있어서 UMB 마크 테스트의 경우 0.58도의 오차가 있으나 나침반 센서를 쓸 경우 0.64도의 오차가 있으나, 이 차이는 매우 미미한 차이라 볼 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 오차가 누적되지 않는 추측항법 로봇을 구현할 수 있다.
본 발명을 구현함으로써 자동으로 오차를 보정하는 로봇을 제공할 수 있다.

Claims (13)

  1. 기준 위치에서 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 1 계산 단계;
    상기 기준 위치에서 로봇을 소정 거리만큼 이동시키는 단계;
    상기 이동한 로봇의 변위에 따른 로봇의 절대방위각과 기준좌표축과의 차이인 차이각을 계산하는 제 2 계산 단계; 및
    상기 제 1 계산 단계에서의 차이각과 상기 제 2 계산 단계에서의 차이각으로 상기 로봇의 오차를 보정하는 단계를 포함하는, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  2. 제 1항에 있어서,
    상기 절대방위각은 나침반 센서를 이용하여 측정하는, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  3. 제 1항에 있어서,
    상기 이동시키는 단계는 상기 로봇을 상기 기준 위치로 복귀시키는 단계인, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  4. 제 1항에 있어서,
    상기 이동시키는 단계는
    왼쪽 바퀴의 누적 이동 거리와 오른쪽 바퀴의 누적 이동 거리를 기록하는 단계를 포함하는, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  5. 제 4항에 있어서,
    상기 보정하는 단계는
    상기 기록한 누적 이동 거리에 의한 이동 각도를 계산하는 단계; 및
    상기 계산한 이동 각도와 상기 제 1 계산 단계에서 계산한 차이각을 비교하여 상기 누적 이동 거리의 오차를 계산하는 단계를 포함하는, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  6. 제 1항에 있어서,
    상기 보정하는 단계는
    상기 로봇의 왼쪽 바퀴의 지름과 오른쪽 바퀴의 지름의 오차를 보정하는 단계를 포함하는, 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법.
  7. 기준좌표축에 대한 정보를 취득하고 이동한 각도를 측정하는 각도 측정부; 및
    이동 전후에 상기 각도 측정부에서 측정한 기준좌표축과 절대방위각 사이의 차이각을 계산하여, 로봇의 오차를 보정하는 오차보정부를 포함하는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  8. 제 7항에 있어서,
    절대방위각을 측정하는 나침반 센서부; 및
    상기 나침반 센서부에서 측정한 절대방위각을 저장하고 상기 나침반 센서부를 제어하는 절대방위각 제어부를 더 포함하며,
    상기 오차보정부는 상기 절대방위각 제어부를 통해 절대방위각에 대한 정보를 얻는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  9. 제 7항에 있어서,
    이동 거리를 측정하는 계측부; 및
    상기 계측부를 통해 이동 거리를 계산하는 거리 측정부를 더 포함하며,
    상기 각도 측정부는 상기 거리 측정부에서 측정한 거리를 통해 이동한 각도를 측정하며,
    상기 오차보정부는 상기 절대방위각과 상기 각도측정부 및 상기 거리 측정부에서 측정한 결과를 비교하여 오차를 구하는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  10. 제 7항에 있어서,
    상기 계측부는 이동시 누적된 회전 각도를 계산하여 이동 거리를 측정하는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  11. 제 7항에 있어서,
    상기 로봇을 소정 거리만큼 이동시키는 주행부를 포함하며,
    상기 거리 측정부는 상기 주행부의 누적된 이동 거리를 기록하는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  12. 제 11항에 있어서,
    상기 주행부는 상기 로봇을 출발 위치로 복귀시키는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
  13. 제 7항에 있어서,
    상기 오차 보정부는 상기 거리 측정부에서 기록한 로봇의 누적 이동 거리와 상기 각도 측정부의 누적 이동 각도를 계산하여, 상기 나침반 센서부에서 측정하는 절대방위각과의 차이각으로 상기 주행부의 오차를 구하는, 자기장을 이용하여 시스템 오류를 보정하는 로봇.
KR1020050009187A 2005-02-01 2005-02-01 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치 KR100621096B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050009187A KR100621096B1 (ko) 2005-02-01 2005-02-01 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050009187A KR100621096B1 (ko) 2005-02-01 2005-02-01 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치

Publications (2)

Publication Number Publication Date
KR20060088333A KR20060088333A (ko) 2006-08-04
KR100621096B1 true KR100621096B1 (ko) 2006-09-13

Family

ID=37176807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050009187A KR100621096B1 (ko) 2005-02-01 2005-02-01 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치

Country Status (1)

Country Link
KR (1) KR100621096B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100864801B1 (ko) * 2007-08-14 2008-10-23 포항공과대학교 산학협력단 이동로봇에서 홈포지셔닝을 이용한 오도메트리 보정 방법
KR101831028B1 (ko) * 2015-07-03 2018-02-21 한국과학기술원 실내 환경에서 이동 로봇의 리로케이션 방법 및 장치
CN105437230B (zh) * 2015-12-09 2017-08-08 珠海格力电器股份有限公司 工业机器人工具坐标校准装置和方法
CN106393104B (zh) * 2016-08-25 2019-06-28 北京创想智控科技有限公司 一种移动机器人的行程校准方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242332A (ja) 1999-02-24 2000-09-08 Matsushita Electric Ind Co Ltd 自律走行ロボット及びその操舵方法及びシステム
JP2003065791A (ja) 2001-08-23 2003-03-05 Asahi Kasei Corp 方位角計測装置および方位角計測方法
KR20030064242A (ko) * 2002-01-25 2003-07-31 주식회사 알파인터넷 문의 전화번호의 자동송출 및 통화연결 기능이 있는 새로운 전화번호 안내시스템 및 서비스 방법
KR20040060829A (ko) * 2002-12-30 2004-07-06 삼성전자주식회사 로봇용 로컬라이제이션 시스템
US20050095631A1 (en) * 1999-01-14 2005-05-05 Cantor Thomas L. Methods for differentiating and monitoring parathyroid and bone status related diseases

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050095631A1 (en) * 1999-01-14 2005-05-05 Cantor Thomas L. Methods for differentiating and monitoring parathyroid and bone status related diseases
JP2000242332A (ja) 1999-02-24 2000-09-08 Matsushita Electric Ind Co Ltd 自律走行ロボット及びその操舵方法及びシステム
JP2003065791A (ja) 2001-08-23 2003-03-05 Asahi Kasei Corp 方位角計測装置および方位角計測方法
KR20030064242A (ko) * 2002-01-25 2003-07-31 주식회사 알파인터넷 문의 전화번호의 자동송출 및 통화연결 기능이 있는 새로운 전화번호 안내시스템 및 서비스 방법
KR20040060829A (ko) * 2002-12-30 2004-07-06 삼성전자주식회사 로봇용 로컬라이제이션 시스템

Also Published As

Publication number Publication date
KR20060088333A (ko) 2006-08-04

Similar Documents

Publication Publication Date Title
US8538671B2 (en) Apparatus and method for detecting position and orientation of mobile object
US8135562B2 (en) System, method and medium calibrating gyrosensors of mobile robots
CN106289327B (zh) 一种差分移动机器人里程计标定方法
CN108731673B (zh) 机器人自主导航定位方法及系统
US20080071492A1 (en) Method, apparatus, and medium for calibrating compass sensor in consideration of magnetic environment and method, apparatus, and medium for measuring azimuth using the compass sensor calibration method, apparatus, and medium
KR102327901B1 (ko) 이동하는 오브젝트 센서의 정렬을 교정하기 위한 방법
WO2015131464A1 (zh) 一种车辆定位纠偏方法及装置
CN105737853B (zh) 一种机器人惯性导航系统的漂移校准方法
KR100621096B1 (ko) 자기장을 이용하여 로봇의 시스템 오류를 보정하는 방법및 장치
JPH01219610A (ja) 車両用走行方位検出装置
CN109856640B (zh) 一种基于反光柱或反光板的单线激光雷达二维定位方法
CN109552417A (zh) 一种驱动轮角度零偏的校准方法及系统
CN103727939A (zh) 一种双轴旋转的姿态测量系统及其测量方法
Lin et al. Calibration for odometry of omnidirectional mobile robots based on kinematic correction
CN111625004A (zh) 一种agv舵轮零偏自动校准方法及系统
JP2009193097A (ja) 移動ロボットの制御装置および移動ロボットシステム
CN112388602B (zh) 一种移动机器人的标定方法、装置及设备
Peng et al. A novel algorithm based on nonlinear optimization for parameters calibration of wheeled robot mobile chasses
WO2019093316A1 (ja) 移動体の測位装置及びその較正方法
JP6707627B2 (ja) 測定装置、測定方法、及び、プログラム
WO1995016184A1 (fr) Appareil permettant de determiner la position d&#39;un corps mobile
JP2017181195A (ja) 測定装置、測定方法、及び、プログラム
WO2018126911A1 (zh) 定位方法、装置、业务处理系统以及计算机可读存储介质
CN114394102B (zh) 姿态传感器的校准方法和行驶装置
JP2958020B2 (ja) 移動車の走行制御装置

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
LAPS Lapse due to unpaid annual fee