가상의 플랜트 환경(계단, 험지, 고온 구역)에서 4족 보행 로봇(Spot, Unitree 등)을 자율 주행시키고, 탑재된 센서로 아날로그 계기를 읽거나 가스 누출을 탐지하는 로봇 미들웨어 및 제어 엔지니어 양성을 목표로 합니다.
본 과정은 Digital Twin 기반 로봇 관제 및 AI 기술 내재화를 목표로 하며, 아래와 같이 Digital Twin을 구성합니다.
- 발전소 시설 3D 환경 모델
- 로봇 센서 데이터 시뮬레이션
- 설비 상태 점검 데이터
- 로봇 위치 및 작업 상태
이를 통해 실제 발전소 점검 작업을 가상 환경에서 테스트하고 로봇 알고리즘을 검증할 수 있습니다.
- 교육 개요 및 목표
본 과정은 두산에너빌리티 로봇솔루션팀, DX추진팀, 발전소 정비팀 등 산업 현장에서 요구하는 '디지털 트윈 기반의 로봇 관제 및 AI 기술' 내재화를 목표로 합니다.
Digital Twin은 실제 물리 환경을 가상 공간에 동일하게 구현하고, 센서 데이터와 시뮬레이션을 통해 운영 상태를 분석하는 기술입니다.
단순한 시뮬레이션을 넘어, 고정밀 물리 엔진을 활용해 실제 발전소와 동일한 가상 환경(Virtual Plant)을 구축하고, 로봇을 매개로 현실과 가상을 연결하는 핵심 역량을 배양합니다.
- Locomotion Control: 험지에서의 보행 안정성 확보 및 전도 방지
- Inspection AI: 로봇의 눈(카메라)으로 아날로그 게이지를 읽고 디지털화(Digitization)
- Sim2Real: 시뮬레이션에서 학습한 보행 정책을 실제 로봇에 이식
- Digital Twin 시스템 구성
본 미션의 Digital Twin 시스템은 다음과 같이 4가지 요소로 구성되며, ROS2 기반 데이터 스트림을 통해 다음과 같은 구조로 연결됩니다.
Virtual Plant → Robot Twin → Simulation Sensor Data → Inspection AI Processing → Monitoring System
- Robot Twin: 로봇 상태 및 센서 데이터 생성Inspection AI: 게이지 인식 / 가스 분석 / 열화상 분석Monitoring System: 분석 결과 및 로봇 상태 시각화Virtual Plant: 모든 데이터가 적용되는 가상 환경
[1. Virtual Plant] 발전소 환경을 가상 공간에 재현한 3D 시뮬레이션 환경
- 발전소 구조, 배관 및 설비, 계단 및 험지, 점검 구역 등
[2. Robot Twin] 실제 로봇을 가상 환경에 모델링한 디지털 로봇
- 센서 모델, 보행 제어 시스템 등
[3. Inspection Data] 로봇이 수집하는 설비 상태 데이터
- 계기판 수치, 열화상 데이터, 가스농도 등
[4. Monitoring System] Digital Twin 관제 시스템
- 로봇 위치 정보, 설비 상태, 점검 결과 등
본 미션의 발전소 환경 구축을 위하여 기본 3D Asset이 제공됩니다.
- 개발 및 실습 환경
실제 로봇을 다루기 어려운 환경을 극복하기 위해 다음과 같은 소프트웨어 스택을 사용합니다.
- Languages: Python (ROS2 제어, AI), C++ (MPC 제어기 최적화)
- Frameworks:
- Simulation: NVIDIA Isaac Sim (4족 보행 물리 최적화) 또는 Gazebo
- Robot OS: ROS 2 (Nav2 네비게이션 스택)
- AI: PyTorch (강화학습), OpenCV (계기판 인식)
- 3D Simulation Assets:
- Map: 공장 내부 및 복도 미션 수행 공간.
- Object: 로봇,팔레트 장애물, 가스 탱크 주요 시설물.
- Animation: 로봇개 기본 이동 모션 및 넘어지는 모션
- Asset Package Download URL:
학습자는 제공된 Asset을 활용하여 시뮬레이션 환경을 구성하고, 필요 시 일부 오브젝트를 추가로 제작할 수 있습니다.
- 세부 시나리오 및 수행 과제
본 과정은 실제 발전소 환경에서 발생할 수 있는 세 가지 모듈로 구성됩니다.
[Module 1: Locomotion] 계단과 잔해물 "험지(Terrain) 돌파 제어"
- 시나리오: 지진으로 파이프가 널려 있는 바닥 환경에서 로봇 개가 넘어지지 않고 현장에 진입해야 합니다.
- 배경: 발전소 내부의 좁은 계단, 미끄러운 철판, 장애물 등을 극복하기 위해 지형 적응형 보행 모드(Trot, Crawl 등) 전환이 필요합니다.
[Module 2: Inspection AI] 사람 눈을 대신하는 "아날로그 게이지 & 열화상 점검"
- 시나리오: 사람이 접근하기 위험한 구역에서 로봇이 압력계를 읽고 과열된 배관을 찾아내야 합니다.
- 배경: 디지털 통신이 불가능한 아날로그 계기판을 로봇이 인식하고, 진동 및 조명 제약 조건을 극복해야 합니다.
[Module 3: Gas/Safety] 가스 누출원 추적 "후각(Olfactory) 네비게이션"
- 시나리오: 유독 가스 농도가 짙어지는 방향을 찾아 누출원을 탐지해야 합니다.
- 배경: 넓은 공장에서 가스 센서 알람 시, 로봇이 냄새를 맡듯 누출 위치를 추적해야 합니다.
본 미션의 최종 결과물은 아래 내용이 모두 포함된 GitHub Repository입니다.
- 레포지토리 구조:
- module1_locomotion/: 험지 돌파 제어 관련 코드 및 설정 파일
- module2_inspection/: 아날로그 게이지 및 열화상 점검 AI 코드
- module3_gas_safety/: 가스 누출원 추적 및 자율 복귀 알고리즘 코드
- simulation/: Isaac Sim 또는 Gazebo 시뮬레이션 환경 설정 및 에셋
- docs/: 프로젝트 보고서 및 실행 가이드
- 필수 포함 내용:
- [Module 1] Locomotion Control 구현 코드
- 지형 인지 (Terrain Mapping) 알고리즘 및 Elevation Map 생성 코드
- MPC (Model Predictive Control) 기반 보행 제어기 및 튜닝 코드
- Fall Recovery (자동 복구) 시퀀스 구현 코드
- [Module 2] Inspection AI 구현 코드
- 아날로그 게이지 인식 (OCR/Computer Vision) 알고리즘 코드
- 열화상 및 실화상 데이터 퓨전 시각화 코드
- 최적 순찰 경로 (Viewpoint 기반) 생성 알고리즘 코드
- [Module 3] Gas/Safety 구현 코드
- 가스 누출 및 기류 시뮬레이션 환경 설정 파일
- Source Seeking Algorithm (경사 하강법 기반) 구현 코드
- 자율 복귀 (Return to Home) 로직 구현 코드
- 통합 시뮬레이션 환경
- 발전소 터빈룸 3D 맵 및 4족 보행 로봇 URDF 파일
- 세 가지 모듈이 통합된 시뮬레이션 실행 스크립트
- 프로젝트 보고서 (REPORT.md)
- 각 모듈별 알고리즘 설명, 구현 과정, 문제 해결 내용 기술
- 시뮬레이션 결과 및 평가 지표 분석 (보행 안정성, 점검 정확도, 자율성 등)
- 디지털 트윈 관제 화면 연동 결과 캡처 및 설명
- 실행 가이드 (README.md)
- 환경 설정 방법 (필수 라이브러리, 시뮬레이터 설치 등)
- 각 모듈별 실행 방법 및 예시 명령어
- 시뮬레이션 결과 확인 방법
- 모델링 구현(최소 조건)
- 최소 크기: 복도(넓이 : 45m * 3.5m)(높이 : 4m), 공장(넓이 : 25m * 18m)(높이 : 7m)
- 최소 수량: 험지 방해물 갯수(복도: 3개, 공장: 5개), 로봇개 (1개), 공장기계(1개)
본 과제를 수행함으로써 학습자는 다음과 같은 목표를 달성할 수 있습니다.
- 로봇 미들웨어(ROS 2) 및 시뮬레이션(Isaac Sim/Gazebo) 활용 능력 습득: 복잡한 로봇 시스템을 제어하고 테스트하기 위한 필수 도구 활용 능력을 갖춥니다.
- 험지 보행 제어 알고리즘(MPC) 이해 및 구현: 다양한 지형에서 안정적인 4족 보행을 구현하기 위한 제어 이론 및 실습 경험을 쌓습니다.
- 로봇 비전 및 AI 기술 활용 능력 향상: 아날로그 계기판 인식, 열화상 데이터 처리 등 산업 현장에 필요한 실질적인 AI 기술을 습득합니다.
- 자율 주행 및 탐색 알고리즘 구현: 가스 누출원 추적, 자율 복귀 등 로봇의 자율적인 임무 수행을 위한 알고리즘을 구현합니다.
- 시스템 통합 및 디지털 트윈 연동 경험: 개별 모듈을 통합하고, 시뮬레이션 결과를 디지털 트윈 관제 시스템에 연동하는 전체적인 시스템 구축 경험을 얻습니다.
- 총 200시간
각 모듈별로 다음과 같은 세부 기능을 구현해야 합니다.
[Module 1] Locomotion Control
- 지형 인지 (Terrain Mapping): 로봇 센서(라이다/Depth 카메라)를 활용하여 바닥 높낮이 정보(Elevation Map)를 실시간으로 생성하고, 이를 기반으로 안정적인 발 디딤 위치를 결정하는 알고리즘을 구현합니다.
- MPC 제어 (Model Predictive Control): 외란(무게 중심 변화 등)에도 안정적인 보행을 유지하도록 다음 5초간의 발 위치와 토크를 예측 제어하는 로직을 구현 및 튜닝합니다.
- Fall Recovery: 시뮬레이션 환경에서 로봇이 넘어졌을 때 스스로 일어나는 자동 복구 시퀀스를 개발합니다.
[Module 2] Inspection AI
- 게이지 독해 (OCR/Computer Vision): 로봇 이동 시 발생하는 카메라 흔들림 및 저조도 환경에서도 아날로그 압력계를 검출하고, 바늘 각도를 계산하여 수치 텍스트로 변환하는 알고리즘을 구현합니다. (오차 5% 이내 목표)
- 열화상 퓨전: 열화상 카메라 데이터와 RGB 카메라 데이터를 정합하여, 특정 설비(예: 파이프 이음매)의 과열 여부를 정확히 시각화하는 기능을 구현합니다.
- 순찰 경로 생성: 계기판 인식이 가장 용이한 위치(Viewpoint)를 경유하도록 최적화된 순찰 경로를 생성하는 알고리즘을 구현합니다.
[Module 3] Gas/Safety
- 기류 시뮬레이션: 시뮬레이션 환경 내에 가스 누출원과 바람 효과를 적용하여 사실적인 가스 확산 환경을 구축합니다.
- Source Seeking Algorithm: 가스 농도 구배를 따라 누출원으로 이동하는 경사 하강법 기반 탐색 로직을 구현합니다.
- 자율 복귀 (Return to Home): 배터리 부족(20% 미만) 또는 통신 음영 구역 진입 예상 시 자동으로 충전 스테이션으로 복귀하는 로직을 구현합니다.
- 시뮬레이션 실행 화면:
- 로봇이 계단 및 험지를 안정적으로 통과하는 모습
- 로봇 시점에서 아날로그 계기판을 인식하고 수치를 오버레이하는 화면
- 열화상 정보가 퓨전된 설비 점검 화면
- 가스 누출원을 찾아 이동하는 경로 시각화 화면
- 디지털 트윈 관제 화면:
- 로봇의 위치 및 상태 정보 실시간 표시
- 점검 결과(계기판 수치, 과열 여부) 및 가스 농도 맵 시각화
- 프로젝트 보고서:
- 각 모듈별 알고리즘 흐름도 및 구현 코드 설명
- 시뮬레이션 테스트 결과 (넘어짐 횟수, 인식 오차율 등) 그래프 및 표
- 시스템 통합 과정 및 결과 분석
- 시뮬레이션 기반 실습: 실제 로봇 하드웨어를 사용하지 않고, NVIDIA Isaac Sim 또는 Gazebo 기반의 고정밀 시뮬레이션 환경에서 모든 실습을 진행합니다.
- 운영체제: ROS 2 활용을 위해 Ubuntu Linux 환경 사용을 권장합니다.
- 프로그래밍 언어: Python (주 사용 언어) 및 C++ (일부 제어기 최적화 필요 시)을 사용합니다.
필수 과제 외에 추가적인 도전을 원하는 경우 다음 과제를 수행할 수 있습니다.
- 실시간 데이터 대시보드 구축: 로봇이 수집한 데이터(위치, 센서 값, 점검 결과)를 웹 기반 대시보드에 실시간으로 시각화합니다.
- 다중 로봇 협업 제어: 두 대 이상의 로봇이 협력하여 넓은 구역을 효율적으로 순찰하거나 점검하는 시나리오를 구현합니다.
- 강화학습 기반 보행 제어: MPC 대신 강화학습 알고리즘(예: PPO, SAC)을 적용하여 험지 보행 성능을 향상시킵니다.
- 클라우드 기반 원격 관제: 로봇 제어 및 데이터 처리를 클라우드 환경으로 연동하여 원격에서 로봇을 관제하는 시스템을 구축합니다.
동료의 GitHub 레포지토리에 접속하여 코드와 결과물을 확인한 뒤, 아래 질문에 대해 평가해 주세요.
-
[Module 1] Locomotion Control:
- 계단 같은 험지 데이터를 센서로 수집했을 때, 어떻게 노이즈를 걸러내어 Elevation Map을 생성하며, 이를 기반으로 발 디딤 위치를 결정하는 알고리즘은 어떻게 설계되었습니까?
- 외란(충격 등)이 발생하여 균형이 무너질 때, MPC 제어기는 어떻게 상태 변화를 감지하고, 자세 회복을 위해 필요한 다음5초간의 발 토크 값을 계산합니까?
- 로봇이 넘어졌을 때 시스템은 어떻게 현재 상태를 '넘어짐'으로 판단하며, 어떤 순서의 관절 제어 시퀀스를 통해 스스로 기립합니까?
-
[Module 2] Inspection AI:
- 이동 중 카메라 흔들림이나 조명 변화가 발생했을 때, 어떻게 이미지를 전처리하여 바늘과 숫자를 명확히 구분하고 수치를 추출합니까?
- 열화상 카메라와 실화상 카메라는 위치가 서로 다릅니다. 두 이미지를 겹칠 때 발생하는 위치 오차를 어떻게 수학적으로 보정하여 정확하게 매핑하였습니까?
- 순찰 경로를 생성할 때, 단순히 대상에 접근하는 것을 넘어 '인식이 가장 잘 되는 각도와 거리'를 산출하기 위해 어떻게 가중치나 비용을 계산하였습니까?
-
[Module 3] Gas/Safety:
- 가스 농도가 불규칙하게 변하는 확산 환경에서, 탐색 알고리즘은 어떻게 농도 구배를 분석하여 누출원의 방향 벡터를 결정하고 이동합니까?
- 배터리 부족 등의 비상 상황이 발생하면 언제 복귀 모드가 트리거되며, 이때 장애물을 피하며 최단 거리로 돌아오기 위한 경로 계획은 어떻게 수립됩니까?
-
Digital Twin 시스템:
- Virtual Plant, Robot Twin, Inspection Data, Monitoring System으로 구성된 Digital Twin 구조에서 각 구성 요소는 어떤 역할을 수행하며, 실제 발전소 환경을 어떻게 가상 환경에 반영하였습니까?
- 로봇이 시뮬레이션 환경에서 수집한 센서 데이터(위치, 가스 농도, 계기판 정보 등)는 Digital Twin 관제 시스템으로 어떻게 전달되고 시각화됩니까? 이 과정에서 데이터 동기화 문제는 어떻게 해결하였습니까?
- Sim2Real 관점에서, 시뮬레이션 환경에서 학습한 보행 정책이나 점검 알고리즘이 실제 로봇 환경에서도 동작하도록 하기 위해 어떤 차이를 고려하였습니까?
-
통합:
- 보행, 점검, 가스 탐지라는 서로 다른 기능의 모듈들이 하나의 시뮬레이션 환경에서 동시에 실행됩니다. 이때 각 모듈(ROS2 Node) 간의 데이터 병목 현상이나 메모리 충돌을 방지하기 위해 어떻게 통신 구조(Topic/Service/Action)를 설계하고 자원을 배분하였습니까?
- 시뮬레이터에서 생성되는 로봇의 위치 좌표와 센서 데이터를 관제 화면으로 전송할 때, 통신 지연을 최소화하고 실시간성을 확보하기 위해 어떻게 데이터 전송 프로토콜을 구성하고 동기화를 맞추었습니까?
-
심층 인터뷰
다음 질문을 통해 동료의 이해도와 설계 사고를 확인한다.
- [Module 1] Locomotion Control:
- MPC 제어기의 예측 구간(Prediction Horizon) 설정이 보행 안정성에 미치는 영향은 무엇입니까? 최적의 값을 선정한 근거는 무엇입니까?
- 지형 인지 시 발생할 수 있는 센서 노이즈를 어떻게 처리했습니까?
- 다양한 보행 모드(Trot, Crawl 등) 간 전환 기준 및 방식은 어떻게 설계했습니까?
- [Module 2] Inspection AI:
- 아날로그 계기판 인식을 위해 어떤 컴퓨터 비전 기술(예: Edge Detection, Hough Transform, Deep Learning)을 사용했습니까? 해당 기술을 선택한 이유는 무엇입니까?
- 열화상 데이터와 RGB 데이터의 정합(Registration) 과정에서 발생할 수 있는 오차를 어떻게 최소화했습니까?
- 순찰 경로 최적화를 위해 어떤 알고리즘(예: TSP, A*)을 사용했습니까? Viewpoint 제약 조건을 어떻게 반영했습니까?
- [Module 3] Gas/Safety:
- 가스 확산 시뮬레이션을 위해 어떤 모델을 사용했습니까? 실제 환경과의 차이점을 어떻게 고려했습니까?
- Source Seeking Algorithm이 국소 최적해(Local Optima)에 빠지지 않도록 어떤 전략을 사용했습니까?
- 자율 복귀 시 동적 장애물 회피는 어떻게 구현했습니까?
- Digital Twin 시스템:
- 본 프로젝트에서 구축한 Digital Twin 환경은 실제 발전소 환경의 어떤 요소들을 가상 환경에 반영하고 있습니까? 실제 환경과의 차이를 어떻게 최소화하려고 하였습니까?
- Virtual Plant와 Robot Twin 사이의 데이터 흐름은 어떻게 설계되었습니까? 센서 데이터 생성 및 처리 과정에 대해 설명해 주십시오.
- 시뮬레이션 환경에서 생성된 점검 데이터(계기판 수치, 가스 농도 등)를 관제 시스템에서 활용하기 위해 어떤 데이터 구조 또는 통신 방식(예: ROS2 Topic, 메시지 타입)을 사용하였습니까?
- Digital Twin 환경이 단순한 시뮬레이션을 넘어 실제 발전소 점검 업무에 활용되기 위해서는 어떤 추가적인 기술 요소가 필요하다고 생각합니까?
- 전체:
- 본 프로젝트를 수행하면서 가장 어려웠던 기술적 문제는 무엇이었으며, 이를 어떻게 해결했습니까?
- 실제 산업 현장에 본 시스템을 적용할 때 고려해야 할 추가적인 사항은 무엇이라고 생각합니까?