➡️ 현장실습 인턴십
📆 2023.12.22. ~ 2024.02.29.
🗨️ 허벅지 단일 IMU를 이용한 Gait Cycle 분석 및 시각화
- 허벅지 단일 IMU 로부터, thigh angle, angular velocity 를 활용해 Phase portrait 를 시각화하여 사용자 스스로의 보행분석 시각화 및 패턴 파악에 활용
- 도출된 Phase portrait 를 통해, 최종적으로
Step Velocity
와Step Length
파악
- Real-Time Continuous Gait Phase and Speed Estimation from a Single Sensor (2017, IEEE, Sensors)
- Estimation of Walking Speed and Its Spatiotemporal Determinants Using a Single Inertial Sensor Worn on the Thigh: From Healthy to Hemiparetic Walking (2021, Sensors)
- Walking-Speed-Adaptive Gait Phase Estimation for Wearable Robots (Sensors, 2023)
- IMU 센서를 통한 RS232 통신을 통해 받은 데이터를 블루투스 송신기(ST1000) 에서 SPP 방식 (Serial Port Protocol) 을 통해 수신기(ST1000D) 가 받아 PC 의 Python 으로 데이터 처리
Fig 1) Thigh angle 측정 | Fig 2) Thigh angular velocity 측정 |
-
Quaternion 방식과 Euler 방식 중에서, 논문에서의 Euler 각도방식 적용
-
허벅지의 앞, 옆 모두 호환하기 위해 Roll, Pitch 방향의 중간값을 사용
-
angular velocity 는 얻어진 angle 의 미분을 통해 계산
- 얻어진 angle 과 angular velocity 를 각각 x,y 축으로 하여 만들어진 Phase portrait 를 정규화하여 원처럼 만들어 시각화하고, 그 반지름을 통해 Step Velocity 를 얻는 것이 목적
- Raw 데이터에서 우선은 Low-pass Filter (Butterworth 필터) 를 적용하여 이상치 제거
- 정규화 방식은 논문 2번째의 baseline 를 참조하여 적용
- raw data 의 이상치를 제거한 filtered data 로 만들어진 phase portrait 를 활용하여 현재 각도가 얼마를 이루는지 판단
- 각도가 30 ≤
$\theta$ ≤ 330 일 때 (이상치 고려), 한 주기 완료
- 산점도 그래프에서의 x,y 좌표를 이용한 한 주기에서의
$r$ (반지름 = L2 norm) 평균값 구하기 - 산출된
$r$ 을 이용하여Step Velocity
=$c_1 \cdot r+c_2$ 도출 - 주기시간
$T$ 를 이용하여Step Length
=$T \cdot v$ 로 도출
Fig 1> |
Fig 2> |
Fig 3> |
Fig 4> |
Fig 5> |
Fig 4> |
# 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
☑️ 실제 IMU를 착용한 채 걸었을 때, 실시간으로 Step Velocity, Step Length 및 Phase portrait 측정 가능
☑️ Command Line 출력값
- period*0.0001 -> cycle 별 시간
- avg_r -> phase portrait 의 평균 반지름
- step_vel -> Step Velocity [m/s]
- step_len -> Step Length [m/s]
☑️ Command Line 출력값
- period*0.0001 -> cycle 별 시간
- avg_r -> phase portrait 의 평균 반지름
- step_vel -> Step Velocity [m/s]
- step_len -> Step Length [m/s]