"1조 - 그냥책"의 두 판 사이의 차이

MIE capstone
이동: 둘러보기, 검색
(이론적 계산 및 시뮬레이션)
(이론적 계산 및 시뮬레이션)
661번째 줄: 661번째 줄:
  
 
*Fillet의 반경이 너무 커지면 변속 기어와 Stop 기어가 맞물리는 면의 면적이 많이 작아진다. 면적이 작아지면 변속 후 맞물린 기어가 스프링 장력으로 인해 정 위치에서 이탈할 가능성이 있다.
 
*Fillet의 반경이 너무 커지면 변속 기어와 Stop 기어가 맞물리는 면의 면적이 많이 작아진다. 면적이 작아지면 변속 후 맞물린 기어가 스프링 장력으로 인해 정 위치에서 이탈할 가능성이 있다.
 +
  
 
  3. Fillet3의 반경
 
  3. Fillet3의 반경
667번째 줄: 668번째 줄:
  
 
*Fillet3의 반경이 너무 커지면 변속 시 변속 기어와의 간섭이 발생한다.
 
*Fillet3의 반경이 너무 커지면 변속 시 변속 기어와의 간섭이 발생한다.
 +
  
 
  4. 가로 세로 5cm  기어 박스의 가로 세로 크기  가로 세로 10cm
 
  4. 가로 세로 5cm  기어 박스의 가로 세로 크기  가로 세로 10cm
 +
 
*기어 박스의 크기가 최소한 두 개의 서보 모터를 장착할 수 있는 크기여야 한다.
 
*기어 박스의 크기가 최소한 두 개의 서보 모터를 장착할 수 있는 크기여야 한다.
 
*기어 박스의 크기가 탑승자의 주행을 방해하지 않을 정도의 크기여야만 한다.
 
*기어 박스의 크기가 탑승자의 주행을 방해하지 않을 정도의 크기여야만 한다.
 +
  
 
  5. 드레일러 복귀력  스프링 장력의 크기  227.6N
 
  5. 드레일러 복귀력  스프링 장력의 크기  227.6N
  
 
  6. 연속 구동 가능 시간  4시간
 
  6. 연속 구동 가능 시간  4시간
 +
 
*탑승자가 충분히 주행할 수 있는 구동 시간을 확보해야 한다.
 
*탑승자가 충분히 주행할 수 있는 구동 시간을 확보해야 한다.
  

2018년 12월 18일 (화) 05:58 판

프로젝트 개요

기술개발 과제

국문 : 자전거를 위한 자동변속기

영문 : Auto Transmission for Bicycle

과제 팀명

그냥 책

지도교수

성민영 교수님

개발기간

2018년 9월 ~ 2018년 12월 (총 4개월)

구성원 소개

서울시립대학교 기계정보공학과 20124300** 오** (팀장)

서울시립대학교 기계정보공학과 20124300** 안**

서울시립대학교 기계정보공학과 20124300** 박**

서울시립대학교 기계정보공학과 20124300** 최**

서울시립대학교 기계정보공학과 20134300** 조**

서론

개발 과제의 개요

개발 과제 요약

자동으로 자전거의 기어를 변속하는 자동 변속기를 개발한다. 사람이 직접 제어하던 종래의 자동 변속기와는 다르게 이 변속기는 자전거의 상태를 기반으로 변속을 자동으로 수행하며, 여기에는 운전자가 가속을 원하는 상황인지 파악하기 위한 페달 압력 측정 기능 노면의 오르막 및 내리막을 파악하기 위한 경사 파악 기능, 자전거의 속도를 파악하기 위한 속도 감지 기능이 필요하며 이러한 기능은 각 센서를 자전거의 적절한 위치에 부착함으로써 구현된다. 변속의 경우 측정된 센서 값들을 이용하여 일련의 알고리즘을 거쳐 목적 기어비를 도출할 수 있으며, 모터를 이용하여 기어를 조작하게 된다. 이러한 메커니즘은 일반적인 자전거 변속기에 쉽게 적용될 수 있는 구조로 제작하여 대부분의 자전거에 쉽게 적용할 수 있게 하는 것을 목적으로 하며, 이 장치를 통해 운전자는 변속에 대해 신경을 쓸 필요가 없으므로 운행 내내 전방을 주시할 수 있어 안전에 대한 효과를 얻을 수 있게 된다.


개발 과제의 배경 및 효과

자전거는 가볍고 다루기 쉬운 운송수단으로써 다양한 노면에서 주행할 수 있으며, 크기가 작기 때문에 넓은 도로를 필요로 하지 않는다. 운전자가 페달을 밟아 크랭크에 토크를 부여하면 이 힘이 기어와 체인을 통해 전달되어 바퀴에 힘을 전달함으로써 주행하는 인력을 사용하는 장치로 속도 또한 빠르기 때문에 현재 각광받는 운송 수단으로 부상하고 있다. 전국에 상당히 많은 무인 자전거 대여소가 존재하여, 각 대여소에서 자전거를 대여하여 다른 대여소에 반납하는 방식으로 인프라가 구축되어 상당히 많은 사용자들이 이용하고 있다. 대부분의 자전거 변속기는 와이어가 부착된 수동 조작 장치를 운전자가 직접 조작하는 방식으로, 변속 장치를 조작하면 와이어에 장력이 부여되고, 이 장력이 자전거의 체인을 감싸고 있는 가이드를 조작하여 체인이 걸려있는 기어를 바꾸는 방식으로 작동된다. 이 가이드는 페달 축과 뒷바퀴 축에 존재하기 때문에 두 기어의 조합에 따라 기어비가 결정되며, 사람이 가하는 토크가 이 회전비에 반비례하여 전달된다. 자전거가 주행하기 위한 힘은 기어비에 반비례하며 사람이 가하하는 힘에 비례하므로, 경사를 올라가는 경우 기어비를 낮추어 운전자에게 요구하는 힘을 줄일 수 있다. 반대로 내려가는 경우, 운전자가 자전거에 속도를 증가시키기 위해서는 바퀴의 회전 속도보다 빠른 속도로 페달을 밟아야 하는데, 기어비를 높여 회전비를 증가시킨다면 쉽게 이를 달성할 수 있게 된다. 각 상황에 따른 기어비 판단은 개인에 따라 편차가 있으나 공통적으로 힘이 드는 노면에서는 기어를 낮추고 속도가 빠른 상황에서는 기어비를 높이는 방식을 사용하기 때문에 사용자에 대한 특성을 정의하는 상수를 도입하여 구현하는 것은 가능하다고 판단된다. 이러한 장치를 적용하게 된다면 안전 측면에서 긍정적인 효과를 얻을 수 있을 것으로 기대된다. 초보적인 자전거 운전자는 기어 조작을 능숙하게 하지 못하며, 대부분의 자전거 변속 장치는 손을 이용한 조작을 요구하기 때문에 조작에 집중하다 운전 부주의로 인해 사고를 당할 수 있다. 자동 변속기를 이용한다면 운전자는 변속에 대해 신경 쓸 필요가 없으므로 안전한 주행이 가능할 것이다. 전자장치를 자전거에 부착한다는 점에서도 장점이 존재하는데, 사용자의 변속 패턴을 인식하여 개인에게 최적화 된 패턴을 도출할 수 있을 것이다. 또한 플랫폼이 부착되었기 때문에 여기에 응용 프로그램을 추가하여 주행 상태 모니터링 등의 편의 기능을 구현할 수 있으며 건강을 위한 정보 등도 저장할 수 있을 것이다. 나아가 통신을 이용한 멀티 플랫폼 환경을 구축할 수도 있으므로 Smart 한 자전거가 되는 인프라를 구축하는 첫걸음이 될 것이다.


개발 과제의 목표와 내용

  • 자전거 동체와 페달 및 바퀴에 센서들을 부착하고, 각 측정값을 이용하여 자전거의 상태를 도출하는 관계식 개발
  • CPU와 통신 가능한 애플리케이션을 제작하여 사용하기 간편한 인터페이스 구축
  • 자전거 상태에 대한 기어비 도출 알고리즘 수립
  • (추가목표) 자전거 상태에 대한 변속 데이터를 수집 및 학습하여 자전거 상태에 대한 목적 기어비를 계산하는 변속 관계식 수립
  • 널리 사용할 수 있도록 종래의 변속 장치에 쉽게 적용할 수 있는 구조로 변속기 개발
  • 내구성을 보장하기 위한 응력 분산 설계 적용


관련 기술의 현황

State of art

변속 타이밍을 위한 센서 기술

Jb image 1 stateofart.PNG

변속 시점을 정하기 위해 자전거의 상태를 파악할 수 있는 센서들이 요구된다. 자전거의 상태에는 노면의 경사, 자전거의 속력, 페달에 가해지는 힘이 포함되며, 노면의 경사는 각도를 측정하는 IMU센서를 이용하여, 속력은 바퀴에 자석을 부착하고 몸체에 자기력 스위치를 부착하여 Encoder를 구현하여 계산할 수 있으며, 페달에 가해지는 압력은 압력 센서를 부착하여 측정할 수 있다.

  • IMU 센서
IMU는 Inertial Measurement Unit의 약자로 가속도계와 회존 속도계 및 자력계를 조합하여 각도 비율을 측정한다. 본 프로젝트에서는 IMU 센서를 자전거 본체에 부착하여 자전거가 주행하는 노면의 각도와 자전거의 속도를 계산하고 이 정보를 변속을 위한 변수로 사용한다.
  • 압력 센서
압력 센서는 장치에 가해지고 있는 압력, 즉 수직 응력을 계산한다. 본 프로젝트에서는 Load Cell이라는 형태의 센서를 이용하는데, 이 장치는 다양한 형태가 존재하며 그중 한 가지 형태인 Strain Gage Load Cell을 이용하여 응력을 측정할 수 있다. 이 센서를 페달에 장착하여 해당 위치에서의 압력을 측정한다면 동력의 입력 축에 가해지는 토크를 계산할 수 있으며, 이 힘은 운전자가 자전거에 가하는 힘이기 때문에 변속을 위한 변수로 사용된다.
  • 속도 측정 센서
속도 측정의 경우 Rotary Encoder를 사용하는 방법이 가장 일반적이나, 자전거의 경우 이러한 장치를 부착할 위치를 선정하기 어려우며, 부착하더라도 바퀴의 상태에 따라 안정적인 측정이 어려울 수 있다. 따라서 바퀴에 자석을 부착하고, 프레임에 자기력 스위치를 부착하여 Rotary Encoder를 구현한다. 이를 통해 자전거의 진행 속력을 계산할 수 있으며, 이를 변속을 위한 변수로 사용한다.


머신러닝

머신러닝은 인공지능 분야의 기술 중 하나로 데이터를 분석하여 특성을 추출하고, 추출한 특성을 이용하여 변수에 대한 결과를 예측하는 방법이다. 핵심은 Feature라고 불리는 변수와 결과값의 상관관계를 도출하는 것으로 이를 위하여 데이터 수집이 요구된다. 데이터를 수집하기 위하여 제어 인터페이스를 구축하여 수동 변속을 활성화시키고 주행 데이터를 수집한 뒤, 이 데이터를 적절한 모델을 통해 학습하여 패턴을 학습한다. 다만 변속에 대한 전체적인 경향을 파악하는 것이 주 목적이기 때문에 Overfitting을 방지하기 위한 단순한 모델이 요구되며, 데이터의 가공이 중요하게 작용한다. 나아가 충분한 데이터가 수집된다면 운전자 개개인에 대한 변속 패턴의 차이를 나타내는 변수를 추가하여 추가적인 학습 없이 사용자의 간단한 특성만을 이용하여 개개인에게 맞는 변속 패턴을 제공할 수 있을 것이다.


기술 로드맵

Jb image 2 loadmap.PNG

기술 개발은 크게 Actuator에 해당하는 변속기, 알고리즘에 해당하는 인공지능 부분, 정보 수집 기능에 해당하는 센싱 기술로 나누어 개발한다. 본 종합설계 기간에 해당하는 단기적인 목표는 앞에서 제시한 과제의 목표를 충족하는 것이며, 장기적으로는 자전거를 위한 모듈식 통합 제어 솔루션을 제공하는 것을 목표로 한다. 변속기의 단기적인 목표는 와이어를 이용하는 변속기에 대해 모터를 이용해 변속이 가능한 프로토타입 변속기를 제작하는 것으로 정확한 변속이 가능한지에 대해 중점을 둔다. 이는 기능 자체만을 목적으로 둔 것으로, 기존의 부품에 의존할 수 있으며 크기의 경우 상관하지 않으며 내구도의 경우 재료가 아닌 구조적인 내구도에 대해서만 목적을 둔다. 장기적으로 갈수록 성능과 효율성에 중점을 두며, 최종적인 목표로는 저전력 소형 변속기를 제작하는 것을 목적으로 한다. 변속 관계식에 해당하는 인공지능의 경우 단기적으로는 직관에 바탕을 둔 관계식을 수립하고, 나아가 데이터를 학습하여 이 관계식을 보완하는 것에 중점을 둔다. 부가 기능은 존재하지 않으며 변수에는 자전거의 상태, 출력에는 기어의 단수를 제외한 다른 항목은 해당되지 않는다. 초기 개발이 완료된다면 더 다양한 데이터를 처리하는 통합 플랫폼 지원 인공지능으로 확장되며, 단지 기어 변속이 아닌 사용자의 이용 시간이나 운동 데이터 수집, 혹은 GPS 등을 이용한 주행 경로 저장 등이 기능도 지원하도록 한다. 이를 통해 변속기를 넘어선 스마트 변속기를 제작할 수 있으며 이는 자전거를 위한 통합 플랫폼을 위한 소프트웨어가 된다. 센싱 기술의 경우 초기 목표는 안정적인 데이터 수집이다. 각 센서들에서 측정된 데이터를 필터링하여 안정적인 데이터를 제공하도록 하며 이를 통해 안정적인 알고리즘을 제공할 수 있도록 한다. 초기 개발에는 3종류의 센서만이 사용되나 후기에는 인공지능의 확장에 맞추어 각종 센서를 추가하여 인공지능에 교통 정보나 운전자의 정보까지 제공할 수 있도록 한다.


특허조사

Jb image 3 patent.PNG
Jb image 4 patent.PNG


특허전략

앞에서 본 프로젝트에서 제작하고자 하는 변속기와 유사한 특성을 갖는 두 개의 특허, ‘자전거용 자동변속장치 (출원 번호 10-2011-0092515)’와 ‘전자 프로세서를 이용한 자전거용 전동 변속기 (출원 번호 10-2015-0148573)’를 확인하였다. 이 특허들의 특징을 파악하고 본 프로젝트와의 차이점을 확인하여 특허 취득의 가능성을 높인다.

  • 자전거용 자동변속장치 (출원 번호 10-2011-0092515)
이 특허의 경우, 기존 자전거에 부착함으로써 자동 변속이 가능하게 한다. 다만, 기계적인 방법으로 변속이 되도록 하고, 체인에 걸리는 장력을 이용하여 변속하는 방식이다. 하지만 본 프로젝트에서는 전자식 변속을 이용하고, 언덕의 경사도, 페달에 걸리는 압력 및 자전거의 속도를 이용하여 탑승자의 현재 상태를 고려하기 때문에 이 특허와는 명확한 차이가 있다고 판단된다.
  • 전자 프로세서를 이용한 자전거용 전동 변속기 (출원 번호 10-2015-0148573)
위의 특허와 달리, 이 특허는 본 프로젝트와 유사한 전자식 자동 변속기이다. 다만, 이 특허에서는 자동 변속에 도로의 경사도만을 이용한다. 본 프로젝트에서는 도로의 경사도뿐만 아니라, 탑승자가 페달에 가하는 압력과 자전거의 속도도 이용하여 종합적으로 변속 타이밍을 계산한다. 특허의 유사성이 다소 존재하나, 이 특허보다 변속 타이밍을 계산하는데 이용되는 정보가 많은 점을 활용해야 할 것으로 판단된다. 특히, 본 프로젝트에서는 이 특허에서는 사용되지 않은 인공지능 기술을 활용하여 탑승자 개개인의 특성에 맞추어 변속을 하게 되므로, 탑승자를 고려한 변속이라는 점에서 큰 차이가 있다고 판단된다.
Jb image 5 patent analysis.PNG


당 개발과제의 수준 및 위치

기존의 자전거 자동 변속기는 단순히 기울기 혹은 토크만을 이용하여 변속을 하며 복합적인 연산 없이 구동되며, 심지어 토크를 이용한 변속기는 무게 또한 무겁다. 하지만 본 개발과제에서 개발하는 자동 변속기는 토크, 기울기, 가속도 등을 이용한 복합적 판단으로 자동변속을 수행하며 머신러닝을 이용해 사용자의 주행 습관, 신체 조건에 맞춰 최적화가 가능하다. 특히, 기계적 자동 변속기 대비 매우 가볍다는 장점이 있으며 모듈 구조로 장착, 탈착이 간편하며, 추가적인 기어박스 설계로 모터의 전력 소모를 줄이고 수명을 향상시킬 수 있다. 결과적으로 본 개발과제의 제품은 기존의 방식들의 장점만을 합치며, 최신 기술 중 하나인 머신 러닝을 통한 최적화로 앞으로 자전거 자동변속기가 어떻게 발전해야 할지를 보여주는 사례가 될 수 있다.


관련 시장에 대한 분석

경쟁제품 조사 비교

Jb image 6 compatitor.PNG

시장에 진출해있는 기존 제품들 중 인지도가 높은 두 개의 제품을 선정하였다. 이 두 제품의 공통적인 특징은 기존의 자전거에 부착하여 사용하는 제품이라는 점으로 각 부품이 위치에 알맞게 모듈식으로 구성되어 있다. 따라서 기존의 자전거에 그대로 사용할 수 있다는 편의성이 제공된다. 다른 공통점은 변속 인터페이스를 제공한다는 점이다. 사용자에게 편리한 인터페이스를 제공함으로써 사용이 용이하며 자전거 본연의 기능을 위해 경량화를, 이중 오른쪽 제품의 경우 주행의 안전성을 위해 배터리의 탈부착을 제공한다. 그러나 두 제품의 공통적인 단점은 매우 고가의 장비라는 것이다. 따라서 경량화 및 모듈화에서 단점이 존재할 것이나 가격 경쟁성을 확보한다면 시장에서 우위를 점할 수 있을 것이라 생각된다. 또한 차별화되는 점으로 인공지능을 제공하여 별도의 관리 없이 필요한 기어로 변속하도록 한다. 이러한 기술적 차별성이 충분히 확보된다면 시장에서 경쟁할 수 있다고 생각된다.


마케팅 전략

SWOT 분석

Jb image 7 swot.PNG


  • Strength-Opportunity Strategy
현재 시중에는 전자식 수동 변속기는 존재하나 자동 변속기의 경우 찾아볼 수 없다. 아직 경쟁할 상대가 없는 점을 기회로 삼고 미리 시장을 선점하고, 특히 가볍고 설치가 간단하다는 점을 강조하면 소비자들의 이목을 끄는 것이 가능할 것으로 생각된다.
꾸준히 자전거 이용자의 수가 늘어나고 있다. 이렇게 소비자가 증가하는 상황에서 최근 인공지능에 대한 관심이 높아지고 있는 것을 이용하여 탑승자의 상태를 고려한 스마트한 변속기라는 점을 강조하여 소비자에게 어필한다.
Jb image 8 user.PNG


  • Strength-Threat Strategy
현재 서울시에서는 공공자전거 서비스인 ‘따릉이’를 운영하고 있다. 기존 자전거의 개조 없이 간단히 장착하는 것으로 자동 변속을 가능하게 하므로 이러한 서비스와의 연계가 용이할 것으로 생각되고, 이를 이용한다면 소비자들에게 널리 알릴 수 있는 기회로 삼을 수 있다.
기존에는 없었던 전자식 변속기 관련 사업이 증가하고 있는 추세이다. 하지만 대부분 수동 변속기이고, 자동 변속과 인공지능을 이용한 점을 강조하면 이러한 위협을 피할 수 있을 것으로 생각된다.


  • Weakness-Opportunity Strategy
본 프로젝트에서 개발하려 하는 변속기는 기존 자전거에 쉽게 장착하는 것으로 자동 변속을 가능하게 하지만, 추가적인 비용이 든다는 단점이 있다. 이를 위해 제품 생산에 있어 소비자가 부담을 느끼지 않을 가격대의 조사가 필요하고, 이를 바탕으로 설계를 할 필요가 있다. 그리고 생산에 들어가고 대량 생산이 이루어진다면, 생산 단가를 낮추어 단가를 절감할 수 있다.
기존 자전거에 비하면 회로 및 센서 등이 장착되므로 소비자가 직접 유지·보수하는데 어려움이 있고, 특히 먼지나 이물질에 의한 잔 고장에 취약한 점이 있다. 이러한 문제는 외부 디자인을 철저하게 설계함으로써 잔 고장을 줄일 수 있도록 해야 한다고 생각된다. 그리고 유지·보수의 문제에 있어서는 유지·보수에 관련된 매뉴얼 등을 소비자가 이해하기 쉽도록 작성하여 소비자가 제품을 구입할 때 같이 제공하는 것이 필요하다.


  • Weakness-Threat Strategy
기존 자전거 구입 이외에 드는 추가적인 비용은 생산 단가를 낮추더라도 모든 소비자들을 만족시키는 것은 힘들 것으로 생각된다. 이를 위해 소비자에게 전자식 자동 변속기의 필요성을 알리고, 제품에 회의적인 소비자들을 이해시키는 과정이 필요하다. 이를 통해 소비자의 인식을 개선할 수 있다면, 제품의 판매가 늘어나게 되고 제품의 단가를 절감할 수 있을 것으로 생각된다.
전자식 자동 변속기는 기존 자전거에 비해 먼지나 이물질에 의한 잔고장이 많고, 유지·보수가 번거롭다. 이는 Weakness-Opportunity Strategy에서 언급한 바와 같이 설계의 개선과 매뉴얼 등의 제작으로 보완할 수 있다. 이에 따라 다른 전자식 변속기와 비교해서 잔고장이 적고 유지·보수가 간편한 점을 들어 추후에 생길 경쟁자들의 위협을 피할 수 있다. 더불어 소비자들의 인식도 개선할 수 있어 시장의 확대를 불러올 수 있다.


GE 맥킨지 매트릭스 분석

Jb image 9 matrix.PNG

GE 맥킨지 매트릭스는 사업 강점과 산업 매력도를 바탕으로 만들어진다. 아이템의 외적 및 내적 요인을 모두 고려하여 평가한다. 이 관점에 따라 아이템을 분석하고자 한다.

Jb image 10 market.PNG

추가적으로 B2C 사업뿐만 아니라 B2B 사업도 노려볼 수 있을 것이다. 특히 따릉이의 올해 사업개요를 살펴보면 안전경영이 눈에 띈다. 즉, 따릉이를 이용하는 시민의 안전을 우선한다는 것인데 자동변속기를 도입하게 된다면 잘못된 변속으로 인한 사고나, 무리한 기어조작으로 인한 고장 등을 해결할 수 있을 것이다. 이를 잘 어필하여 B2B 사업에 먼저 진출한다면 이를 마케팅에 이용하여 좀 더 수월하게 B2C 시장 공략이 가능할 것이다.


  • 외적 요인
우선 우리나라의 자전거 보급률을 살펴보면 다른 나라에 비해 현저히 낮은 것을 알 수 있다. 자전거 관련 인프라와 관련 법규 제정이 다른 나라에 비해 늦었기 때문인데 정부 정책 기조 상 자전거 이용 활성화가 활발히 이루어 질 것이다. 이에 따라 자전거뿐만 아니라 에프터 마켓 시장도 자연스레 관심도가 증가할 것이다. 하지만 ‘시마노’라는 자전거 부품업체의 전 세계 시장점유율이 85%가 넘기 때문에 이를 어떻게 돌파하는지가 관건일 것이다. 따라서 우리나라에서 ‘자전거 자동변속기’의 산업적 매력도는 중간정도로 볼 수 있다.
Jb image 11.PNG


  • 내적 요인
앞선 경쟁제품 분석을 통해 우리가 개발하고자 하는 ‘자전거 자동변속기’의 장점은 다음과 같다.‘
  • 쉬운 설치
  • 저렴한 가격
  • 딥러닝을 통해 환경에 맞는 최적화된 자동변속
이러한 요인을 고려해 봤을 때 경쟁 제품대비 충분한 경쟁력이 있다고 전망할 수 있다. 하지만 브랜드 인지도 즉, 시장 인지도 면에서 봤을 때 ‘시마노’라는 기업이 월등하게 우수하다. 따라서 이를 극복할 방안을 생각해야 될 것이다. 이러한 상황을 종합적으로 고려해 봤을 때 사업 강점 또한 중간으로 평가할 수 있다.


  • 종합 평가
외적 요소와 내적 요소 모두 고려하면 위의 매트릭스에서 우리의 제품 포지션은 프라임 정도에 위치한다. 이는 매력도 면에서 중간정도이며 이를 올리기 위해서는 자전거 시장 상황이 좋아져야 하는 불가항력적 요소가 있으며 나아가 시장인지도가 전무하기 때문에 고객행동분석 구조에 따라 마케팅 자극이 필요하며 앞서 언급한 따릉이와의 제휴를 통해 체험형 마케팅이 적절할 것으로 보인다.


마케팅 믹스 전략

Jb image 12 marketing mix.PNG

마케팅에서 말하는 4P(Product, Place, Price, Promotion)은 고전적인 방식이지만 이를 잘 조합하면 마케팅효과가 극대화된다. 이를 마케팅 믹스라고 하며 이러한 관점에서 제품을 분석해보고자 한다.

Product : 경쟁사 대비 첨단기능(딥러닝) 접목
Price : 상대적으로 저렴한 가격
Place : 비용 저감을 위해 온라인 및 모바일 마켓 운영, B2B 채널도 동시에 운영
Promotion : 체험형 마케팅을 통해 고객이 직접 체험하고 편리하다는 것을 적극 홍보
Jb image 13 marketing mix.PNG

위의 사진은 전략의 조합을 나타낸 그림으로 (고품질-고가격), (고품질-대등가격), (고품질-저가격), (대등품질-고가격), (대등품질-대등가격), (대등품질-저가격), (저품질-저가격)의 7 가지가 존재한다. 본 프로젝트를 진행함에 있어 Market Share와 인지도를 높이기 위해 (고품질-저가격) 정책으로 가려고 한다. 하지만 이는 제품이 강력한 원가 우위를 지니거나 이윤을 희생해야하는 방법에 해당하므로 도전 기업이 한시적으로 사용하는 방법이다. 따라서 우선 인지도를 높인 후 수익을 위해 다른 전략을 구사하는 것이 바람직해 보인다. 장기적으로는 고품질-대등가격 전략으로 수정해 원가우위를 확보하면서 이익을 추구해야 할 것이다.

개발과제의 기대효과

기술적 기대효과

변속기에 이용되는 기술의 변화

현재 이용되는 대부분의 자전거는 기계적인 장치만을 이용한 변속기가 장착되어 있지만, 앞으로는 인공지능 등 최신 기술이 접목되어 스마트한 변속기로 변화할 것으로 기대된다. 이렇게 변속기가 발전한다면 지금보다 탑승자의 안전 및 원활한 주행을 도울 수 있을 것으로 생각되며 자전거뿐만 아니라 다른 분야에도 응용할 수 있을 것이라 생각된다.

다양한 센서를 이용한 정보수집과 적용

해당 프로젝트에서 사용되는 다양한 센서들은 많은 정보를 전달한다. 이번 프로젝트를 진행할 때 이러한 센서들의 효율적인 정보 수집 방법과 실제 알고리즘에 적용하는 법을 개발함으로써 최근 보급률이 높아진 IMU 센서와 같은 장비의 사용법을 개선 개발할 수 있다.

머신러닝의 응용 범위 확대

현재 머신러닝은 다양한 분야에서의 적용되고 있으며 지속적으로 발전해오고 있다. 또한 앞으로 다양한 분야에서 사용 될 것으로 예측되며 해당 프로젝트에서의 응용 또한 머신러닝의 기법을 응용하고 적용법을 개발함으로써 기계학습 분야에도 영향을 끼칠 수 있을 것으로 생각된다.


경제적 및 사회적 파급효과

기존 부품을 이용한 비용과 기술력 절감

기존 자전거는 대부분 전 후륜 변속기가 기본적으로 장착되어있다. 이때 기존 시장의 튜닝용 자동변속기들을 사용하기 위해선 휠, 혹은 변속기와 스프라켓 등을 교체해야하는 비용적인 문제와 기술적 문제가 발생하게 된다. 하지만 해당 제품의 경우에는 단순히 변속기 케이블을 제품에 연결하고 차체에 장착하기만 하면 되기 때문에 낮은 기술력을 요구하며 비용 절감 또한 이룰 수 있다.

전자식 자동 변속기에 대한 인식의 변화 현재 대부분의 자전거는 기계적인 장치를 이용한 수동 변속을 이용하고 있으며, 아직까지는 자동 변속기에 대한 소비자들의 인지도가 많이 부족하다. 이번 프로젝트로 개발될 변속기가 널리 이용된다면 자전거에는 수동 변속기가 장착된 것을 당연한 것으로 생각하던 소비자들의 인식을 변화시킬 수 있을 것으로 기대된다.

퍼스널 모빌리티의 적용

2016년 기준 약 6만대 수준이던 퍼스널 모빌리티 시장이 2020년에는 약 20만대 수준으로 증가할 것으로 예상된다. 자전거 이외에도 이러한 퍼스널 모빌리티에 스마트한 변속기가 적용될 수 있을 것으로 생각된다.

4차 산업혁명과 DIY 문화의 확대

최근 사회적으로 DIY 문화와 4차 산업혁명이 대두되고 있다. 해당 제품은 다양한 정보수집 기법과 머신러닝을 통하여 사람들의 빅데이터와 머신러닝기법의 접근성을 향상시킬 수 있으며 사용자가 직접 장착해야하는 장치이기 때문에 사람들의 DIY적 흥미를 충분히 유발할 수 있을 것이다.


구성원 및 추진체계

오승식 (팀장)

  • 주 업무: 일정 관리, 소프트웨어 제작, 알고리즘 제작
  • 보조 업무: 어플리케이션 제작

박대호

  • 주 업무: 특허조사 및 시장조사
  • 보조 업무: 알고리즘 제작

안희수

  • 주 업무: 하드웨어 내구성 분석, 센서 관계식 도출
  • 보조 업무: 하드웨어 설계 및 제작

최호연

  • 주 업무: 어플리케이션 제작
  • 보조 업무: 소프트웨어 제작

조경재

  • 주 업무: 부품 선정 및 구매, 하드웨어 설계 및 제작
  • 보조 업무: 하드웨어 내구성 분석

설계

설계사양

제품 요구사항

◇ 제품 요구사항 목록

제품의 필수 요구사항에서 가장 중요도가 높은 항목은 제품의 퍼포먼스에 대한 부분으로 적절한 변속이 가능한지에 대해 중점을 둔다. 가령 오르막에서는 기어가 자동으로 낮추어져 운전자의 부담을 덜어줄 수 있어야 하며 내리막에서는 감소하여 운전자가 자전거 속도를 제어할 수 있도록 해야 한다. 운전자가 계속 가속을 수행한다면 기어가 올라가 더욱 가속할 수 있도록 하는 기능은 핵심 기능은 아니지만 자전거의 페달에서 측정된 압력과 자전거의 속도를 기반으로 측정될 수 있을 것으로 보인다. 다음으로 중요도가 높은 필수 요구사항은 안전에 대한 항목으로 자전거의 정상적인 제어가 가능한지를 보는 항목이다. 여기서는 체인의 이탈 여부나 기어 변속이 불안정하게 계속되어 정상적인 운행이 불가능한 경우가 해당된다. 희망 사항의 경우 안전에 관련 항목인 비가 오는 날에도 사용할 수 있는지에 대한 여부는 중요도가 매우 낮게 책정되었는데, Actuator의 케이스를 위한 3D 프린터 예산이 충분하지 않으며 같은 이유로 컴퓨터를 포함할 케이스를 정교하게 제작할 수 없기 때문에 설계안과는 다르게 구현상에 문제가 발생할 것으로 판단하였다. 장착이 간단하도록 제작하는 것 또한 예산에 제약을 받기 때문에 희망 사항으로 분류하였다. 운동 기록을 보여주는 것은 편의 기능에 해당하기 때문에 낮게 책정하였으며, 이는 장치의 기능보다는 인터페이스에 더 관련이 있는 것으로 판단하였다. 또한 학습 알고리즘의 경우 부가적인 목표였기 때문에 희망 사항에 포함되었으며, 비용의 경우는 대략적으로 판단할 수는 있으나 시제품이 매우 고가인 관계로 크게 문제가 될 부분에는 해당하지 않아 필수 요구사항에서 제외되었다.

◇ 목적 계통도


요구사항에 따라 자전거 자동변속기는 제어에 대한 정확함, 사용자에 대한 안전 보장, 경제적인 제품 생산 및 보수, 편의 기능 구현을 제공해야 한다. 이를 토대로 위와 같은 목적 계통도를 작성할 수 있으며 여기서 각 항목은 기능성, 안정성, 경제성, 편의성이라는 이름으로 대표된다.

1. 기능성 기능성은 장치가 정확히 기능을 하는지를 나타내는 부분으로 장치는 각 기능별 모듈로 구성되어 정확하고 신속하게 작동해야 한다. 장치의 모듈은 대부분의 센서와 제어장치 및 통신장치가 연결된 중앙 모듈과 페달에 장착하는 페달 모듈로 이루어지며 대부분의 자전거에서 사용하는 와이어 변속기에 쉽게 장착될 수 있도록 구성되어야 한다. 이는 또한 범용성에 해당하기도 한다. 정확성의 경우 계산된 기어에 대해 변속이 정확히 이루어져야 함을 나타낸다. 체인 가이드의 크기가 체인과 동일하지 않기 때문에 정교한 제어가 요구될 수 있기 때문이다. 신속성의 경우 도출된 기어 레벨에 대한 변속이 신속하게 이루어져야 함을 나타내지만 개발 과제의 목표에서 나타난 바와 같이 매우 중요한 부분에는 해당하지 않는다.

2. 안정성 자전거의 기어 변속은 주행하는 도중에 이루어지기 때문에 자전거의 주행 기능을 방해하지 않는 선을 지키며 작동해야 한다. 이는 하드웨어와 소프트웨어에 모두 해당되는데 하드웨어의 경우 구조적으로 정상적인 동작을 수행할 수 있으며 파손되지 않도록 부품을 선정 및 조립하여야 한다. 소프트웨어의 경우 도출된 기어 레벨이 불안정하더라도 이를 보완할 수 있도록 알고리즘을 보완해야 하며 출력 데이터의 빠른 변화를 막기위해 입력 데이터에 대한 적절한 필터링이 필요하다.

3. 경제성 제품을 설계하는데 있어 경제성은 매우 중요한 부분이다. 금전적인 부분 외에도 시간적인 부분을 절약하여 제작비용을 낮출 수 있으며 적절한 모듈을 제작한다면 설치비용을 최소화 할 수 있을 것이다. 또한 모듈의 규격화가 적절히 이루어진다면 경제적으로 우수한 제품을 설계할 수 있다.

4. 편의성 편의성은 소비자의 편의에 대한 항목으로 인터페이스의 직관성과 개인별 최적화 지원이 항목으로 세분화하였다. 요구사항에서 가장 중요도 및 우선순의가 떨어지는 항목들이나 사용자의 만족을 위해 반드시 고려해야 하는 항목이다.

나. 요구사항의 수학적 모델링

◇ 설계 변수

1. 기어 이빨의 크기와 배치 간격 2. 앞쪽 변속 기어 Fillet1의 반경 (0mm, 0.4mm, 0.8mm) 3. 앞쪽 변속 기어 Fillet2의 반경 (0mm, 0.4mm, 0.8mm) 4. 앞쪽 변속 기어 Fillet3의 반경 (4mm, 5mm, 6mm) 5. 뒤쪽 변속 기어 Fillet1의 반경 (0mm, 0.25mm, 0.5mm) 6. 뒤쪽 변속 기어 Fillet2의 반경 (0mm, 0.25mm, 0.5mm) 7. 뒤쪽 변속 기어 Fillet3의 반경 (4mm, 5mm, 6mm) 8. Mechanism (No Mechanism, Worm Gear Mechanism, Ratchet Mechanism) 9. 제품의 전력 소모 10. 드레일러에 부착되는 스프링의 장력 11. 기어박스의 크기

◇ 제약 조건

1. 기어 이빨의 크기

  1.1 앞, 뒤 드레일러 변속 범위 = 지름 3cm 이상
  1.2 배치 간격 = 각 기어 단수 = 앞 3단 뒤 7단

2. Fillet1, Fillet2의 반경

  2.1 앞쪽 변속 기어 Fillet1의 반경  0.9mm
  2.2 앞쪽 변속 기어 Fillet2의 반경  0.9mm
  2.3 뒤쪽 변속 기어 Fillet1의 반경  0.6mm
  2.4 뒤쪽 변속 기어 Fillet2의 반경  0.6mm

Fillet의 반경이 너무 커지면 변속 기어와 Stop 기어가 맞물리는 면의 면적이 많이 작아진다. 면적이 작아지면 변속 후 맞물린 기어가 스프링 장력으로 인해 정 위치에서 이탈할 가능성이 있다.

3. Fillet3의 반경

  3.1 앞쪽 변속 기어 Fillet3의 반경  7mm
  3.2 뒤쪽 변속 기어 Fillet3의 반경  7mm

Fillet3의 반경이 너무 커지면 변속 시 변속 기어와의 간섭이 발생한다.

4. 가로 세로 5cm 기어 박스의 가로 세로 크기 가로 세로 10cm - 기어 박스의 크기가 최소한 두 개의 서보 모터를 장착할 수 있는 크기여야 한다. - 기어 박스의 크기가 탑승자의 주행을 방해하지 않을 정도의 크기여야만 한다.

5. 드레일러 복귀력 스프링 장력의 크기 227.6N

6. 연속 구동 가능 시간 4시간 - 탑승자가 충분히 주행할 수 있는 구동 시간을 확보해야 한다.

◇ 목적 1. 충분한 연속 구동 가능 시간을 확보하면서, 서보 모터에 의해 변속이 원활하게 이루어져야 한다. 전력 소모는 최소한으로 하면서, 드레일러에 장착된 스프링의 장력을 서보 모터가 이겨낼 수 있어야 한다.

2. 기어는 변속 과정에 있어서 파손되지 않아야 한다. 재설계를 통해 제약 조건 안에서 안전계수를 최대화 한다.

◇ 설계 변수의 중요도 결정 1. 탑승자가 충분히 주행할 수 있는 연속 구동 가능 시간의 확보가 중요도가 높다. 즉, Mechanism과 서보 모터의 인가전압의 중요도가 상대적으로 가장 높다. 2. 기어 이빨의 배치 간격이 정확해야 정확한 변속이 이루어지고, 기어 박스의 크기가 서보 모터의 작동과 탑승자의 주행에 영향을 미치므로 상대적으로 중요도가 높다. 그리고 드레일러에 서보 모터의 토크에 맞는 스프링을 사용해야만 원활한 변속이 이루어지므로, 스프링의 경우에도 중요도가 높다. 다만 기어 이빨의 배치 간격을 결정하는 것에 비해, 스프링은 적당한 값을 선택하여 사용할 수 있으므로 스프링의 중요도는 중간 정도이다. 3. 각 기어의 Fillet 반경은 내구성에 관련되는 설계 변수인데, 프로토 타입의 경우 3D프린터를 이용하여 ABS를 사용한 탓에 내구성이 떨어지지만, 이후에 금속으로 기어를 제작한다면 Fillet 반경 이외에도 내구성을 높일 수 있기 때문에 중요도를 상대적으로 높지 않다고 생각하였다.




다. 문제 해결 방법

◇ 기어 이빨의 배치 간격의 결정 및 제작 - 기어 설계 전에, 우선 직접 자전거의 기어를 조절해 가며 변속 시 당겨지는 와이어의 길이를 측정한 뒤, 이를 적용하여 기어의 이빨을 설계한다. 다만 3D 프린터의 경우 인쇄 시 공차가 생길 수 있고, 기어 이빨의 크기도 상당히 작기 때문에 공차에 의해 변속에 악영향을 미칠 수 있다. 그러므로 기어를 제작할 때 정밀도를 높게 설정하여 제작한다.

◇ 적절한 Mechanism의 결정을 통한 소모 전력의 최소화 - 이번에 설계 변수로 설정한 세 개의 변수(No Mechanism, Worm Gear Mechanism, Ratchet Mechanism)에서 가장 전력 소모가 최소화 되는 Mechanism을 결정한다. 이번 프로젝트에서는 기어 변속 후 서보 모터에서의 전력 소모를 최소화 할 수 있는 Ratchet Mechanism이 소모 전력을 최소화 할 수 있는 Mechanism인 것이 명백하므로 Ratchet Mechanism으로 결정한다.

◇ 적절한 서보 모터의 인가전압과 스프링의 종류 결정 - 인가전압을 조절해가며 서보 모터의 토크를 조절하고, 이번 프로젝트를 위해 구입한 여러 종류의 스프링 중에서 적절한 스프링을 골라 최적의 조건을 찾는다. 이는 각 경우의 수에 대해 한 번씩 테스트를 해도 시간적, 경제적으로 충분히 가능하므로, 직접 테스트하며 최적 조건에서의 서보 모터의 인가전압과 스프링의 종류를 결정한다.

◇ 기어의 재설계에서 변경할 Fillet 반경의 치수 결정 - 기어의 재설계에서는 세 지점에 대해 Fillet 반경의 치수를 바꿔가며 내구성이 최대화되는 조건을 찾는다. 다만 모든 경우에 대해 직접 테스트하기 위해서는 3D 프린터의 인쇄 시간과 비용을 생각했을 때 비효율적이다. 그러므로 구조해석 프로그램을 이용하여 시뮬레이션을 진행하고, 시뮬레이션 횟수의 최소화를 위해 실험계획법을 사용하여 최적의 조건을 찾아 Fillet 반경의 치수를 결정한다.

개념설계안

가. 전체적인 시스템의 설계


◇ 하드웨어 구성

전체적인 시스템을 입력부, 처리부, 출력부로 나누었을 때, 입력부에는 속도 및 각도를 측정하는 센서와 압력을 측정하는 센서 및 바퀴의 회전속도를 측정하는 센서가 포함되며, 처리부에는 중앙 처리장치가, 출력부에는 기어 변속장치와 사용자 인터페이스가 각각 해당된다. 이를 대부분의 자전거에 장착이 용이한 모듈로 분할하기 위해서 페달의 압력 측정 부분에 해당하는 부분을 통신 장치를 갖춘 모듈로 분할하였다. 이를 통해 복잡한 배선을 방지할 수 있었으며, 회전 속도에 크게 영향을 받지 않는 형태의 통신 장치를 사용하고 저전력 처리장치를 이용한다면 충분히 사용 가능한 모듈로 분리할 수 있을 것이다. 기어 변속장치의 경우 와이어를 그대로 사용하기 때문에 기존의 수동 변속장치가 위치하는 핸들 근처에 부착하며, 서보 모터를 이용하여 와이어를 당기거나 풀어줄 수 있도록 한다. 또한 자전거의 앞바퀴는 균형을 잡기 위한 역할을 수행하기 위해 흔들리기 때문에 대부분의 센서는 후방에 위치시키는 것이 바람직할 것으로 생각된다.

◇ 소프트웨어 구성

소프트웨어는 각 센서를 처리하는 모듈과 데이터를 종합하여 처리하는 모듈로 분리한다. 사용되는 센서는 총 세 가지로 IMU센서, 압력센서, 자기력 스위치이다. 대부분의 센서들이 Serial 통신 인터페이스를 사용하기 때문에 중앙 처리장치에서 각 센서의 출력 데이터가 혼선을 겪지 않도록 배선을 구성하여야 한다. 또한 노이즈의 발생을 예방하기 위해 각 센서 처리 모듈에서 중간값 필터, 혹은 가우시안 필터 등의 데이터 필터링 기능을 구현하여 데이터의 종합 처리모듈로 전송할 수 있도록 처리하여야 한다. 출력 장치의 경우도 동일하게 장치별 모듈을 구현한다. 따라서 처리부에서는 알고리즘만 처리할 수 있도록 하며 이를 통해 객체 지향적 소프트웨어를 구현할 수 있다. 데이터 처리 모듈의 핵심적인 기능은 두 가지로 입력에 대해 적절한 출력을 계산하는 기능과 학습을 위한 데이터를 수집하기 위해 수동 조작 모드에서 데이터를 저장하는 기능이다. 외부 도구를 통해 데이터를 분석한다면 직관적으로 제작한 알고리즘보다 실제 주행에 더 적절한 관계식을 도출할 수 있을 것이다.

◇ 인터페이스 구성

인터페이스는 접근성이 높은 안드로이드 애플리케이션을 사용한다. 대부분의 스마트폰에서 블루투스 기능을 지원하며 많은 개발 보드에서 블루투스 통신을 지원한다. 또한 이러한 기능이 없는 개발 보드의 경우에도 블루투스 모듈을 부착하여 쉽게 구현할 수 있기 때문에 블루투스 통신을 이용하여 동작하는 인터페이스를 구현하는 것은 매우 적절한 판단으로 생각된다. 또한 스마트폰에 부착된 다양한 센서를 이용할 수 있는 확장성에 대한 여지를 가질 수 있기 때문에 안드로이드 애플리케이션을 이용하는 것이 바람직하다고 판단하였다.

◇ 학습 모델 개발

부가적인 목적인 학습을 위한 모델은 앞에서 수학적 모델링을 통해 나타낸 것처럼 Deep Learning 모델이 적절하다고 판단되며 관계식의 복잡도가 높지 않기 때문에 낮은 수의 Hidden Layer를 이용한다면 Overfitting을 유발하지 않고 노이즈에 대해서도 강성이 높은 학습을 수행할 수 있을 것이라고 판단된다. 이 부분은 수집된 데이터를 바탕으로 Tensorflow나 R등의 데이터 처리 도구를 이용하여 도출할 수 있으며, 입력과 출력 노드의 수가 많지 않기 때문에 신속하게 처리될 것으로 생각된다.


나. 구체 개념설계안

◇ 세부 시스템 하드웨어 구성 설계

1. 센서부


센서 모듈 사진 장점 단점 IMU Sensor

- 기울기와 가속도 모두 측정 가능 - 저속에서의 속도를 산출하는데 유용 - 고속, 급정지, 급출발에서 신뢰도가 떨어질 수 있음 - 높은 단가 Load Cell

- 사용자가 밟는 힘을 측정 가능 - 저렴한 단가 - 측정할 수 있는 힘에 한계 Magnet Sensor

- 접촉 횟수를 통해 회전수 측정 가능 - 고속에서의 높은 신뢰도 - 저속에서의 정확도가 떨어짐 Rotary Encoder

- 매우 높은 정확도 - 높은 해상도로 저속 및 고속에서 높은 신뢰도 - 높은 해상도로 인해 요구되는 높은 연산 량 - 장착이 자유롭지 않음 RF 통신

- 높은 신뢰도 - 빠른 반응속도 - 저 전력 소모 - 전송 데이터의 양에 한계 - 전용 장비끼리만 통신 가능


본 프로젝트의 설계 목적에 따라, 센서부는 세 가지의 데이터, 자전거의 기울기, 속력, 구동축에 가해지는 토크를 계산할 수 있어야 한다. 기울기의 경우 자이로 센서의 누적 값을 이용해 알 수 있으며, 속력은 가속도 센서의 누적 값, 토크는 페달에 가해지는 압력에 페달의 회전 반지름을 곱해 계산할 수 있다. 그러나 IMU 센서만을 이용하기에는 누적 값을 이용하는 경우 발생하는 누적 오차를 줄일 수 없다. 때문에 정확도 높은 센서를 추가로 이용하여 필터링을 진행해 오차를 최소화한다. 페달의 경우 회전하는 요소이기 때문에 선을 이용하여 처리장치와 연결하는 것은 어렵다고 판단하였다. 따라서 이 부분은 소형 MCU를 이용해 독립적으로 통신 시스템으로 제작하는 방안으로 추진하고 있다.

1.1. Complementary Filter 가속도 센서나 Gyro 센서를 이용하여 누적치를 이용하여 속도 및 각도를 계산하려는 경우 센서에 Offset이 존재하는 경우 이 값이 시간에 따라 누적되어 오차가 점점 커지게 된다. 따라서 다음의 그림과 같이 Complementary Filter를 이용하여 이를 최소화한다.

Complementary Filter

위의 처리 과정은 Complementary Filter를 이용하여 Gyro 센서의 오차를 최소화하는 알고리즘을 나타낸 것으로, 노이즈가 제거된 자기력 센서를 Gyroscope의 누적 값을 보정하기 위한 기준으로 사용한다. 이 방법은 자기력 센서의 정확성을 이용해 부정확한 센서의 오차를 보정하는 방법으로 장기간 누적되면 정확성이 떨어지는 Gyro를 보완하는 방법이다. 속력을 구하기 위해 가속도를 이용하는 경우에도 위와 동일한 문제가 발생할 수 있다. 따라서 상대적으로 정확한 선속도를 구하는 방법이 필요하며, 이 방법이 바퀴의 회전수를 이용하여 자전거의 속력을 계산하는 방법이다. 이를 위해서 자석을 부착해 자기력의 변화를 측정하여 바퀴의 회전수를 알아내는 방법과 Rotary Encoder를 바퀴의 축에 연결하거나 마찰 기어의 형태로 바퀴에 마찰시켜 회전수를 측정하는 방법이 존재한다. 본 프로젝트에서는 목표 중 하나인 규격화에 용이한 자기력 센서를 속도 센서로 채택하였다.


2. 처리부


사진 장점 단점 Embedded Board

- 연산 능력이 높음 - 우수한 확장성 - 운영체제 탑재로 제어가 용이 - 높은 전력소모 - 크기가 상대적으로 큼 MCU

- 낮은 전력소모 - 소형화에 유리 - 연산 능력이 낮음 - 운영체제 부재로 하드웨어 기반 프로그래밍 필요


측정된 센서의 값을 바탕으로 원하는 데이터의 값을 정확히 계산하고, 혹은 필터를 적용하거나 출력부에 명령을 전달하기 위해서는 계산을 수행할 처리장치가 필요하다. 이러한 작업을 수행할 장치는 크게 두 종류로 분류할 수 있는데, 운영체제를 탑재한 CPU와 운영체제 없이 작동하는 Micro Controller이다. 위의 표에서 위의 Embedded Board는 운영체제를 탑재한 개발보드로 운영체제에서 지원하는 라이브러리와 스케줄링 기능들을 사용할 수 있다. 따라서 Multiprocess 기능을 쉽게 구현할 수 있다는 장점이 존재하므로 유저 인터페이스와 통신하는 동시에 작업을 수행하는 기능을 구현하기에 좋다. 반대로 일반적인 MCU의 경우, 운영체제를 지원하지 않는다. 지원하는 라이브러리의 범위도 단순한 동기/비동기식 통신 알고리즘에 지나지 않는다. 따라서 이 경우 복잡한 프로그램을 작성하기에 부적합하며 성능 또한 상대적으로 낮기 때문에 상당한 연산량을 요구하는 장비에 사용하기에 부적합하다. 이러한 특징을 이용하여 Embedded Board의 경우 중앙 처리부에 이용하며 MCU의 경우 무선 통신이 요구되는 위치에 배치하여 적절히 사용할 수 있을 것이다. 3. 출력부


사진 장점 단점 High-Torque Servo Motor

- 높은 토크 - 신속한 동작 - 높은 내구성 - 고가 - 높은 전력소모 Low-Torque Servo Motor

- 저렴한 가격 - 낮은 전력소모 - 낮은 토크 - 낮은 내구성 Step Motor

- 정밀한 움직임 - 각도제한 없는 회전 - 매우 높은 가격 - 사용하기 위해 Driver가 필요 No Mechanism - - 단순한 구조 - 제어에 용이 - 모터에 항상 전원공급 필요 - 모터에 과도한 부하 Worm Gear Mechanism

- 모터에 큰 힘이 필요하지 않음 - 토크 발생이 없어 안정적 - 제어에 용이 - 회전 요구량으로 인해 Step 모터만 사용 가능 - 구조가 복잡함 Ratchet Mechanism

- 모터에 항상 힘이 필요하지 않음 - 어떠한 종류의 모터도 사용 가능 - 복잡한 구조 - 만들기 어려움 - 구조가 튼튼해야 함


출력부는 자전거의 기어를 변속하는 장비로 본 프로젝트의 하드웨어 부분에서 핵심이 되는 부분이다. 여기서는 세 종류의 모터와 세 종류의 구조가 제시되었으며 각각의 장단점을 분석해 보았다. 메커니즘을 적용하지 않고 모터에 그대로 연결하는 경우, 일정 이상의 토크가 항상 요구되며 Step Motor의 경우 Feedback Control을 이용한 회전각도 유지 대책이 요구된다. 구조상으로 구현하기 쉬우며 제어 상으로도 원하는 기어를 맞추기에 쉽다. 그러나 어떤 종류의 모터를 사용하더라도 항상 모터에 전력이 필요하기 때문에 전력문제가 발생할 것이며, 저가의 Low-Torque Servo Motor의 경우 과열로 인한 파손이 발생할 수 있다. Worm Gear를 이용하는 경우 모터는 반드시 Step Motor를 이용해야 한다. 각도 제한이 존재하는 Servo Motor를 이용할 경우 Worm의 회전에 큰 제약이 발생하기 때문이다. 하지만 Worm의 회전으로 인해 모터에 가해지는 토크가 회전 방향이 아닌 수직 방향이기 때문에 전력이 공급되지 않은 상황에서도 모터가 제어를 이탈할 우려는 없으며 계산식 또한 단순하기 때문에 제어도 간단하다. Ratchet 구조의 경우 두 개의 Motor로 구현할 수 있으며 어떠한 조합을 사용하여도 문제가 발생하지 않을 것으로 생각된다. 이는 메커니즘을 사용하지 않는 경우와 매우 유사하나 회전을 차단하는 스프링을 추가하고, 이를 다른 모터로 해제할 수 있도록 하여 전력 소모 문제를 해결할 수 있는 방법이다. Worm Gear를 사용하는 경우보다 작은 크기로 만들 수 있을 것으로 기대되나 상당히 어려울 것으로 생각된다. 이를 표로 정리한 내용은 다음과 같다.

번호 구조 모터 특징 1 No Mechanism Servo - 간단하고 저렴하나 높은 전력 소모와 파손 우려가 있음 2 Step - 간단하나 고가이며 높은 전력 소모와 제어 상의 어려움이 예상됨 3 Worm Gear Mechanism Step - 고가이며 만들기 어렵고 느리나 전력 소모나 파손 면에서 안전할 것으로 예상됨 4 Ratchet Mechanism Servo * 2 - 복잡하나 전력 소모 면에서 큰 장점이 예상되며 파손에서도 안전할 것으로 예상됨 5 Servo Step - 회전 제어가 간단해지나 가격이 높으며 Step 모터를 Servo와 기어의 크기로 극복 가능함 6 Step * 2 - 매우 고가이며 Servo Motor를 사용한 경우와 차별화 되지 않음


각 조건을 비교해 본 결과 4안이 제어 면과 내구성을 보완하기 위한 설계를 극복할 수 있다면 가장 경제적이고 전력 소모 면에서도 뛰어나기 때문에 4안으로 개발을 진행하기로 선택하였다. 그리고 4안의 기준에 맞추어 설계한 기어는 다음과 같다.


첫 번째는 모터의 기어 이빨을 일반적인 Ratchet 구조와 같이 촘촘하게 설계하였다. 다만 이렇게 제품을 설계할 때 3d 프린터를 이용하게 된다면 제품의 내구성이 상당히 약해질 우려가 있으며, 변속을 완료한 후 기어가 고정되도록 하는 걸림쇠에 높은 스프링 상수를 갖는 스프링을 사용해야 하는데 이렇게 된다면 두 번째 서보모터를 고가의 서보모터를 사용해야 하고, 스프링에 의해 기어와 걸림쇠에 걸리는 응력이 커지는 단점이 존재한다.

4. 동력부


사진 장점 단점 상용 보조배터리

- 전력용량이 큼 - 부피가 큼 소형 전지

- 부피가 작음 - 전력용량이 작음


동력부는 동력을 공급하는 배터리로 구성된다. 배터리 팩을 이용하거나 상용 보조배터리를 사용할 수 있다. 처리부와 출력부에는 대용량의 배터리를 연결하고, 무선 센서 시스템에는 전지를 이용한다면 문제없이 전력을 공급할 수 있을 것이다. 5. 사용자 인터페이스


사진 장점 단점 Bluetooth 통신

- 높은 호환성 - 큰 데이터 패킷 사용 - 혼선의 위험 - 반응속도가 상대적으로 느림


사용자 인터페이스는 안드로이드로 제작되며 처리부에서 전송한 데이터를 사용자에게 출력하는 역할을 수행한다. 확장성을 염두에 두고 설계되어야 하며 사용자의 수동 명령을 전송할 수 있어야 하므로 양방향으로 진행되어야 한다. Embedded Board를 사용하므로 Bluetooth 라이브러리를 이용할 수 있으며, Multi-threading을 통해 CPU의 활용성을 높일 수 있을 것으로 기대된다.


6. 설계 내구도

변속을 수행하는 도중 장치에 문제가 발생하면 운전자에게 치명적인 상황이 발생할 수 있기 때문에 내구도는 매우 중요한 요소이다. 현재 위에서 초기 설계를 마친 Ratchet 구조 기어의 경우 위에서 언급한 바와 같이 3d 프린터로 인쇄할 때, 제품의 내구성이 상당히 약해질 우려가 있다. 그러므로 설계의 개선이 필요하다고 판단하여, 다음과 같이 설계를 개선하였다.

6.1 첫 번째 기어 설계


앞쪽 스프라켓 변속에 사용되는 기어 뒤쪽 스프라켓 변속에 사용되는 기어

기존의 촘촘했던 기어의 형태가 아닌, 자전거의 기어 위치에 맞게 각각의 기어 이빨을 설계하였다. 이렇게 되면 각 기어의 이빨 크기가 커지게 되면서 접촉면이 넓어져 기어를 고정시키는 걸림쇠를 누르는 힘을 크게 주지 않아도 된다는 장점이 존재한다. 즉, 스프링 상수가 낮은 스프링을 걸림쇠에 사용할 수 있게 된다. 또한 자전거의 각 기어 위치에 맞게 설계했기 때문에 서보 제어식을 구성하는 데에도 더 편리해질 수 있다는 장점 또한 있다. 다만 현재의 설계만으로는 역학적 분석이 이루어지지 않아 어떤 곳에서 응력집중이 발생하고 파손되기 쉬운 지를 찾기 힘들다는 단점이 있다.

6.2 두 번째 기어 설계

다음으로는 각각의 기어 이빨을 ANSYS를 이용하여 분석하고 설계를 변경했다. 우선 첫 번째 설계에서 만든 기어의 고정 상태는 다음과 같다.


이때, 자전거의 변속 와이어에 의해 위의 기어는 토크를 받아 걸림쇠를 누르게 되므로, 위와 같이 모멘트 조건을 부여하였다. 그리고 실제로는 걸림쇠에 스프링에 의한 힘도 받지만, 이 힘은 실제 변속 와이어가 주는 토크에 의한 영향에 비하면 큰 영향을 미치지 않으므로 무시한다. 그리고 이 토크의 크기는 상황에 따라 변할 가능성이 크기 때문에, 우선 임의의 토크를 부여하여 해석을 진행하였다. 같은 크기의 토크에 대해 응력 분석을 하여 기어와 걸림쇠가 받는 최대 응력의 크기를 줄이는 것이 목적이다. 그리고 위와 같은 하중 조건에서 해석을 진행하면 다음과 같은 결과를 얻을 수 있다.


해석에는 3D 프린터로 인쇄할 때 사용되는 재료인 ABS가 연성임을 고려하여, von-Mises의 등가응력을 이용해 각 위치에서의 응력 분포를 구했다. 이 결과로 보았을 때, 현재 기어와 걸림쇠의 접촉면에서의 날카로운 부분에 응력집중이 발생하는 것을 확인할 수 있다. 그리고 사용되는 ABS 수지의 항복강도인 29.3MPa를 이용하여 각 부분에서의 안전계수를 구하였다. 안전계수가 가장 작은 점이 오른쪽 그림의 Min이라고 표시된 지점이며, 이 지점에서의 안전계수는 1.2022이다. 즉. 이 지점에서 가장 큰 응력을 받고 있음을 알 수 있다. 현재 가장 기어의 이빨의 끝부분에서 가장 큰 응력을 받고 있기 때문에, 끝부분의 설계를 개선할 필요가 있다. 따라서 기어 이빨의 끝부분에 0.5mm의 Fillet을 주어 설계를 변경하였다. 변경한 후의 응력 분석 결과는 다음과 같다.


해석한 결과, 최대 응력의 값이 조금 줄어든 것을 확인할 수 있다. 이때, 기어 이빨의 끝부분에 Fillet를 준 것을 제외하고는 모든 조건이 동일하다. 그리고 비교하기 쉽도록 안전계수를 구해보면 안전계수의 최솟값은 1.2459가 된다. 이는 두 번째 설계에서 구했던 안전계수인 1.2022보다 크기 때문에, 기존 설계보다는 좀 더 내구성이 좋아진 것으로 볼 수 있다. 다만, 안전계수의 상승폭이 크지 않고, ANSYS Student의 특성상 Mesh의 제한이 있으므로, 해석 프로그램을 변경하고 개선 지점을 여러 곳으로 늘릴 필요가 있다.


◇ 시스템 구성도


시스템 구성도

시스템의 간략한 구성도는 위와 같다. 메인 임베디드 보드가 각 센서들과 모터를 제어하며 하중 센서의 경우 통신모듈을 통해 독립적으로 구성한다. 사용자와 통신하는 인터페이스는 안드로이드 어플리케이션을 통해 제작되며 임베디드 보드와 어플리케이션 간의 통신으로 데이터가 교환된다.

이론적 계산 및 시뮬레이션

요구사항의 수학적 모델링

설계 변수

1. 기어 이빨의 크기와 배치 간격
2. 앞쪽 변속 기어 Fillet1의 반경 (0mm, 0.4mm, 0.8mm)
3. 앞쪽 변속 기어 Fillet2의 반경 (0mm, 0.4mm, 0.8mm)
4. 앞쪽 변속 기어 Fillet3의 반경 (4mm, 5mm, 6mm)
5. 뒤쪽 변속 기어 Fillet1의 반경 (0mm, 0.25mm, 0.5mm)
6. 뒤쪽 변속 기어 Fillet2의 반경 (0mm, 0.25mm, 0.5mm)
7. 뒤쪽 변속 기어 Fillet3의 반경 (4mm, 5mm, 6mm)
8. Mechanism (No Mechanism, Worm Gear Mechanism, Ratchet Mechanism)
9. 제품의 전력 소모
10. 드레일러에 부착되는 스프링의 장력
11. 기어박스의 크기


제약 조건

1. 기어 이빨의 크기
 1.1 앞, 뒤 드레일러 변속 범위 = 지름 3cm 이상
 1.2 배치 간격 = 각 기어 단수 = 앞 3단 뒤 7단
2. Fillet1, Fillet2의 반경
 2.1 앞쪽 변속 기어 Fillet1의 반경  0.9mm
 2.2 앞쪽 변속 기어 Fillet2의 반경  0.9mm
 2.3 뒤쪽 변속 기어 Fillet1의 반경  0.6mm
 2.4 뒤쪽 변속 기어 Fillet2의 반경  0.6mm
  • Fillet의 반경이 너무 커지면 변속 기어와 Stop 기어가 맞물리는 면의 면적이 많이 작아진다. 면적이 작아지면 변속 후 맞물린 기어가 스프링 장력으로 인해 정 위치에서 이탈할 가능성이 있다.


3. Fillet3의 반경
 3.1 앞쪽 변속 기어 Fillet3의 반경  7mm
 3.2 뒤쪽 변속 기어 Fillet3의 반경  7mm
  • Fillet3의 반경이 너무 커지면 변속 시 변속 기어와의 간섭이 발생한다.


4. 가로 세로 5cm  기어 박스의 가로 세로 크기  가로 세로 10cm
  • 기어 박스의 크기가 최소한 두 개의 서보 모터를 장착할 수 있는 크기여야 한다.
  • 기어 박스의 크기가 탑승자의 주행을 방해하지 않을 정도의 크기여야만 한다.


5. 드레일러 복귀력  스프링 장력의 크기  227.6N
6. 연속 구동 가능 시간  4시간
  • 탑승자가 충분히 주행할 수 있는 구동 시간을 확보해야 한다.


설계변수 중요도

그림

  • 탑승자가 충분히 주행할 수 있는 연속 구동 가능 시간의 확보가 중요도가 높다. 즉, Mechanism과 서보 모터의 인가전압의 중요도가 상대적으로 가장 높다.
  • 기어 이빨의 배치 간격이 정확해야 정확한 변속이 이루어지고, 기어 박스의 크기가 서보 모터의 작동과 탑승자의 주행에 영향을 미치므로 상대적으로 중요도가 높다. 그리고 드레일러에 서보 모터의 토크에 맞는 스프링을 사용해야만 원활한 변속이 이루어지므로, 스프링의 경우에도 중요도가 높다. 다만 기어 이빨의 배치 간격을 결정하는 것에 비해, 스프링은 적당한 값을 선택하여 사용할 수 있으므로 스프링의 중요도는 중간 정도이다.
  • 각 기어의 Fillet 반경은 내구성에 관련되는 설계 변수인데, 프로토 타입의 경우 3D프린터를 이용하여 ABS를 사용한 탓에 내구성이 떨어지지만, 이후에 금속으로 기어를 제작한다면 Fillet 반경 이외에도 내구성을 높일 수 있기 때문에 중요도를 상대적으로 높지 않다고 생각하였다.

조립도

조립도

내용

조립순서

내용

부품도

내용

제어부 및 회로설계

내용

소프트웨어 설계

전체적인 소프트웨어 구성

소프트웨어 개발의 경우 각 센서와 출력 장치에 대한 제어 모듈을 제작하여 이를 검증한 후, 메인 데이터 처리 모듈을 제작하여 각 모듈을 제어하는 방식으로 개발한다. 각 모듈이 매우 간단한 형태를 가지기 때문에 시스템의 일부를 데모의 형태로 제작하여 테스트하는 프로토타이핑 모델을 사용하여도 큰 문제없이 개발할 수 있을 것이라고 판단하였다. 사용하는 개발 보드가 Raspberry Pi이기 때문에 소프트웨어는 Linux 기반으로 제작될 수 있으며, 컴파일러를 포함한 운영체제가 존재하기 때문에 다음과 같은 장점들을 가진다.

1. 장치 제작자 혹은 개인 개발자가 지원하는 API 사용 가능
2. Multi Threading을 통한 Multiprogramming 사용 가능
3. 개발보드를 사용한 프로그램 제작 가능
4. Terminal을 이용한 테스트의 용이성

여기서 가장 중요한 장점은 Threading을 사용할 수 있다는 점으로 Timing이 중요한 통신을 각각의 독립된 Thread에 포함된 모듈로 작성하여 사용할 수 있다. 페달의 압력 측정 센서가 운영체제가 없는 Arduino 개발 보드와 함께 독립적인 모듈로 구현되었기는 하지만 센서의 값을 읽는 부분과 이를 전송하는 부분이 별도로 작동하기 때문에 Timing에 대한 문제가 발생하지 않는다.


모듈 구성

각각의 모듈은 하나의 입력장치나 출력장치 혹은 통신장치를 제어하기 위해 사용된다. 따라서 모듈 사이에서는 정보 교환이 이루어지며 이는 위와 같은 그림으로 나타나게 된다. 각 모듈의 내부에서 데이터의 2차 가공이나 필터링을 모두 수행함으로써 각 모듈의 캡슐화가 효율적으로 이루어지게 되어 효율적인 객체 지향적 프로그래밍이 가능해진다.

1. 센서 제어 모듈

센서 제어 모듈은 총 세 개의 모듈로 구성되며 각각 IMU센서 제어, Load Cell 제어, RPM센서로 표현되는 자기력 스위치 제어 모듈에 해당한다. 여기서 자기력 스위치의 경우 Interrupt의 형식으로 구현하였기 때문에 모듈에 한 개의 함수만이 포함되며, IMU 센서는 USB를 통한 직렬 통신을 사용하기 때문에 운영체제에서 통신 인터페이스를 지원하며 Load Cell의 경우 Arduino에서 직접 제어하기 때문에 수동으로 통신하는 라이브러리를 사용한다.

  • IMU 센서

IMU 센서의 경우 USB 케이블을 통한 직렬 통신 방식을 사용한다. 여기서는 제품에서 지원하는 API의 객체와 Threading 기능을 그대로 사용하였다.


  • Load Cell

Load Cell의 경우 Analog 형태의 전압 신호가 출력되나 사용된 증폭 모듈이 통신 형식을 사용하기 때문에 SPI 통신이 구현된 라이브러리를 사용하였다. SPI 통신의 경우 동기식 통신에 해당하기 때문에 해당 라이브러리에서는 Clock 신호를 수동으로 변경하는 방법을 사용하였는데, RF 통신과 별도로 일어나기 때문에 Timing 관련 문제는 발생하지 않았다.


  • 자기력 스위치
자기력 스위치를 바퀴에 부착한 경우, 해당 신호가 연결된 핀에서는 Rotary Encoder와 같은 Clock 신호가 입력된다. 이러한 Timer 신호를 통해 속도를 측정하는 방법은 크게 두 가지가 존재한다.
1. 일정 개수 이상의 Clock가 입력되는 동안 시간을 측정하여 계산
2. 일정 시간 동안 입력된 Clock의 개수를 측정하여 계산
전자의 경우 Encoder의 해상도가 매우 높은 경우 권장되는 방법이며 후자의 경우는 주기적인 제어가 요구되는 상황에서 적절한 방법이다. 그러나 운영체제를 사용하는 Raspberry Pi의 특성 상 정확한 타이밍 제어를 사용하는 것은 적절치 못하며, 이를 위해서는 관리 Thread를 별도로 만들어 주어야하기 때문에 Clock가 입력될 때 까지 걸린 시간을 이용하여 RPM을 측정하는 것이 바람직하다고 판단하였다. 따라서 Rising Edge에서 Interrupt를 발생 시 Handler 함수로 연결되도록 하였으며, 노이즈로 인한 중복 입력을 방지하기 위해 최소 시간 동안은 Interrupt가 재 발생하지 않도록 하였다.


2. 모터 제어 모듈

사용한 Servo Motor는 PWM 신호 중 High 신호의 입력 시간을 조절하여 제어하는 모터로 Raspberry Pi의 기본 기능을 통해 구현할 수 있다. 그러나 Raspberry Pi에는 단 한 개의 Hardware PWM만을 만들 수 있으며, 나머지는 Threading을 통한 Software PWM으로 상당히 낮은 해상도와 불안정한 출력을 보였다. 따라서 별도의 Hardware PWM신호를 만들어주는 Driver를 구입하여 사용하였으며, 이 Driver는 I2C 규약의 통신을 통해 제어된다. 여기서는 I2C규약이 구현된 제어 API를 사용하였으며, 추가적으로 Wrapper Class를 만들어 이 함수들을 추상화하였다.


3. 통신 제어 모듈

통신은 크게 RF 모듈을 이용한 통신과 블루투스 통신으로 나뉜다. RF 모듈의 경우 통신은 모듈 사이에 이루어지며 컨트롤러와 모듈 간의 소통은 직렬 통신으로 이루어진다. 따라서 제어 프로토콜이 복잡하지 않아 간단하게 제어할 수 있다. 반면 블루투스의 경우 통신 계층이 복잡하고 블루투스 소켓을 사용하여 TCP/IP와 비슷한 방식으로 통신을 수행한다. 또한 Pairing이라는 과정이 필요하기 때문에 RF 모듈에 비해 제어하기 어렵다는 특성이 존재한다.


  • RF 통신
RF는 Radio Frequency의 약자로 특정 주파수의 전자기파를 발생시켜 통신을 수행하는 장비이다. 따라서 이를 사용하기 위해서는 Configuration을 먼저 수행해야 하며, 이는 송신부와 수신부에 공통적으로 해당된다. 송신모듈과 수신모듈이 나눠져 있지 않기 때문에 수신과 송신 모드를 번갈아가며 사용해야 하나 이 제품에서는 Arduino에서 측정된 Road Cell의 값을 전송하기 위해 사용하므로 항상 단방향 통신이 발생한다. 따라서 이러한 모드 변경 기능은 구현할 필요가 없다. 다른 모듈과 같이 직렬 통신 기반의 API를 이용하여 제어한다.


  • 블루투스 통신
블루투스는 소켓을 이용하여 제어되고, 표준 블루투스 라이브러리를 이용하여 구현할 수 있다. 라이브러리에서 Threading을 지원하지 않기 때문에 이 부분을 추가적으로 직접 구현해주어야 한다는 번거로움이 있으며, 수동 조작과 자전거 상태 전송이 모두 이루어져야 하기 때문에 양방향으로 구성해야 한다. 모듈의 특성 상 송신 Thread와 수신 Thread를 분할하여 사용할 수 없기 때문에 메인 알고리즘에 직접 포함시켜 사용하였다.


프로그램의 흐름

모든 센서가 Thread 혹은 Interrupt를 사용하므로 메인 처리 알고리즘은 단순히 메모리에 저장된 값을 읽는 것으로 센서에서 측정된 값을 사용할 수 있다. 통신의 경우 RF 통신은 개별 Thread에 포함되지만 프로그램을 직접 제어하거나 연산 결과를 출력하는데 사용되는 블루투스 통신의 경우 메인 처리 알고리즘에 포함된다. 같은 이유로 결과를 출력하는데 사용되는 모터 또한 메인 알고리즘에 포함되어 처리 Thread 내부에서 작동한다. 처리 알고리즘은 두 가지 모드로 동작해야 하는데, 데이터를 수집하기 위한 모드와 변속기를 제어하기 위한 모드이다. 적절한 관계식을 도출하거나 학습에 필요한 데이터를 수집하기 위해서는 먼저 운전자가 수동으로 기어를 변속하는 경향을 측정해야 한다. 따라서 이때의 변속은 수동으로 이루어질 수 있도록 해야 하며, 처리 알고리즘은 데이터의 저장을 중점으로 한다.


알고리즘 설계

직관적 알고리즘

직관적 알고리즘은 수학적인 자전거 상태 분석을 바탕으로 직관적인 계수를 넣어 산출한다.


운전자와 자전거의 질량이 인 자전거가 경사 인 노면을 주행한다고 할 때, 자전거에 뒤 방향으로 가해지는 힘 는 다음과 같다.


여기서 는 중력 가속도를 나타낸다. 이 힘은 평지에서 운행하는 자전거를 경사면에서 주행할 때 추가로 필요한 힘이다. 평지에서 자전거를 주행할 때 필요한 힘을 이라고 할 때, 이 두 힘은 벡터가 아니기 때문에 단순히 더하여 주행에 필요한 힘을 구할 수 있다. 이 힘이 페달에 가해지는 힘을 구하기 위해 페달 축으로부터 페달까지의 거리가 이고, 페달의 각도가 , 바퀴의 반경이 인 자전거를 가정할 수 있다. 자전거에 변속기어가 존재한다고 할 때, 기어비 을 다음과 같이 나타낼 수 있다.


이 때, 마찰로 인해 손실되는 힘을 무시하면 페달에 걸리는 힘을 이라고 할 때, 페달에 걸리는 힘으로 인한 자전거의 추진력 는 다음과 같다.


그러나 페달은 회전하는 축여 연결되어 있기 때문에 는 항상 1이 되어 최대의 동력을 전달한다고 가정할 수 있다. 따라서 추진력 는 다음과 같다.


주행하는 자전거에 가해지는 합력을 라고 하면 위의 계산 과정에 따라 다음과 같음을 알 수 있다.



여기서 가속도 는 운전자가 원하는 자전거의 가속도이다. 따라서 우항은 사용자의 의지에 따라 추가로 가하는 힘이 되며 로 표현할 수 있다. 여기서 사용자가 평지에서 사용하는 기어비를 로 정해 기준으로 한다면 평지에서 자전거가 등속으로 주행하기 위해 가해야 하는 추진력이 이므로,


여기서 는 과 에 종속되는 평지를 등속으로 운행하기 위해 필요한 힘이다. 따라서 전체적인 관계식은 평지를 기반으로 다음과 같이 나타낼 수 있다.


위의 등식에서 사용자에게 적합한 기어의 레벨은 이 되며, 은 평지 주행에 요구되는 개인별 특성으로 고려할 수 있다. 마지막으로 항은 사용자가 원하는 가속을 위한 힘이 되는데 페달에 가하는 토크가 높은 경우 사용자가 가속을 원한다고 볼 수 있으며 결과적으로 속도가 높아지기 때문에 과 자전거의 현재 속도 에 대한 함수로 나타낼 수 있다.


따라서 위의 등식을 정리한 뒤 각 상수를 부여하여 직관적 알고리즘을 제작할 수 있다. 이때 위의 식을 그대로 에 대해 정리하면 매우 복잡한 형태가 산출되므로 반대 기어 비인 을 정의하여 여기에 대해 정리한다. 결과적으로 위의 식은 다음과 같이 정리된다.



위의 식은 모든 항이 무차원이기 때문에 단위가 존재하지 않고 단순히 비율을 나타낸다. 이중 사용자가 원하는 가속을 나타내는 항을 제거하고 아래와 같이 적당한 상수를 부여하였다.


위의 상수를 기준으로 산출한 그래프는 다음과 같았다. 경사는 노면의 최대 경사를 고려하여 절댓값 20도라는 한계를 주었으며, 힘을 전혀 가하지 않는 경우 기어비가 무한대로 측정되기 때문에 5킬로그램의 힘을 준 경우부터 부여하였다.


앞의 그래프는 운전자 가속항이 포함되지 않았기 때문에 등속운동을 위해 필요한 기어비를 나타낸 그래프라고 할 수 있다. 따라서 기어비가 0이 되는 위치는 평지 주행에 필요한 힘과 중력이 일치하는 부분으로 페달에 힘이 가해지기 때문에 반드시 기어비가 0이 되어야 등속운동을 할 수 있. 기어비가 음수가 되는 부분은 등속운동을 하기 위해 후진 방향으로 힘을 주어야 함을 나타내며 힘이 적을수록 기어의 효율을 높여야하기 때문에 낮은 페달에 가하는 힘이 낮은 위치에서 변속 의존도가 크게 나타나게 되는 것이다. 그러나 픽시 자전거 모델을 제외한 대부분의 자전거 모델은 후진 방향으로 힘을 가할 수 없으며 무엇보다 운전자 가속항이 포함되지 않았기 때문에 최대 기어비 이상이 요구되는 위치는 주행이 불가능함을 나타내며 최소 기어비 이하가 요구되는 항은 최소 기어비에서 가하는 힘과의 편차만큼 자전거 가속에 포함되게 된다. 기어 의존도는 자전거에 가하는 힘이 커질수록 점점 감소하므로 완만한 경사를 나타내게 된다. 실제로 가속항이 포함되게 된다면 그래프의 형상은 대략적으로 다음과 같이 변하게 될 것이다.


위의 그래프는 기어비의 최솟값 0.5, 최댓값 3을 부여한 상태로 산출한 그래프로 최댓값과 최솟값이 아닌 중간 부분에서만 가속항으로 인한 변수가 작용할 수 있다. 이 부분은 상당히 협소해보이나 실제 도로에서 20도의 경사는 굉장한 급경사에 해당되기 때문에 충분히 변속에 대한 여지가 존재한다. 또한 페달에 가하는 힘이 클수록 이 범위가 늘어나게 되며, 사람은 자신의 체중만큼 페달에 힘을 가할 수 있기 때문에 체중이 80킬로그램인 사람이 5킬로그램의 자전거를 탄다고 가정하면 다음과 같은 형태로 그래프가 나타난다. 오른쪽은 역수를 취해 뒷바퀴의 기어에 대한 앞바퀴의 기어 비를 구한, 원래의 계산식대로 나타낸 모델이다.


여기서 기어비에 대한 가속항은 다음과 같이 나타난다.


이 항은 기어비의 역수에이긴 하나 직접적으로 더해지는 항이기 때문에 직관적인 과정을 통해 다음과 같은 형태로 가정할 수 있다.


위의 그래프의 형태에서 속도는 취급되지 않았지만 직관적으로 속도가 빠르고 힘을 세게 가하는 경우 가속을 원한다고 판단할 수 있기 때문에 충분히 타당한 모델이라고 할 수 있다. 여기서는 기어비의 역수를 사용하기 때문에 두 계수 와 는 음수를 가진 상수가 될 것이다.


위의 그래프는 계수만을 변화시켜 결과를 확인한 것이다. 위와 같은 연구를 통해 모델을 도출하였으며 이때 상정한 상수와 결과 모델은 다음과 같다.


학습 알고리즘

학습 알고리즘은 기계학습을 통해 산출되는 알고리즘으로 적절한 학습 모델을 선정하는 것이 중요하다. 이는 앞의 직관적 알고리즘에서 연구한 결과를 통해 추측할 수 있다. 앞에서 산출된 알고리즘은 다음과 같은 형태를 갖는다.


여기서 변수는 , , 가 되며 산출해야 하는 결과는 에 해당한다. 무게를 포함한 나머지는 모두 상수로 간주하여 고려하지 않는다. 여기서 먼저 기어에 대해 정리할 필요가 있다. 기어는 전방에 3개, 후방에 7개 위치하며 21개의 조합이 가능하다. 기어의 이빨 수를 기준으로 정리하면 다음과 같다.


Front Back Ratio Number Teeth Number Teeth 1 28 1 28 1.000 1 28 2 24 1.167 1 28 3 22 1.273 1 28 4 20 1.400 1 28 5 18 1.556 1 28 6 16 1.750 1 28 7 14 2.000 2 38 1 28 1.357 2 38 2 24 1.583 2 38 3 22 1.727 2 38 4 20 1.900 2 38 5 18 2.111 2 38 6 16 2.375 2 38 7 14 2.714 3 48 1 28 1.714 3 48 2 24 2.000 3 48 3 22 2.182 3 48 4 20 2.400 3 48 5 18 2.667 3 48 6 16 3.000 3 48 7 14 3.429


오른쪽의 Ratio 열에 나타난 기어비의 간격이 일정하지 않음을 확인할 수 있다. 위의 결과를 다시 기어비의 크기 순서로 정렬하여 나타내면 다음과 같은 표를 얻을 수 있다.


Front Rank

1 2 3 Back     7 1     6 2   7   3     5 4     4 5   6   6     3 7   5   8 7   2 9       10   4   11 6     12   3   13     1 14   2   15 5     16 4     17   1   18 3     19 2     20 1     21


순서가 매우 무작위적임을 볼 수 있으며, 기어비가 일치하는 부분 또한 존재하는 것을 볼 수 있다. 여기서 세 종류의 학습 모델을 가정할 수 있다. 먼저 기어비가 1~3.429 사이의 값을 갖는 것을 이용하여 선형 근사를 수행할 수 있다. 모델의 경우 정확히 판단할 수는 없지만 앞의 직관적 모델에서 절댓값 10도 이내에서만 변화가 나타난 것을 보았을 때 삼각함수를 일차 함수로 근사할 수 있다고 생각되어 5차식 이내의 테일러급수를 적용한다면 충분할 것이라는 결론을 내렸다. 따라서 세 개의 변수로 나타낼 수 있는 5차식을 이용한다면 충분히 높은 정확도를 나타낼 것이라는 추측을 하였다. 두 번째로 전방 3개와 후방 7개의 기어 Class가 나누어져 있다는 점에서 Softmax Regression을 적용할 수 있을 거라고 판단하였다. 다만 인공신경망을 사용하게 되는데 입력되는 데이터가 연속적인 값을 갖는 세 개의 변수이기 때문에 상당히 많은 신경망을 만들어야 할 것이라고 생각하였다. Deep Learning을 적용하여 5개 층 이하의 Hidden Layer을 적용한다면 충분한 결과가 나올 것으로 보이며 각 레이어에 포함된 노드의 수는 먼저 20개로 시작하여 테스트를 통해 판단한다. 이 방법의 단점은 21개의 조합을 Class로 사용해야 한다는 점이며 잘못된 결과가 나올 경우 운행에 치명적이라는 점이다. 이 문제를 극복하기 위해서는 다량의 데이터가 필요하다. 마지막 방법은 Logistic Regression을 수행하는 Hidden Layer 뒤의 결과 층을 Linear Regression을 수행하여 얻는 것이다. 이 방법은 첫 번째 방법과 두 번째 방법을 혼합한 것으로 첫 번째 방법처럼 복잡한 모델을 만들지 않을 수 있는 동시에 많은 데이터를 요구하는 두 번째 방법의 약점을 보완할 수 있어 가장 바람직할 것으로 생각된다.

앞에서의 예측한 직관 알고리즘에서처럼 정규화 된 데이터들의 경향성이 상당히 일치하는 것을 확인할 수 있었다. 따라서 Sigmoid나 Hyperbolic Tangent 등의 활성함수를 사용하는 Neuron보다는 다항식에 대한 Regression을 실시하거나 Rectified Linear 함수 등을 이용하는 것이 더 바람직할 것으로 판단하였다. 먼저 데이터 분석 도구인 R을 이용하여 1개 Neuron이 포함된 한 개의 Hidden Layer를 갖는 모델에 대해 분석해보았다. 모델은 각 층에 Bias를 하나 포함하는 Regression Neural Network 모델이며 앞에서 정규화를 완료한 2,000개의 데이터 중 70%에 해당하는 1,400개의 데이터를 Training Set, 나머지 600개의 데이터를 Test Set으로 선정하였다. 아래는 분석 결과를 Neural Network의 형태로 시각화 한 것이다.


다음은 600개의 Test Set에 대해 위의 모델을 적용하여 원래의 값과 비교한 부분이다. 이중 파란색의 데이터가 실제 데이터, 붉은색의 데이터가 추측한 데이터이다.


상당한 정확도를 보이는 것을 알 수 있으나, 추측한 데이터 중 0보다 작거나 1보다 큰 데이터는 존재하지 않았다. 따라서 자전거 기어의 전체 성능을 사용하지 못하는 것을 알 수 있으며 조금 더 보완이 필요하다 할 수 있다. 모델을 개선하기 위해 Hidden Layer를 구성하는 Neuron의 숫자를 증가시켜 보았다. 다음은 Hidden Layer에 2개의 Neuron을 구성하고 학습을 시행한 모델이다.


앞의 모델보다 Error의 크기가 감소한 것을 볼 수 있다. 수렴하기까지 무려 5배에 가까운 연산이 수행되었다. 이 모델을 기준으로 Test Set을 연산한 결과는 다음과 같다.


앞의 데이터에 비해 더 정확하며 자전거의 성능을 전체적으로 잘 활용하고 있는 모델임을 알 수 있다. 더 정확한 모델을 찾기 위해 Hidden Layer의 Neuron 수를 증가시켜 보았으나 연산량이 크게 증가하여 3개 이상의 Neuron을 사용한 결과를 얻을 수 없었다. 이에 따라 더 강력한 연산 도구인 Tensorflow를 이용해 더 많은 Node를 갖는 Neural Network를 구성하여 학습을 진행하여 보았으나 위의 1개의 Hidden Layer와 2 개의 Node를 갖는 모델을 초과하는 성능을 얻을 수 없었다. 추가적으로 Sigmoid 활성함수를 포함하는 모델을 만들어 성능을 테스트해 보았다. 테스트는 100개의 Node로 이루어진 Sigmoid 함수를 활성함수로 이용하는 Layer를 각각 1개 부여한 경우와 2개 부여한 경우를 테스트해 보았다. 그러나 대부분의 상황에서 결과는 부정적으로 나타났는데, 모델의 Network 크기가 증가하면서 모델이 지역 해로 수렴하거나 혹은 Training Case에 대해 Overfitting을 겪기 때문인 것으로 생각된다.

인터페이스 설계

스마트폰은 범용적으로 널리 사용되는 장비로 사용자에게 자동변속기의 상황과 자전거 상태를 보여줄 수 있는 좋은 수단이며 블루투스 통신과 같은 통신 라이브러리를 이용하여 쉽고 간편하게 통신 할 수 있다. 입력 기능 또한 우수하기 때문에 사용자가 자전거의 상태를 확인하는 것 이외에 수동으로 원하는 변속 레벨을 입력할 수 있다. 추가적으로 이미 존재하는 스마트폰을 이용한 응용인 자전거 운행 정보, 칼로리 계산 및 추가 편의 기능을 도입하여 확장성을 도모할 수 있다.

UI 디자인

인터페이스로 사용되는 안드로이드 어플리케이션의 경우 성능이 보장된 Open Source를 확보하여 기존의 디자인을 적용하여 작성하였다. 사용한 어플리케이션은 ‘BlueTerm’으로 블루투스의 RF 통신을 이용할 수 있는 터미널을 제공하는 어플리케이션이다. 아래는 기존의 BlueTerm 어플리케이션과 디자인을 적용하여 새롭게 제작한 디버그 전용 인터페이스이다.

그림

왼쪽 사진이 BlueTerm이며 오른쪽 사진이 새로 제작한 어플리케이션이다. 디버그 인터페이스이기 때문에 디자인을 포기하고 통신 로그를 화면에 그대로 출력할 수 있도록 하였으며 5개의 버튼을 이용하나 터미널을 통한 문자열 전송이 가능하다. 각 버튼은 다음의 역할을 수행한다.

1. Mode: 모드변경, 수동 변속과 자동 변속으로 모드를 변경한다.
2. Front_Up: 전방 기어 상승, 전방 기어의 단수를 높인다.
3. Front_Down: 전방 기어 하강, 전방 기어의 단수를 높인다.
4. Rear_Up: 후방 기어 상승, 전방 기어의 단수를 높인다.
5. Rear_Down: 후방 기어 하강, 전방 기어의 단수를 높인다.

통신 인터페이스의 경우 명령어를 사용하여 변속기를 제어하며 문자열의 형태로 데이터를 전송하도록 하였다. 아래는 명령어 리스트이다.

MM – Mode Manual, 수동 주행 모드로 변경
MA – Mode Auto, 자동 주행 모드로 변경
FU – Forward gear Up, 전방 기어 단수 상승
FD – Forward gear Down, 전방 기어 단수 하강
BU – Backward gear Up, 후방 기어 단수 상승
BD – Backward gear Down, 후방 기어 단수 하강

데이터 전송의 경우 경사각도, 주행 속도, 페달에 가해지는 압력, 현재 전방 기어의 단수, 후방 기어의 단수를 순서대로 전송하도록 하였다.

자재소요서

내용

결과 및 평가

완료작품 소개

프로토타입 사진

내용

포스터

내용

특허출원번호 통지서

이번 프로젝트에서 설계하여 제작한 자동 변속기에 대해 위와 같이 특허를 출원하였다. 특허 출원에는 라쳇 구조를 이용한 변속 기어와 걸림쇠 기어, 이를 장착하는 기어 박스의 형상과 IMU 센서, 압력 센서, 속도 센서에서 측정된 값을 이용하여 딥러닝 기술로 변속 패턴을 얻어내는 방법이 포함되었다. 위의 기술 로드맵에서 언급한 바와 같이, 이번 프로젝트는 딥러닝 기술을 이용한 자동 변속이 목표였기 때문에 이에 관련된 기술에 대해서만 특허를 출원하였다. 앞으로는 변속 기어의 추가적인 내구성 개선과 하드웨어의 전력 소모를 줄이고, 추가적인 센서 부착과 센서 간의 상호 보완 및 캘리브레이션 시스템을 구축하며, 자전거를 위한 통합 인공지능을 구축할 수 있을 것으로 기대된다. 따라서 앞으로 개발이 진전되면 추가적으로 개발된 기술에 대해서도 특허를 출원할 것이다. 마지막으로, 다음의 사진은 이번 프로젝트의 특허에 대한 출원 번호 통지서이다.


개발사업비 내역서

내용

완료 작품의 평가

평가 항목 선정

평가항목의 경우 요구사항과 목적 계통도를 바탕으로 작성하였다. 각 항목은 목적 계통도에 나타난 범주를 이용하여 분류하였으며, 모듈성의 경우 기술 로드맵을 기준으로 구현도를 평가하였다. 또한 제작비용의 한계로 인해 하드웨어적 모듈화에 한계가 생겨 경제성 항목의 설치비용 부분은 평가항목에서 제외하였다. 구현도의 경우 기능성의 모듈성 부분에 해당하며 로드맵에 의거하여 완성도를 평가한다. 로드맵의 프로젝트 종료 시점 목표를 기준으로 변속기, 인공지능, 센싱 기술의 각 장치와 소프트웨어가 얼마나 완성되었는지를 달성도(%) 기준을 이용하여 평가한다. 기능성은 변속 기능에 대한 평가로 변속이 얼마나 신속하고 정확하게 이루어지는지 평가한다. 이 부분은 장치의 성능을 결정짓는 매우 중요한 항목으로 장치의 하드웨어적 성능을 나타내는 지표가 된다. 여기서 신속성의 경우 변속 기어가 회전하며 체인이 다음 기어에 걸리는 메커니즘으로 이루어진다는 점에서 시간이 아닌 바퀴의 회전 수를 근거로 한다. 안정성은 하드웨어 안정성과 소프트웨어 안정성의 두 부분으로 이루어지나, 소프트웨어 안정성의 경우 요구사항을 반영하여 구체적인 두 개의 항으로 세분화하였다. 하드웨어 내구성의 경우는 하드웨어 안정성에 해당하며 예산의 한계로 여러 개의 제품을 만들 수 없어 파손 시까지 테스트가 아닌 구조해석의 결과를 기준으로 평가하였다. 소프트웨어 안정성에 해당하는 변속 안정성은 제어 능력에, 돌발 상황 대응의 경우 긴급 상황 대처 능력에 해당되는 항목으로 제어 상황에서 체인이 이탈하지 않도록 할 수 있는지, 전원이 차단되거나 프로그램이 종료되는 경우 운전자에게 문제가 생기지 않는지 평가한다. 경제성의 경우 단순히 제작비용을 평가하며 타 시제품과의 경쟁력을 비교한다. 편의성은 장치의 만족도를 기준으로 평가되었는데, 이는 각각 인터페이스에 대한 만족도와 주행에 대한 만족도로 평가한다. 인터페이스 만족도의 경우 인터페이스가 얼마나 편리한지에 대해 평가하며 주행 만족도의 경우 산출된 기어 변경 공식이 얼마나 만족스러운 지를 평가하게 된다.


평가

기술 로드맵 기준으로 본 프로젝트의 기간 내 목적은 프로토타입의 구현이기 때문에 평가 기준은 장치의 실현 가능성을 판단하는 범위 안에서 정해졌으며 따라서 대부분의 항목이 필수 요구조건에 해당한다. 희망사항에 해당하는 부분은 기계학습이 적용되었는지의 여부와 제작비용 및 인터페이스 만족도에 대한 부분이다. 모듈의 구현도에 대한 부분은 하드웨어의 설계와 소프트웨어의 설계가 완료되었는지에 대해 평가한다. 변속기 구현도는 변속 장치에 대한 설계와 제어 알고리즘에 대한 평가로 이루어졌으며 독립적인 Thread로 정상적으로 작동하는 것을 확인할 수 있었다. 인공지능의 경우 본 프로젝트에서의 필수 요구조건은 제어 알고리즘의 구현 여부였으며 기계학습을 통한 구현은 희망사항이었기 때문에 각각 50%의 달성도를 부여하였으나 목표치는 50%로 설정하였다. 본 프로젝트에서는 학습을 통한 인공지능이 구현되었으므로 100%의 달성도를 부여하였다. 센싱 기술은 센서가 설치되어 정상적으로 작동하는지에 대한 여부와 제어 알고리즘이 적절하게 적용되어 노이즈 방지기술 및 단위 환산이 정확히 작동하는지에 대한 여부를 판단하였다. 전체적인 모듈이 완성되었으며, 모든 센서에 추가적인 처리 기능을 적용하였기 때문에 100%를 부여하였다. 변속 정확성과 신속성의 경우는 자전거를 고정시킨 상태로 측정하였기에 실제 주행과는 차이가 있으나 이를 고려하여 기준을 엄격하게 설정하였다. 그러나 기어의 복원력을 줄이지 않으면 변속이 불가능하고, 복원력을 줄이면 기어의 복원에 문제가 발생하는 딜레마가 발생하였기에, 사용한 설계와 재료비 수준에서 정확도 문제는 완전히 극복할 수 없었다. 따라서 기존의 기준보당 약간 낮은 목표를 달성하였다. 반대로 신속성의 경우 당초에 예상했던 5회의 회전 시간에 비해 매우 높은 성능을 보였다. 하드웨어 내구성은 제작비용과 함께 목표를 정하지 않은 항목으로 프로토타입을 만들기 위해 3D 프린터를 이용하였기에 파손되지 않는 한도 이상의 정확한 목표는 정하지 않았다. 그럼에도 구조적으로 전방기어는 21%의, 후방 기어는 36%의 응력 집중을 감소시켰다. 실제 제품 사용 또한 안정적으로 테스트를 진행하고 있어 재료를 바꾸지 않더라도 내구성의 문제는 없어 보인다. 변속 안정성의 경우 체인의 이탈을 기준으로 판단하였다. 그러나 변속기 자체에 안전장치가 장치되어 있으며 발생한 문제 또한 하드웨어적으로 보완하였기에 문제가 발생하지 않았다. 돌발 사항은 Ratchet 구조의 특성상 쉽게 극복할 수 있었다. 재료비용의 경우 기존에 보유하던 물품을 제외하고 총 281,030원의 예산을 사용하였다. 기존 보유 물품의 경우 대부분의 장비들이 적당히 구매할 수 있는 장치들이나 예외적으로 두 개의 고성능 서보 모터는 상당한 고가에 해당한다. 그러나 고성능이라도 10만원 안팎의 장비들이기 때문에 100만원을 호가하는 가격에 판매되는 시장 제품에 비교한다면 가격 경쟁성은 보장될 것으로 보인다. 만족도 부분은 사용자의 만족도를 조사하였다. 인터페이스의 경우 가시성과 직관성 부분에서 불만이 발생하였고 버튼의 크기 또한 작기 때문에 조작감에서도 미흡하다는 평가를 받았다. 그러나 통신은 원활하게 작동하였고, 버튼을 누른 시점에서 즉각적인 반응이 이루어졌다는 점에서 호평을 받았다. 주행 만족도의 경우 테스트 주행 상황에서 후방 바퀴의 축이 틀어지는 문제가 발생하여 몇 개의 기어 레벨을 사용할 수 없는 상황이었음에도 가능한 범위 내에서 조작에 따른 변속이 즉각적으로 발생하였고 기어 레벨이 잘 유지되었기 때문에 일시적인 문제가 발생하지 않았다면 매우 만족스러웠을 것이라는 응답을 얻을 수 있었다.

향후평가

하드웨어 개선사항

전용 변속기 제작

앞에서 제작한 변속기는 와이어의 장력과 변속기에 장착된 스프링의 복원력을 이용하여 제어하는 방식의 변속기를 개조하여 만든 것으로 모터로 와이어를 당겨 기어를 변속하는 방식을 사용한다. 때문에 기존의 구조를 그대로 사용하기 위해 모터를 핸들 부근에 장착하는 방법을 사용하였으며, 따라서 자전거의 핸들을 돌리는 과정에서 모터가 흔들리게 되므로 내구도에 부정적인 영향을 미칠 수 있다. 모터의 회전과 와이어를 당기는 거리를 계산해야하기 때문에 조정 작업에도 긴 시간이 소요된다. 또한 Servo Motor의 Torque가 그대로 와이어를 당기는 방식을 사용하기 때문에 와이어와 와이어를 감싸는 고무파이프 사이의 마찰력을 극복하기 위해 큰 힘이 필요하며, 이를 완화하기 위해 복원 스프링의 힘을 낮추는 경우 스프링의 복원력이 마찰력을 극복하지 못해 기어가 되돌아가는 상황에서 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 체인을 가이드 하는 부분에 직접 Servo Motor를 장착하는 방을 사용할 수 있을 것으로 보이며, 제품의 모듈화에도 긍정적인 영향을 가져올 것이다. 다만 이 방법의 경우 전용 장비를 제작하는 방법이기 때문에 예산이 추가적으로 요구된다.


페달 독립 모듈화

페달 모듈의 경우 한 쪽의 페달에 한 개의 저전력 MCU와 Load Cell, Load Cell 증폭 모듈을 사용하며 추가적으로 9 Volt 전지를 부착하게 된다. 그러나 한쪽에 부착되어 있기 해당 페달에 압력이 들어가는 다음 사이클 전까지는 압력의 변화를 측정할 수 없다는 문제가 있었다. 두 페달에 모두 장착되어 있다면 합력을 구할 수 있으나 이번 과제에서는 예산의 제한으로 인해 부득이하게 한 쪽의 페달에만 모듈을 장착한 후 알고리즘으로 이를 보완하였다. 모듈의 완성도 문제도 발생하였는데, 기존의 페달에 각 부품을 부착하는 형태이므로 페달의 균형을 잡지 못하여 탑승 시 불편하다는 문제가 발생하였다. 또한 실리콘으로 부착을 시켰기 때문에 재료의 특성 상 파손될 여지가 존재한다. 따라서 페달을 제거하고 부착할 수 있는 모듈을 제작한다면 이를 해결할 수 있을 것이다. 압력 분배 문제의 경우에도 전용 모델을 사용한다면 페달의 모든 위치에서의 압력을 측정할 수 있기 때문에 정확한 압력을 구할 수 있으며, 단일 Load을 사용하기 때문에 데이터 필터링 과정에서 소실되는 최댓값을 여러 개의 Load Cell을 이용함으로써 얻을 수 있다.


소프트웨어 개선사항

객체화를 통한 모듈 독립

전체적인 모듈이 독립적인 Thread로 동작하기는 하며 추가적인 보완을 통해 Servo Motor를 제어하는 부분을 전용 Thread로 독립시키기는 하였으나 여전히 Main Thread 내부에 Bluetooth 통신을 제어하는 부분과 AI를 적용하는 부분이 함께 위치해 있어 Bluetooth 통신 없이 자율 주행 기능을 구현하기 위해서는 소스 코드를 수정해야 하는 문제가 있다. 따라서 이 부분을 독립적인 Thread로 분화시킨다면 보다 바람직한 결과를 얻을 수 있을 것이다.


알고리즘 개선사항

정확도 향상

때때로 기계학습에서는 학습 모델의 우수성보다 데이터의 양과 품질이 매우 중요하게 작용한다. 앞에서 학습에 사용한 데이터가 적절한 전처리 과정을 거쳐 매우 적합한 형태로 변환되었고 경향성 분석 과정에서 또한 데이터가 합리적이라는 결론을 얻을 수 있었다. 그러나 학습 모델의 출력부에 해당하는 매우 중요한 데이터가 사람의 변속이라는 부분을 감안해야 한다. 앞에서 제시한 바와 같이 변속 기어에는 전방과 후방 기어의 우선순위가 존재하지 않는다. 따라서 앞 기어가 3단에 위치했다고 하더라도 후방 기어의 단수에 따라 전방 기어가 2단인 경우보다 기어 레벨이 낮을 수 있다. 사람은 이를 고려하여 최적의 변수를 수행하지 않으며 실제로 측정된 특성에서도 전방 기어보다 후방 기어를 우선 변속하는 패턴을 발견할 수 있었다. 따라서 기어 레벨은 연속적으로 변화하게 되며 학습 모델이 선형 회귀를 사용하기 때문에 이 부분에 대해서는 강점을 갖게 된다.


사용자 특화 알고리즘 개발

제작한 결과는 개인을 고려한 알고리즘이라고 할 수 없는 부분으로 비록 직관성에 의거한 알고리즘에 개인의 특성이 부여된 항이 존재한다고는 하나 사용자별로 이를 변경하는 부분에 대한 공식을 완성하지 못하였다. 따라서 이 상수를 조절하는 방법에 대한 추가적인 연구가 필요하다. 한 가지 고안한 방법은 평지에서 일반 주행을 하는 과정으로 상수를 조정하는 방법이다. 앞에서 수학적 모델을 고안할 때 개인 특성이 고려된 상수는 세 개로 질량을 나타내는 상수 과 두 개의 평지 주행 상수 및 이다. 따라서 체중을 입력하여 질량 상수를 구하고 평지 주행에서 측정된 값을 통해 다른 상수들을 조정한다면 충분히 구현 가능할 것이라고 생각되었다. 그러나 위의 방법은 가중치가 복잡하게 나타나는 Deep Learning에서도 사용할 수 있는 방법이라고 생각된다. Input Layer에 위의 세 가지 상수를 추가한 뒤, 여러 개인에 대한 주행 데이터를 측정한다면 충분히 개인의 특성을 고려한 모델을 산출할 수 있을 것이라고 생각된다.


인터페이스 개선사항

변속 버튼이 한 번에 1단 변속만을 지원한다는 점에서 버튼에 유예시간을 부여하는 방안 등을 적용하여 여러 단수를 한 번에 변경할 수 있도록 하는 방안이 유용해 보인다. 가령 버튼이 눌린 동안 목적 기어 단수가 깜빡거리는 유예시간을 부여하여 한 번에 여러 단을 변속할 수 있도록 하는 방안이다. 인터페이스가 좀 더 발전된다면 직접 값을 입력하는 상황도 가능해 질 것이다.

부록

참고문헌 및 참고사이트

  1. 한국교통연구원, “퍼스널 모빌리티 증가 추세”, http://www.fnnews.com/news/201707181332357582
  2. 서울시설공단, “따릉이 회원수”, https://www.sisul.or.kr/open_content/main/bbs/bbsMsgDetail.do?msg_seq=421&keyfield=title&keyword=%EB%94%B0%EB%A6%89%EC%9D%B4&listsz=10&bcd=report
  3. road.cc, “Shimano vs SRAM review”, https://road.cc/content/buyers-guide/216660-head-head-shimano-dura-ace-r9150-di2-v-sram-red-etap
  4. 키프리스, ”1020110092515”, http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame
  5. 키프리스, “1020150148573”, http://kpat.kipris.or.kr/kpat/biblioa.do?method=biblioFrame
  6. 서울시립대학교 송지희 교수 마케팅관리 자료
  7. 네이버 블로그, “마케팅 믹스”, https://blog.naver.com/zkfltmak9888/221378161275
  8. 네이버 블로그, “GE 맥킨지 매트릭스”, https://blog.naver.com/cobanet/220933031086
  9. 중앙일보, “[정영재·김원의 스포츠 & 비즈 (8)] 자전거 시장, 꼬부랑길이냐 전용도로냐”, https://news.joins.com/article/20795030
  10. 공공자전거운영처 2018 공공자전거 종합현황
  11. Inertial Measurement Unit, https://en.wikipedia.org/wiki/Inertial_measurement_unit
  12. Load Cell, https://en.wikipedia.org/wiki/Load_cell
  13. Adafruit 16Channel Servo Hat Manual, https://learn.adafruit.com/adafruit-16-channel-pwm-servo-hat-for-raspberry-pi/
  14. Adafruit Imu Manual https://learn.adafruit.com/bno055-absolute-orientation-sensor-with-raspberry-pi-and-beaglebone-black/hardware
  15. nrf24l01 Manual https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf


관련특허

  1. 자전거용 자동변속장치 (출원 번호 10-2011-0092515)
  2. 전자 프로세서를 이용한 자전거용 전동 변속기 (출원 번호 10-2015-0148573)


소프트웨어 프로그램 소스

내용