샘플 프로그램16: MM_S16_Viz_GetDirection
프로그램 소개
기능 설명 |
로봇은 계획 경로를 획득하여 피킹 작업을 완료한 후, 작업물 조합의 방향에 따라 다양한 배치 전략을 선택할 수 있습니다. |
파일 경로 |
Mech-Vision 및 Mech-Viz의 설치 디렉토리로 이동하여 |
필요한 프로젝트 |
Mech-Vision와 Mech-Viz 프로젝트(말단장치 유형은 디팔레타이징 진공 그리퍼입니다) |
사용 전제 조건 |
|
이 샘플 프로그램은 참고용으로 제공됩니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오. |
프로그램 설명
다음에는 MM_S16_Viz_GetDirection 샘플 프로그램의 코드와 관련 설명입니다.
MM_S15_Viz_GetDoList 샘플과 비하면, 이 샘플은 아래와 같이 굵게 표시된 코드 부분만 수정되었습니다. 따라서, MM_S16_Viz_GetDirection의 MM_S15_Viz_GetDoList과 일치하는 부분은 다시 설명하지 않습니다. (일치하는 부분에 대한 정보는 MM_S15_Viz_GetDoList 샘플 프로그램 설명을 참조하십시오). |
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project, then get planned path
'and get box direction using
'command 210
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path
CALL JOB:MM_GET_PLANDATA ARGF"0;3;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
'add error handling logic here
'according to different error
'codes
'e.g.: I053=2038 means no
'point cloud in ROI
PAUSE
ENDIF
'get gripper control signal list
CALL JOB:MM_GET_DOLIST ARGF"0;0"
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"
CALL JOB:MM_GET_PLANPOSE ARGF"2;72;71;31"
CALL JOB:MM_GET_PLANPOSE ARGF"3;73;81;31"
'get box direction status from
'planned results
SET I005 R047
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'set gripper control signal when
'current waypoint is picking
'waypoint
CALL JOB:MM_SET_DOLIST ARGF"0"
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'place the box according to its
'direction
IFTHENEXP I005=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
ELSE
'move to intermediate waypoint of
'placing
MOVJ C00006 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00007 V=166.6 PL=0
'move to placing waypoint
MOVL C00008 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00009 V=166.6 PL=0
ENDIF
'move back to robot home position
MOVJ C00010 VJ=50.00
END
위 샘플 프로그램 코드에 해당하는 워크플로는 아래 그림에 표시되어 있습니다.

아래 표는 굵게 표시된 코드의 설명입니다. 명령어 이름의 링크를 클릭하면 해당 명령의 상세 설명을 확인할 수 있습니다.
워크플로 | 코드와 설명 | ||
---|---|---|---|
작업물 조합의 방향을 획득하기 |
로봇은 MM_GET_PLANDATA명령어를 실행하여 웨이포인트의 비전 이동 계획 결과를 얻고, 그 후 MM_GET_PLANPOSE명령어를 실행하여 로봇 메모리에 저장된 웨이포인트의 비전 이동 계획 결과를 R031부터 시작하는 변수에 저장합니다. R047변수 값은 작업물 조합과 진공 그리퍼 길이 사이의 상대적 위치입니다. 여기서 0은 평행을 나타내고 1은 수직을 나타냅니다. 위 코드는 R047변수 값을 I005변수에 할당한다는 것을 나타냅니다. 이 따리서 I005변수는 작업물 조합의 방향이 나타냅니다. |
||
작업물 조합의 방향에 따라 다양한 배치 전략을 선택하기 |
위 코드는 작업물이 진공 그리퍼의 긴 쪽과 평행할 경우(즉, I005가 0으로 설정된 경우), 작업물이 C00004 위치에 배치된다는 것을 나타냅니다. 그렇지 않으면 작업물은 C00008 위치에 배치됩니다. |