1261.70 하드웨어-인-더-루프(HIL) 행동 테스트

1. HIL 테스트의 정의와 개념

하드웨어-인-더-루프(Hardware-In-the-Loop, HIL) 테스트란, 실제 하드웨어 구성 요소를 시뮬레이션 환경의 제어 루프 내에 포함시켜, 소프트웨어와 하드웨어의 상호작용을 실시간으로 검증하는 테스트 방법론이다. 행동 제어 시스템의 맥락에서 HIL 테스트는, 행동 제어 소프트웨어가 실제 컨트롤러 하드웨어(임베디드 프로세서, 실시간 운영체제 등)에서 실행되면서, 센서 입력과 환경 동역학은 시뮬레이터가 실시간으로 생성하여 공급하는 구성을 의미한다.

HIL 테스트는 순수 소프트웨어 시뮬레이션(Software-In-the-Loop, SIL)과 완전한 실기체 테스트(full vehicle test) 사이에 위치하는 중간 단계의 검증 방법으로서, V-모델(V-model) 기반 개발 프로세스에서 시스템 통합 검증 단계의 핵심 활동이다.

2. HIL 테스트의 위상: V-모델에서의 위치

시스템 공학의 V-모델에서 개발 과정은 좌측의 하향 분해(분석 → 설계 → 구현)와 우측의 상향 검증(단위 테스트 → 통합 테스트 → 시스템 테스트)으로 구성된다. 각 검증 단계에서 소프트웨어와 하드웨어의 참여 정도에 따라, 다음과 같은 검증 유형이 구분된다.

검증 유형소프트웨어하드웨어환경
MIL (Model-In-the-Loop)수학적 모델시뮬레이션시뮬레이션
SIL (Software-In-the-Loop)실제 코드시뮬레이션시뮬레이션
PIL (Processor-In-the-Loop)실제 코드(타겟 프로세서)시뮬레이션시뮬레이션
HIL (Hardware-In-the-Loop)실제 코드(타겟 프로세서)실제 컨트롤러 하드웨어시뮬레이션

HIL 테스트는 PIL 테스트 이후의 단계로서, 실제 컨트롤러 하드웨어의 전기적 인터페이스, 통신 버스, 신호 처리 회로까지 포함하여 검증하는 것이 특징이다.

3. HIL 테스트 시스템의 구성

3.1 실시간 시뮬레이터

HIL 테스트의 핵심 구성 요소는 실시간 시뮬레이터(real-time simulator)이다. 실시간 시뮬레이터는 로봇의 동역학 모델, 센서 모델, 환경 모델을 실시간으로 연산하여, 실제 하드웨어가 기대하는 시간 규약(timing constraint)을 준수하면서 시뮬레이션 데이터를 생성한다.

실시간 시뮬레이터의 핵심 요구사항은 **결정론적 실행(deterministic execution)**이다. 시뮬레이션의 각 시간 스텝(time step)이 고정된 시간 내에 완료되어야 하며, 시간 스텝의 초과(overrun)는 HIL 테스트의 유효성을 손상시킨다. 이를 위해, 실시간 운영체제(RTOS)인 QNX, VxWorks, Xenomai, 또는 Linux의 PREEMPT_RT 패치가 적용된 커널 위에서 실시간 시뮬레이터를 구동한다.

3.2 입출력 인터페이스

HIL 테스트 시스템은 수검 대상(Unit Under Test, UUT)인 행동 제어 컨트롤러와 실시간 시뮬레이터 사이의 물리적 입출력(I/O) 인터페이스를 포함한다. 이 인터페이스는 다음의 신호 유형을 처리한다.

  • 아날로그 입출력(Analog I/O): 센서의 전압/전류 출력 신호의 시뮬레이션과 액추에이터 명령 신호의 수신
  • 디지털 입출력(Digital I/O): 이진 상태 신호(스위치, 인코더 펄스 등)의 생성과 수신
  • 통신 버스 인터페이스: CAN(Controller Area Network), EtherCAT, SPI, I2C, UART 등의 산업용 통신 프로토콜을 통한 데이터 교환
  • 이더넷 기반 통신: ROS2/DDS 통신, UDP/TCP 기반의 제어 명령 교환

3.3 신호 조건화

시뮬레이터가 생성한 디지털 신호를 실제 센서 출력과 동일한 전기적 특성(전압 레벨, 임피던스, 노이즈 특성)으로 변환하는 신호 조건화(signal conditioning) 회로가 필요하다. 예를 들어, 시뮬레이터가 생성한 엔코더 신호를 RS-422 차동 신호로 변환하거나, 시뮬레이션된 온도 센서 출력을 해당하는 저항 값으로 변환한다.

3.4 결함 주입 장치

행동 제어 시스템의 결함 허용(fault tolerance) 능력을 검증하기 위해, HIL 테스트 시스템에는 결함 주입 장치(fault injection unit)가 포함될 수 있다. 이 장치는 센서 단선(open circuit), 단락(short circuit), 신호 고착(stuck-at), 통신 버스 오류 등을 의도적으로 발생시켜, 행동 제어 시스템의 비정상 대응 능력을 검증한다.

4. 행동 제어 HIL 테스트의 설계

4.1 테스트 시나리오 설계

HIL 환경에서의 행동 제어 테스트 시나리오는 다음의 요소를 포함하여 설계한다.

  • 초기 조건 정의: 로봇의 초기 위치, 자세, 센서 상태, 행동 제어 시스템의 초기 상태
  • 환경 이벤트 시퀀스: 장애물 출현, 목표 변경, 통신 단절, 센서 이상 등의 시간 순서별 이벤트
  • 기대 행동 시퀀스: 각 이벤트에 대해 행동 제어 시스템이 수행해야 할 행동과 상태 전이
  • 합격 기준(pass criteria): 행동의 시간적 제약, 위치 정확도, 안전 조건 등의 정량적 판정 기준

4.2 실시간 제약 검증

HIL 테스트의 고유한 가치는 행동 제어 로직의 실시간 제약 준수 여부를 검증할 수 있다는 점이다. 순수 SIL 환경에서는 시뮬레이션 시간과 벽시계 시간(wall-clock time)이 일치하지 않을 수 있으나, HIL 환경에서는 실제 하드웨어가 실시간으로 동작하므로, 행동 제어 루프의 주기(cycle time), 응답 지연(response latency), 상태 전이 시간(transition time) 등을 실제 시간 기준으로 측정할 수 있다.

검증 대상이 되는 실시간 제약의 예는 다음과 같다.

t_{\text{response}} \leq t_{\text{deadline}}

여기서 t_{\text{response}}는 센서 입력 이벤트로부터 행동 제어 출력이 생성되기까지의 응답 시간이고, t_{\text{deadline}}은 시스템 요구사항에서 정의된 최대 허용 응답 시간이다.

통신 프로토콜 검증

ROS2 기반 행동 제어 시스템의 HIL 테스트에서는, DDS 미들웨어를 통한 통신의 실시간 성능을 검증한다. 구체적으로는 다음 항목이 평가된다.

  • 행동 목표(goal) 메시지의 전달 지연
  • 피드백(feedback) 메시지의 주기적 수신 정확성
  • 목표 취소(cancel) 요청의 응답 시간
  • QoS 정책(reliability, durability, deadline)의 준수 여부
  • 네트워크 부하 조건에서의 통신 성능 저하 정도

ROS2 환경에서의 HIL 테스트 구현

ros2_control과 HIL 통합

ROS2 환경에서 HIL 테스트를 구현하기 위해, ros2_control 프레임워크의 하드웨어 인터페이스(hardware interface) 추상화를 활용한다. HIL 모드에서는 hardware_interface의 구현을 실시간 시뮬레이터와 연동된 I/O 인터페이스로 교체함으로써, 행동 제어 노드는 실제 하드웨어를 제어하는 것과 동일한 인터페이스로 HIL 시뮬레이터와 상호작용한다.

이 구조에서, 행동 제어 노드의 코드는 SIL, HIL, 실기체 테스트에서 동일하게 유지되며, 하드웨어 인터페이스 계층의 구성만 변경된다. 이는 테스트 단계 간의 일관성을 보장하고, 테스트 누적 결과의 신뢰성을 높인다.

시간 동기화

HIL 테스트에서 실시간 시뮬레이터와 행동 제어 컨트롤러 간의 시간 동기화(time synchronization)는 결정적으로 중요하다. ROS2에서는 시뮬레이션 시간(simulation time)과 시스템 시간(system time)을 구분하며, /clock 토픽을 통해 시뮬레이션 시간을 공유한다.

HIL 환경에서는 시뮬레이션이 실시간으로 실행되므로, 시뮬레이션 시간과 시스템 시간이 동기화되어야 한다. PTP(Precision Time Protocol, IEEE 1588) 또는 NTP(Network Time Protocol)를 통해 시뮬레이터와 컨트롤러 간의 시간 오프셋을 마이크로초 수준으로 관리한다.

HIL 테스트의 장점과 한계

장점

HIL 테스트의 주요 장점은 다음과 같다.

첫째, 실제 컨트롤러 하드웨어에서 행동 제어 코드를 실행하므로, 타겟 프로세서의 연산 성능, 메모리 제약, 인터럽트 처리, 부동소수점 정밀도 등의 하드웨어 의존적 문제를 사전에 식별할 수 있다.

둘째, 물리적 로봇을 실제 환경에서 운용하지 않으므로, 하드웨어 손상, 인명 사고, 환경 파손의 위험 없이 극한 조건에서의 행동을 검증할 수 있다.

셋째, 시뮬레이션 환경을 정밀하게 제어할 수 있어, 재현하기 어려운 희귀 사건(rare event)이나 경계 조건(boundary condition)을 체계적으로 테스트할 수 있다.

넷째, 결함 주입을 통해 센서 고장, 통신 장애, 전원 이상 등의 비정상 상황에서 행동 제어 시스템의 결함 허용 능력을 안전하게 검증할 수 있다.

한계

HIL 테스트의 한계는 다음과 같다.

첫째, HIL 테스트 벤치(test bench)의 구축 비용이 상당하다. 실시간 시뮬레이터, I/O 인터페이스 보드, 신호 조건화 회로, 결함 주입 장치 등의 하드웨어 구성이 필요하며, 이는 소규모 프로젝트에서는 비용 대비 효용이 제한될 수 있다.

둘째, HIL 환경에서도 액추에이터의 물리적 동작(모터 토크, 기계적 마모, 열 발생 등)은 시뮬레이션으로 대체되므로, 액추에이터 관련 상호작용의 검증에는 한계가 있다.

셋째, 센서 시뮬레이션의 충실도가 불충분한 경우, HIL 테스트 결과와 실기체 테스트 결과 간의 불일치가 발생할 수 있다.

산업 표준과의 관계

HIL 테스트는 항공우주(DO-178C), 자동차(ISO 26262), 산업 자동화(IEC 61508) 등의 기능 안전(functional safety) 표준에서 권장되는 검증 활동이다. 이러한 표준에서는 소프트웨어와 하드웨어의 통합 검증을 요구하며, HIL 테스트는 이 요구사항을 충족하는 효율적인 방법으로 인정받고 있다.

안전 필수(safety-critical) 로봇 시스템에서의 행동 제어 검증에 HIL 테스트를 적용할 경우, 테스트 절차, 환경 설정, 결과 기록, 추적성(traceability) 등을 해당 안전 표준의 요구사항에 부합하도록 관리해야 한다.


참고 문헌

  • Isermann, R., Schaffnit, J., & Sinsel, S. (1999). “Hardware-in-the-Loop Simulation for the Design and Testing of Engine-Control Systems.” Control Engineering Practice, 7(5), 643–653.
  • Bacic, M. (2005). “On Hardware-in-the-Loop Simulation.” Proceedings of the 44th IEEE Conference on Decision and Control.
  • Short, M. & Pont, M. J. (2008). “Assessment of High-Integrity Embedded Automotive Control Systems Using Hardware in the Loop Simulation.” Journal of Systems and Software, 81(7), 1163–1183.
  • Maclay, D. (1997). “Simulation Gets into the Loop.” IEE Review, 43(3), 109–112.

v0.1.0