2024.10 - 2025.12 / Unreal VR Digital Twin

스마트 팩토리 VR 디지털 트윈

회사 자체 VR 메타버스 시스템을 기반으로, 실제 공장 데이터를 여러 사용자가 같은 월드에서 확인할 수 있도록 Unreal 클라이언트 기능을 확장한 작업

역할 Unreal 클라이언트 연동
범위 수신 · 파싱 · 상태 관리 · Actor/UI 반영
결과 실제 공장 데이터 연동 및 과제 시연 완료
스마트 팩토리 VR 로비 화면 스마트 팩토리 제조 공장 맵

전체 구조

공장 데이터가 VR 메타버스 시스템에 반영되는 구조

서버가 실제 공장 raw 데이터를 약속된 JSON 형태로 정제해 송신하고, Unreal 클라이언트는 이를 받아 다중 사용자가 확인할 수 있는 디지털 트윈 상태로 반영

공장 실제 공장 데이터

로봇, 아바타, 제조 설비 raw 데이터

서버 데이터 정제 / 송신

사전에 약속된 JSON 포맷으로 변환

클라이언트 VR 메타버스 시스템의 Unreal 클라이언트

WebSocket 수신, 파싱, 상태 관리, Actor/UI 반영 담당

표현 디지털 트윈 상태 표시

여러 사용자가 같은 월드에서 로봇, 아바타, 설비 상태 확인

클라이언트 구성 요소

객체 분류 이동 객체와 고정 설비 분리

로봇/아바타는 Transform 동기화, 기계 설비는 작동시간/상태/센서값 동기화

데이터 흐름 수신 → 파싱 → 관리 → 렌더링

WebSocket 문자열을 JSON 데이터로 변환하고 관리 매니저에서 타입별 처리

응답 처리 Echo와 Complete 응답

Echo로 전송시간을 추정하고 Complete로 데이터 반영 완료 시점을 보내 응답속도 검증에 대응

클라이언트 동작 흐름

  1. 01 WebSocket 수신

    서버가 빠르게 전달하는 공장 상태 JSON 문자열 수신

  2. 02 Echo 응답

    메시지 단위 왕복 전송시간을 추정하기 위해 수신 직후 Echo Response 반환

  3. 03 파싱 / 관리

    수집 문자열을 객체 데이터로 변환하고 타입별 관리 매니저로 전달

  4. 04 상태 반영

    게임 스레드 타임에 수집된 데이터 중 마지막 상태를 Actor와 UI에 반영

  5. 05 Complete 응답

    데이터 반영 완료 시점에 Complete Response를 보내 응답속도 검증에 대응

응답 처리 설계

데이터 반영 시간을 검증하기 위한 Echo / Complete 분리

01검증 기준 분리 필요

서버가 보낸 공장 상태가 클라이언트의 Actor/UI 상태로 반영되기까지 걸린 시간을 검증해야 했고, 단순 왕복 통신 시간과 데이터 처리 시간을 분리할 필요가 있었다.

02Echo Response

메시지를 받은 직후 반환해 왕복 전송시간을 추정. 이후 Complete 응답 시간에서 전송시간 영향을 빼고 실제 반영 시간을 계산하는 기준으로 사용.

03Complete Response

게임 스레드에서 수집 데이터 중 마지막 상태를 Actor/UI에 반영한 뒤 반환. 클라이언트 처리와 데이터 반영 완료 시점을 서버가 확인할 수 있게 구성.

04수신 처리 수정

Unreal WebSocket 수신이 게임 스레드에서 여러 메시지를 배열 단위로 처리해 메시지 단위 Echo 반환이 어려웠고, 응답속도 검증 요구에 맞춰 수신 처리 일부를 수정.

구현 상세

Unreal 클라이언트 구현 내용

WebSocket

Receiver/Sender, JSON Parser, 데이터 관리 매니저 개발. 수신 데이터 타입에 따라 이동 객체와 고정 설비 처리 분리

이동 객체

로봇과 아바타 타입의 Transform 데이터를 받아 Unreal 월드의 위치와 회전 상태로 동기화

고정 설비

기계마다 달라지는 작동시간, 상태, 센서값 데이터를 UI/Actor 상태로 반영

기존 메타버스 프로그램 활용

회사 자체 VR 메타버스 프로그램의 서버/클라이언트 실행 구조와 AWS 서버 월드 접속 방식을 활용해, 여러 사용자가 같은 월드에서 공장 상태를 확인하는 형태로 확장

검증

실제 공장 데이터 연동과 과제 완료 시연 테스트 진행. 서버와 약속한 JSON 포맷 기준으로 객체 상태 반영과 응답 처리 흐름 확인