순서

I. 클래스 전체 구조
II. 클래스별 역할

 


I. 클래스 전체 구조

 

Conveyor Class Diagram 구조

 


II. 클래스 별 역할

1. CControlModule

전체 제어 알고리즘을 담당하는 Control Module로 전체 Control의 매니저 역할을 한다.
전체 Control은 직접교시, 충돌감지, 힘제어 등의 제어 알고리즘을 말한다.
그 내부에 컨베이어 트래킹 기능을 넣은 것임.

2. CControlModuleConveyor

CControlModule을 상속받아 CControlModule의 관리를 받도록 함.
Class의 process를 실행하고, 멈추는 등의 virtual method 가짐.

실질적으로 최종 컨베이어 이동량을 로봇 Motion에 적용해주는 위치가 된다.

3. CControlModuleConveyorManager

단순히 CControlModuleConveyor에 Conveyor 인스턴스를 제공해준다.
Manager를 따로 만든 이유는 여러개의 Conveyor를 동시에 관리하기 위함이다.
(각 Conveyor마다 Data set, Setting등 다른 환경을 가지고 있기 때문)

3-1 struct stConveyorInstance

CControlModuleConveyorManager에서 관리하는 Conveyor Instance들이다.
이 struct내부에는 실제 알고리즘 세트인 4 System, 5 Motion Class와
데이터 세트 및 인터페이스인 6 Data Class의 Instance를 멤버로 가지고 있다.

4. CControlModuleConveyorSystem

엔코더처리, 외부 시그널처리, 오브젝트 관리 등 컨베이어 시스템에 대한 process를 처리 및 관리한다.

5. CControlModuleConveyorMotion

CControlModuleConveyorSystem에서 처리된 데이터를 기반으로 로봇동작을 담당하는 process를 처리한다.

여기서 로봇 동작은 컨베이어 흐름에 따라 대기 - 가속 - 등속 - 감속별로 Motion Increasement를 계산하여
로봇 Base좌표로 변환 및 동작시킨다.

6. CControlModuleConveyorData

Data = Conveyor 1개 라고 볼 수 있다. 즉, 컨베이어는 Data 덩어리일 뿐이다.
모든 컨베이어를 동작하고, 관리하는 Data 및 Data Interface는 이 클래스에서 담당한다.
CControlModuleConveyorSystem, CControlModuleConveyorMotion의 각 process에서는
해당 컨베이어의 이 Data Interface를 이용하여 동일한 데이터로 처리해준다.

6-1 CControl : Conveyor Tracking 시 진행 Flow에 관여하는 Control Data Class이다.
6-2 CCalibration : Robot - Conveyor 좌표 Calibration 기능에 필요한 Data Class
6-3 CVision : Vision 처리를 위한 Data Class
6-4 CEncoderData : Encoder Data 처리를 위한 Data Class
6-5 CTriggerData : 외부 Trigger 정보를 처리하기 위한 Data Class
6-6 CCurObjectData : 현재 Tracking 중인 object의 정보를 가진 Data Class
6-7 CUserSettings : 로봇의 사용 user가 세팅하는 정보를 가진 Data Class
6-8 CTpDisplay : 로봇의 Teach Pendant UI에 표시되는 정보를 가진 Data Class

 

+ Recent posts