Robot Calibration (Laser Tracker)

개요

산업용로봇은반복성은높지만정확하지는않으므로로봇보정을통해산업용로봇의정확도를향상시킬있습니다. 로봇의공칭정확도는로봇브랜드와모델에따라다릅니다. 로봇교정을사용하면로봇정확도를2~10 향상시킬있습니다.

선택적으로볼바테스트(원형테스트) 또는 ISO9283 위치정확도테스트를수행하여로봇의정확도를빠르게검증할있습니다.

Robot Calibration LaserTracker - 영상 1

로봇을보정하려면측정시스템이필요합니다. RoboDK사용하여로봇을보정하고정확한로봇프로그램을생성할있습니다(프로그램필터링 RoboDK오프라인프로그래밍엔진사용포함). RoboDK또한볼바테스트또는로봇밀링을통해보정전후로봇의정확도를테스트하는사용될있습니다.

로봇보정은오프라인프로그래밍(OLP)이라고도하는오프라인으로프로그래밍이로봇의정확도를크게향상시킬있습니다. 보정된로봇은보정되지않은로봇보다절대위치상대위치정확도가높습니다.

요구사항

RoboDK설치하고로봇교정을올바르게수행하려면다음항목이필요합니다.

1.하나이상의산업용로봇

2.측정시스템: Leica, API 또는 Faro같은레이저트래커 Creaform C-Track 스테레오카메라와같은광학 CMM작동해야합니다.

3.RoboDK 소프트웨어가설치되어있어야하며로봇보정테스트를위한적절한라이선스가필요합니다. 네트워크라이선스를확인하려면인터넷연결이필요합니다. 로봇보정을위해 RoboDK설치하거나업데이트하려면다음단계를수행하십시오.

a.다운로드사이트에서 RoboDK다운로드하십시오.           
https://robodk.com/download

b.측정시스템드라이버를설정합니다(Creaform Optical CMM에는필요하지않음). 적절한폴더를압축해제하고복사하십시오.          
API 레이저트래커:     https://robodk.com/downloads/private/API.zip (OTII and Radian 트래커)      
Faro 레이저트래커:    https://robodk.com/downloads/private/Faro.zip (all Faro 트래커)         
Leica 레이저트래커: https://robodk.com/downloads/private/Leica.zip (all Leica 트래커)        C:/RoboDK/api/ 폴더로압축해제복사하십시오.

오프라인설정

측정을시작하기전에 RoboDK(오프라인설정)에서로봇설정의가상환경을생성하는것이좋습니다. 섹션에서는 RoboDK 스테이션을오프라인으로준비하는방법에관해설명합니다. 로봇과트래커를설치하기전에 RoboDK설치된컴퓨터에서만사용할있습니다.

RoboDK 보정설정예제는다음폴더에서다운로드있습니다.           
https://www.robodk.com/downloads/calibration/

오프라인셀이이미있으면섹션을건너뛰십시오. 기준좌표계와좌표계는대략추정할있습니다. 샘플스테이션은다음그림과같습니다.

Robot Calibration LaserTracker - 영상 2

RoboDK 스테이션

RoboDK 스테이션은가상환경스테이션과정보가저장되는곳입니다. 스테이션은 RDK 파일로저장됩니다. 다음단계에따라로봇정을위한로봇스테이션을처음부터새로만드십시오(비디오미리보기: https://youtu.be/Nkb9uDamFb4):

1.로봇을선택하십시오.

a.파일온라인라이브러리열기선택하십시오. 온라인라이브러리가RoboDK표시될것입니다.

b.필터를사용하여브랜드, 가반하중등으로로봇을찾으십시오.

c.다운로드선택하면로봇이스테이션에자동으로나타납니다.

d.또는http://www.robodk.com/library별도로로봇파일(.robot 파일확장자)다운로드하여 RoboDK여십시오.

Robot Calibration LaserTracker - 영상 3

2.가상스테이션모델링

a.프로그램기준좌표계추가선택하여기준좌표계추가

i.로봇기본좌표계에대해하나의측정기준좌표계를추가하십시오.

ii.추가한 "측정기준"관련하여하나의 "추적기준"추가하십시오.

iii.추적기준이있는툴의위치를시각화하기위해 "측정기준" 좌표계와관련하여하나의 "기준"추가할있습니다.

1:실제세계에존재하는종속성을재구성하려면트리에서항목을끌어다놓으십시오. 예를들어, 추적기준은 "측정기준"연관되어배치되어야합니다.

2: ALT 키와 SHIFT + ALT 키를각각눌러기준좌표계또는좌표계를대략이동할있습니다. 또는기준좌표계를클릭하고올바른좌표를입력할있습니다.

3: 항목트리에서 F2 키를사용하여개체이름을바꿀있습니다.

b.객체 (STL, IGES STEP 파일은지원되는형식)추가하고로봇 (항목트리내부)으로끌어다놓으면객체가툴로변환됩니다. 자세한내용은여기참조하십시오.

Robot Calibration LaserTracker - 영상 4Robot Calibration LaserTracker - 영상 5

선택사항: 프로그램추가선택하여스테이션에서시각화하려는 TCP추가합니다(충돌또는기타확인). 대략적인 TCP 값을설정하려면아래의절차를수행하십시오.  

i.툴을더블클릭하십시오.

ii.대략적인 TCP 값을설정하십시오. 우측의버튼을사용하여 6 개의값을번에복사/붙여넣기있습니다.

iii.보정에사용된 TCP이름을 "CalibTool id"라는이름으로바꾸는것이좋습니다. 여기서 id보정대상번호입니다.

Robot Calibration LaserTracker - 영상 6

c.파일오픈메뉴를사용하여가상스테이션을모델링하기위해다른 3D CAD 파일(STL, IGES, STEP, SLD, ...)추가하십시오. 또는파일을 RoboDK기본창으로끌어다놓습니다.

1: 측정작업공간의 3D 파일을가져와서로봇측정이트래커의작업공간내부에서생성되도록작업공간으로이름을지정하십시오. 또는트래커작업공간내에서측정을제한하지않으려면작업공간을보이지않게설정하십시오. 자세한내용은다음섹션에서확인할있습니다.

2: RoboDK에서가져온비밀 3D 파일내보내기를차단하려면 CTRL + ALT + Shift + P선택할있습니다.

3.스테이션에보정모듈을추가하십시오.

a.유틸리티로봇보정메뉴를선택하십시오.

b.레이저트래커선택하십시오.

Robot Calibration LaserTracker - 영상 7

그러면, 다음창이나타납니다.

Robot Calibration LaserTracker - 영상 8

창은바로닫을으며, 로봇보정스테이션항목을더블클릭하면언제든지있습니다.

Robot Calibration LaserTracker - 영상 9

4.스테이션을저장하십시오.

a.파일스테이션저장선택하십시오.

b.폴더파일이름을입력하십시오.

c.저장을선택하십시오. 새로운RDK파일이생성될것입니다(RoboDK 스테이션파일).

2.RDK 파일을열면언제든지스테이션수정사항을복구할있습니다(Windows에서파일을더블클릭).

요약하면, 아래의사항을다시확인하십시오.

1.보정도구의이름은 "CalibTool id"이고 ID 1부터시작합니다. 보정도구가 3 개인경우 "CalibTool 1", "CalibTool 2" "CalibTool 3"있어야합니다.

2.측정기준좌표계는로봇기본에직접적으로의존합니다.

지금은기준좌표계의추정값을사용할있습니다.

3.트래커기준측정기준직접의존합니다. 트래커기준은측정기준과관련하여레이저트래커의대략적인위치여야합니다.

4.스테이션에로봇보정프로젝트가있으며우리가취할모든측정은충돌이없고추적기가있습니다(보정설정을더블클릭하고 4 개의측정그룹그룹에대해선택).

5.충돌을자동으로확인하려면충돌을확인하는데사용하려는모든객체에 "충돌"이라는이름태그를사용해야합니다. 충돌을안전하게피하기위해보정된도구보다 25% 도구를사용하는것이좋습니다.

보정타겟생성

로봇정을성공적으로수행하는데필요한4가지측정세트가있습니다.

1.기본설정: 로봇에대한좌표계를배치하려면이동축12대하여6(또는이상)측정이필요합니다. 보정설정창에서표시선택하면로봇이순서대로움직입니다.

2.설정: 플랜지타겟(이동 5 6)교정하려면7이상의측정이필요합니다. 표시선택하면로봇이순서대로움직입니다.

3.측정: 로봇을정하려면 60이상의측정이필요합니다. 이러한측정은로봇작업공간에무작위로배치될있으며주변물체와충돌하지않아도됩니다.

4.검증측정(선택): 로봇정확도를검증하기위해원하는만큼의측정을사용할있습니다. 이러한측정은로봇의정확성을검증하고로봇을정하는데에만사용됩니다.

처음세트의측정은 RoboDK의해자동으로생성됩니다. 표시선택하면로봇이다음이미지와같이순서를따릅니다. 순서를변경해야하는경우,측정선택하고데이터내보내기택하여측정값을 CSV 파일로내보냅니다. 파일은 Excel 시트를사용하여편집하고데이터가져오기클릭하여다시가져올있습니다.

Robot Calibration LaserTracker - 영상 10측정생성이라는매크로스크립트를사용하여마지막세트의측정(검증)생성할있습니다. 매크로스크립트는로봇프로젝트를시작할스테이션에자동으로추가됩니다. 매크로를클릭하여실행하십시오. 매크로는사용자가다음설정을정의하도록안내하는 Python 프로그램입니다.

측정: 생성할측정수입니다. 로봇정에는최소60개의측정이필요하므로기본적으로80개의측정이사용됩니다.

기준위치: 기준위치는툴이대상을있는트래커를향하는로봇의위치여야합니다.

조인트한계 : 하부상부조인트한계를제공해야합니다.

직교한계: 로봇기준좌표계대해직교한계(X, Y, Z)제공할있습니다.

스크립트는도구가트래커를향하고있는위치와접합점구속점을기준으로측정을자동생성합니다. 툴을기준으로 +/- 180회전하면기준위치에서트래커를향하는방향을기준으로허용됩니다. 또한, 관절이동순서는충돌이없고측정작업공간내부 (작업공간이표시되도록설정된경우) 내에서발생합니다. 다음이미지는자동절차시작되기전에사용자에게제공되는내용보여줍니다. 절차완료되는최대5분이걸릴있습니다.

Robot Calibration LaserTracker - 영상 11

원하는경우측정스크립트생성우스오른쪽단추로클릭하고스크립트수정선택한알고리즘의추가매개변수를수정하여스크립트를수정할있습니다. 스크립트는사용자입력을스테이션매개변수로자동저장합니다. 다음이미지와같이스테이션을마우스오른쪽버튼으로클릭하고스테이션매개변수선택하여이러한설정을보거나편집또는삭제할있습니다.

알고리즘이완료되면메시지가나타납니다. 로봇보정에60개의측정값을사용하려면보정선택하십시오. 같은스크립트를다시실행하여유효성검사를위한다른측정세트를생성할있습니다. 단계는선택사항이지만검증목적으로60이상의측정이권장됩니다.

Robot Calibration LaserTracker - 영상 12

Robot Calibration LaserTracker - 영상 13

마지막으로측정메뉴내에서데이터가져오기선택하여수동으로선택한구성을가져올수도있습니다. CSV 또는 TXT 파일을 Nx6 매트릭스로가져올있습니다. 여기서 N구성수입니다.

Robot Calibration LaserTracker - 영상 14

로봇보정설정

측정절차를자동화하려면레이저트래커와로봇을컴퓨터에연결해야합니다. 레이저트래커를움직일경우 3점을통해기준좌표계를측정하는것이좋습니다 (단계는 1원점위치를복구하려는경우필수입니다. 자세한내용은부록 II참조).

다음이미지에표시된대로하나이상의 SMR 대상을부착해야합니다(3 이상권장). 레이저트래커를이동해야하는경우 3개의네스트를기준좌표계로사용하는것이편리합니다.

Robot Calibration LaserTracker - 영상 15Robot Calibration LaserTracker - 영상 16

측정준비를위해서는아래의섹션을차례로수행해야합니다.

트래커연결

RoboDK와의통신을올바르게설정하려면레이저트래커의 IP필요합니다. 레이저트래커와의통신을확인하려면다음단계를수행하십시오.

a.연결레이저트래커연결메뉴를선택하십시오. 새로운창이열릴것입니다.

b.레이저트래커의 IP설정하십시오.

c.“연결”버튼을클릭하십시오.

연결에성공하면“준비”라는녹색메시지가표시됩니다. 창을닫을있으며연결은활성상태로유지됩니다.

Robot Calibration LaserTracker - 영상 17

로봇연결

RoboDK와의통신을올바르게설정하려면로봇의 IP(또는 RS232 연결을위한 COM 포트번호)필요합니다. 로봇과의통신을확인하려면다음단계를따르십시오.

1.연결로봇연결선택하십시오. 새로운창이열릴것입니다.

2.로봇의 IP 포트(또는 RS232통한연결의경우 COM 포트)설정하십시오.

3.연결버튼을클릭하십시오.

4.문제가발생하면부록을참조하십시오.

연결에성공하면준비완료를표시하는녹색메시지가표시됩니다. 위치가져오기선택하면가상로봇의위치가실제로봇의위치와정확히일치해야합니다. 또는로봇을시뮬레이터에설정된현재위치로이동하려면현재조인트로이동선택하십시오. 창을닫을있으며창이닫히더라도연결은활성상태로유지됩니다.

Robot Calibration LaserTracker - 영상 18

기준타겟측정

로봇기준에부착된보정기준좌표계를측정하는것이좋습니다. 보정중에트래커를움직이거나개의보정을비교할도움이됩니다. 보정기준좌표계는 3개의유형지점으로정의해야합니다.

로봇과관련하여트래커를이동하지않거나 1원점을복구할필요가없는경우, 단계를건너있습니다. 경우레이저트래커의기준이사용됩니다.

레이저트래커를움직일때마다다음단계를수행하십시오.

1.연결레이저트래커연결선택하십시오.

2.레이저트래커가연결되지않은경우레이저트래커의 IP설정하고연결을선택하십시오.

3.이미지에표시된대로보정기준트래커기준을설정하십시오. 보정기준은 "측정기준"이라고도합니다.

4.기본타겟설정을선택하십시오.

Robot Calibration LaserTracker - 영상 19

RoboDK다음이미지에표시된메뉴를사용자에게안내합니다. 절차가완료되면레이저트래커의위치가기준과관련하여자동으로업데이트됩니다.

Robot Calibration LaserTracker - 영상 20

Robot Calibration LaserTracker - 영상 21Robot Calibration LaserTracker - 영상 22Robot Calibration LaserTracker - 영상 23


Robot calibration

로봇캘리브레이션은4단계로나뉩니다. 단계마다일련의측정이필요합니다. 단계는아래의순서를반드시준수해야합니다.

1.기본기준측정(3)

2.기준측정(3)

3.보정측정(7, 60측정)

4.검증측정(7, 60측정)

다음영상은 20 동안위의보정을수행하는방법을보여줍니다(https://www.robodk.com/robot-calibration#tab-lt). 유효성검사측정(4단계)로봇을보정하는필수는아니지만정확한결과를제공합니다. 영역에서로봇을교정하고다른영역에서로봇을검증하는것의영향을수도있습니다.

4가지측정세트각각에대해측정버튼을선택하십시오. 그러면새로운측정을수행하고기존측정값을텍스트파일(csv 또는 txt 형식)가져오거나내보낼있는창이열립니다.

기본측정

6개의측정모두에대해같은목표를측정하면플랜지의어느곳에서나이러한측정을수행할있습니다. 측정을시작하려면기본설정섹션에서측정선택하십시오. 다음과같은창이열립니다. 그런다음측정시작선택하면로봇이예약된측정을통해차례로수행합니다.

Robot Calibration LaserTracker - 영상 24

측정이완료되면창을닫고로봇기본좌표계에대해측정기준좌표계가업데이트됩니다. 기준좌표계를선택하지않으면기준을추가하고(프로그램기준좌표계추가선택) 이를로봇기본기준(항목트리에서드래그드롭) 아래에배치할있습니다.

Robot Calibration LaserTracker - 영상 25

요약에는보정기준좌표계 ([x, y, z, w, p, r] 형식, mm 라디안)대한위치방향또는로봇기준좌표계가표시됩니다.

측정

6개의측정에대해동일한목표를측정하는플랜지의어느곳에서나측정 1-6수행할있습니다. 후에측정하려는모든 TCP동일한 TCP대해하나의측정을추가합니다. 경우에는 3개의 TCP있으므로 6 + 3 = 9 측정이됩니다. 측정을클릭하면해당위치에서측정을계속할있습니다.

이전섹션과같이설정섹션에서측정선택하십시오. 다음과같은창이열립니다. 측정시작선택하면로봇이계획된측정을통해차례로수행합니다. 해당위치에서측정을계속하려면측정을클릭하십시오.

Robot Calibration LaserTracker - 영상 26

절차가완료되면요약에보정된 TCP표시됩니다. TCP 정의(다음이미지CalibTool 1)자동으로업데이트됩니다. TCP선택하지않은경우 TCP추가하고(“프로그램추가”선택) “재계산”을선택할있습니다. 새로운창이나타나고측정순서에따라툴의 "id"선택해야합니다. 동일한절차를반복하여필요한만큼많은 TCP(경우에는 3 개의 TCP)업데이트있습니다. 이름이숫자로끝나면도구의 ID자동으로감지됩니다.

Robot Calibration LaserTracker - 영상 27

로봇보정

보정섹션에서측정선택하십시오. 다음과같은창이열립니다. 그런다음측정시작선택하면로봇이계획된측정을통해차례로수행합니다. 해당위치에서측정을계속하려면측정을클릭하십시오.

Robot Calibration LaserTracker - 영상 28

측정이완료되면창을닫으십시오. 로봇이자동으로보정되고문제가없으면다음메시지가표시됩니다.

Robot Calibration LaserTracker - 영상 29

마지막으로, 녹색화면에는보정측정에관한통계와해당측정의정확도가얼마나향상되었는지표시됩니다.

Robot Calibration LaserTracker - 영상 30

로봇검증

로봇을교정하는사용한것과같은측정값을사용하여로봇의정확도를검증해서는되므로정확도를검증하기위해추가측정을수행하는것이좋습니다(정확도결과에대한객관적인관점).

검증측정을수행하려면같은보정절차를따라야합니다. 요약에유효성검사통계가표시됩니다. 자세한내용은다음결과섹션참조하십시오.

결과

보정이완료되면 RoboDK에서제공하는통계를통해정확도향상을분석할있습니다. 통계를표시하려면로봇교정창을여십시오(로봇보정아이콘을클릭하십시오). 유효성검사섹션의요약창에는보정(공칭운동학) 보정(보정된운동학) 오류가표시됩니다. 개의표가제공됩니다. 하나는위치오차에관한통계를나타내고다른하나는거리오차를나타냅니다.

위치오차: 위치오차는로봇이기준좌표계에대해지점에도달할있는정확도입니다.

거리오차: 거리오차는사이의거리오차를측정하여얻습니다. 로봇이보는(캘리브레이션운동학을사용하여얻은) 사이의거리는측정시스템 (물리적으로측정된)에서보는거리와비교됩니다. 모든조합이고려되는데315측정하면 315 x 315 / 2 = 49455거리오차값이됩니다.

제공된통계는평균오차, 표준편차(std) 최대오차입니다. 또한, 평균에표준편차의3배를더한값이제공되는데, 이는모든측정의 99.98%대한예상오차에해당합니다(오차가정규분포를따른다는점을고려하면).

Robot Calibration LaserTracker - 영상 31

통계표시선택하면개의히스토그램은보정전후의오차분포를보여줍니다. 하나는위치정확도에대한히스토그램이고다른하나는거리정확도입니다. 다음이미지는예제에서사용된 315 검증측정의결과입니다.

Robot Calibration LaserTracker - 영상 32

Robot Calibration LaserTracker - 영상 33

마지막으로보고서작성선택하면섹션에제공된정보가포함된 PDF 보고서가생성됩니다.

프로그램필터링

로봇이캘리브레이션되면캘리브레이션로봇의절대정확도를사용하여프로그램을생성하는가지옵션이있습니다.

기존프로그램필터링: 프로그램내부의모든로봇대상이로봇의정확도를향상하도록수정되었습니다. 수동으로또는 API사용하여수행할있습니다.

오프라인프로그램에 RoboDK사용하여정확한프로그램을생성하십시오 (API사용하여생성된프로그램을포함하여생성된프로그램은이미필터링되어있습니다).

기존프로그램을수동으로필터링하려면로봇프로그램파일을 RoboDK메인화면으로끌어다놓은(또는파일열기선택) 필터선택하십시오. 프로그램이필터링되어같은폴더에저장됩니다. 필터링알고리즘을사용하는문제가있으면필터요약에언급됩니다. 또한, RoboDK 내에서프로그램을시뮬레이션하려는경우프로그램을가져올있는옵션이있습니다. 프로그램에종속성(좌표계또는기본좌표계정의, 서브프로그램)있는경우번째프로그램을가져오는같은디렉토리에있어야합니다.

Robot Calibration LaserTracker - 영상 34

Robot Calibration LaserTracker - 영상 35

RoboDK프로그램을가져오면절대정확도의유무와관계없이재생성할있습니다. RoboDK주요정확도설정(도구옵션정확도)에서항상정확한운동학을사용하여프로그램을생성할것인지, 매번묻기를원하거나현재로봇운동학을사용하려는지를결정할있습니다. 로봇을마우스오른쪽버튼으로클릭하고 "정확한운동학사용" 태그를활성화/비활성화하여현재로봇운동학을변경할있습니다. 활성화되어있으면녹색점이표시되고활성화되어있지않으면빨간색점이표시됩니다.

Robot Calibration LaserTracker - 영상 36

Robot Calibration LaserTracker - 영상 37

API 필터프로그램

보정된로봇과필터프로그램호출을사용하는로봇프로그램이주어지면 RoboDK사용하여완전한프로그램을필터링할있습니다.

robot.FilterProgram(file_program)

FilterProgram이라는매크로예제는라이브러리의매크로섹션에서사용할있습니다. 다음코드는 RoboDK API사용하여프로그램을필터링하는예제 Python 스크립트입니다.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

import os                 # Path operations

# Get the current working directory

CWD = os.path.dirname(os.path.realpath(__file__))

# Start RoboDK if it is not running and link to the API

RDK = Robolink()

# optional: provide the following arguments to run behind the scenes

#RDK = Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')

# Get the calibrated station (.rdk file) or robot file (.robot):

# Tip: after calibration, right click a robot and select "Save as .robot"

calibration_file = CWD +'/KUKA-KR6.rdk'

# Get the program file:

file_program = CWD +'/Prog1.src'

# Load the RDK file or the robot file:

calib_item = RDK.AddFile(calibration_file)

ifnot calib_item.Valid():

raise Exception("Something went wrong loading "+ calibration_file)

# Retrieve the robot (no popup if there is only one robot):

robot = RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not selected or not available")

# Activate accuracy

robot.setAccuracyActive(1)

# Filter program: this will automatically save a program copy

# with a renamed file depending on the robot brand

status, summary = robot.FilterProgram(file_program)

if status ==0:

print("Program filtering succeeded")

print(summary)

calib_item.Delete()

RDK.CloseRoboDK()

else:

print("Program filtering failed! Error code: %i"% status)

print(summary)

RDK.ShowRoboDK()

API 필터타겟

다음코드는필터타겟명령을사용하여 RoboDK API사용하여대상(포즈대상또는조인트대상)필터링하는예제 Python 스크립트입니다.

pose_filt, joints = robot.FilterTarget(nominal_pose, estimated_joints)

예제는타사응용프로그램(RoboDK 이외)포즈대상을사용하여로봇프로그램을생성하는경우에유용합니다.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

defXYZWPR_2_Pose(xyzwpr):

return KUKA_2_Pose(xyzwpr) # Convert X,Y,Z,A,B,C to a pose

defPose_2_XYZWPR(pose):

return Pose_2_KUKA(pose) # Convert a pose to X,Y,Z,A,B,C

# Start the RoboDK API and retrieve the robot:

RDK = Robolink()

robot = RDK.Item('', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not available")

pose_tcp = XYZWPR_2_Pose([0,0,200,0,0,0]) # Define the TCP

pose_ref = XYZWPR_2_Pose([400,0,0,0,0,0]) # Define the Ref Frame

# Update the robot TCP and reference frame

robot.setTool(pose_tcp)

robot.setFrame(pose_ref)

# Very important for SolveFK and SolveIK (Forward/Inverse kinematics)

robot.setAccuracyActive(False)# Accuracy can be ON or OFF

# Define a nominal target in the joint space:

joints =[0,0,90,0,90,0]

# Calculate the nominal robot position for the joint target:

pose_rob = robot.SolveFK(joints) # robot flange wrt the robot base

# Calculate pose_target: the TCP with respect to the reference frame

pose_target = invH(pose_ref)*pose_rob*pose_tcp

print('Target not filtered:')

print(Pose_2_XYZWPR(pose_target))

joints_approx = joints # joints_approx must be within 20 deg

pose_target_filt, real_joints = robot.FilterTarget(pose_target, joints)

print('Target filtered:')

print(real_joints.tolist())

print(Pose_2_XYZWPR(pose_target_filt))


로봇마스터링

로봇을보정한후에는일반적으로프로그램을필터링하기위해 RoboDK필요하므로 RoboDK 라이선스가필요합니다(로봇을보정한정확한로봇프로그램을생성하려면기본 OLP 라이선스로충분합니다). 프로그램필터링은모든교정매개변수(30개의매개변수)고려하여로봇의정확도를향상하기위해프로그램의대상이변경/최적화됨을의미합니다.

또는조인트오프셋과기본기준좌표계(4개의조인트오프셋파라미터와기본좌표계의경우6개의파라미터, 좌표계의경우6개의파라미터) 보정할있습니다. 보정은기본전체보정을사용하는것처럼정확하지않지만로봇컨트롤러에특정매개변수를입력할있으며로봇프로그램을생성하기위해 RoboDK의존하지않을있습니다.

조인트오프셋에대해서만교정을얻으려면보정매개변수버튼을클릭한다음로봇보정메뉴내부마스터링버튼을클릭하십시오.

Robot Calibration LaserTracker - 영상 38

Robot Calibration LaserTracker - 영상 39

마스터링프로그램만들기를선택하면새로운창이나타납니다. 창에서새로운원점위치생성을고려할축을선택할있습니다.

Robot Calibration LaserTracker - 영상 40

로봇보정창에마스터링프로그램만들기버튼이나타납니다. 로봇을새로운원위치로가져오는프로그램을생성하려면버튼을선택하십시오. 로봇으로옮기고실행하면새로운원점위치를기록해야합니다.

로봇과 PC연결되어있으면프로그램을마우스오른쪽버튼으로클릭하고로봇에프로그램보내기선택하여프로그램을로봇에자동으로보낼있습니다. 그렇지않으면, 로봇프로그램생성선택하여위치에대한새로운조인트값을있습니다.

Robot Calibration LaserTracker - 영상 41

예를들어, 다음단계에따라 Motoman 로봇의위치를업데이트해야합니다.

먼저로봇을새로운원위치로가져오려면“마스터링”프로그램을실행해야합니다.

프로그램이컨트롤러에들어가면“관리모드”(Motoman 로봇의비밀번호는보통 99999999)로그인해야하며티치모드에있어야합니다. 다음이미지는수행하여야단계를보여줍니다.

.

Robot Calibration LaserTracker - 영상 42Robot Calibration LaserTracker - 영상 43

Robot Calibration LaserTracker - 영상 44Robot Calibration LaserTracker - 영상 45

Robot Calibration LaserTracker - 영상 46Robot Calibration LaserTracker - 영상 47

모든로봇조인트의위치를업데이트하십시오.

원위치가설정되면로봇을새로운원위치로가져온로봇프로그램을삭제해야합니다.

기준좌표계와좌표계

RoboDK기준좌표계좌표계를교정하기위한일부유틸리티를제공합니다. 이러한도구는유틸리티기준좌표계보정유틸리티좌표계보정에서각각액세스할있습니다.

Robot Calibration LaserTracker - 영상 48

기준좌표계또는좌표계(각각사용자좌표계 TCP라고도)교정하려면3이상의포인트에해당하는로봇구성이필요합니다. 이러한로봇구성은조인트값또는직교좌표(경우에따라방향데이터포함) 있습니다. 로봇조인트를 RoboDK 메인화면에복사하여붙여넣기로하여 RoboDK에서실제로봇구성을더욱쉽게확인할있으므로데카르트좌표대신조인트값을사용하는것이좋습니다.

보정

유틸리티보정선택하여 RoboDK사용하여 TCP보정하십시오. 우리는다른방향을사용하여원하는만큼많은포인트를사용할있습니다. TCP대한나은추정과 TCP 오류에대한나은추정을얻을수록많은포인트와방향변경이좋습니다.

다음은TCP보정하는데사용할있는가지옵션입니다.

방향이다른 TCP고정하나를터치하여보정할있습니다.

TCP평면을터치함으로써(터치프로브처럼) 보정할있습니다.

터치프로브또는스핀들을보정해야하는경우평면기준을터치하여보정하는것이좋습니다. 방법은사용자오류에대해안정적입니다.

TCP구형이면구의중심이새로운 TCP계산됩니다(지름을제공할필요는없습니다).

Robot Calibration LaserTracker - 영상 49

평면으로 TCP보정하려면다음단계(그림참조)수행하십시오.

1.보정이필요한툴을선택하십시오.

2.보정방법”Calib XYZ by plane”선택하십시오.

3.조인트이용보정을선택하십시오.

4.사용중인로봇을선택하십시오.

5.TCP 보정에사용할구성수를선택하십시오(8가지이상의구성을권장합니다).

6.기준평면의추정치를선택하십시오. 기준평면이로봇 XY 평면(로봇기준에서)평행하지않은경우기준평면의추정값을± 20내에서추가해야합니다. 평면의위치는중요하지않으며방향만중요합니다.

Robot Calibration LaserTracker - 영상 50

7.조인트값테이블을채울있습니다. 수동으로채우거나버튼으로복사/붙여넣기를수행하여이미지를채울있습니다. 또한Get Jx버튼을사용하여시뮬레이터의로봇에서현재조인트값을얻을있습니다. 로봇에연결된실제로봇에서조인트를얻는경우먼저로봇연결메뉴에서 "현재조인트가져오기"선택해야합니다(RoboDK로봇연결에대한자세한내용은첨부된이미지또는부록참조). 보정에사용되는조인트의사본을별도로보관하는것이좋습니다(: 텍스트파일).

Robot Calibration LaserTracker - 영상 51

8.테이블이채워지면창끝쪽에새로운 TCP (X, Y, Z)보정된 TCP표시됩니다. 업데이트선택하면 RoboDK 스테이션에서새로운 TCP업데이트됩니다. 방법으로는프로브의방향을찾을없습니다.

9."오류표시"선택할있으며계산된 TCP (모든구성의평균)관련된모든구성의오류가표시됩니다. 하나의구성이다른구성보다오류가경우삭제할있습니다.

10.실제로봇컨트롤러의값을수동으로업데이트해야합니다 (X, Y, Z 해당). TCP RoboDK의해생성된프로그램에서사용될경우로봇컨트롤러의값을업데이트할필요가없습니다.

기준좌표계보정

유틸리티기준좌표계보정선택하여기준좌표계를보정하십시오. 다른방법을사용하여기준좌표계를설정할있습니다. 그림의예에서기준좌표계는점으로정의됩니다. 1 2 X 방향을정의하고 3양의 Y 축을정의합니다.

Robot Calibration LaserTracker - 영상 52

부록 I – 1 6 마스터링

1 6마스터링/값을복구하려면특별한주의를기울여야합니다. 값은 1로봇기본좌표계 6 TCP 참조와직접관련이있습니다. 따라서외부측정을수행해야합니다. 값을올바르게설정하십시오. 메뉴는보정메뉴에서 "마스터링프로그램만들기"선택하면나타납니다.

Robot Calibration LaserTracker - 영상 53

축의마스터링매개변수를올바르게설정하려면다음절차를따라야합니다.

6 기준

6 ""위치를올바르게설정하려면기준대상을사용해야합니다. 각도오프셋은측정된 TCP(X, Y, Z)알려진 TCP가장맞추는필요한플랜지의 Z 축을중심으로회전입니다. TCP 기준측정된 TCP(다음이미지참조)보정절차의2단계에서측정된 TCP 하나입니다. 기준 TCP사용중인교정도구의 TCP 하나에해당하는지알려진기준입니다.

이상적으로는플랜지와관련하여 CMM에서기준 TCP측정해야합니다(로봇플랜지의복제본이가장적합함). 또는새로운로봇을사용하여처음으로 TCP측정(2단계교정)하고측정된 TCP기준으로사용할있습니다. 엔드이펙터가항상같은위치에놓이도록다웰/또는적절한플랜지기준을사용하는것이중요합니다.

Robot Calibration LaserTracker - 영상 54

1 기준

1실제로봇기본좌표계정렬하려면로봇정을시작하기전에3개의기본타겟올바르게측정해야합니다. 로봇과관련하여기준좌표계를찾을있도록이러한기본타겟선택해야합니다.

1 "" 위치는로봇기준설정뿐만아니라3개의기준타겟에직접의존합니다. 로봇기준설정은번째보정단계이며, 1 2이동측정하여측정시스템의기준좌표계가로봇기본좌표계에대해배치됩니다.

"기본타겟설정"누르면측정시스템의기본타겟을설정할있습니다(다음이미지참조). 원하는로봇기준좌표계를정의하는3개의측정입니다 (처음2개의측정은 X 축을정의하고번째점은양의 Y 축을정의합니다). 과정을반복할있도록로봇기본과관련된적절한기준점을사용해야합니다.

조인트 1보정각도는3점을통해측정된기본기준의 X 축과로봇 1 2움직여측정한기본기준사이의각도입니다. 물론벡터모두사전에트리포인트를터치하여얻은기본기준의 XY 평면에투영됩니다.

Robot Calibration LaserTracker - 영상 55

부록 II – Faro 레이저트래커시험

로봇정은측정시스템이있는로봇에서측정해야합니다. 이러한측정을수행하려면컴퓨터와통신하는 Faro 레이저트래커가필요합니다. 통신은콘솔모드에서실행할있는 driver exe 파일을통해수행됩니다.

예를들어 Faro "Tracker Utilities"라는무료응용프로그램을제공합니다. 응용프로그램은무엇보다도레이저트래커를초기화하고상태점검을수행할있습니다.

트래커를초기화하려면 "Tracker Utilities" 응용프로그램을시작하고트래커 IP사용하여연결한다음 "Startup Checks"선택해야합니다. 추적기가초기화되면초기화하기전에 1.5 'SMR 대상을' '위치에배치해야합니다. 그렇지않으면초기화녹색표시등이깜박이고측정값이유효하지않습니다.

초기화가완료되면다음이미지와같이 "Startup complete" 메시지를있습니다.

Robot Calibration LaserTracker - 영상 56Robot Calibration LaserTracker - 영상 57

추적기에문제가발생하면“Health Checks…”눌러상태를검사할있습니다. 다음이미지는각각성공확인과실패확인을보여줍니다. 때로는케이블을다시연결하고레이저트래커를재부팅하면문제가해결됩니다.

Robot Calibration LaserTracker - 영상 58Robot Calibration LaserTracker - 영상 59

Robot Calibration LaserTracker - 영상 60

마지막으로“측정패드”를사용하여측정할있습니다. 레이저트래커는목표물을따라 1000Hz속도로 XYZ 위치를측정할있습니다. 포인트하나의샘플과연속트리거를설정하면트래커는초당1000개의측정값을 CSV 파일로기록합니다.

기능을사용하여로봇경로를측정하고 RoboDK경로정확도검사를사용하여경로를따라정확도, 속도가속도를확인할있습니다.

Robot Calibration LaserTracker - 영상 61