Skip to content

VelaMotion

OpenVela board-level adaptation for the SomatoSync motion synchronization system

Sunny_

Published October 12, 2026

Original author: YangCongOriginal source (new tab)

VelaMotion

Project description

VelaMotion: ESP32-S3 and W5500-Based Wearable Motion Tracking System for Rehabilitation

Overview

02_网关板与节点_完整系统.jpg

 

**VelaMotion(SomatoSync)**은 전신 움직임을 정량적으로 측정하고 재활 평가에 활용하기 위해 개발된 웨어러블 IMU 기반 동작 추적 시스템입니다.

기존 재활 평가는 치료사의 관찰과 평가 척도에 의존하는 경우가 많으며, 광학식 모션 캡처 시스템은 높은 비용과 설치 공간의 제약이 있습니다. SomatoSync는 이러한 문제를 해결하기 위해 신체에 부착하는 12개의 웨어러블 IMU 노드와 자체 개발한 ESP32-S3 Gateway를 활용합니다.

각 웨어러블 노드는 IMU 센서를 통해 신체 움직임을 측정하고, ESP-NOW 기반 TDMA(Time Division Multiple Access) 및 AFH(Adaptive Frequency Hopping) 기술을 사용하여 Gateway로 데이터를 전송합니다.

Gateway는 수집된 데이터를 WIZnet W5500 Ethernet Controller를 통해 ROS 2 기반 호스트 컴퓨터로 전달하며, 이를 바탕으로 3D 골격 재구성, 관절 가동 범위(ROM), 보행 대칭성 및 낙상 위험 평가 등에 활용하도록 설계되었습니다.

이번 openvela AI Contest 2026에서는 기존 ESP-IDF 기반으로 개발된 SomatoSync의 Gateway Board와 Wearable Node Board를 openvela 운영체제에 이식하기 위한 Board Support Package(BSP)를 개발했습니다.

Original Source: https://github.com/open-vela/contest2026_076_VelaMotion

About openvela AI Contest 2026

About openvela AI Contest 2026

openvela AI Contest 2026은 오픈소스 임베디드 운영체제인 openvela를 기반으로 AI 및 스마트 하드웨어 개발을 장려하는 개발자 대회입니다.

대회는 AI 하드웨어 제품 개발, 새로운 하드웨어의 운영체제 이식, 스마트 기기 애플리케이션 개발 등 다양한 분야를 대상으로 진행됩니다. 참가자는 openvela 환경에서 하드웨어와 소프트웨어를 개발하고, 소스 코드와 기술 문서 등을 GitHub 저장소에 제출합니다.

VelaMotion은 이 대회에서 New Hardware Adaptation(신규 하드웨어 이식) 분야의 프로젝트로 개발되었습니다.

기존 ESP-IDF 기반 SomatoSync 시스템의 ESP32-S3 Gateway Board와 Wearable Node Board를 openvela 환경에서 사용할 수 있도록 BSP(Board Support Package)를 개발하는 것이 주요 목표입니다.

이를 위해 W5500 Ethernet, IMU, OLED, NFC, microSD 등 주변장치의 인터페이스를 구성하고, 기존 NuttX 드라이버를 활용한 보드 초기화 코드를 구현했습니다.

Contest Project: https://github.com/open-vela/contest2026_076_VelaMotion

Features

VelaMotion, Features

1. Multi-Node Wearable Motion Tracking

SomatoSync는 신체 여러 부위에 부착하는 12개의 웨어러블 IMU 노드를 통해 전신 움직임을 추적하도록 설계되었습니다.

각 노드는 ESP32-S3 MCU와 두 개의 ICM-42688 IMU 센서를 사용합니다. 두 IMU는 서로 독립된 SPI 인터페이스에 연결되며, 각각의 센서 데이터에 ESKF(Error-State Kalman Filter)를 적용하여 자세를 추정합니다.

두 센서의 추정 결과를 결합하고 온라인 보정을 수행함으로써 장시간 측정 시 발생할 수 있는 자세 추정 오차와 드리프트를 줄이는 것을 목표로 합니다.

또한 노드 내부에서 자세 계산을 수행한 후 계산 결과를 무선으로 전송하여, 원시 센서 데이터를 모두 전송하는 방식보다 무선 통신에 필요한 데이터량을 줄이도록 설계했습니다.

2. TDMA and Adaptive Frequency Hopping

12개의 센서 노드가 동시에 고주파 데이터를 전송하면 무선 통신 충돌과 지연이 발생할 수 있습니다.

SomatoSync는 이러한 문제를 해결하기 위해 자체 설계한 TDMA 스케줄링과 AFH 기술을 활용합니다.

TDMA: Gateway가 주기적으로 Beacon을 전송하고 각 노드에 고정된 전송 시간 슬롯을 할당합니다. 각 노드는 지정된 시간에만 데이터를 전송하여 상향 통신 충돌을 방지하도록 설계되었습니다.

AFH: 무선 채널 상태를 확인하고 간섭이 발생하는 주파수를 회피하여 통신 안정성을 높입니다.

Backpressure Flow Control: 데이터 처리량이 부족할 때 오래된 데이터를 계속 대기시키는 대신 폐기하여 실시간 데이터의 시간적 유효성을 유지하도록 설계되었습니다.

이러한 기술은 여러 센서에서 수집한 움직임 데이터를 시간적으로 동기화하는 데 중요한 역할을 합니다.

3. Rehabilitation and Motion Analysis

 

Rviz(ROS2) 3D

SomatoSync는 수집한 IMU 데이터를 ROS 2 기반 호스트 컴퓨터로 전달하여 신체 움직임을 분석하는 시스템입니다.

호스트 컴퓨터에서는 IMU의 자세 데이터를 이용해 3D 골격 모델을 재구성하고, 움직임 정보를 기반으로 재활 평가 지표를 계산하도록 설계되었습니다.

FunctionDescription
Skeletal ReconstructionIMU 데이터를 기반으로 신체 자세를 3D 골격으로 재구성
Range of Motion (ROM)관절의 움직임 범위를 각도로 측정
Gait Symmetry보행 시 좌우 다리의 움직임을 비교
Fall Risk Assessment자세 및 움직임 데이터를 활용한 낙상 위험 평가
AI Rehabilitation Report수집된 움직임 데이터를 기반으로 재활 평가 보고서 생성

프로젝트에서는 뇌졸중, 파킨슨병, 뇌성마비, 다발성 경화증, 수술 후 회복 및 스포츠 손상 등의 재활 분야를 주요 활용 대상으로 제시하고 있습니다.

다만 이러한 분석 기능은 기존 SomatoSync 시스템의 설계 및 프로토타입 기능에 해당하며, 이번 openvela 이식 단계에서 모두 구현되거나 임상적으로 검증된 것은 아닙니다.

4. Hybrid Wireless and Wired Network

SomatoSync는 ESP-NOW 무선 네트워크와 W5500 기반 유선 Ethernet을 결합한 Hybrid Network Architecture를 사용합니다.

웨어러블 노드는 ESP-NOW를 통해 움직임 데이터를 Gateway로 전달하고, Gateway는 수신된 데이터를 통합하여 W5500 Ethernet 인터페이스를 통해 외부 ROS 2 Host PC로 전송하도록 설계되었습니다.

또한 Gateway에는 microSD 인터페이스가 포함되어 있어 원시 데이터를 로컬에 저장하고, 네트워크 연결이 복구된 이후 데이터를 확인하거나 재전송할 수 있도록 구성되어 있습니다.

이를 통해 센서 노드의 착용 편의성을 유지하면서 외부 분석 시스템에는 유선 네트워크를 사용할 수 있습니다.

System Architecture

SomatoSync는 Wearable Sensor Node, ESP32-S3 Gateway, ROS 2 Host PC로 구성되며, 전체 시스템은 데이터 수집, 자세 계산, 무선 전송, Gateway 데이터 통합, 호스트 분석의 5계층 구조를 사용합니다.

Hardware Configuration

ComponentHardwareRole
Main MCUESP32-S3-WROOM-1Gateway 및 Wearable Node 제어
EthernetWIZnet W5500Gateway의 유선 Ethernet 통신
Motion SensorDual ICM-42688가속도 및 회전 데이터 측정
WirelessESP-NOW센서 노드와 Gateway 간 무선 통신
NFCPN5180Gateway의 NFC 인터페이스
DisplaySSD1306 OLED장치 상태 표시
Haptic FeedbackDRV2605웨어러블 노드의 진동 피드백
StoragemicroSDGateway의 로컬 데이터 저장
Host SystemROS 2골격 재구성 및 움직임 분석

Data Flow

Wearable IMU Nodes → ESP-NOW TDMA/AFH → ESP32-S3 Gateway → W5500 Ethernet → ROS 2 Host PC

12개의 Wearable Node가 각각 두 개의 ICM-42688 IMU로 움직임 데이터를 측정합니다.

노드 내부에서 ESKF 기반 자세 계산과 센서 데이터 융합을 수행합니다.

계산된 자세 데이터는 Gateway가 할당한 TDMA 시간 슬롯에 따라 ESP-NOW로 전송됩니다.

Gateway는 각 노드의 데이터를 수집하고, 필요에 따라 microSD에 저장합니다.

W5500 Ethernet 인터페이스를 통해 데이터를 ROS 2 Host PC로 전달합니다.

Host PC에서는 데이터를 활용하여 3D 골격 재구성과 움직임 분석을 수행하도록 설계되었습니다.

W5500 Ethernet Integration

VelaMotion에서 WIZnet W5500은 ESP32-S3 Gateway의 유선 Ethernet 통신을 담당합니다.

Wearable Node는 ESP-NOW를 사용하여 무선으로 데이터를 전송하지만, Gateway와 ROS 2 Host PC 사이에서는 W5500 기반 Ethernet 연결을 사용하도록 설계되었습니다.

W5500은 SPI 인터페이스를 통해 ESP32-S3에 연결되며, 하드웨어 TCP/IP 스택을 내장하여 TCP 및 UDP 등의 네트워크 통신을 지원합니다.

프로젝트 기술보고서에 따르면 Gateway Board에서 W5500은 SPI2 인터페이스에 연결되어 있습니다. 또한 RSTn 및 INTn 신호를 포함한 Board-Level Integration 코드가 제공됩니다.

W5500 Driver Integration

이번 openvela 이식에서는 W5500 드라이버를 새로 개발하지 않고, NuttX에 포함된 기존 드라이버를 재사용하는 방식을 선택했습니다.

NuttX Driver: drivers/net/w5500.c

Board Integration: somatosync_board_eth.c

Interface: SPI2, RSTn, INTn

Target Network Interface: eth0

프로젝트는 NuttX의 W5500 드라이버에 필요한 SPI 버스와 GPIO 제어 기능을 보드 수준에서 연결하는 코드를 제공합니다.

이를 통해 W5500을 openvela의 네트워크 인터페이스로 등록할 수 있도록 구성했습니다.

다만 현재 공개된 하드웨어 테스트에서는 Wi-Fi 드라이버의 오류로 인해 시스템이 중단되는 문제가 남아 있어, openvela 환경에서 W5500의 실제 Ethernet 데이터 송수신까지 검증되었다고 보기는 어렵습니다.

Role of W5500 in the System

Wireless-to-Ethernet Gateway

W5500은 ESP-NOW로 수집된 여러 센서 노드의 데이터를 외부 유선 네트워크로 전달하는 Ethernet 인터페이스를 제공합니다.

MACRAW-Based Ethernet Communication

W5500은 하드웨어 TCP/IP 엔진을 내장하고 있지만, SomatoSync의 NuttX 드라이버에서는 MACRAW 모드를 사용합니다.

MACRAW 모드에서는 W5500이 Ethernet 프레임의 송수신을 담당하며, TCP/IP 프로토콜 처리는 NuttX의 소프트웨어 네트워크 스택에서 수행됩니다.

이를 통해 SomatoSync는 ESP-NOW 기반 무선 센서 데이터 수집 기능과 Ethernet 네트워크 통신 기능을 구분하여 구성합니다.

따라서 W5500은 무선 웨어러블 센서 네트워크와 외부 분석 시스템을 연결하는 Gateway의 핵심 Ethernet 통신 부품으로 사용됩니다.

openvela Board Adaptation

이번 VelaMotion 프로젝트의 주요 개발 목표는 기존 ESP-IDF 기반 SomatoSync 시스템을 openvela 운영체제에서 사용할 수 있도록 두 종류의 자체 개발 보드에 대한 BSP를 구축하는 것입니다.

1. Gateway Board

Gateway Board는 ESP32-S3를 중심으로 W5500 Ethernet, PN5180 NFC, SSD1306 OLED, microSD 인터페이스를 포함합니다.

W5500은 SPI2, PN5180은 SPI3, OLED는 I2C0, microSD는 1-bit SDMMC 인터페이스를 사용하도록 구성되어 있습니다.

Gateway는 무선 센서 데이터를 수집하고 외부 네트워크로 전달하는 역할을 담당합니다.

2. Wearable Node Board

Wearable Node Board는 두 개의 ICM-42688 IMU 센서와 ESP32-S3 MCU를 기반으로 구성됩니다.

두 IMU는 독립된 SPI 버스를 사용하며, 각각의 전원 제어를 위한 LDO Enable 회로와 샘플링 시간 기준을 위한 외부 32.768 kHz 클록을 포함합니다.

또한 SSD1306 OLED, DRV2605 Haptic Driver, 배터리 전압 측정 및 전원 제어 회로가 포함되어 있습니다.

3. Board Support Package

프로젝트는 두 보드를 지원하기 위해 총 1,284줄, 16개 파일의 보드 지원 코드를 작성했습니다.

Gateway와 Wearable Node는 하나의 공통 보드 디렉터리를 사용하면서, 서로 다른 defconfig를 통해 필요한 주변장치를 선택합니다.

주요 개발 내용은 다음과 같습니다.

  • GPIO Pin Mapping 및 전원 시퀀스 설정
  • SPI, I2C, SDMMC 인터페이스 구성
  • W5500 Ethernet Board-Level Integration
  • SSD1306 OLED를 /dev/lcd0 장치로 등록
  • Gateway 및 Node용 별도 펌웨어 구성
  • openvela 빌드 시스템 통합

특히 W5500과 SSD1306은 기존 NuttX 드라이버를 활용하고, 커스텀 하드웨어에 필요한 보드 초기화 코드를 추가하는 방식으로 개발되었습니다.

Conclusion

VelaMotion(SomatoSync)은 12개의 웨어러블 IMU 노드를 통해 전신 움직임을 수집하고, 이를 재활 평가 및 동작 분석에 활용하도록 설계된 시스템입니다.

특히 자체 개발한 TDMA 및 AFH 기반 ESP-NOW 무선 통신과 WIZnet W5500 기반 Ethernet Gateway를 결합하여, 다수의 웨어러블 센서에서 수집한 데이터를 외부 ROS 2 분석 시스템으로 전달하는 Hybrid Network Architecture를 채택하고 있습니다.

이번 openvela AI Contest 2026 프로젝트에서는 Gateway와 Wearable Node를 위한 BSP를 개발하고, 두 펌웨어의 빌드와 실제 Gateway의 커널 부팅을 확인했습니다. 다만 W5500의 실제 통신 검증과 전체 애플리케이션 이식은 추가 작업이 필요한 상태입니다.

이 프로젝트는 W5500이 단순한 Ethernet 통신 예제를 넘어, 다중 웨어러블 센서와 외부 데이터 분석 시스템을 연결하는 Hybrid IoT Gateway에 활용될 수 있음을 보여주는 사례입니다.

References

Comments

Comments