728x90 전체 글43 로봇 조립 계획 - (5) TRIP 부품 조립 순서(BOM 데이터베이스)와 부품과 중간 조립품의 형상 정보(CAD 데이터베이스)를 이용하여 로봇 조립 계획을 생성한다. 로봇 조립 계획은 로봇 팔을 이용하여 부품을 조립하여 완성품을 만드는데 필요한 작업의 순서와 로봇팔의 단위 위치를 정의한다. 로봇 조립 계획은 로봇 팔의 출발 위치와 도착 위치로 정의되는 단위 움직임인 action, 한 부품에 대한 모든 action의 순서인 operation 그리고 조립품에 대한 모든 operation의 순서인 task로 구분할 수 있다. 그러므로 로봇 조립 계획은 대상 최종 조립품에 대한 task와 동일하다. TRIP에서 로봇 조립 계획을 생성하는 프로그램은 actpy이다. TRIP은 로봇 조립 계획을 BOM 데이터베이스의 BOM에 연결된 robot_pa.. 2023. 4. 7. 조립 순서 결정 - (4) TRIP 각 부품의 조립 가능 방향과 조립품 상의 위치(placement) 정보를 이용하여 부품의 조립 순서를 결정한다. 로봇은 기본적으로 하나의 부품(move 부품)을 집어 고정되어 있는 부품(base 부품)에 조립하는 과정을 반복하므로 move와 base 부품을 하위 부품으로 가지는 중간 조립품이 생성된다. 중간 조립품은 단위 로봇 조립 결과를 표현한다. TRIP에서 부품의 조립 순서를 결정하는 프로그램은 matepy이다. matepy 프로그램을 실행시킨 후 tripdb를 확인하면 중간 조립품 asm0와 asm1이 생성된 것을 확인할 수 있다. 또한 생성된 asm0와 asm1의 하위 부품으로 base(base), cylinder(move) 그리고 asm0(base)와 top(move)을 가진 것을 확인할 수 .. 2023. 4. 4. 조립 가능 방향 구하기 - (3) TRIP 저장된 CAD와 BOM 데이터베이스를 이용하여 각 부품의 특징 형상에 따른 조립 가능 방향을 결정한다. 특징 형상을 결정하고 조립 가능 방향을 결정하는 프로그램은 classpy이다. 1) 특징 형상을 구분한다 현재 classpy는 다음 특징 형상을 구분하고 조립 가능 방향을 설정한다. cylinder blind hole/boss spring 추후 확장 가능한 특징 형상은 다음과 같다. slot/step hrough hole/pocket(cylinderic/prismatic) blind hole/boss(cylinderic/prismatic) 2) 조립 가능 방향을 구한 후, 조립 가능 방향을 item 객체에 연결하여 저장한다 classpy를 실행 후 dir_asm 테이블을 검색하면 #285(base)의 .. 2023. 4. 4. CAD와 BOM DB 만들기 - (2/6) 자동 로봇 조립 예 로봇이 제품을 자동으로 조립하는 방법을 결정하기 위해 CAD에서 만든 다양한 제품 형상과 Bill of Material(BOM) 정보를 검색할 수 있어야 한다. 그러므로 TRIP은 CAD로 부터 제품 형상 정보를 추출하여 저장하는 CAD와 제품구조를 저장하는 BOM 데이터베이스를 생성한다. TRIP에서 CAD 파일로부터 CAD와 BOM 데이터베이스를 만드는 프로그램이 stepy이다. stepy는 CAD 파일에서 STEP 표준 파일로 저장된 파일을 분석해서 CAD와 BOM 데이터베이스를 생성한다. 1) CAD 파일을 열어 step 파일을 저장한다. 2) 저장된 step 파일을 입력(파일 이름을 input.step로 변경)으로 stepy를 실행시킨다. stepy를 실행시키면 MariaDB로 구현된 tripd.. 2023. 4. 4. CAD와 부품 만들기 - (1/6) 자동 로봇 조립 예 공개 CAD 시스템인 FreeCAD를 이용하여 조립품을 설계하고 이를 3D 프린터로 출력한다. FreeCAD를 이용하여 부품과 조립품을 모델링 한다. 부품의 치수는 다음과 같다. 부품을 3D 프린팅하여 준비한다. 다음 글 CAD와 BOM DB 만들기 읽어보기 > 2023 EDBLab 4/3/2023 처음 4/3/2023 2023. 4. 3. 제품을 자동 조립하는 스마트한 로봇을 만드는 소프트웨어 TRIP(Team Robotics Intelligence Platform)은 CAD 파일을 입력하면 로봇이 자동으로 해당 제품을 조립하는 시스템을 만들 수 있게 하는 데이터베이스와 소프트웨어 체계이다. 1) CAD 시스템을 이용하여 3D CAD 모델을 작성하고 3D 프린트한다. 3개 부품으로 이루어진 간단한 조립품을 설계한다. 부품을 3D 프린트한다. 2) TRIP을 이용하여 로봇이 자동으로 3D CAD 부품을 조립한다. 아래 동영상은 자동으로 만들어진 로봇 조립 동작이 아니라 수작업으로 로봇을 티칭하여 만든 조립 동작이다. TRIP C2A 과제에서 이 동작을 자동으로 만들어내는 소프트웨어를 개발한다. https://youtube.com/shorts/sc-upyO1szk 3) 완성된 제품 다음 블로그 글.. 2023. 4. 3. 상호작용 - (7) Dobot Magician 로봇 파이썬 프로그래밍 Dobot Magician 로봇 파이썬 프로그래밍 7번째 시험 코드는 상호작용하는 프로그램이다. 상호작용(Interactive)이란 로봇 동작이 미리 프로그램되어 있지 않고 현재 내리는 명령에 따라 즉시 동작하는 방식을 뜻한다. Magician 로봇을 상호작용 방식으로 동작시키기 위해 시험에 다음을 고려하였다. 상호작용 명령 환경 구현 - Dobot Magician에 연속적인 상호작용 명령을 내릴 수 있는 Text Interpretor 환경 구현 상호작용 명령어 구현 - 로봇의 이동을 명령할 수 있는 move to x, y, z 명령어 구현 상호작용 명령 환경 구현을 위해 파이썬의 input과 while 명령어를 사용하여 사용자로부터 입력을 받도록 구현하였다. move to 명령어를 구현하기 위해서 파이.. 2023. 4. 1. 그리퍼 동작 - (6) Dobot Magician 파이썬 프로그래밍 그리퍼의 동작을 제어하는 SetEndEffectorGripper()를 사용하여 반복적으로 그리퍼를 열고 닫는 시험을 진행하였다. # 2023/3/31 test030 # gripper test - 그리퍼 제어 import threading import DobotDllType as dType CON_STR = { dType.DobotConnect.DobotConnect_NoError: "DobotConnect_NoError", dType.DobotConnect.DobotConnect_NotFound: "DobotConnect_NotFound", dType.DobotConnect.DobotConnect_Occupied: "DobotConnect_Occupied"} # Load Dll and get the CD.. 2023. 3. 31. 팔 동작 - (5) Dobot Magician Python 프로그래밍 Dobot Magician Python 프로그램에서 로봇의 동작을 구현하기 위하여 setPTPCmd()를 사용한다. 로봇 동작을 구현할 때 하드웨어 로봇의 동작 수행과 컴퓨터 처리 속도가 차이가 나므로 비동기 장치를 해 주어야 한다. 이 프로그램은 총 5번 x 축 방향으로 왕복하는 명령를 실행시킨다. 명령을 실행시킬 때 마지막 명령어의 Queue Index를 lastIndex에 저장한 후, dType.SetQueuedCmdStartExec() 함수로 Queue의 명령을 실행시킨다. 그 후 LastIndex와 현재까지 실제 실행된 명령어 Index(dType.GetQueuedCmdCurrentIndex(api)[0])를 비교하여 마지막 명령이 실행될 때까지 기다린다. # 2023/3/31 test020 #.. 2023. 3. 31. Movel 이용 - (2) Dobot Magician 로봇팔 티칭 아래 동영상에 대한 로봇 티칭 자료이다. move와 base 부품에 대한 단위 Action의 패턴을 확인할 수 있다. https://www.youtube.com/shorts/sc-upyO1szk 다음 파일은 Dobot Teachning 자료이다. 2023. 3. 31. Movej이용 - (1) Dobot Magician 로봇팔 티칭 자동 로봇 조립 계획 프로그램 개발을 위해 수작업으로 만든 로봇 계획을 실행시켜 보았다. test010에서는 전체 순서와 패스 정도를 시험하였다. 시험을 하면서 발견된 문제점은 조립 시 movej 옵션을 사용하여 궤적이 직선으로 되지 않는 점이다. test020에서는 movej 대신 movel 옵션을 사용하였다. https://www.youtube.com/shorts/sc-upyO1szk movel 명령 사용으로 조립 과정이 안정되었지만, 3D 프린트된 부품의 정밀도와 로봇 동작의 정밀도 등으로 정밀한 작업은 어려울 수 있다. 2023. 3. 31. 팔이동 - (4) Dobot Magician 파이썬 프로그래밍 이번 시험은 로봇이동을 이용한 비동기 명령어 실행이다. 로봇 단위 Action은 한 위치에서 다른 위치로 로봇 엔드이팩터의 단위 이동을 뜻한다. 만일 로봇 Action 명령을 여러 개 내리면 앞의 이동이 끝나기 전에 뒤의 명령어가 실행되어 일관된 이동을 할 수 없다. 그러므로 GetQueuedCmdCurrentIndex(api)를 이용하여 현재 명령어의 인덱스 값을 얻어 해당 명령어 이전부터 현재까지 명령어가 실행될 때까지 dType.dSleep(100)을 이용하여 기다린다. # test020 3/30/2023 # Dobot Magician with Async commands import threading import DobotDllType as dType # string for dobot connect.. 2023. 3. 30. 이전 1 2 3 4 다음