샘플 프로그램7: MM_S7_Viz_SwitchTCP
프로그램 소개
기능 설명 |
로봇이 Mech-Viz프로젝트 실행을 트리거한 후, 경로 계획 결과를 휙득하고 피킹 웨이포인트 말단장치의 번호에 따라 적절한 말단장치를 전환하여 피킹 및 배치를 수해합니다. |
파일 경로 |
Mech-Vision 및 Mech-Viz의 설치 디렉토리로 이동하여 |
필요한 프로젝트 |
Mech-Vision와 Mech-Viz 프로젝트 |
사용 전제 조건 |
|
이 샘플 프로그램은 참고용으로 제공됩니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오. |
프로그램 설명
다음에는 MM_S7_Viz_SwitchTCP 샘플 프로그램의 코드와 관련 설명입니다.
MM_S2_Viz_Basic 샘플과 비하면, 이 샘플은 주로 말단장치의 번호에 따라 적절한 말단장치를 전환할 수 있는 기능이 추가되었습니다.(이 기능의 코드가 굵게 표시됨). 따라서, MM_S7_Viz_SwitchTCP의 MM_S2_Viz_Basic과 일치하는 부분은 다시 설명하지 않습니다. (일치하는 부분에 대한 정보는 MM_S2_Viz_Basic샘플 프로그램 설명을 참조하십시오). |
DEF MM_S7_Viz_SwitchTCP ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Viz project and get
; planned path, switch TCP according to the label
; Mech-Mind, 2023-12-25
;---------------------------------------------------
;set current tool no. to 1
BAS(#TOOL,1)
;set current base no. to 0
BAS(#BASE,0)
;move to robot home position
PTP HOME Vel=100 % DEFAULT
;initialize communication parameters (initialization is required only once)
MM_Init_Socket("XML_Kuka_MMIND",873,871,60)
;move to image-capturing position
LIN camera_capture Vel=1 m/s CPDAT1 Tool[1] Base[0]
;trigger Mech-Viz project
MM_Start_Viz(2,init_jps)
;get planned path, 1st argument (1) means getting pose in JPs
MM_Get_VizData(2,pos_num,vis_pos_num,status)
;check whether planned path has been got from Mech-Viz successfully
IF status<> 2100 THEN
;add error handling logic here according to different error codes
;e.g.: status=2038 means no point cloud in ROI
halt
ENDIF
;save waypoints of the planned path to local variables one by one
MM_Get_Pose(1,Xpick_point1,label[1],toolid[1])
MM_Get_Pose(2,Xpick_point2,label[2],toolid[2])
MM_Get_Pose(3,Xpick_point3,label[3],toolid[3])
;switch TCP according to the received toolid
;reset tool signals according to received toolid
switch toolid[vis_pos_num]
CASE 1
TOOL_DATA[1]=tool_1
;reset tool signal
CASE 2
TOOL_DATA[1]=tool_2
;reset tool signal
DEFAULT
;add handling logic here if the toolid is invalid
;reset tool signal
halt
endswitch
;follow the planned path to pick
;move to approach waypoint of picking
LIN pick_point1 Vel=1 m/s CPDAT7 Tool[1] Base[0]
;move to picking waypoint
LIN pick_point2 Vel=0.3 m/s CPDAT8 Tool[1] Base[0]
;add object grasping logic here, such as "$OUT[1]=TRUE"
switch toolid[vis_pos_num]
CASE 1
halt
;open tool signal
CASE 2
halt
;open tool signal
DEFAULT
halt
endswitch
;move to departure waypoint of picking
LIN pick_point3 Vel=1 m/s CPDAT9 Tool[1] Base[0]
;move to intermediate waypoint of placing
PTP drop_waypoint CONT Vel=100 % PDAT2 Tool[0] Base[0]
;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT3 Tool[0] Base[0]
;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT4 Tool[0] Base[0]
;add object releasing logic here, such as "$OUT[1]=FALSE"
switch toolid[vis_pos_num]
CASE 1
halt
;reset tool signal
CASE 2
halt
;reset tool signal
DEFAULT
halt
endswitch
;move to departure waypoint of placing
LIN drop_app Vel=1 m/s CPDAT3 Tool[0] Base[0]
;move back to robot home position
PTP HOME Vel=100 % DEFAULT
END
위 샘플 프로그램 코드에 해당하는 워크플로는 아래 그림에 표시되어 있습니다.

아래 표는 새롭게 추가된 코드의 설명입니다.
워크플로 | 코드와 설명 | ||
---|---|---|---|
계획 경로를 획득하기 |
따라서, 이 명령어는 로봇이 Mech-Viz 프로젝트가 반환한 계회된 경로를 획득하는 명령어입니다.
|
||
계획 경로를 저장하기 |
따라서, “MM_Get_Pose(1,Xpick_point1,label[1],toolid[1])”는 첫 번째 웨이포인트의 말단장치 포즈, 레이블 및 말단장치 번호를 지정된 변수에 저장하는 명령어입니다.
|
||
말단장치의 번호에 따라 적절한 말단장치를 전환하기 |
toolid[vis_pos_num]은 피킹 웨이포인트의 말단장치 번호를 나타냅니다. 사용자는 toolid[vis_pos_num] 변수 값에 따라 로봇이 목표 포즈(피킹 웨이포인트)로 이동할 때 사용할 말단장치를 결정할 수 있음을 의미합니다. 즉, 말단장치 번호에 따라 말단장치를 변경하는 것입니다. 위 코드의 설명은 아래와 같습니다.
로봇이 피킹 웨이포인트로 이동할 때, 말단장치 번호에 해당하는 DO 신호를 활성화할 수 있습니다. 아래 코드를 참조하십시오.
로봇이 배치 웨이포인트로 이동할 때, 말단장치 번호에 해당하는 DO 신호를 비활성화하고 리셋할 수 있습니다. 아래 코드를 참조하십시오.
|