Skip to content

Latest commit

 

History

History
163 lines (121 loc) · 6.2 KB

README.md

File metadata and controls

163 lines (121 loc) · 6.2 KB

Hurotics Internship Repo - Gait cycle analysis

Introduction

➡️ 현장실습 인턴십
📆 2023.12.22. ~ 2024.02.29.
🗨️ 허벅지 단일 IMU를 이용한 Gait Cycle 분석 및 시각화

Abstract


  • 허벅지 단일 IMU 로부터, thigh angle, angular velocity 를 활용해 Phase portrait 를 시각화하여 사용자 스스로의 보행분석 시각화 및 패턴 파악에 활용
  • 도출된 Phase portrait 를 통해, 최종적으로 Step VelocityStep Length 파악

Baseline - Reference

Methods

1. Bluetooth 통신을 위한 데이터 송수신

  • IMU 센서를 통한 RS232 통신을 통해 받은 데이터를 블루투스 송신기(ST1000) 에서 SPP 방식 (Serial Port Protocol) 을 통해 수신기(ST1000D) 가 받아 PC 의 Python 으로 데이터 처리

2. Bluetooth 통신을 위한 데이터 송수신

Fig 1) Thigh angle 측정 Fig 2) Thigh angular velocity 측정
  • Quaternion 방식과 Euler 방식 중에서, 논문에서의 Euler 각도방식 적용

  • 허벅지의 앞, 옆 모두 호환하기 위해 Roll, Pitch 방향의 중간값을 사용

  • angular velocity 는 얻어진 angle 의 미분을 통해 계산

3. Phase Portrait 를 이용한 Gait analysis


  • 얻어진 angle 과 angular velocity 를 각각 x,y 축으로 하여 만들어진 Phase portrait 를 정규화하여 원처럼 만들어 시각화하고, 그 반지름을 통해 Step Velocity 를 얻는 것이 목적
  • Raw 데이터에서 우선은 Low-pass Filter (Butterworth 필터) 를 적용하여 이상치 제거
  • 정규화 방식은 논문 2번째의 baseline 를 참조하여 적용

4. 주기 측정 방식


  • raw data 의 이상치를 제거한 filtered data 로 만들어진 phase portrait 를 활용하여 현재 각도가 얼마를 이루는지 판단
  • 각도가 30 ≤ $\theta$ ≤ 330 일 때 (이상치 고려), 한 주기 완료

5. Velocity, Step Length 측정


  • 산점도 그래프에서의 x,y 좌표를 이용한 한 주기에서의 $r$ (반지름 = L2 norm) 평균값 구하기
  • 산출된 $r$을 이용하여 Step Velocity = $c_1 \cdot r+c_2$ 도출
  • 주기시간 $T$ 를 이용하여 Step Length = $T \cdot v$ 로 도출

Resulsts

Scatter plot graph of one cycle

Fig 1> $v$=0.5 m/s Fig 2> $v$=0.8 m/s Fig 3> $v$=1.1 m/s
Fig 4> $v$=1.4 m/s Fig 5> $v$=1.7 m/s Fig 4> $v$=2.0 m/s

Linear Regression


# Linear Regression func.

def step_velocity(r):
    a1 = 0.0081648 # 선형회귀 기울기
    b1 = -0.1885588449802471 # 선형회귀 절편
    return a1*r+b1

def step_length(step_velocity, step_time):
    return step_velocity*step_time

Preview

☑️ 실제 IMU를 착용한 채 걸었을 때, 실시간으로 Step Velocity, Step Length 및 Phase portrait 측정 가능

Real-time analysis - Phase portrait

☑️ Command Line 출력값
  - period*0.0001 -> cycle 별 시간
  - avg_r -> phase portrait 의 평균 반지름
  - step_vel -> Step Velocity [m/s]
  - step_len -> Step Length [m/s]

Real-time analysis - Scatter Plot

☑️ Command Line 출력값
  - period*0.0001 -> cycle 별 시간
  - avg_r -> phase portrait 의 평균 반지름
  - step_vel -> Step Velocity [m/s]
  - step_len -> Step Length [m/s]