본문 바로가기
경제

WPF 디지털 트윈 연재 08 - Assembly Tree와 Parent–Child 구조 설계

by 프레스러쉬 2026. 10. 13.
[8편] Assembly Tree와 Parent–Child 구조 설계
WPF 기반 산업장비 디지털 트윈 20편 연재

디지털 트윈에서 3D 모델을 화면에 띄우는 것보다 더 중요한 것은 부품 간 운동 관계를 정확히 표현하는 것입니다. 실제 장비에서 X축 위에 Y축이 있고, Y축 위에 Z축과 Camera가 올라가 있다면, X축이 움직일 때 Y·Z·Camera도 함께 이동해야 합니다. 이를 소프트웨어에서 구현하는 핵심이 Assembly Tree와 Parent–Child Transform 구조입니다.

■ 1. Assembly Tree는 단순한 부품 목록이 아니다

기계설계의 Assembly는 어떤 부품이 어떤 부품에 장착되어 있는지를 나타냅니다. 디지털 트윈에서는 이 구조가 곧 Transform 전달 구조가 됩니다.

예를 들어 Machine → Gantry → X Axis → Y Axis → Z Axis → Camera 구조라면, X축의 이동은 그 아래 모든 Child에 자동으로 전달되어야 합니다.

따라서 CAD Assembly를 단순히 파일 단위로 가져오는 것이 아니라, 실제 운동학적 종속관계가 유지되도록 Scene Graph로 재구성해야 합니다.

■ 2. Parent가 움직이면 Child도 함께 움직인다

Parent–Child 구조의 가장 큰 장점은 좌표 계산을 단순화하는 데 있습니다. Child는 절대좌표를 직접 계산하기보다 Parent 기준의 Local Transform만 가지면 됩니다.

예를 들어 Y축의 위치는 Machine 전체 좌표가 아니라 X축 기준으로 정의할 수 있습니다. X축이 100 mm 이동하고 Y축이 자신의 Local 좌표에서 50 mm 이동하면, 최종 World 위치는 Transform chain을 통해 계산됩니다.

이 방식은 장비 축이 늘어나더라도 구조를 유지하기 쉽고, 로봇 Joint 체계와도 자연스럽게 연결됩니다.

■ 3. X/Y/Z축 계층은 실제 기구 구조를 따라야 한다

Cartesian Gantry라 하더라도 장비마다 축 장착 순서가 다를 수 있습니다. X축 위에 Y축이 있고 그 위에 Z축이 있는 구조와, Y축 위에 X축이 있는 구조는 동일하게 처리할 수 없습니다.

따라서 기계설계팀이 제공하는 Assembly와 실제 Axis Dependency를 확인해야 합니다.

잘못된 계층 구조는 3D 화면에서는 얼핏 정상처럼 보여도 실제 복합 이동 시 좌표 오차를 발생시킬 수 있습니다.

■ 4. Rotary Axis와 Robot Joint는 Pivot이 핵심이다

Linear Axis는 방향과 거리만 정확하면 비교적 단순하지만, Rotary Axis는 Pivot이 조금만 틀려도 전체 형상이 잘못 회전합니다.

Stage θ축, Robot Joint, Door Hinge 등은 반드시 회전 중심점과 회전축 방향을 명확히 정의해야 합니다.

회전축의 데이터에는 Pivot X/Y/Z, Rotation Axis Vector, CW/CCW, Zero Angle, Mechanical Offset 같은 항목을 포함시키는 것이 좋습니다.

■ 5. Local Coordinate와 World Coordinate를 구분한다

모든 부품을 World 좌표로 직접 관리하면 계층이 커질수록 유지보수가 어려워집니다.

각 Node는 Parent 기준 Local Coordinate를 가지고, 최종 표시 위치는 Parent Transform이 누적된 World Transform으로 계산하는 구조가 안정적입니다.

특히 Machine, Stage, Robot, Camera, Wafer/Tray Coordinate가 공존하는 산업장비에서는 Local/World 좌표의 역할을 명확히 구분해야 합니다.

■ 6. Node ID와 Naming Rule은 처음부터 고정한다

3D 모델 파일명과 소프트웨어 객체 이름이 제각각이면 Mapping 단계에서 오류가 자주 발생합니다.

예를 들어 AXIS_X, AXIS_Y, AXIS_Z, STAGE_THETA, ROBOT_J1, CAMERA_TOP처럼 장비 전체에서 공통 ID 규칙을 정하는 것이 좋습니다.

CAD Part 이름, GLB Node 이름, PLC Tag, Equipment Model ID를 동일한 규칙으로 연결하면 자동 로딩과 자동 Mapping까지 가능해집니다.

■ 7. WPF에서는 Scene Graph로 구현한다

WPF의 3D View에서는 각 부품을 독립 Mesh로 불러온 뒤 TransformGroup 또는 3D 라이브러리의 Scene Node 구조를 이용해 Parent–Child 관계를 구성할 수 있습니다.

중요한 것은 렌더링 라이브러리 자체가 아니라 장비 객체 구조와 3D Node 구조를 1:1로 연결하는 것입니다.

이렇게 하면 Equipment Model의 Position이나 Joint Angle이 변경될 때 해당 Node의 Transform만 갱신하면 됩니다.

■ 8. Robot은 전형적인 Parent–Child 구조다

6축 Robot은 Base → Joint1 → Joint2 → Joint3 → Joint4 → Joint5 → Joint6 → End Effector 형태의 연쇄 구조입니다.

Joint1의 회전은 Joint2 이하 전체에 영향을 주며, Joint3의 회전은 Joint4 이하에 영향을 줍니다. 따라서 Robot Digital Twin은 Parent–Child Transform을 이해하는 가장 좋은 예입니다.

향후 DH Parameter나 Forward Kinematics를 적용할 때도 이 계층 구조가 그대로 활용됩니다.

■ 9. Camera와 Sensor도 반드시 계층에 포함한다

Camera를 단순히 화면에 고정 배치하면 실제 장비의 이동을 반영할 수 없습니다. Camera가 Z축에 장착되어 있다면 Z축의 Child로 구성해야 합니다.

마찬가지로 Robot End Effector에 장착된 Sensor나 Camera는 Robot 마지막 Joint의 Child가 되어야 합니다.

이 구조는 이후 Camera Coordinate, Hand-Eye Calibration, Vision 결과의 World Coordinate 변환에 직접 연결됩니다.

■ 10. 품질평가에서 반드시 확인할 항목

Assembly Tree는 단순히 화면을 보고 확인해서는 부족합니다. 최소한 다음 항목을 품질평가해야 합니다.

  • 단일 축 이동 시 Child가 정확히 따라오는가
  • 복합 X/Y/Z 이동에서 좌표 오차가 없는가
  • Rotary Axis가 실제 Pivot을 중심으로 회전하는가
  • Home/Zero 위치가 실제 장비와 일치하는가
  • Robot Joint 누적 Transform이 정상인가
  • Camera/Sensor 장착 위치가 CAD 기준과 일치하는가
  • 장시간 반복 이동 후 Drift가 없는가

일정에는 반드시 자체검증 → 품질평가 → 수정·보완 → 재평가 기간을 포함해야 합니다.

■ 11. 장기적으로 MachineDefinition으로 자동화한다

궁극적으로는 장비마다 코드를 수정하는 대신 JSON 또는 별도 설정파일에 Parent ID, Model File, Axis Type, Direction, Stroke, Pivot을 정의해 자동으로 Scene Tree를 구성하는 것이 좋습니다.

이 방식이 정착되면 WTR, Aligner, Load Port, Tray Handler, Wafer Stage 등 서로 다른 장비도 동일한 Digital Twin Engine에 설정만 바꿔 적용할 수 있습니다.

즉, Assembly Tree 설계는 단순 3D 기능이 아니라 장비별 개발을 플랫폼 개발로 바꾸는 핵심 구조입니다.

■ 8편 핵심 정리

Assembly Tree는 디지털 트윈의 골격입니다. 실제 기계의 조립 구조와 운동학 관계를 Parent–Child 구조로 정확히 표현해야 X/Y/Z축, Stage, Robot, Camera가 자연스럽게 함께 움직입니다.

CAD Assembly → Node Hierarchy → Local Transform → World Transform → Equipment Model Mapping의 흐름을 표준화하면 장비가 달라져도 재사용 가능한 Digital Twin Platform으로 발전시킬 수 있습니다.

다음 편 예고
9편에서는 Machine·Stage·Robot·Camera·Wafer/Tray 좌표계 설계를 다룹니다. 여러 좌표계를 어떤 기준으로 정의하고 서로 변환해야 하는지 실제 장비 Calibration과 연결해 설명합니다.
태그
#DigitalTwin #WPF #CSharp #AssemblyTree #SceneGraph #ParentChild #Transform #CoordinateSystem #Robot #RobotKinematics #MotionControl #MachineVision #CAD #GLB #반도체장비 #산업자동화 #스마트팩토리 #PhysicalAI #RND