RoboDK API(Application Program Interface)는프로그래밍언어를통해RoboDK의기능을사용할수있는일련의루틴및명령집합입니다. RoboDK API를사용하면 C#, 파이썬(Python) 또는 C ++등의지원되는프로그래밍언어중하나를사용하여모든로봇을프로그래밍할수있습니다.
브랜드별로제공되는로봇프로그래밍과달리, RoboDK API를사용하면파이썬과같은독특하고범용적인프로그래밍언어를사용하여모든로봇을시뮬레이션하고프로그래밍할수있습니다. 이메인페이지는개요와API를이용한오프라인프로그래밍을보여주는비디오를제공합니다.
RoboDK API는파이썬, C #, C ++, 비주얼베이직(Visual Basic .NET) 및매트랩(Matlab)에사용할수있습니다. 이러한프로그래밍언어는로봇을시뮬레이션하고프로그래밍하는데사용될수있습니다.
RoboDK API는다음과같은작업에사용될수있습니다:
1.시뮬레이션자동화: 움직이는객체, 기준좌표계또는로봇과같은 RoboDK 시뮬레이터내의특정작업을자동화하는매크로를생성할수있습니다.
2.오프라인프로그래밍: 범용프로그래밍언어를사용하여오프라인에서로봇을프로그래밍합니다. RoboDK는 API를사용할경우특정로봇컨트롤러 (예: 파이썬또는 C# 프로그램)에대한특정프로그램을생성합니다. 로봇프로그램은특정로봇에대해선택된포스트프로세서를기반으로생성됩니다. 이문서의파이썬을사용한오프라인프로그래밍섹션에서자세한정보와예제를제공합니다.
3.온라인프로그래밍: 범용프로그래밍언어를사용하여온라인에서로봇프로그래밍합니다. RoboDK API를사용해서로봇을이동하고현재위치를검색할수있습니다. RoboDK는로봇드라이버를사용하여로봇을구동합니다. 이문서의파이썬을사용한온라인프로그래밍섹션에서자세한정보와예제를제공합니다.
다시말해서, 시뮬레이션에사용되는프로그램 (1)을사용하여동일하게로봇프로그램 (2, 오프라인프로그래밍)을생성하고, 로봇을실시간으로이동 (3, 온라인프로그래밍) 하는데사용할수있습니다.
이문서는다음주제를다룹니다.
●시뮬레이션, 오프라인프로그래밍및온라인프로그래밍에대한예제가포함된파이썬 API
●시뮬레이션, 오프라인프로그래밍및온라인프로그래밍에대한예제가포함된C # API
●시뮬레이션을위한시뮬링크예제가포함된매트랩 API
●RoboDK를시작하는명령행옵션
파이썬은범용프로그래밍을위해널리사용되는고급프로그래밍언어입니다. Python은보다빠르게작업하고시스템을보다효과적으로통합할수있는프로그래밍언어입니다. 파이썬의구문을통해프로그래머는다른언어에비해적은수의코드줄로개념을표현할수있어친숙하고배우기쉽습니다.
이전섹션에서는파이썬과같은로봇프로그래밍에널리사용되는프로그래밍언어와함께 RoboDK API를사용하는장점에관해설명하였습니다.
파이썬은기본적으로 RoboDK와함께자동설치및통합됩니다. 도구➔옵션➔기타를선택하여기본설정 (파이썬경로및파이썬편집기)을변경하십시오.
파이썬 RoboDK API는다음두모듈로나뉩니다.
●robolink모듈(robolink.py): robolink 모듈은 RoboDK와파이썬사이의인터페이스입니다. RoboDK 스테이션트리의모든객체는 Robolink 객체를사용하여검색할수있으며, 검색결과는Item객체로표시됩니다. Robolink.Item 클래스에따라해당항목에서다른작업을수행할수있습니다.
●robodk모듈(robodk.py): robodk 모듈은파이썬을위한로봇공학툴박스로써자세변환을계산하고다른업체의로봇들의오일러각도를얻을수있습니다. 모든포스트프로세서는이robodk모듈을기반으로합니다.
파이썬모듈은 C:/RoboDK/Python/ 폴더에있으며, RoboDK를설치하거나파이썬설정기본값적용을선택하면자동으로파이썬폴더경로에복사됩니다(이전이미지참조).
다음하위섹션은각각시뮬레이션, 오프라인프로그래밍및온라인프로그래밍을위한간단한프로그램을만드는방법을보여줍니다. RoboDK 파이썬 API페이지에서더많은예제를찾을수있습니다. 또한, RoboDK 라이브러리가 C:/RoboDK/Library/Macros/ 폴더에샘플파이썬매크로와함께제공됩니다.
UR 로봇을사용하여샘플프로젝트를설정하고로봇과움직임을시뮬레이션하기위해다음단계를수행하십시오.
1.파일➔열기를선택하십시오.
2.UR10을불러오세요.
3.파일➔열기를선택하십시오.
4.Paint_gun.tool을불러오세요.
5.C:/RoboDK/Library/Macros/ 폴더에서샘플파이썬프로그램SampleOfflineProgramming.py를불러오십시오.
6.SampleOfflineProgramming항목을두번클릭하여시뮬레이션을실행하십시오. 로봇은현재위치주위에육각형을그려야하며 TCP의경로는노란색으로표시됩니다.
또는, 마우스오른쪽버튼으로프로그램을클릭하고파이썬스크립트실행을선택하십시오.
7.마우스오른쪽버튼으로SampleOfflineProgramming항목을클릭하고, 파이썬스크립트편집을선택하십시오. 다음이미지와같이프로그램을볼수있습니다.
SampleOfflineProgramming 매크로는로봇기준좌표계를기준으로로봇의현재위치에서 n_sides 개의측면을갖고반경이 R인다각형을그립니다. 원하는경우, 다각형치수를변경하여로봇을다른위치로이동하고프로그램을다시실행하십시오.
이예제는웹사이트의오프라인프로그래밍섹션 (비디오포함)에표시된프로그램과유사합니다.
파이썬프로그램은로봇을시뮬레이션하는데사용된것과같은파이썬코드를사용하여오프라인으로생성될수있습니다 (이전파이썬시뮬레이션섹션에표시됨). 오프라인프로그래밍을사용하면특정로봇컨트롤러에서실행할수있는로봇프로그램을생성할수있습니다.
1.파이썬프로그램을오른쪽버튼을클릭하여선택하십시오.
2.로봇프로그램생성(F6)을선택하십시오.
이경우프로그램은시뮬레이션되지않고로봇컨트롤러에특정한로봇프로그램인결과를얻기위해빠르게실행됩니다.
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
파이썬프로그램은파이썬시뮬레이션섹션에보인것과같이로봇시뮬레이션에사용된것과같은파이썬코드를사용하여로봇에서직접실행할수있습니다. 온라인프로그래밍에서로봇드라이버를사용하여특정로봇컨트롤러에서일반프로그램을실행할수있습니다.
1.파이썬프로그램을마우스오른쪽버튼으로클릭하십시오.
2.로봇에서실행을선택하십시오.
프로그램은파이썬프로그램이실행될때와같이로봇에서실행됩니다.
RDK = Robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
RoboDK C# API는 RoboDK 클래스 (파이썬의 Robolink 클래스와유사), RoboDK.Item 클래스 (파이썬의 Robolink.Item 클래스 API와유사) 및포즈변환과함께작동하는행렬작업을위한Matrix 클래스 (RoboDK.Mat)와같은로봇공학용도구를포함하는 RoboDK.cs 소스파일입니다.
C#은마이크로소프트에서개발된프로그래밍언어로 .NET Framework에서실행되는다양한응용프로그램을작성하도록설계되었습니다. C#은단순하고강력하며형식이안전하며객체지향적입니다. 이문서의메인섹션에서는로봇프로그래밍을위해 C#과같이널리사용되는프로그래밍언어와함께 RoboDK API를사용하는이점을설명합니다.
RoboDK C# API는다음이미지에보인것과같은샘플프로젝트와함께제공됩니다(전체소스코드가포함되어있음). NuGet 패키지로사용하여 .Net 프로젝트에통합될수도있습니다.
파일불러오기를선택하여 RoboDK 스테이션또는 RoboDK에서지원되는다른파일을불러옵니다. 로봇이불리면, ROBOT 변수가그에따라업데이트됩니다(로봇선택과동일).
로봇명령(예: MoveJ, MoveL 또는 setDO)을사용하면, C# 프로그램이기본적으로시뮬레이션됩니다. 샘플 C# 프로젝트가시작되면, 시뮬레이션모드도기본적으로선택됩니다.
이는로봇이동이 RoboDK에서시뮬레이션됨을의미합니다. 예를들어, 오른쪽의버튼(+ Tx, -Tx,…)을선택하여10mm씩로봇을움직이거나로봇의현재위치를중심으로육각형움직임을실행하는테스트프로그램실행을선택할수있습니다.
응용프로그램을디버깅하고로봇대상을검사하도록중단점을설정하십시오. 로봇타겟은조인트좌표또는 Mat 변수(4x4 자세매트릭스)로정의할수있으며, XYZWPR 형식으로검사하여프로그램문제를해결할수도있습니다. 기준좌표계섹션에서추가적인내용을확인할수있습니다.
다음섹션에표시되는것과같이실행모드를오프라인프로그래밍또는온라인프로그래밍(로봇에서실행)으로변경할수도있습니다.C# OLP #CsAPIOLP
로봇시뮬레이션에사용되는것과같은 C# 코드를사용하여 C# 프로그램을오프라인에서생성할수있습니다(오프라인프로그래밍). 이기능을테스트하려면다음단계를수행하십시오.
1.실행모드섹션에서오프라인프로그래밍을선택하십시오.
2.테스트프로그램실행이나다른이동명령의조합을선택하십시오.
3.로봇제조사별프로그램을얻기위해프로그램생성을선택하십시오.
이경우, 프로그램은시뮬레이션되지않고로봇컨트롤러에특정한로봇프로그램을결과로얻기위해빠르게실행됩니다. 프로그램이생성되면, 실행모드가다시시뮬레이션으로변경됩니다.
C# programs can be directly executed on the robot using the same C# code used for simulation. Online programming allows running a generic program on a specific robot controller using Robot Drivers. Follow these steps to test this feature using the C# sample project:
C# 프로그램은시뮬레이션에사용된것과같은 C# 코드를사용하여로봇에서직접실행할수있습니다. 온라인프로그래밍에서로봇드라이버를사용하여특정로봇컨트롤러에서일반프로그램을실행할수있습니다. C# 샘플프로젝트를사용하여이기능을테스트하려면다음단계를수행하십시오.
1.실행모드섹션에서로봇에서실행을선택하십시오.
2.로봇이움직일수있는아무명령이나선택하십시오.
움직임은실제로봇에서실행되며, 시뮬레이터는로봇모델의움직임을실제로봇과동기화합니다.
RDK = Robolink();
RDK.setRunMode(RUNMODE_RUN_ROBOT);
RoboDK 매트랩API는 RoboDK 설치폴더에서사용할수있습니다. 일반적으로 C:/RoboDK/Matlab/에서찾을수있습니다. RoboDK 매트랩 API는일련의m 파일로제공됩니다.
매트랩은MathWorks에서개발된상용프로그래밍언어입니다. 매트랩은매트릭스조작, 함수및데이터가시화및알고리즘구현을제공합니다.
이문서의메인섹션에서는로봇프로그래밍을위해매트랩과같이널리사용되는프로그래밍언어와함께 RoboDK API를사용하는이점을소개합니다.
RoboDK 매트랩 API에는다음이포함됩니다:
●Robolink.m은 RoboDK와인터페이스하는클래스입니다. RoboDK 스테이션트리의모든객체는 Robolink 객체를사용하여검색될수있으며, RobolinkItem 객체(파이썬의Robolink클래스와동일)로표시됩니다.
●RobolinkItem.m은스테이션트리에서 RoboDK 항목을나타내는클래스입니다. 해당항목에대해다른작업을수행할수있습니다(파이썬의Robolink.Item클래스와동일).
●transl.m, rotx.m, roty.m 및 rotz.m은 XYZ 평행이동벡터또는특정축을따라회전한경우의자세행렬을작성하는함수입니다.
●Pose_2_XYZRPW.m과 XYZRPW_2_Pose.m을사용하면자세를 XYZ 위치로, RPW 오일러각도로또는그반대로변환할수있습니다. 기준좌표계섹션에자세한정보가있습니다.
샘플코드는다음페이지에서제공됩니다:
시뮬링크프로젝트를예로들어소개합니다. 시뮬레이션에서로봇은임의로생성된일련의XYZ 좌표를따라이동합니다.
다음비디오는시뮬레이션실행결과를보여줍니다: https://www.youtube.com/watch?v=7DDBMwa0-Oc
이섹션에서는 RoboDK를시작할때사용가능한명령행옵션에관해설명합니다. 명령행옵션은 API의명령기능을사용하여전달될수도있습니다.
다음의호출은일부인수가있는일반호출을나타냅니다:
RoboDK.exe -[option1] -[option2] open_fileA -[option3] open_fileB ...
아래의형식을포함하여RoboDK가지원하는모든파일형식을인수로제공할수있습니다:
●RDK ➔ RoboDK 스테이션파일: 이파일은관련된모든정보(로봇, 툴, NC 파일등)를포함하는전체프로젝트를담고있습니다.
●robot ➔로봇파일: 로봇파일불러오면로봇의좌표계도함께생성됩니다.
●tool ➔툴파일: 마지막으로추가된로봇에자동으로부착됩니다.
●stl/wrl/step/stp/iges/igs/sld ➔객체(3D 형상): 객체는손쉽게툴로변환될수있습니다.
●apt/gcode/cnc ➔ NC 프로그램파일: RoboDK에서자동으로가공프로젝트를준비합니다(유틸리티➔로봇가공프로젝트).
RDK = Robolink(args='-ADDFRAME "-RENAME=Main Ref " load_object.stl')
사용가능한명령행옵션:
-NOSPLASH
시작할때 RoboDK 스플래시이미지를제거합니다.
-DEBUG
bin 폴더에응용프로그램을디버깅할수있는 RoboDK.debug.txt 파일을생성합니다.
-SETTINGS=filepath
텍스트파일에서인수를불러옵니다. 해당텍스트파일의각줄은하나의단일인수로간주합니다.
-NOSHOW
RoboDK가파일을불러오고프로그램을업데이트하는동안모든창을숨깁니다.
-HIDDEN
RoboDK가불러오기를완료하면자동 /SHOW를하지않습니다. 이후창을표시하는유일한방법은 API를사용하는것입니다.
-NO_WINDOWS
NC 파일을불러올때일반적으로자동으로표시되는모든창을숨깁니다.
-NOUI
사용자인터페이스없이 RoboDK를시작합니다(창및3D 보기). API를사용하여백그라운드에서 RoboDK를실행할때이옵션을사용할수있습니다.
-PORT=20501
주어진포트(TCP/IP 프로토콜)를통해 API 통신을강제합니다. 기본포트는 20500입니다.
-TREE_STATE=-1
스테이션트리를표시하지않습니다.
-TREE_STATE=6
스테이션트리를창의왼쪽에고정된형태로불투명하게표시합니다.
-ADDFRAME
새로운기준좌표계를추가합니다. 불린모든새객체를이기준좌표계에배치합니다.
-RESET
새객체가불리면마지막으로추가된좌표계가아닌스테이션기준좌표계에배치합니다.
-RENAME=Name
마지막으로추가된기준좌표계또는객체의이름을변경합니다.
-MOVE=x;y;z;rx;ry;rz
마지막으로추가된기준좌표계를 mm 및도단위로이동합니다.
-UPDATE_APT=YES
APT 파일을가진모든로봇가공프로젝트를업데이트합니다.
-UPDATE_APT=NO
로봇가공프로젝트를업데이트하지않습니다(이름이일치하는경우중복프로젝트를생성함).
-UPDATE=file.apt
문제가없으면, APT 파일을불러오거나업데이트하고로봇프로그램을생성합니다.
-REPLACE_ITEMS=YES
불린새파일의이름이기존파일의이름과일치할경우, 기존도구및객체를업데이트합니다.
-REPLACE_ITEMS=NO
새파일이불릴때도구및객체를업데이트하지않습니다.
-SETCOLOR=blue
마지막으로불린객체(객체, 툴, 로봇또는메커니즘)의색상을설정합니다. 색상은명명된색상또는16진수색상(예: #RRGGBBAA, 예: # 88112288)을사용할수있습니다.
-AUTOGEN_MAINPROG=Prog
불린 APT 파일에연결된프로그램을차례로호출하는기본프로그램을생성합니다.
-SELECTTOOL=#1
활성툴(새프로그램을불러올때사용되는툴)로사용할수있는첫번째로봇툴 (또는해당번호)를설정합니다.
-SELECTTOOL=”tool name”
이름을지정하여활성툴을설정합니다.
-ADDCUTTER=length|path/cutter name.stl
Addcutter를사용하면툴홀더를기준으로절삭공구형상을추가할수있습니다. 절삭공구는 RoboDK에서절삭날의형상을유지하면서툴로취급됩니다. 절삭공구형상은공구끝에원점이있는 STL 파일(아스키또는이진)이어야합니다. 툴홀더와관련하여길이를 mm 단위로지정해야합니다(공구홀더의양의 Z 축이바깥쪽을향해야합니다).
-SELECTCUTTER=”cutter name”
Selectcutter는 SELECTTOOL과같은기능을하며, 절삭공구는툴로취급됩니다.
-SHOW
RoboDK 창을표시합니다. 모든파일이불리고가공프로젝트가업데이트되면자동으로수행됩니다.
다음옵션중하나를사용하면 /SHOW 명령으로보이는부분이변경됩니다.
-QUIT
오류메시지가없으면프로그램을종료합니다.
-END
오류메시지가있어도프로그램을종료합니다.