RoboDK는 GPL(안내프로그래밍언어)을사용하여 Brooks PreciseFlex 로봇을지원합니다. 사용자는로봇팔, 그리퍼, 리니어레일중원하는것을선택하여고급실험실자동화프로그램을생성할수있습니다.
시뮬레이션에서듀얼그리퍼를포함한 Brooks PreciseFlex 그리퍼를제어하려면이섹션에설명된단계를따르세요.
1.프로그램을마우스오른쪽버튼으로클릭하고프로그램 호출 인스트럭션을 추가합니다.
2."그리퍼(그리퍼 ID, 그리퍼 값)"를입력합니다. 예를들어, 듀얼그리퍼의그리퍼 2번을 50mm로이동하려면"Gripper(2, 50)"을입력합니다.
a.하나의그리퍼로'그리퍼(그리퍼 값)'라는호출을단축할수있습니다.
b.로봇이두개이상있는경우"그리퍼(그리퍼 ID, 그리퍼 값, item.ptr)"를사용합니다. 예를들어 "Gripper(2, 50, item.ptr)"는듀얼그리퍼의그리퍼 2번을 50mm로이동하여부모로봇이프로그램에연결되도록합니다.
3.모든하위프로그램의첫번째명령어와모든하위프로그램호출뒤에 Gripper() 명령어를추가합니다. 이는포스트프로세서와의호환성을보장하기위한것입니다. 중복된 Gripper() 명령어가예상됩니다.
4.Python 스크립트를추가하고이름을 "Gripper"로변경합니다.
5."Gripper" Python 스크립트를편집하고다음을붙여넣습니다:
FROM RoboDK에서 로보링크 가져오기
가져오기 시스템
len(sys.argv) < 2:
종료()
def get_item(ptr_item, RDK):
item = robolink.Item(RDK, str(ptr_item), robolink.ITEM_TYPE_PROGRAM)
item.Valid(True)가 아닌 경우:
반환 없음
반품 항목
RDK = robolink.Robolink()
그리퍼_ID = -1
그리퍼_값 = 0
prog_item = 없음
# 그리퍼 ID, 값 및 호출자 가져오기
if len(sys.argv) == 2:
그리퍼_값 = float(sys.argv[1])
elif len(sys.argv) >= 4:
그리퍼_id = int(sys.argv[1])
그리퍼_값 = float(sys.argv[2])
prog_item = get_item(int(sys.argv[3]), RDK)
elif len(sys.argv) == 3:
prog_item = get_item(int(sys.argv[2]), RDK)
if prog_item:
그리퍼_값 = float(sys.argv[1])
else:
그리퍼_id = int(sys.argv[1])
그리퍼_값 = float(sys.argv[2])
# 후보자 가져오기
그리퍼 = [x for x in RDK.ItemList(robolink.ITEM_TYPE_ROBOT_AXES) x.Name().lower() and len(x.Joints().tolist() == 1] if 'gripper']
렌(그리퍼) > 1 및 프로그_아이템:
robot_item = prog_item.getLink(robolink.ITEM_TYPE_ROBOT)
로봇_아이템.유효()가 아닌 경우:
robot_item = RDK.ItemUserPick("연결된 로봇 선택", robolink.ITEM_TYPE_ROBOT)
prog_item.setRobot(robot_item)
def get_flat_child(item):
childs = item.Childs()
item.Childs()에서 child를 찾습니다:
children.extend(get_flat_childs(child))
반환 자식
childs = get_flat_child(robot_item)
그리퍼 = [x.Type() == robolink.ITEM_TYPE_ROBOT 및 len(x.Joints().tolist()) == 1이면 x for x in childs]
그리퍼가 아니라면요:
RDK.ShowMessage('그리퍼를 찾을 수 없습니다!', False)
# 올바른 그리퍼 ID(예: 듀얼 그리퍼 1)를 찾아보세요.
그리퍼 = 그리퍼[0]
그리퍼_ID > 0이면
gripper_ids = [grippers의 g에 대해 g.Name().endswith(str(gripper_id))]
만약 그리퍼_ids:
그리퍼 = 그리퍼_ids[0]
그리퍼.MoveJ([그리퍼_값])
이방법은브룩스포스트프로세서와도호환됩니다.
PreciseFlex 로봇의베이스프레임은로봇의물리적베이스에배치되지않기때문에 PreciseFlex 로봇과 PreciseFlex 리니어레일사이에특정오프셋이필요합니다.
브룩스프리시전플렉스리니어레일구성:
a.브룩스프리시전플렉스 400: [118, 0, 45.6, 0, 0, 0, 0]
b.브룩스프리시전플렉스 3400: [118, 0, 62.6, 0, 0, 0, 0]
브룩스프리시전플렉스리니어레일 -90도구성:
a.브룩스프리시전플렉스 400: [101.6, 0, 45.6, 0, 0, 0, 0]
b.브룩스프리시전플렉스 3400: [101.6, 0, 62.6, 0, 0, 0, 0]
포스트프로세서가축위치를고려하려면리니어레일을동기화해야합니다. 자세한내용은 https://robodk.com/doc/en/General.html#SyncAxes 섹션을참조하십시오.
이섹션에서는브룩스로봇용프로그램생성과관련된몇가지팁을설명합니다.
RoboDK와컨트롤러의공구중심점(TCP)이일치해야합니다. 그리퍼메커니즘을사용하는경우예상위치에있는 "도구추가(TCP)"를사용하여 TCP를추가해야합니다. 새도구 TCP는그리퍼메커니즘 TCP와일치해야합니다. 브룩스프리시전플렉스로봇의공구중심점(TCP)과관련된정보는웹인터페이스로이동하여다음단계를수행하면확인할수있습니다:
1.관리자
2.설정 - 파라미터데이터베이스
3.로봇
4.조인트/데카르트제어
5.동적매개변수
6.DataID 16051
포스트프로세서와호환되는그리퍼명령어를올바르게정의하는방법은이전섹션그리퍼 참조하세요. 이접근방식은 GPL 프로젝트에서위치를올바르게정의하여그리퍼의축/축의예기치않은움직임을방지합니다.
입력값이 -1이면로봇이동작이끝날때멈추고엄격한위치오류제약조건이적용됩니다(GPL 코드: prof1.InRange = 100).
입력값이 0이면로봇이동작이끝날때멈추지만작은위치오차제약조건이적용됩니다(GPL 코드: prof1.InRange = 10).
입력값이 0보다크면로봇이동작이끝날때멈추지않고혼합동작이실행되도록결정합니다(GPL 코드: prof1.InRange = -1).
브룩스프리시전플렉스로봇의최대선형, 각도및관절속도/가속도와관련된정보는웹인터페이스로이동하여다음단계를수행하면확인할수있습니다:
1.관리자
2.설정 - 파라미터데이터베이스
3.로봇
4.조인트/데카르트제어
5.동적매개변수
6.DataID 2700, 2701, 2702 및 2703
사용자는위의 DataID 값을참조로사용하여 RoboDK 속도/가속명령의입력을설정할수있습니다. 그러면정밀포스트프로세서는이값을사용하여 GPL 프로필클래스에서요청한대로각로봇의최대속도/가속도의백분율로속도/가속도를계산합니다.
포스트프로세서가사용하는제한을변경하려면사용중인특정로봇에따라포스트프로세서를수정하면됩니다. 기본적으로포스트프로세서는 PF400 및 PF3400 로봇의제한을사용합니다. 포스트프로세서를수정하려면설명서의 https://robodk.com/doc/en/Post-Processors.html#PPEditor 섹션을참조하세요.
1보다작은입력값을선형및각도가속명령어와함께사용하는경우, 이입력값은최대가속/감속까지램프업하는기간(초)으로사용됩니다(GPL 코드: prof1.AccelRamp/prof1.DecelRamp = 입력값).
아래이미지는위에설명한개념과컨트롤러가로봇이따라야하는궤적을계획하는방법과관련된추가정보를제공합니다.
입력값을 0보다크게설정하면입력값에정의된시간동안프로그램을일시중지하는 GPL 명령이생성됩니다. 입력값이음수이면웹인터페이스운영자제어판에서팝업대화상자가열리고사용자가대화상자의 "계속" 버튼을클릭할때까지프로그램이일시중지됩니다. 대화상자를시각화하려면운영자제어판에서 '대화상자활성화' 버튼을클릭해야합니다.
브룩스로봇용 RoboDK에서 FTP를통해프로그램을쉽게전송할수있습니다:
1.RoboDK에서로봇을마우스오른쪽버튼으로클릭합니다.
2.로봇에 연결...을 선택합니다.
3.로봇의IP와포트를입력합니다(기본값은 192.168.0.1, 포트 21).
4.원격 FTP 경로를입력합니다(일반적으로 /플래시/프로젝트)
RoboDK 프로그램을로봇에전송할준비가완료되었습니다:
1.RoboDK에서프로그램을마우스오른쪽버튼으로클릭합니다.
2.로봇에 프로그램 보내기(Ctrl+F6)를선택합니다.
그러면프로그램이생성되고로봇컨트롤러로전송이시도됩니다. FTP 전송이성공했는지여부를보여주는창이나타납니다.
로봇의웹인터페이스를사용하여 GPL 프로젝트를로드하고시작해야합니다(모든브라우저를사용하여로봇의 IP 주소를검색하면로봇의웹인터페이스에액세스할수있습니다). 아래는웹인터페이스의시작페이지이미지입니다.
1.웹브라우저열기
2.로봇 IP 주소입력
웹인터페이스에서프로그램을시작하려면다음과같이
1.관리자 -> 제어판 -> 운영자제어판-> "로드"를선택합니다.
2.RoboDK를사용하여생성한 GPL 프로젝트를선택합니다.
3."선택"을클릭합니다.
4."시작"을클릭합니다.
이시점에서로봇이프로그램을실행합니다. 아래는운영자제어판인터페이스와사용자가필요한 GPL 프로젝트를선택하고로드할수있는창을보여주는이미지입니다.