Sense4HRI: Physiological Sensor Integration 및 Synchronized Logging을 위한 ROS 2 HRI Framework
Sense4HRI: A ROS 2 HRI Framework for Physiological Sensor Integration and Synchronized Logging
배경 및 소개
최근 HRI에서 사용자의 스트레스, 주의, 인지부하 같은 상태를 추정하기 위해 심전도(ECG), 피부전도, 호흡, 시선 등 생리 신호를 병행하는 시도가 늘고 있습니다. 웨어러블이 소형·저가·저간섭으로 발전하면서 다중 모달 동시 수집이 쉬워졌는데요. 문제는 ROS 2 기반 HRI 워크플로에 이런 생리 데이터 스트림을 표준 방식으로 붙일 재사용 가능한 인터페이스가 부족하다는 점입니다. ROS 2 자체는 publisher–subscriber 구조와 rosbag2로 동기화 녹화·재현을 지원하지만, 실제 공개 예제들은 디바이스 특화·실험 특화 구현이 많아 범용 재사용성이 떨어집니다. 이러한 간극을 메우기 위해 저자들은 ROS4HRI와 정합되는 가벼운 확장 프레임워크 Sense4HRI를 제안하는데요. 생리 센서를 표준 메시지·토픽 구조로 통합하고, 실험 컨텍스트와 동기화된 로깅까지 아우르는 점에서 HRI 재현성·추적 가능성 향상에 의미가 있습니다. 나아가 Human Digital Twin(HDT) 기반의 정교한 사용자 상태 모델링으로 가는 발판이라고 볼 수 있습니다.
주요 내용
Sense4HRI의 핵심은 모듈성, 디커플링, 확장성입니다. 센서별 ROS 2 패키지를 독립적으로 두고, 공통 토픽·메시지 규약을 정의해 이질적 센서를 교체·추가해도 다운스트림 애플리케이션이 동일한 인터페이스로 접근하게 했는데요. 설계의 포인트는 센서 드라이버와 인터프리터를 분리한 것입니다. 드라이버 노드는 Bluetooth, USB, LabStreamingLayer(LSL) 등 디바이스 연결을 담당하며 <base_topic>/raw로 원시 시계열을 발행하고, 인터프리터 노드는 이를 구독해 전처리·특징 추출 결과를 <base_topic>/features로 내보냅니다. 이렇게 나누면 해석 로직을 바꿔도 드라이버를 손대지 않아도 되어 유지보수성이 높아지는데요. 이는 동일 지표를 여러 모달이 뒷받침하는 HRI 특성에 잘 맞는 구조라고 볼 수 있습니다.
원시 데이터에는 공통 메시지인 PhysioRaw.msg를 사용합니다. ROS 표준 header와 device_timestamp, 그리고 채널별 이름과 float 샘플 배열로 구성된 PhysioRawChannel 리스트를 포함해, 다양한 센서가 채널 단위 정보를 잃지 않고 동일 포맷으로 내보내도록 했습니다. 디바이스가 자체 산출하는 특징치가 있을 경우 별도 메시지로 공개하고, 센서 타입별 파생 메시지(예: ECG.msg)는 RR interval, heart rate, SDNN 등 대표 특징을 담습니다. 토픽 네이밍은 ROS4HRI 관례를 확장한 /humans/physiological/<human_id>/<sensor_type>/<sensor_id>/<field> 스키마를 채택해 멀티유저·멀티벤더 환경에서도 충돌 없이 확장되는데요. 예컨대 EEG 특징은 /humans/physiological/p1/eeg/headset_1/features처럼 정규화됩니다. 각 센서 노드는 시작 시 샘플링 주파수, 측정 범위, 단위 같은 정적 메타데이터를 ROS 2 parameter server에 등록하고, 다른 노드는 rcl_interfaces/srv/GetParameters로 이를 조회해 처리 파이프라인을 런타임 적응할 수 있습니다. 메타데이터까지 표준화 범위에 넣은 점이 실험 간 상호운용성에 꽤 실용적입니다.
시간 동기화는 메시지마다 디바이스 내부 시계를 함께 실어 수신 시 ROS time과의 오프셋을 추정하는 방식인데요. rosbag2로 다른 HRI 컨텍스트(로봇 동작, 음성, 시선, 태스크 이벤트)와 함께 기록·재생하면 모달 간 정렬과 사후 분석의 추적성이 좋아집니다. 이는 멀티모달 융합 모델 학습과 디버깅 관점에서 의미가 큽니다.
프로토타입으로는 Polar Verity Sense PPG와 Polar H10 ECG를 BLE로 연결해 드라이버가 원시 신호와 디바이스 제공 RR interval·heart rate를 발행하고, 인터페이스 노드가 RMSSD, SDNN, pNN50 같은 HRV 특징을 산출합니다. 웹 기반 UI로 실시간 모니터링을 제공했고, ROS4HRI의 hri_face_detect와 hri_emotion_recognition을 결합해 간단한 decision tree가 표정 분기 후 ECG·PPG 기반 심박 임계값으로 calm_relaxed, alert_active, stressed_anxious 상태를 추정했습니다. 구성 요소 간 강결합 없이 표준 토픽 구조만으로 융합이 이뤄졌다는 점에서 프레임워크의 재사용성이 드러나 흥미롭습니다. 다만 현재는 카메라에 보이는 사람과 센서 착용자를 정적으로 매칭해 단일 사용자 시나리오에 한정되는데요. 향후 RSSI 기반 거리 추정과 비전 거리 정보를 결합한 동적 매핑이 제안됩니다.
결론 및 시사점
Sense4HRI는 ROS4HRI 철학과 호환되는 ROS 2 확장으로, 생리 신호의 표준화된 수집·해석·로깅을 가능하게 하는 모듈형 아키텍처를 제시합니다. 드라이버–인터프리터 분리, PhysioRaw.msg 기반의 통일된 원시 시계열 포맷, 멀티유저를 염두에 둔 토픽 네임스페이스, device_timestamp를 활용한 동기화 전략이 핵심인데요. 이는 ROS-Neuro처럼 도메인 특화되거나 ROS2HC처럼 헬스케어 중심인 기존 접근과 달리, 일반 목적 HRI 실험에 바로 얹을 수 있는 가벼운 생리 확장이라는 점에서 의의가 있습니다. 프로토타입은 Polar 센서와 ROS4HRI 인지 모듈을 엮어 간단한 상태 추정을 시연했지만, 지원 센서 스펙트럼과 사용자–센서 동적 매핑, 장치 간 동기화·메타데이터 일관성은 더 다듬어야 합니다. 저자들은 이벤트 기반 핸드셰이크로 노드 간 동기 수준을 높이고, 더 많은 생리 모달과 유연한 사용자 할당을 추가할 계획인데요. 개인적으로는 이 프레임워크가 온라인 특징 추출과 멀티모달 융합, 사용자 상태 모델링 파이프라인의 공통 토대가 되어 HRI의 재현성과 전이 가능성을 끌어올릴 것이라 봅니다. 장기적으로는 HDT를 활용한 적응형·개인화 HRI로 확장될 것이라는 기대가 있습니다.
💡 HCI/HRI 실험에 생리 신호를 넣고 싶다면, 센서별 드라이버 패키지로 /humans/physiological/<human_id>/<sensor_type>/<sensor_id> 아래에 원시·특징 토픽을 발행하고 rosbag2로 전 모달을 함께 기록한 뒤 ROS4HRI 인지 스트림과 바로 융합하면 됩니다. 다만 멀티유저에선 사용자–센서 동적 매핑과 디바이스–ROS 시간 오프셋 보정 전략을 초기에 설계하는 것이 관건입니다.
뉴스레터 구독
매주 금요일, 주간 HCI 하이라이트를 이메일로 받아보세요.