상부삼조(相扶三組) - 나의 PT 파트너(My Personal Training Partner)
프로젝트 소개
프로젝트 명
자세 추정 가능 보호대를 활용한 손목 건강관리 시스템
프로젝트 기간
2022.3.31~2022.6.15
팀 소개
서울시립대학교 기계정보공학과 20174300** 사공*훈 (팀장)
서울시립대학교 기계정보공학과 20174300** 김*현
서울시립대학교 기계정보공학과 20174300** 박*경
서울시립대학교 기계정보공학과 20174300** 주*훈
서울시립대학교 기계정보공학과 20174300** 최*현
프로젝트 개요
프로젝트 요약
본 프로젝트는 압력센서(이하 FSR)와 관성측정장치(이하 IMU)를 결합한 손목 보호대를 이용하여 사용자가 올바른 자세로 운동하는 것을 돕는 것을 목표로 한다. 터치스크린 디스플레이(이하 UI)를 통해 사용자가 운동 루틴을 설정할 수 있도록 제공하고 장기적인 운동 기록 및 습관을 달력 형태로 쉽게 확인할 수 있도록 한다. 또한, 운동 중에는 FSR, IMU 센서를 이용하여 운동 시행 횟수와 손목 꺾임 정보를 UI에 실시간으로 제공한다. 마지막으로 손목 건강에 무리가 가는 자세가 감지되는 경우 스피커를 통해 경고 알람을 제공한다
프로젝트의 배경 및 기대효과
프로젝트 배경
최근 코로나19로 인해 헬스장을 등록하기에 어려운 상황이 많아졌고 집에서 가볍게 운동을 시작하는 사람의 수 증가했다.
이로인해 운동 정보를 제공하는 플랫폼이나 스마트워치 등과 같은 홈트레이닝 용품 시장이 활성화 되었다. 그러나 이런 운동 보조 기기들은 단순히 사용자가 직접 운동을 기록하거나 개수만이 기록된다.
프로젝트 기대 효과
본 프로젝트는 손목 보호대를 착용 후 운동을 수행하면 운동 시행 횟수 기록에 더해 사용자가 올바른 자세를 유지하도록 돕는 것을 추가 목표로 한다. 사용 시 사용자가 터치스크린 디스플레이를 통해 장기적인 운동 기록 및 습관을 달력 형태로 쉽게 확인할 수 있고, 운동 중에는 자동으로 손목 자세와 개수를 기록해주고 문제가 발생하면 사용자에게 알려 단기적인 피드백을 가능하게 한다.
프로젝트 개발 목표
기능성
IMU, FSR 센서로부터 측정된 데이터를 통해 사용자의 운동을 측정한다. 이때 측정값과 실제값의 차이가 없어야한다. 하지만 센서 데이터 특성상 노이즈(오차)로 인해 높은 신뢰성을 줄 수 없기 때문에 알고리즘을 통한 후처리를 통해 안정적인 값을 얻도록 한다. 또한 사용자의 운동을 측정하는데 다양성이 확보되어야 한다. 한 가지 운동만 측정하는 것이 아니라 여러 종류의 운동을 측정할 수 있도록 한다.
편의성
사용자가 운동을 할 때 직접 착용하는 보호대이므로 착용감이 중요하다. 따라서 무선 방식을 채용하여 거추장스러운 연결선을 제거하여 디스플레이에서 멀리 떨어져서 사용할 수 있고 자유로운 운동을 할 수 있게한다. 또한 제품을 경량화하여 운동시 편의성을 고려한다. 터치 디스플레이를 활용하여 사용자의 입력을 받기 때문에 사용자는 편리하게 조작을 할 수 있어야 한다. 프로그램 UI를 누구나 한눈에 이해하기 쉬운 방식으로 제작하여 직관적으로 이해하고 사용할 수 있도록 한다.
안전성
이 시스템은 기존의 손목 보호대 역할인 손목의 부하를 줄여줌과 동시에 위험을 경고해주는 시스템이어야 한다. 보호대에 부착된 센서를 통해 측정한 손목 꺾임 정도를 통해 손목의 위험한 상황을 알려 손목을 보호할 수 있어야 한다. 또한 제품의 안전성 측면에서 제품이 외부 충격이나 사용에 쉽게 망가지지 않아야 한다. 센서를 보호함과 동시에 정상적인 기능으로 동작해야 한다.
지속성
무선방식을 채용했기 때문에 필수적으로 손목 보호대에 배터리가 들어가게 된다. 따라서 기대 수명이 긴 리튬폴리머 배터리를 사용하여 배터리 교체 없이 오랜 기간동안 보호대를 사용할 수 있다. 또한 프로그램에 여러 가지 기능을 추가할 때에는 장갑의 구조나 펌웨어를 수정하지 않고 라즈베리파이의 프로그램을 업데이트하는 것만으로 달성할 수 있기 때문에 유지보수에 용이하다.
동작 시나리오
구현 내용
역할분담 및 추진체계
사공*훈(팀장) [IMU 센서 데이터 가공 및 전체 시스템 총괄 담당]
프로젝트 진행 상황을 총괄하며 부품 구매 및 관리, 팀 구성원 간 역할분담을 수행하고 본 시스템의 핵심 센서인 IMU 데이터 가공을 담당하여 팀의 중추 역할을 수행하였다. 또한, 두 개의 IMU 센서의 Roll, Pitch, Yaw 값을 통해 상대각도를 계산하여 이를 GUI에 시각화하여 손목의 각도를 실시간으로 확인할 수 있도록 구현하였다.
김*현 [pyqt기반 GUI 개발 및 DB 통합]
손목 건강관리 시스템 시각화를 위하여 pyqt를 기반으로 GUI 프로그램을 개발하였다. 사용자가 직관적으로 프로그램을 사용할 수 있도록 UI를 디자인 하고, 통신, DB 시스템과 GUI를 연동하는 역할을 수행하였다.
박*경 [하드웨어 제작 및 FSR 센서 데이터 가공]
본 프로젝트의 핵심 부품인 손목 보호대를 제작하였다. 보호대에 부착되는 센서를 보호하기 위하여 벨크로 구조를 고안하여 보호대와 결합하였으며, FSR 센서 데이터 가공을 담당하여 운동 시작 종료 트리거 역할과 맨몸 운동의 개수 알고리즘 개발을 수행하는데 편의성을 확보하였다.
주*훈 [DB 구조 설계 및 GUI 통합]
Sqlite를 기반으로 프로젝트 관리에 필요한 데이터베이스 구조를 설계하고 제작하였다. 터치디스플레이상에 출력되는 형태를 고려하여 테이블 구조를 설계하였다.
최*현 [통신 시스템 구축 및 회로 설계]
아두이노 회로 설계와 라즈베리파이와 아두이노간 BLE 통신 시스템을 구축하였다. IMU, FSR 센서 데이터를 라즈베리파이로 안정적으로 전송하도록 설계하여 운동개수 알고리즘과 손목각도를 계산하는데 정확도를 향상시키고 시간을 단축시켰다.
개발일정표
시스템 구성
본 시스템의 설계 구성도는 위와 같다. 기구 장치인 손목 보호대는 IMU, FSR 센서가 포함되는 입력장치와 통신장치인 Arduino Nano와 배터리로 구성된다. 이때 제어 장치인 라즈베리파이와 BLE 통신을 통해 센서 데이터를 전송하고 전송된 데이터는 내부 DB에 저장된다. 사용자는 디스플레이를 통해 운동 루틴을 설정하고 운동을 수행하여 운동 개수, 손목 각도 등의 정보를 확인할 수 있다. 또한 실시간 운동시에 스피커를 통하여 수행한 운동 개수를 알려주고, 적절하지 못한 자세나 운동 중 오랜 휴식을 취할경우 경로 음성을 출력해준다.
기구부 설계 및 구현
본 제품의 하드웨어에 해당하는 손목 보호대는 운동 시 손목 보호 역할을 하는 보호대 부분과 손목의 꺾임 각도와 운동 개수를 측정하는데 사용되는 센서부분으로 구성된다. 최종적으로 헬스용 손목 보호대에 아두이노 나노(IMU 센서 포함), Sparkfun IMU센서, FSR센서 1개와 배터리를 결합하여 다음과 같은 자세 추정 가능 보호대를 구현하였다.
기구부 설계
- 1. 손목보호대 센서 결합 설계
기구부의 초기 설계에는 미니 브레드 보드를 사용하여 회로를 구성하는 방안을 고려하였다. 그러나 개발과정에서 사용자 편의성을 고려하여 센서가 부착되는 회로 부분의 단순화를 진행하였고 그 결과 아래 그림과 같이 개선된 기구부 모델을 구성하였다. [[파일:]] 왼쪽 사진은 상대적으로 크기가 작은 미니 브레드 보드를 사용하여 회로를 구성한 결과이고, 오른쪽은 Flexible PCB기판을 활용하여 회로를 구성한 결과이다. 이때 Flexible PCB 기판은 아두이오 나노 사이즈와 동일하게 잘라내어 사용할 수 있고, 충격에도 강하다는 장점을 가지고있다.
- 2. 센서 보호 방안 설계
본 보호대는 사용자가 운동시에 착용하므로 역동적인 상황이나 충격이 가해져도 손상되지 않아야 한다. 또한 센서로 부터 사용자가 간섭받지 않도록 보호대와 센서를 확실하게 분리할 필요가 있다. 따라서 사용자와 직접적으로 접촉하는 보호대 부분과 센서 부분을 분리하였다. 이때 운동용 제품의 특성상 땀 등으로 오염이 되는 경우가 발생할 수 있으므로 벨크로 구조를 채택하여 센서회로 부분과 보호대 부분을 분리할 수 있도록 구현하였다. 결과적으로 아래 사진과 같은 보호대를 설계하였다.
기구부 구현
센서부 및 회로 설계 및 구현
본 제품의 핵심기능인 운동개수 알고리즘과 상대 각도를 계산하기 위해 IMU, FSR 센서를 포함하는 회로를 구성하고, 각각 데이터 처리를 진행하였다.
센서부 및 회로 설계
- 1. 회로 설계
아래는 초기 미니 브레드 보드를 사용할 당시 구성했던 회로 사진과 추후 개선된 회로 사진이다. [[파일: ]]
- 2. IMU 센서
- (a) Raw data
통신부 설계 및 구현
본 제품의 제어부는 배터리, 아두이노 나노, IMU, FSR 센서를 만능기판를 통해 아래와 같은 회로를 설계했다. 만능기판은 굽힘에 유연하고 크기를 원하는대로 조절할 수 있으며 가벼운 특성이 있어 본 프로젝트에서 유리하게 사용할 수 있다. BLE 블루투스 통신을 통하여 양손의 아두이노 나노에서 모인 센서 데이터를 라즈베리파이로 전송한다.
제어부 설계
- 1. 회로 구성
blah
- 2. 통신 구성?
blah
제어부 구현
- 1. 회로 구현
blahblah
- 2. 통신 구현
blahblah
- 3. 센서 데이터 1차 가공
blahblah여기 맞나
소프트웨어부 설계 및 구현
본 제품의 소프트웨어는 사용자가 운동 기록을 쉽게 확인할 수 있도록 디스플레이 GUI를 통하여 시각화를 제공한다. 센서 데이터를 통하여 운동 개수와 손목 각도를 측정하는 알고리즘을 포함한다. 또한 센서 데이터와 사용자의 운동 기록을 관리하기 위한 내부 DB를 포함한다.
센서 데이터 가공
9축 IMU 데이터를 가공하여 Roll, Pitch, Yaw 값을 구함
두 개의 IMU의 roll, pitch, yaw 값을 사용하여 손목의 상대각도 측정
운동 개수 알고리즘
운동 종류 별 각기 다른 알고리즘
데이터베이스
sqlite를 사용하여 내부 데이터베이스 설계
디스플레이 설계 및 구현
pyqt와 터치스크린 디스플레이 사용
프로젝트 결과
최종 결과물
결과물 사진 혹은 시연 영상 등