MATLAB & PLCnext로 2축 갠트리의 티치-프리 경로 계획
📌 작성자: Roman Mayer, Markus Hoser 📌 회사: maku engineering GmbH 📌 연락처: rommayer@maku-engineering.com, marhoser@maku-engineering.com 📌 기술: MATLAB/Simulink, Simscape, Phoenix Contact PLCnext, Siemens Drives, Peter Corke의 로봇 툴박스
동기: 왜 티치-프리 경로 계획인가?
산업 자동화에서 2축 갠트리는 CNC 머신, 픽앤플레이스 로봇, 자재 취급 시스템 등에서 널리 사용됩니다. 이러한 갠트리의 프로그래밍은 주로 티칭을 통해 수행됩니다. 즉, 운영자가 시스템을 원하는 위치로 수동 이동시키고 이를 웨이포인트로 저장한 후 궤적을 정의합니다.
문제점:
- 티칭은 시간이 많이 걸리고 오류가 발생하기 쉽습니다.
- 환경이나 시스템 변경 시 재학습이 필요합니다.
- 자동화 솔루션은 종종 비싸고 복잡한 통합이 필요합니다.
우리의 해결책: 수동 티칭 공정이 필요 없는 티치-프리 경로 계획 시스템을 개발했습니다. 대신 지능형 알고리즘이 충돌 없는 궤적을 자동으로 생성합니다.
목표:
- 2축 갠트리 자동 경로 계획
- MATLAB/Simulink & Simscape로 모델링 및 시뮬레이션
- Phoenix Contact PLC(AXC F 3152)용 코드 생성
- Profinet을 통한 Siemens SINAMICS S210 드라이브 통합
📌 이미지/시각화는 마지막 섹션에서 확인할 수 있습니다!
기술적 구현
우리의 경로 계획 시스템은 MATLAB의 mobileRobotPRM 알고리즘을 사용해 웨이포인트를 생성합니다. 이는 다음을 의미합니다:
🟢 자동 경로 계획
- 환경이 맵(행렬)으로 표현됩니다.
- 장애물이 감지되고 회피됩니다.
- 최단 충돌 없는 경로가 계산됩니다.
🟢 MATLAB/Simulink 모델링
- 갠트리 시스템의 물리적 시뮬레이션을 위한 Simscape Multibody
- Siemens 서보 모터 통합을 위한 Simscape Electrical
- 경로 계획을 위한 Peter Corke의 로봇 툴박스 [https://github.com/petercorke/robotics-toolbox-matlab]
🟢 코드 생성 및 제어
- 계획된 경로를 Simulink Coder & Embedded Coder를 사용해 Phoenix Contact PLC용 실행 코드로 변환
- PLC가 Profinet을 통해 Siemens 드라이브로 궤적 포인트 전송
장점: 전체 시스템을 먼저 시뮬레이션한 후 실제 하드웨어로 직접 전송할 수 있습니다.
또한 Phoenix Contact의 지원으로 추가 라이선스 없이 Siemens 모터를 성공적으로 통합했습니다. 이는 Siemens 인버터 장치 설명 파일(GSDML 파일)을 사용해 Profinet 통신을 활성화함으로써 가능했습니다.
확장 가능성
우리 시스템은 모듈식이며 적절한 노력으로 확장할 수 있습니다:
🔹 기계 모델 교체 및 드라이브 조정
- 필요한 툴박스가 제공된다면 CAD 데이터를 사용해 기계 모델을 교체할 수 있습니다.
- 원하는 동역학을 기반으로 드라이브 구성을 사전 시뮬레이션해 성능을 최적화할 수 있습니다.
🔹 동적 환경 업데이트
- 현재 정적 맵을 이미지 처리 시스템으로 대체할 수 있습니다.
- 카메라나 LiDAR 센서를 환경 감지에 사용할 수 있습니다.
- 실행 중 맵을 지속적으로 업데이트해 이동하는 장애물을 고려할 수 있습니다.
🔹 다축 시스템으로 확장
- 현재 시스템은 2축 모션(X/Y)을 위해 설계되었습니다.
- 3축 시스템(X/Y/Z)으로 확장 가능합니다. 이를 위해서는: * 기계 모델 조정 * 경로 계획 알고리즘에 통합해야 하는 세 번째 드라이브 통합
결론 및 전망
우리의 티치-프리 경로 계획은 다음을 가능하게 합니다: ✔ 시간 절약 – 수동 티칭 불필요 ✔ 유연성 – 환경 변화 자동 고려 ✔ 쉬운 구현 – Phoenix Contact PLC용 직접 코드 생성
다음 단계는?
이 프로젝트의 일부는 오픈 소스 저장소를 기반으로 하며 자유롭게 이용 가능합니다. 우리의 개선 사항과 프로그램은 요청 시 무료로 제공할 수 있습니다. 물론 필요시 통화도 열려 있습니다.
이 블로그 포스트에 대한 관심도에 따라 다음을 계획하고 있습니다:
- 이 솔루션을 이 블로그 항목을 통해 무료 앱으로 제공
- MathWorks 플랫폼에 게시
질문, 제안, 아이디어가 있으시면 댓글을 남기거나 직접 연락 주세요!
하드웨어 설정 / 인상 / 결과
우리의 하드웨어 설정은 다음과 같습니다:
- 제어용 Phoenix Contact AXC F 3152 PLC
- 구동용 두 개의 Siemens 모터
- 완전 가상 메커니즘 – 전체 기계 시스템이 MATLAB/Simulink & Simscape에서 시뮬레이션됨
실행/생성에 사용된 맵은 다음과 같습니다:
장애물의 너비는 툴에 맞게 조정됩니다. 또한 시작점에서 목표점까지 자동 생성된 지원점이 빨간색으로 표시됩니다.
저장된 웨이포인트는 서로 다른 가속 단계 간의 원활한 전환을 위해 부드럽게 다듬어져야 합니다. 또한 모터가 0 속도까지 감속하지 않도록 경로가 미분 가능하게 유지되는 것이 중요합니다.
두 모터의 움직임은 동기화되며, 가속 단계가 조정되어 원활한 작동을 보장합니다.
마지막으로 경로 계획용 서브모델의 성공적인 코드 생성 이미지입니다. 생성된 객체의 통합은 Phoenix Contact에서 제공한 설명에 따라 1:1로 수행할 수 있습니다!
참고:
Makers Blog는 Phoenix Contact에서 테스트하거나 검토하지 않은 커뮤니티 구성원의 애플리케이션과 사용자 스토리를 보여줍니다. 자신의 책임 하에 사용하세요.