KR102424378B1 - 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 - Google Patents
3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 Download PDFInfo
- Publication number
- KR102424378B1 KR102424378B1 KR1020200152542A KR20200152542A KR102424378B1 KR 102424378 B1 KR102424378 B1 KR 102424378B1 KR 1020200152542 A KR1020200152542 A KR 1020200152542A KR 20200152542 A KR20200152542 A KR 20200152542A KR 102424378 B1 KR102424378 B1 KR 102424378B1
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- scan
- scanner
- correction value
- posture
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
본 실시예는, 로봇의 단부에 장착된 스캐너가 로봇 주변의 복수의 스캔위치에서 대상체를 스캔하도록 상기 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 상기 로봇의 자세를 제어하는 스캔자세 제어부(scan position controller); 상기 스캐너에 의해 상기 복수의 스캔위치에서 각각 상기 대상체가 스캔되어 생성된 복수의 스캔 데이터를 상기 스캐너로부터 수신하는 데이터 수신부(data receiver); 및 각각 설정된 상기 파라미터 세트에 대응되는 복수의 자세(position) 정보와 상기 복수의 스캔 데이터를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 파라미터 보정부(parameter calibrator)를 포함하는 로봇 위치 보정 장치를 제공한다.
Description
본 실시예는 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
산업용으로 사용되는 6축 로봇들은 반복 정밀도(repeatability)는 높으나 위치 정확도(position accuracy)는 상대적으로 낮은 것이 통상적이다. 이로 인하여 정교한 로봇 작업시에 3차원 공간 상의 위치로 로봇을 정확하게 이동시키는 데에 어려움이 발생할 수 있다.
이를 극복하기 위해서는 로봇 고유의 파라미터, 예컨대, 링크길이 및 관계, 각도 오프셋 등을 정확하게 알아낼 필요가 있으며, 로봇 고유의 파라미터를 알아내는 것을 로봇 마스터링(mastering; 또는 캘리브레이션)이라고 한다.
통상적으로 로봇을 마스터링할 때에는 로봇의 외부에 레이저 트래커(laser tracker)를 이용하여 로봇 끝단의 위치 정보를 획득함으로써 로봇의 파라미터를 얻을 수 있으나, 레이저 트래커의 가격이 매우 비싸기 때문에 로봇 작업 현장에 도입하기 어려운 것이 현실이다.
현재 정교한 로봇 이동을 위하여 3차원 스캐너를 이용한 비전 인식기술을 사용하는 것이 일반적이다. 이에 따라서 로봇 끝단에 장착된 그리퍼(gripper) 부근에 3차원 비전 센서를 이용하여 대상체 혹은 작업환경에 대한 3차원 정보를 획득하는 시스템을 설치하고 대상체와 로봇과의 관계를 도출하여 작업을 수행하는 시스템의 도입이 증가하고 있다.
하지만, 많은 작업 현장에서 로봇의 동작을 프로그래밍하는 것만으로는 해결할 수 없는 비정형의 다양한 애플리케이션들이 늘어나고 있으므로 로봇의 이동 정확도를 향상시키는 것은 로봇의 정확한 작업과 직결되는 요소이다.
본 실시예는 3차원 스캐너를 이용하여 로봇의 이동 정확도를 향상시키기 위한 경제적인 로봇 위치 보정 방법을 제공하는 것을 주된 목적으로 한다.
본 발명의 실시예에 의하면, 로봇의 단부에 장착된 스캐너가 로봇 주변의 복수의 스캔위치에서 대상체를 스캔하도록 상기 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 상기 로봇의 자세를 제어하는 스캔자세 제어부(scan position controller); 상기 스캐너에 의해 상기 복수의 스캔위치에서 각각 상기 대상체가 스캔되어 생성된 복수의 스캔 데이터를 상기 스캐너로부터 수신하는 데이터 수신부(data receiver); 및 각각 설정된 상기 파라미터 세트에 대응되는 복수의 자세(position) 정보와 상기 복수의 스캔 데이터를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 파라미터 보정부(parameter calibrator)를 포함하는 로봇 위치 보정 장치를 제공한다.
본 발명의 다른 실시예에 의하면, 로봇의 단부에 장착된 스캐너가 로봇 주변의 복수의 스캔위치에서 대상체를 스캔하도록 상기 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 상기 로봇의 자세를 제어하는 과정; 상기 스캐너에 의해 상기 복수의 스캔위치에서 각각 상기 대상체가 스캔되어 생성된 복수의 스캔 데이터를 상기 스캐너로부터 수신하는 과정; 및 각각 설정된 상기 파라미터 세트에 대응되는 복수의 자세(position) 정보와 상기 복수의 스캔 데이터를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 과정을 포함하는 로봇 위치 보정 방법을 제공한다.
본 실시예에 따르면, 로봇 작업환경에서 로봇의 정확한 동작을 제공하는 효과가 있다.
또한, 로봇 끝단에 장착되어 있는 3차원 스캐너를 활용하여 로봇의 마스터링 작업을 할 수 있으므로 로봇의 마스터링 장치를 경제적으로 구현 가능한 효과가 있다.
도 1은 산업용 6축 로봇의 예를 도시한 도면이다.
도 2는 일 실시예에 따른 로봇 위치 보정 장치를 블록도로 도시한 도면이다.
도 3은 로봇이 복수의 자세로 대상체를 각각 촬영하는 경우의 상황을 도시한 도면이다.
도 4는 한 쌍의 스캔위치에 대하여 제1 위치관계 및 제2 위치관계 사이의 오차가 발생하는 상황을 도시한 도면이다.
도 5는 로봇 파라미터 공간에서 결정되는 파라미터 세트에 대한 보정값 범위를 개념적으로 도시한 도면이다.
도 6은 일 실시예에 따른 로봇 위치 보정 방법을 흐름도로 도시한 블록도이다.
도 2는 일 실시예에 따른 로봇 위치 보정 장치를 블록도로 도시한 도면이다.
도 3은 로봇이 복수의 자세로 대상체를 각각 촬영하는 경우의 상황을 도시한 도면이다.
도 4는 한 쌍의 스캔위치에 대하여 제1 위치관계 및 제2 위치관계 사이의 오차가 발생하는 상황을 도시한 도면이다.
도 5는 로봇 파라미터 공간에서 결정되는 파라미터 세트에 대한 보정값 범위를 개념적으로 도시한 도면이다.
도 6은 일 실시예에 따른 로봇 위치 보정 방법을 흐름도로 도시한 블록도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 산업용 6축 로봇의 예를 도시한 도면이다.
도 1에 도시된 로봇(100)은 구동에 필요한 6개의 축을 구비하고 각 축이 구동모터에 의해 구동되어 로봇(100)이 원하는 자세(position)를 갖도록 제어된다.
로봇(100) 단부(110)에는 스캐너(120)가 장착되어 단부(110)가 향하는 방향에 위치하는 대상체(130)의 영상을 스캐너(120)에 의해 획득될 수 있다.
도 1에서 6개의 회전 축(j1, j2, j3, j4, j5, j6)은 그 회전 각도에 의해 로봇(100)의 자세 및 로봇(100) 단부(110)의 좌표값(x, y, z, rx(롤각, roll angle), ry(피치각, pitch angle), rz(요각, yaw angle))을 결정한다.
본 실시예에서 로봇(10)은 6축 로봇인 것으로 가정하여 설명하나, 본 발명에서 로봇(100)의 축의 개수는 6개인 것에 한정되지 않고 다양한 개수의 축을 갖는 로봇에도 적용 가능하다.
또한, 스캐너(120)로는 3차원 스캐너 등 3차원 영상 취득을 위한 다양한 장치가 포함된다.
도 2는 일 실시예에 따른 로봇 위치 보정 장치를 블록도로 도시한 도면이다.
도 2에 도시된 바와 같이 본 실시예에 따른 로봇 위치 보정 장치(robot position calibration apparatus, 200)는 스캔자세 제어부(scan position controller, 210), 데이터 수신부(data receiver, 220), 파라미터 보정부(parameter calibrator, 230), 보정값 설정부(calibration value setter, 240) 및 대상체 이동부(object moving unit, 250)를 포함한다.
스캔자세 제어부(210)는 스캐너(120)가 로봇(100) 주변의 복수의 스캔위치에서 대상체를 각각 스캔하도록 로봇(100)의 자세(position)와 관련된 복수의 로봇 파라미터(이하, 파라미터)의 값을 설정하여 로봇(100)의 자세를 제어한다.
로봇(100)의 자세를 제어하기 위한 복수의 파라미터의 값들을 파라미터 세트라 정의한다. 하나의 파라미터 세트에 의해 로봇(100)의 하나의 자세가 결정되므로, 로봇(100)의 세가지의 자세는 3가지의 파라미터 세트가 대응된다.
스캐너(120)가 대상체(130)를 여러번 촬영하더라도 서로 비슷한 촬영 범위 및 서로 비슷한 로봇 자세로 촬영하는 경우, 서로 다른 파라미터 세트에 대해 로봇 자세에 다양한 방향의 에러 성분이 포함되기 어렵기 때문에 파라미터 세트 내에서 에러가 보정되는 파라미터의 종류가 제한적일 우려가 있다.
따라서, 다양한 촬영 방향 및 다양한 로봇 자세로 촬영된 스캔 데이터가 파라미터 세트 보정에 사용되면 다양한 방향의 에러 성분으로 인해 더욱 효과적으로 파라미터 세트 보정값 설정이 가능해진다.
도 3은 로봇이 복수의 자세로 대상체를 각각 촬영하는 경우의 상황을 도시한 도면이다.
스캔자세 제어부(210)는 스캐너(120)가 복수의 스캔위치에서 대상체(310)를 각각 촬영하도록 로봇(100)의 자세를 제어한다. 도 3에서 스캔위치의 개수는 3개인 것으로 예시하였으나, 본 발명은 이에 한정되지 않고 2개, 4개, 및 5개 등 N(N은 자연수) 개의 스캔위치를 가질 수 있다. 이하의 설명에서는 별도의 설명이 없는 한 스캔위치의 개수는 3개인 것으로 가정하여 설명한다.
대상체(310)를 향하는 서로 다른 3개의 방향에서 스캐너(120)가 대상체(310)를 각각 촬영하기 위해서는 스캐너(120)가 서로 다른 3개의 위치에서 각각 대상체(310)를 향하도록 로봇(100)의 자세와 관련된 3가지의 파라미터 세트가 설정된다. 즉, 하나의 파라미터 세트가 결정되면 하나의 스캔위치가 결정되어 하나의 스캔 데이터가 생성되고, 3개의 파라미터 세트가 결정되면 3개의 파라미터 세트에 각각 대응되는 스캔위치가 결정되어 3개의 파라미터 세트에 각각 대응되는 스캔 데이터가 생성된다.
데이터 수신부(220)는 스캐너(120)가 복수의 스캔위치에서 각각 대상체(310)를 스캔하여 생성한 복수의 스캔 데이터를 스캐너(120)로부터 수신한다.
파라미터 보정부(230)는 각각 설정된 3가지의 파라미터 세트에 대응되는 3개의 로봇 자세 정보(이하, 자세 정보)와 스캐너(120)로부터 수신한 3개의 스캔 데이터를 이용하여 파라미터 세트에 대한 보정값을 산출한다.
파라미터 보정부(230)는 제1 산출부(first producer, 231), 제2 산출부(second producer, 232) 및 보정값 산출부(calibration value producer, 233)를 포함한다.
제1 산출부(231)는 복수의 스캔 데이터를 이용하여 스캔위치 쌍 조합마다 복수의 스캔위치 사이의 위치관계(이하, 제1 위치관계)를 산출한다.
도 3에 도시한 바와 같이, 제1 산출부(231)는 복수의 스캔 데이터로부터 대상체(310)의 좌표계에 대한 스캐너(120)의 각 좌표계의 위치변환행렬을 제1 위치관계로서 획득한다. 예를 들어, 대상체(310)의 좌표계에 대한 스캔위치 P1의 스캐너 좌표계의 위치변환행렬 Ts P1이 획득되고, 대상체(310)의 좌표계에 대한 스캔위치 P2의 스캐너 좌표계의 위치변환행렬 Ts P2이 획득되고, 대상체(310)의 좌표계에 대한 스캔위치 P3의 스캐너 좌표계의 위치변환행렬 Ts P3이 획득된다.
또한, 제1 산출부(231)는 스캔위치 P1의 스캐너(120) 좌표계에 대한 스캔위치 P2의 스캐너 좌표계의 위치변환행렬 TP1 P2을 획득하고, 스캔위치 P2의 스캐너 좌표계에 대한 스캔위치 P3의 스캐너 좌표계의 위치변환행렬 TP2 P3을 획득하고, 스캔위치 P1의 스캐너 좌표계에 대한 스캔위치 P3의 스캐너 좌표계의 위치변환행렬 TP1 P3을 획득한다.
도 4는 하나의 스캔위치 쌍에 대하여 제1 위치관계 및 제2 위치관계 사이의 오차가 발생하는 상황을 도시한 도면이다.
제2 산출부(232)는 스캔위치 쌍 조합마다 대응하는 한 쌍의 자세 정보 사이의 위치관계(이하, 제2 위치관계)를 산출한다. 다시 말해서, 스캔위치 쌍마다 한 쌍의 자세 정보가 산출된다.
스캔위치가 3개(P1, P2, P3)인 경우 3 개의 스캔위치 쌍 조합이 존재하며, 스캔위치가 4개(P1, P2, P3, P4)인 경우 6 개의 스캔위치 쌍 조합이 존재한다. 즉, 스캔위치가 3개인 경우, P1과 P2 쌍 사이, P1과 P3 쌍 사이, P2와 P3 쌍 사이에 각각 제1 위치관계 및 제2 위치관계가 산출된다. 또한, 스캔위치가 4개인 경우, P1과 P2 쌍 사이, P1과 P3 쌍 사이, P1과 P4 쌍 사이, P2와 P3 쌍 사이, P2와 P4 쌍 사이, P3와 P4 쌍 사이에 각각 제1 위치관계 및 제2 위치관계가 산출된다.
제2 산출부(232)는 P1 자세 정보, P2 자세 정보 및 P3 자세 정보를 참조하여 제2 위치관계를 산출한다. P1 자세 정보는 스캔위치 P1에 스캐너(120)를 위치시키기 위한 파라미터 세트에 의하여 정의되는 로봇 좌표계로서 정의된다. P2 자세 정보는 스캔위치 P2에 스캐너(120)를 위치시키기 위한 파라미터 세트의 값에 의하여 정의되는 로봇 좌표계로서 정의된다. P3 자세 정보는 스캔위치 P3에 스캐너(120)를 위치시키기 위한 파라미터 세트의 값에 의하여 정의되는 로봇 좌표계로서 정의된다.
제2 산출부(232)는 P1 자세 정보에 대한 P2 자세 정보의 위치변환행렬 T'P1 P2, P2 자세 정보에 대한 P3 자세 정보의 위치변환행렬 T'P2 P3, P1 자세 정보에 대한 P3 자세 정보의 위치변환행렬 T'P1 P3을 제2 위치관계로서 산출한다.
보정값 산출부(233)는 제1 위치관계와 제2 위치관계를 기반으로 파라미터 세트에 대한 보정값을 산출한다.
보정값 산출부(233)는 P1과 P2 사이에 발생하는 위치 에러, P2와 P3 사이에 발생하는 위치 에러, P1과 P3 사이에 발생하는 위치 에러를 산출한다.
보정값 산출부(233)는 위치변환행렬 TP1 P2과 위치변환행렬 T'P1 P2 사이의 차이를 P1과 P2 사이에 발생하는 제1 위치 에러로서 산출하고, 산출된 제1 위치 에러에 기반하여 로봇 파라미터에 대한 제1 보정값 범위를 산출한다.
보정값 산출부(233)는 위치변환행렬 TP2 P3과 위치변환행렬 T'P2 P3 사이의 차이를 P2와 P3 사이에 발생하는 제2 위치 에러로서 산출하고, 산출된 제2 위치 에러에 기반하여 로봇 파라미터에 대한 제2 보정값 범위를 산출한다.
보정값 산출부(233)는 위치변환행렬 TP1 P3과 위치변환행렬 T'P1 P3 사이의 차이를 P1과 P3 사이에 발생하는 제3 위치 에러로서 산출하고, 산출된 제3 위치 에러에 기반하여 로봇 파라미터에 대한 제3 보정값 범위를 산출한다.
보정값 산출부(233)는 제1 보정값 범위, 제2 보정값 범위 및 제3 보정값 범위를 이용하여 파라미터 세트에 대한 보정값을 산출한다.
도 5는 로봇 파라미터 공간에서 결정되는 파라미터 세트에 대한 보정값 범위를 개념적으로 도시한 도면이다.
도 5에 도시한 바와 같이, P1과 P2 사이의 제1 위치 에러에 기반한 제1 보정값 범위, P2와 P3 사이의 제2 위치 에러에 기반한 제2 보정값 범위, P1과 P3 사이의 제3 위치 에러에 기반한 제3 보정값 범위는 각각 로봇 파라미터 공간에서 일정 범위를 갖는다.
로봇 파라미터 세트가 링크의 길이, 링크 간의 오프셋, 링크 간의 체결 각도 및 조인트 각도 등의 4개의 파라미터로서 정의되어 있는 경우, 6축 로봇의 파라미터 세트의 차원은 24차원으로서 24차원을 가시화하여 표현하기는 어려우므로 도 5는 로봇 파라미터 세트의 공간을 평면 상에서 개념적으로 나타낸 것이다.
도 5에 도시한 바와 같이, 복수의 스캔위치 쌍 조합에 대해 각각 산출된 제1 보정값 범위, 제2 보정값 범위 및 제3 보정값 범위가 서로 겹치는 영역에 포함되는 파라미터 세트의 값을 보정값으로서 결정한다.
파라미터 보정부(230)는 대상체(310)에 대한 CAD(Computer-Aided Design) 모델링 정보를 이용하여 파라미터 세트에 대한 보정값을 산출할 수도 있다.
CAD 모델링 정보가 존재하는 대상체(310)를 사용하는 경우 공간상의 CAD 모델을 이용하여 대상체(310)의 위치를 예측하므로 더욱 정확한 파라미터 세트의 보정값 생성이 가능하다. 이 경우, CAD 모델링 정보에 의해 대상체(310)에 절대적인 좌표 개념 부여가 가능해지므로 보정값의 정확도를 가늠하는 지표로서 활용될 수 있다.
스캔자세 제어부(210)는 2D 패턴을 갖는 제2 대상체(310a)를 스캐너(120)가 복수의 제1 스캔위치에서 스캔하여 복수의 제1 스캔 데이터를 생성하도록 로봇(100)의 자세를 제어할 수도 있다. 이 경우, 파라미터 보정부(230)는 복수의 제1 스캔 데이터 및 그에 해당하는 복수의 자세 정보를 이용하여 파라미터 세트에 대한 보정값 범위(이하, 제1 보정값 범위) 또는 특정 보정값을 산출할 수 있다.
한편, 2D 패턴을 갖는 제2 대상체(310a)로서는 평면에 원형의 패턴, 격자 패턴, 또는 정확한 인식이 가능한 다양한 패턴을 포함하는 평면형의 구조물일 수 있다.
2D 패턴을 갖는 제2 대상체(310a)를 이용할 경우의 장점은, 제2 대상체(310a) 상의 패턴이 평면에 배치되고 식별이 비교적 쉬운 원형 마커 혹은 사각형 등을 활용하여 3차원 스캔 데이터 상에서 패턴의 원점 및 좌표계를 쉽고 명확하게 인식할 수 있다는 점이다.
2D 패턴을 갖는 제2 대상체(310a)를 이용하여 파라미터 세트 보정값을 산출하는 경우 높은 보정 정확도를 얻을 수도 있으나, 2D 패턴 촬영에 있어서 제한적인 로봇 자세의 범위로 인하여 높은 보정 정확도를 확보하기 어려운 경우도 존재한다.
스캔자세 제어부(210)는 복수의 제1 스캔 데이터를 생성하도록 로봇(100)의 자세를 제어한 후, 3D 형상을 갖는 제2 대상체(310)를 스캐너(120)가 복수의 제2 스캔위치에서 스캔하여 복수의 제2 스캔 데이터를 생성하도록 로봇(100)의 자세를 제어한다. 이 경우, 파라미터 보정부(230)는 복수의 제1 스캔 데이터 및 그에 해당하는 복수의 자세 정보를 이용하여 복수의 파라미터 세트에 대한 보정값 범위(이하, 제1 보정값 범위)를 산출한 후, 복수의 제2 스캔 데이터 및 이에 해당하는 스캐너의 복수의 위치정보를 이용하여 제1 보정값 범위 내에서 파라미터 세트에 대한 보정값을 산출한다.
고유한 모양을 포함하는 2D 패턴을 갖는 제2 대상체(310a)를 이용하여 파라미터 세트 보정 초기값의 범위를 먼저 결정한 후 3D 패턴을 갖는 제2 대상체(310)를 이용하여 파라미터 세트 보정값을 결정하는 경우, 파라미터 세트 최적화과정에서의 로컬 미니마(local minima)에 빠지는 확률을 줄여서 파라미터 세트의 보정값 에러를 최소화하도록 해준다.
파라미터 보정부(230)는 파라미터 세트 내의 복수의 파라미터 각각에 대하여 가중치를 설정하여 보정값을 산출한다.
DH(Denavit-Hartenberg) 파라미터에 따라, 로봇(100)의 각 링크 간의 관계는 4개의 파라미터로서 링크의 길이(link length), 링크 간의 오프셋(inter-link offset), 링크 간의 체결 각도(inter-link fastening angle) 및 조인트 각도(joint angle)로 표현 가능하다.
통상적으로 4개의 파라미터 중에서 로봇의 설계 및 가공 과정에서 결정되는 링크의 길이와 링크 간의 체결 각도 및 링크 간의 오프셋은 시간에 따른 변화가 적고 설계값으로부터의 오차가 작으므로 그 보정값도 매우 작은 수준일 가능성이 높다.
하지만, 4개의 파라미터 중에서 조인트 각도의 오프셋은 로봇(100) 내의 기어 혹은 벨트와 연관된 부분으로서 시간에 따른 기어의 마모와 벨트의 인장 등으로 인해 그 값이 변하기 쉽다. 로봇의 자세 변화는 전형적으로 파라미터에 대해 비선형적인 특성을 가지므로 조인트 각도 오프셋 값의 변화는 로봇 단부(110)의 위치 정확도를 저하시키는 큰 요인이 된다.
따라서, 파라미터 세트 내에서 오차가 빈번히 발생할 수 있는 파라미터, 혹은 가장 큰 영향을 미칠 것으로 예상되는 파라미터에 가중치를 둘 수 있다. 이 경우, 가중치를 모두 동일하게 두는 경우에 비해서 파라미터 세트 최적화의 속도와 정확도가 높아지는 것을 기대할 수 있다.
파라미터에 대한 가중치를 이용한 파라미터 세트의 보정값 robot parameterupdate은 [△robot parameter = Jacobian-1 ×△spatial error]이라는 제1 수학식과 [robot parameterupdate = Normalized Weight Matrix ×△robot parameter]라는 제2 수학식을 이용하여 계산된다.
제1 수학식에서 로봇 파라미터 세트의 차이값 △robot parameter는 위치 차이 △spatial error에 따라 결정된다. 제1 수학식에서, Jacobian-1 매트릭스의 형태는 로봇의 형태에 따라서 결정되며 Jacobian-1 매트릭스 내의 요소 값들은 로봇(100)의 자세에 따라 결정된다.
한편, 파라미터 세트 최적화 과정에서 사용되는 스캔 데이터는 로봇 단부(110)에 장착된 스캐너(120)로부터 얻어지게 되므로, 로봇 단부(110)로부터 스캐너(120)의 광학 원점까지의 변환형렬 또한 최적의 값을 찾아야 하고 이 과정은 파라미터 세트 최적화 과정에 포함된다.
따라서, 파라미터 보정부(230)는 복수의 스캔 데이터로부터 스캐너(120)의 광학 원점을 획득하고, 로봇 단부(110)로부터 광학 원점까지의 변환행렬을 산출하여 복수의 스캔위치를 설정한다.
보정값 설정부(240)는 파라메터 세트의 보정값을 로봇에 설정한다.
보정된 로봇 파라미터 세트는 로봇(100)을 제어하는 로봇 컨트롤러에 전송되어 로봇 컨트롤러 내에 보정값으로 설정되도록 할 수 있다.
또한, 로봇의 이동 경로를 생성하는 작업 소프트웨어에서 로봇 파라미터 세트 보정값을 매번 로봇(100)의 자세를 변화시킬 때마다 로봇(100)에게 전송하는 방식으로 구현될 수도 있다.
대상체 이동부(250)는 사용자의 명령을 수신하여 로봇(100)에 장착된 이동 도구, 예컨대 그리퍼(140)를 이용하여 대상체(130)를 이동시키도록 제어한다.
이 경우, 스캔자세 제어부(210)는 이동된 대상체(130)로부터 일정 거리 떨어진 위치에서 스캐너(120)가 대상체(130)를 스캔하도록 로봇(100)의 자세를 제어한다.
도 6은 일 실시예에 따른 로봇 위치 보정 방법을 흐름도로 도시한 블록도이다.
이하, 도 1 내지 도 6을 함께 참조하면서 로봇 위치 보정 방법을 설명한다.
스캔자세 제어부(210)는 로봇 단부(110)에 장착된 스캐너(120)가 로봇 주변의 복수의 스캔위치에서 대상체(130)를 스캔하도록 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 로봇(100)의 자세를 제어한다(S610).
스캔자세 제어부(210)는 복수의 스캔위치에서 대상체(130)를 스캔하기 위하여 로봇의 자세와 관련된 파라미터 세트가 각각 설정된 후에 스캐너(120)에 의해 스캐닝되도록 제어한다(620).
데이터 수신부(220)는 복수의 스캔위치에서 각각 대상체(130)가 스캔되어 생성된 복수의 스캔 데이터를 스캐너(120)로부터 수신한다(S630).
제1 산출부(231)는 복수의 스캔위치를 식별하고 복수의 스캔위치로부터 복수의 스캔위치 쌍 조합을 생성한다(S640).
제1 산출부(231)는 각 스캔위치 쌍 조합에 대하여 해당 스캔위치 쌍 내의 스캔위치 사이의 위치관계(이하, 제1 위치관계)를 각각 산출한다(S650).
제2 산출부(232)는 각 스캔위치 쌍 조합에 대응하는 자세 정보 쌍 사이의 위치관계(이하, 제2 위치관계)를 각각 산출한다(S660).
보정값 산출부(233)는 각 스캔위치 쌍 조합에 각각 해당하는 제1 위치관계 및 제2 위치관계로부터 위치 에러를 각각 산출한다(S670).
보정값 산출부(233)는 각 스캔위치 쌍 조합에 각각 해당하는 위치 에러로부터 파라미터 세트에 대한 보정값을 산출한다(S680).
본 실시예에 따른 각 순서도에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 순서도에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것이 적용 가능할 것이므로, 순서도는 시계열적인 순서로 한정되는 것은 아니다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적 회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다.
컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비일시적인(non-transitory) 매체일 수 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송) 및 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 프로그램가능 컴퓨터에 의하여 구현될 수 있다. 여기서, 컴퓨터는 프로그램가능 프로세서, 데이터 저장 시스템(휘발성 메모리, 비휘발성 메모리, 또는 다른 종류의 저장 시스템이거나 이들의 조합을 포함함) 및 적어도 한 개의 커뮤니케이션 인터페이스를 포함한다. 예컨대, 프로그램가능 컴퓨터는 서버, 네트워크 기기, 셋탑 박스, 내장형 장치, 컴퓨터 확장 모듈, 개인용 컴퓨터, 랩탑, PDA(Personal Data Assistant), 클라우드 컴퓨팅 시스템 또는 모바일 장치 중 하나일 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 로봇 110: 단부
120: 스캐너 130: 대상체
140: 그리퍼
200: 로봇 위치 보정 장치 210: 스캔자세 제어부
220: 데이터 수신부 230: 파라미터 보정부
231: 제1 산출부 232: 제2 산출부
233: 보정값 산출부 240: 보정값 설정부
250: 대상체 이동부 310: 대상체
310a: 2D 대상체
120: 스캐너 130: 대상체
140: 그리퍼
200: 로봇 위치 보정 장치 210: 스캔자세 제어부
220: 데이터 수신부 230: 파라미터 보정부
231: 제1 산출부 232: 제2 산출부
233: 보정값 산출부 240: 보정값 설정부
250: 대상체 이동부 310: 대상체
310a: 2D 대상체
Claims (11)
- 로봇의 단부에 장착된 스캐너가 로봇 주변의 복수의 스캔위치에서 대상체를 스캔하도록 상기 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 상기 로봇의 자세를 제어하는 스캔자세 제어부(scan position controller);
상기 스캐너에 의해 상기 복수의 스캔위치에서 각각 상기 대상체가 스캔되어 생성된 복수의 스캔 데이터를 상기 스캐너로부터 수신하는 데이터 수신부(data receiver); 및
각각 설정된 상기 파라미터 세트에 대응되는 복수의 자세(position) 정보와 상기 복수의 스캔 데이터를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 파라미터 보정부(parameter calibrator)
를 포함하되,
상기 파라미터 보정부는,
상기 복수의 스캔위치 사이의 상대적인 위치 차이와 상기 복수의 자세 정보 사이의 상대적인 위치 차이를 이용하여 상기 보정값을 산출하는 로봇 위치 보정 장치. - 삭제
- 제1항에 있어서,
상기 파라미터 보정부는,
상기 복수의 스캔 데이터를 이용하여 상기 복수의 스캔위치 사이의 위치관계(이하, 제1 위치관계)를 산출하는 제1 산출부;
상기 복수의 자세 정보 사이의 위치관계(이하, 제2 위치관계)를 산출하는 제2 산출부; 및
상기 제1 위치관계와 상기 제2 위치관계를 기반으로 상기 파라미터 세트에 대한 보정값을 산출하는 보정값 산출부
를 포함하는 로봇 위치 보정 장치. - 제3항에 있어서,
상기 제1 위치관계 및 상기 제2 위치관계는 한 쌍의 스캔위치에 대한 조합마다 각각 산출되는 로봇 위치 보정 장치. - 제1항에 있어서,
상기 파라미터 보정부는,
상기 대상체에 대한 CAD 모델링 정보를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 로봇 위치 보정 장치. - 제1항에 있어서,
상기 스캔자세 제어부는,
2D 패턴을 갖는 제2 대상체에 대하여 상기 스캐너가 복수의 제1 스캔위치에서 스캔하여 제1 스캔 데이터를 생성하도록 상기 로봇의 자세를 제어한 후, 3D 형상을 갖는 제2 대상체에 대하여 상기 스캐너가 복수의 제2 스캔위치에서 스캔하여 제2 스캔 데이터를 생성하도록 상기 로봇의 자세를 제어하는 로봇 위치 보정 장치. - 제6항에 있어서,
상기 파라미터 보정부는,
상기 제1 스캔 데이터 및 상기 제1 스캔 데이터에 대응하는 복수의 자세 정보를 이용하여 상기 파라미터 세트에 대한 보정값 범위(이하, 제1 보정값 범위)를 산출한 후, 상기 제2 스캔 데이터 및 상기 제2 스캔 데이터에 대응하는 복수의 자세 정보를 이용하여 상기 제1 보정값 범위 내에서 상기 파라미터 세트에 대한 보정값을 산출하는 로봇 위치 보정 장치. - 제1항에 있어서,
상기 파라미터 보정부는,
상기 파라미터 세트 내의 복수의 파라미터 각각에 대하여 가중치를 설정하여 상기 보정값을 산출하는 로봇 위치 보정 장치. - 제1항에 있어서,
상기 파라미터 보정부는,
상기 복수의 스캔 데이터로부터 상기 스캐너의 광학 원점을 획득하고, 상기 단부로부터 상기 광학 원점까지의 변환행렬을 산출하여 상기 스캔위치를 인식하는 로봇 위치 보정 장치. - 제1항에 있어서,
사용자의 명령에 따라 상기 로봇에 장착된 이동 도구를 이용하여 상기 대상체를 이동시키도록 제어하는 대상체 이동부(object moving unit)를 더 포함하고,
상기 스캔자세 제어부는 상기 이동된 대상체로부터 일정 거리 떨어진 위치에서 상기 스캐너가 상기 대상체를 스캔하도록 상기 로봇의 자세를 제어하는 로봇 위치 보정 장치. - 로봇의 단부에 장착된 스캐너가 로봇 주변의 복수의 스캔위치에서 대상체를 스캔하도록 상기 로봇의 자세와 관련된 파라미터 세트를 각각 설정하여 상기 로봇의 자세를 제어하는 과정;
상기 스캐너에 의해 상기 복수의 스캔위치에서 각각 상기 대상체가 스캔되어 생성된 복수의 스캔 데이터를 상기 스캐너로부터 수신하는 과정; 및
각각 설정된 상기 파라미터 세트에 대응되는 복수의 자세(position) 정보와 상기 복수의 스캔 데이터를 이용하여 상기 파라미터 세트에 대한 보정값을 산출하는 과정
을 포함하되,
상기 파라미터 세트에 대한 보정값을 산출하는 과정은,
상기 복수의 스캔위치 사이의 상대적인 위치 차이와 상기 복수의 자세 정보 사이의 상대적인 위치 차이를 이용하여 상기 보정값을 산출하는 로봇 위치 보정 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/777,078 US20220402141A1 (en) | 2019-11-15 | 2020-11-16 | Method and apparatus for calibrating position of robot using 3d scanner |
PCT/KR2020/016060 WO2021096320A1 (ko) | 2019-11-15 | 2020-11-16 | 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190146682 | 2019-11-15 | ||
KR20190146682 | 2019-11-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210059664A KR20210059664A (ko) | 2021-05-25 |
KR102424378B1 true KR102424378B1 (ko) | 2022-07-22 |
Family
ID=76145731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200152542A KR102424378B1 (ko) | 2019-11-15 | 2020-11-16 | 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102424378B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190308326A1 (en) * | 2016-09-28 | 2019-10-10 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3101674B2 (ja) * | 1995-12-15 | 2000-10-23 | 岡山大学長 | Cad情報を用いた3次元認識手法及び装置 |
KR101988937B1 (ko) * | 2017-09-07 | 2019-06-13 | 주식회사 인지 | 카메라와 로봇 핸드의 캘리브레이션 방법 및 장치 |
-
2020
- 2020-11-16 KR KR1020200152542A patent/KR102424378B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190308326A1 (en) * | 2016-09-28 | 2019-10-10 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
Also Published As
Publication number | Publication date |
---|---|
KR20210059664A (ko) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9519971B2 (en) | Position and orientation measurement device and position and orientation measurement method | |
US11117262B2 (en) | Intelligent robots | |
US9495750B2 (en) | Image processing apparatus, image processing method, and storage medium for position and orientation measurement of a measurement target object | |
JP5393318B2 (ja) | 位置姿勢計測方法及び装置 | |
CN109866220B (zh) | 机械手臂的校正装置及其校正方法 | |
US10203197B2 (en) | Range measurement apparatus and range measurement method | |
KR20140008262A (ko) | 로봇 시스템, 로봇, 로봇 제어 장치, 로봇 제어 방법 및 로봇 제어 프로그램 | |
JP2011027724A (ja) | 3次元計測装置、その計測方法及びプログラム | |
JP6317618B2 (ja) | 情報処理装置およびその方法、計測装置、並びに、作業装置 | |
JP6677522B2 (ja) | 情報処理装置、情報処理装置の制御方法およびプログラム | |
KR20190070875A (ko) | 비전-기반 조작 시스템들의 교정 및 동작 | |
JP2018136896A (ja) | 情報処理装置、システム、情報処理方法、および物品の製造方法 | |
JP2016170050A (ja) | 位置姿勢計測装置、位置姿勢計測方法及びコンピュータプログラム | |
CN111438688A (zh) | 机器人校正方法、装置、计算机设备及存储介质 | |
KR101782317B1 (ko) | 3차원 스캐너를 이용한 로봇 캘리브레이션 장치 및 이를 이용한 로봇 캘리브레이션 방법 | |
JPWO2018043524A1 (ja) | ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法 | |
JP2019098409A (ja) | ロボットシステムおよびキャリブレーション方法 | |
US20220395981A1 (en) | System and method for improving accuracy of 3d eye-to-hand coordination of a robotic system | |
CN115519536A (zh) | 用于3d眼手协调的误差校正和补偿的***和方法 | |
WO2022208963A1 (ja) | ロボット制御用のキャリブレーション装置 | |
JP2015007639A (ja) | 情報処理装置、情報処理方法およびプログラム | |
KR102424378B1 (ko) | 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 | |
US20230123629A1 (en) | 3d computer-vision system with variable spatial resolution | |
US20220402141A1 (en) | Method and apparatus for calibrating position of robot using 3d scanner | |
JP6800506B1 (ja) | 自動カメラキャリブレーションを実施する方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |