Linear Axis가 위치를 직선 방향으로 이동시키는 구조라면 Rotary Axis는 특정 기준점과 회전축을 중심으로 장비 형상을 회전시킵니다. 겉으로 보기에는 단순히 각도 값 하나를 적용하는 문제처럼 보이지만, 실제 디지털 트윈에서는 Pivot, 회전축 벡터, 회전 방향, 단위, Home Offset, Parent–Child 관계까지 모두 정확히 정의되어야 합니다.
특히 Stage의 θ축이나 6축 Robot Joint는 하나의 회전이 다른 부품의 위치까지 연쇄적으로 바꾸기 때문에, 회전 구조를 잘못 설계하면 화면은 움직이지만 실제 장비와 전혀 다른 궤적을 보일 수 있습니다.

회전축을 표현하려면 최소한 Pivot Center, Rotation Axis Vector, Angle, Direction, Home Offset이 필요합니다. 예를 들어 Stage가 Z축을 중심으로 회전한다면 회전축 벡터는 일반적으로 (0,0,1)이지만 CAD 축 정의에 따라 달라질 수 있습니다.
Pivot은 실제 기계에서 회전 중심이 되는 점입니다. Pivot 위치가 틀리면 화면 속 부품은 자기 중심에서 회전하지 않고 원호를 그리며 움직입니다. 특히 Wafer Stage나 Robot Joint에서는 작은 Pivot 오차가 Tool 위치의 큰 오차로 확대될 수 있습니다.
제어 프로그램과 3D 엔진의 양의 회전 방향이 다르면 실제 장비와 화면이 반대로 움직입니다. 축별 Positive Direction을 명시하고, 사람이 읽을 수 있는 기준 설명도 함께 저장하는 것이 좋습니다.
산업장비 UI에서는 Degree를 많이 사용하지만 수학 라이브러리나 3D 엔진에서는 Radian을 사용하는 경우가 많습니다. Equipment Model에서는 단위를 고정하고 Rendering 직전에 필요한 단위로 변환하는 것이 좋습니다.
359°에서 1°로 이동하면 실제 이동량은 2°일 수 있지만 단순 차이를 계산하면 -358°로 판단할 수 있습니다. 각도 정규화와 Shortest Path 계산이 필요하며 Replay와 Trend 분석에도 같은 원칙이 적용됩니다.
Stage 중심 Pivot을 정의하고 실제 Encoder Angle을 받아 3D Model에 Rotation Transform을 적용합니다. 이후 0°, 90°, 180°, 270°에서 기준 Marker가 실제 장비 방향과 일치하는지 확인합니다.
6축 Robot은 Base → Joint1 → Joint2 → Joint3 → Joint4 → Joint5 → Joint6 → Tool 순으로 연결됩니다. Joint1이 회전하면 Joint2부터 Tool까지 모두 함께 움직여야 하므로 각 Link의 Transform은 Local Coordinate 기준으로 정의해야 합니다.
Robot의 DH Parameter가 있다면 Joint Angle을 Encoder 값으로 갱신하고 Forward Kinematics 결과와 3D Tool 위치를 비교할 수 있습니다. 두 값이 다르면 CAD Joint Origin, Link 길이, Axis Direction, Offset 정의를 점검해야 합니다.
Command–Actual 편차가 지속적으로 커지면 Servo Tracking 문제, 마찰 증가, 기계 간섭, 부하 증가 등의 신호일 수 있습니다. Command 위치를 반투명 Ghost Model로, Actual 위치를 Solid Model로 표시하는 방법도 유용합니다.
여러 Joint 데이터가 서로 다른 시점으로 저장되면 Replay 시 Robot 자세가 순간적으로 뒤틀릴 수 있습니다. 동일 Snapshot 또는 동일 Timestamp 기준으로 Joint 데이터를 묶어 저장하는 것이 좋습니다.
Joint Transform 구조가 정확해지면 Bounding Box 기반 간단한 충돌 검사부터 시작해 정밀 Mesh Collision로 확장할 수 있습니다. 실제 Sequence 실행 전에 위험 동작을 가상 검증하는 기반이 됩니다.
Pivot 오차, 각도 오차, CW/CCW 방향, Home Offset, Wrap-around, Parent–Child 연쇄 동작, Tool 위치, Replay 재현성, 장시간 운전 안정성을 검증해야 합니다.
개발 일정은 구현 → 자체검증 → 품질평가 → 수정·보완 → 재평가 → Release 순으로 잡는 것이 좋습니다.
Rotary Axis는 단순히 Angle 값을 적용하는 기능이 아닙니다.
Pivot + Axis Vector + Direction + Offset + Parent–Child 구조 + Timestamp가 함께 정의되어야 실제 장비와 같은 회전을 만들 수 있습니다.
이 구조를 정확히 구현하면 Stage θ축과 Robot Joint뿐 아니라 Forward Kinematics, Collision Detection, Replay, Calibration, Physical AI까지 확장할 수 있습니다.
12편에서는 6축 Robot의 Forward Kinematics와 Tool Coordinate를 디지털 트윈에 연결하는 방법을 다룹니다.
#DigitalTwin #WPF #CSharp #RotaryAxis #RobotJoint #RobotKinematics #Pivot #AxisVector #MotionControl #Robot #WaferStage #Replay #CollisionDetection #PredictiveMaintenance #PhysicalAI #반도체장비 #산업자동화 #스마트팩토리 #연구개발 #RND
'경제' 카테고리의 다른 글
| WPF 디지털 트윈 연재 13 - PLC·Motion·Robot Controller 실시간 데이터 연동 (0) | 2026.10.17 |
|---|---|
| WPF 디지털 트윈 연재 12 - 6축 Robot의 Forward Kinematics와 Tool Coordinate (0) | 2026.10.17 |
| WPF 디지털 트윈 연재 10 - Linear Axis를 WPF 디지털 트윈에서 구현하는 방법 (0) | 2026.10.13 |
| WPF 디지털 트윈 연재 09 - Machine·Stage·Robot·Camera·Wafer/Tray 좌표계 설계 (0) | 2026.10.13 |
| WPF 디지털 트윈 연재 08 - Assembly Tree와 Parent–Child 구조 설계 (0) | 2026.10.13 |