1조 - 그냥책

MIE capstone
이동: 둘러보기, 검색

목차

프로젝트 개요

기술개발 과제

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

영문 : 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적 흥미를 충분히 유발할 수 있을 것이다.

구성원 및 추진체계

개발일정

Jb image 31 plan.PNG


추진체계

이름 주 업무 보조 업무
오*식 (팀장)
일정 관리, 소프트웨어 제작, 알고리즘 제작 어플리케이션 제작
박*호
특허조사 및 시장조사 알고리즘 제작
안*수
하드웨어 내구성 분석, 센서 관계식 도출 하드웨어 설계 및 제작
최*연
어플리케이션 제작 소프트웨어 제작
조*재
부품 선정 및 구매, 하드웨어 설계 및 제작 하드웨어 내구성 분석

설계

설계사양

제품 요구사항

N요구사항1.JPG

본 프로젝트에서는 프로토타입 변속기의 구현에 중점을 두기 때문에 변속기를 구현하기 위한 요구 사항은 모두 필수 요구사항에 해당하게 된다. 이중 기능 구현과 밀접한 관련이 있을수록 높은 중요도를 부여하였으며 성능과 내구성 인공지능의 경우 장기적으로 발전시킬 계획이므로 장치 구현에 비해 상대적으로 우선순위는 낮게 책정하였다. 반면 프로토타입 변속기의 수준에서 편의성을 추구하는 부분은 희망사항으로 분류하였다.


  • 목적계통도
목적계통도.JPG
    • 1. 기능성

기능성은 장치가 정확히 기능을 하는지를 나타내는 부분으로 장치는 각 기능별 모듈로 구성되어 정 확하고 신속하게 작동해야 한다. 장치의 모듈은 대부분의 센서와 제어장치 및 통신장치가 연결된 중 앙 모듈과 페달에 장착하는 페달 모듈로 이루어지며 대부분의 자전거에서 사용하는 와이어 변속기에 쉽게 장착될 수 있도록 구성되어야 한다.

    • 2. 안정성

하드웨어의 경우 구조적으 로 정상적인 동작을 수행할 수 있으며 파손되지 않도록 부품을 선정 및 조립하여야 한다. 소프트웨어 의 경우 도출된 기어 레벨이 불안정하더라도 이를 보완할 수 있도록 알고리즘을 보완해야 하며 출력 데이터의 빠른 변화를 막기위해 입력 데이터에 대한 적절한 필터링이 필요하다.

    • 3. 경제성

적절한 모듈을 제작한다면 설치비용을 최소화 할 수 있다. 모듈의 규격화가 적절히 이루어진다면 경제적으로 우수한 제품을 설계할 수 있다.

    • 4. 편의성

편의성은 소비자의 편의에 대한 항목으로 인터페이스의 직관성과 개인별 최적화 지원이 항목으로 세분화하였다

개념설계안

  • 전체적인 시스템의 설계
ComprehensiveDesign.JPG

제품은 전체적으로 센서부, 처리부, 출력부로 나누었으며, 동력을 제공하는 동력부와 유저와 소통하는 사용자 인터페이스, 제품의 견고함을 나타내는 내구도를 추가적으로 고려하기로 하였다.

  • 구체 개념설계안
    • 1.1 센서부
N요구사항2.JPG

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

    • 1.2 Complementary Filter

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

ComplementaryFilter.JPG

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

  • 2.처리부
요구사항3.JPG

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

  • 3.출력부
요구사항4.JPG

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

요구사항5.JPG

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

  • 4.동력부
요구사항6.JPG

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

  • 5.사용자 인터페이스
요구사항7.JPG

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

  • 6.설계 내구도

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

GearDesign.JPG

자전거의 기어 위치에 맞게, 각각의 기어 이빨을 설계하였다. 이렇게 되면 각 기어의 이빨 크기가 커지게 되면서 접촉면이 넓어져 기어를 고정시키는 걸림쇠를 누르는 힘을 크게 주지 않아도 된다는 장점이 존재한다. 즉, 스프링 상수가 낮은 스프링을 걸림쇠에 사용할 수 있게 된다. 또한 자전거의 각 기어 위치에 맞게 설계했기 때문에 서보 제어식을 구성하는 데에도 더 편리해질 수 있다는 장점이 있다.

  • 시스템 구성도
SystemArchitecture.JPG
  • 평가 기준
요구사항8.JPG

이론적 계산 및 시뮬레이션

앞쪽 드레일러 변속 기어의 시뮬레이션 및 재설계

우선 기존 설계에 의한 기어의 형상은 다음과 같다.

앞쪽드레일러변속기어.JPG


하지만 이 형태 그대로 사용한다면 응력집중이 크게 발생할 가능성이 있고, 따라서 추가적인 개 선이 필요할 것으로 생각되었다. 따라서 우선은 위와 같은 형태에 대해 우선은 ANSYS로 분석을 진 행하였다. 하지만 Student 버전의 Mesh 제한으로 인해 결과의 신뢰도가 떨어졌고, 이러한 제한이 없는 Midas MeshFree를 사용하여 해석을 진행하였다. 우선 와이어에 의해 Main Gear가 토크를 받는 상황을 가정하여 해석을 진행하였다. Stop Gear의 경우 스프링에 의해 생기는 응력도 존재하나, 이는 와이어가 기어에 가하는 토크에 비해 상당히 작 은 값이므로 무시한다. 이를 고려하여 해석 조건을 설정하면 아래와 같다.

StopGear서보모터.JPG

Stop Gear의 서보 모터는 위와 같은 상태일 때 최대 각도로 설정되게 설계하였으므로, Main Gear에 가해지는 토크에 의해 반시계 방향으로 회전하지 않는다. 즉, 경계조건으로 Stop Gear의 나 사가 조여져 있는 네 부분에 모든 방향 자유도를 구속하는 조건을 주어 Stop Gear가 돌아가지 않 는 상황을 나타내었다. 다음으로 Main Gear의 축 부분에 토크 조건을 부여하였다. 실제 와이어에 의해 발생하는 토크의 크기는 상황에 따라 계속 바뀌게 되므로, 이번 해석에서는 특정한 상황을 가정하여 토크를 시계방 향 0.3Nm로 설정하였다. 그리고 재질의 경우 3D 프린터에서 사용하는 재질인 ABS로 설정하였다. 이번 해석에서는 사용되는 ABS가 연성이며, 항복강도는 29.3Mpa로 설정하였다. 이렇게 모든 조건에 대해 설정한 후, 해석을 진행한 결과는 다음과 같다. 그리고 이후에 개선된 설계 조건에서도 위의 해석 조건은 모두 동일하게 하여 해석을 진행할 것이다.

기존 설계에 대한 해석 결과

기존설계에대한해석결과.JPG

위의 설계 모델에 대해 해석한 결과는 다음과 같다. 사용된 ABS는 연성이므로, Von-Mises의 등가 응력을 이용하여 응력 분포를 구하였다. 결과를 보면, 두 기어 사이에 접촉된 부분에서 다른 부분에 비해 큰 응력이 발생하고 있는 것을 확인할 수 있다. 그러므로 응력이 크게 발생하는 지점인 접촉 부분의 여러 지점을 개선하여 최대 응력을 구하고, 이를 이용하여 안전계수를 구한다. 그리고 이렇 게 구한 안전계수를 최대가 되도록 한다. 안전계수가 높아지는 것은 기어에 가해지는 최대 응력이 항복강도에 비해 작아지는 것을 의미하며, 결국 기어의 내구성이 높아지는 것을 의미한다.

기존 설계에서 개선하고자 하는 부분


위의 해석 결과에서, 두 기어의 접촉 부분 근처에 큰 응력이 발생하는 것을 알 수 있었다. 그래서 3가지 지점에 대해 설계를 개선하고자 하였고, 설계 개선 지점은 아래와 같다.

개선하고자하는부분.JPG

이에 대해 자세하게 설명하면 다음과 같다.

1. Main Gear 이빨 부분의 끝 부분이다. 현재 날카로운 형태이므로 이곳에 Fillet을 주어 설계를 개선한다.
2. Main Gear와 Stop Gear가 맞닿는 부분이다. 위의 형태와 같이 Main Gear와 Stop Gear 모두 날카로운 형태이다. 이 두 지점에도 Fillet을 주어 설계를 개선할 예정이고, 두 지점에 대해서는 동일 한 반지름의 Fillet을 주어야 정확히 맞물리므로 설계를 변경할 때는 Main Gear와 Stop Gear 부분에 대해 항상 동일한 반지름의 Fillet을 유지하도록 한다.
3. Stop Gear가 토크에 의해 굽어지는 부분이다. 기존 값으로 Fillet이 4mm로 설정되어 있다. 이 를 다른 반지름의 Fillet 값으로 변경하여 설계를 개선하고자 한다.

구체적인 설계 변경 내용

위에서 설명한 바와 같이, 세 지점에 대해 Fillet의 반경을 변경하여 재설계한다. 정확한 수치는 다음과 같다.

필렛케이스테이블.JPG

이와 같이, 세 위치에 대해 세 가지의 Fillet 반경을 바꾸어 가며 가장 안전계수가 높은 경우를 찾 고자 한다. 하지만 위의 경우에 대해 모두 평가해 보려면 3^3 = 27개의 Main Gear와 Stop Gear를 제작한 뒤, 안전계수를 측정하기 위해 실제로 위의 해석에서 설정했던 크기의 토크를 가하여 전체적 인 응력 분포를 구해야만 한다. 하지만 이는 실제로 측정하기도 어려울뿐더러, 현재 주어진 예산과 시간을 고려했을 때 불가능에 가깝다. 3D 프린터의 인쇄 속도도 상당히 오래 걸리는 점을 고려할 때, 이를 직접 테스트하는 것은 비효율적이다. 그러므로 위에서와 같이 Midas Meshfree를 이용하여 해석하고, 추가적으로 해석 시간을 줄이기 위해 실험계획법을 사용한다. 우선 제어 인자의 경우 위에 나타낸 표와 같이 세 위치의 Fillet의 반경이 되고, 각 제어 인자는 3 수준이다. 이를 통해 필요한 자유도를 계산해보면 다음과 같다.

제어인자자유도테이블.JPG

즉, 필요한 자유도는 7이고, 이는 최소 7회의 실험이 필요하다는 것을 의미한다. 이를 만족하는 최소의 크기를 갖는 직교배열표는 L3 (3^4)이므로, 9번의 실험으로 최대의 안전계수를 찾아낼 수 있 다는 것을 의미한다. 실험계획법을 사용하지 않고 모든 경우를 따져볼 경우, 실험 횟수는 27번이다. 즉, 실험 횟수를 1/3로 줄이면서도 최적의 결과를 얻어낼 수 있다. 이제 위의 결과를 이용하여, L3 직교배열표를 만들면 다음과 같다.

L3직교좌표계.JPG

다음으로는, 잡음 인자를 설정해야 한다. 컴퓨터 시뮬레이션에서는 같은 조건에서 여러 번 실험해도 항상 동일한 결과를 얻는다. 이는 실제 실험에서 영향을 미치는 잡음이 없기 때문이다. 그러므로 컴퓨터 시뮬레이션을 통한 실험계획법에서는 실제 실험에서 발생하는 잡음을 모사할 필요가 있다. 일반적으로, 허용차를 이용해 잡음을 모사하므로 이를 이용해 잡음 인자에 대한 직교배열표를 만들 수 있다. 우선 잡음 인자로 ABS의 항복강도와 기어의 길이비를 설정하였다. 이를 표로 나타내면 다음과 같은 결과를 얻는다.

ABS항복강도.JPG

각 수준의 값을 보면 1수준일 때 각 값의 0.992배, 2수준일 때는 그대로 사용하고, 3수준일 때 1.008배를 사용한다. 이 값은 허용차 2%를 이용하여 다음과 같이 구할 수 있다.

실험계획법2수준.JPG

이 때, 람다의 값은 허용차의 1/3의 값으로 정한다. 다음으로 이를 통해 잡음 인자에 대한 직교배열표를 생성한다. 잡음 인자는 각각 3수준으로 설정 하면 아래과 같이 자유도 계산을 할 수 있다.

3수준자유도.JPG

즉, 필요한 자유도는 5이므로 이를 만족하는 최소의 크기를 갖는 직교배열표는 L3이다. 이를 통해 직교배열표를 구하면 다음과 같다.

ABS항복강도직교배열표.JPG

잡음 인자의 직교배열표에서, ABS의 값의 항복강도의 기준값은 29.3MPa이고, 기어의 길이비는 1배이다. 이를 정리하면 다음과 같다.

제어 인자 직교배열표 = L3 , 잡음 인자 직교배열표 = L3

즉, 9x9 = 81번의 실험이 필요하고, 안전계수의 계산은 시뮬레이션을 통해 구한 최대 응력을 통 해 계산할 수 있으므로, 결과적으로 27번의 시뮬레이션을 진행한다.

시뮬레이션 결과

위에서 언급한 바와 같이 총 81번의 시뮬레이션을 진행하였다.

시뮬레이션에서 구한 최대 응력을 이용하여, 각 경우에 대해 안전계수를 구한다. 안전계수는 다음과 같은 방법으로 구할 수 있다.

안전계수 =  항복강도/최대응력 

이를 통해 모든 경우에 대해 안전계수를 구하면 다음과 같다.

안전계수테이블.JPG

MINITAB을 이용한 최적 조건의 도출

위에서 구한 데이터를 이용하여 최적의 결과를 찾는다. 이를 위해 MINITAB을 이용하여 Taguchi Method와 분산 분석을 사용한다. 우선 위의 데이터를 MINITAB에 입력한 후, S/N비를 구한다. 이는 다음과 같다.

미니탭SN비.JPG

이때, SNRA1이 각 실험에 있어서의 S/N비이다. 다음으로 분산 분석을 실시한다. 현재 A가 Fillet 1번, B가 Fillet 2번, C가 Fillet 3번으로 설정되어 있다. A, B, C와 S/N비에 대해 분산 분석을 실시하면 다음과 같다.

SNRA분산분석.JPG

여기서, 유의수준은 10%로 설정한다. 즉, P<0.1인 경우 오차로 풀링한다. 이에 따라 우선 C를 풀 링하면 다음과 같은 결과를 얻는다.

SNRA분산분석2.JPG

이 결과를 보면 A, B의 P값은 모두 0.1 미만이므로, A, B를 유의한 인자로 결정한다. 그리고 위의 값에서 표시한 부분의 값은 오차의 제곱평균으로, 람다 제곱값이 0.6365가 된다. 이는 뒤에서 가법 모델이 타당한지 판단할 때 사용한다.

다음으로 주 효과 플롯을 통해 최적 조건을 결정한다. S/N비의 주 효과 플롯은 다음과 같다.

SN비의플롯.JPG

이 그래프를 보면 A는 1수준, B는 2수준일 때 최적 조건임을 알 수 있다. 여기서 C는 유의한 인 자가 아니므로 무시한다. 그리고 A2B2에 대해 S/N비를 예측하면 다음과 같은 결과를 얻는다.

타구치분석.JPG


즉, A1B2에 대한 S/N비의 예측값은 약 2.20323이다.


타구치이후설명.JPG

최적조건해석결과.JPG

이때 걸리는 최대 응력의 크기가 약 23.1MPa이고, ABS의 항복강도와 잡음 모사를 고려하여 구한 S/N비는 약 1.97732임을 알 수 있다. 위에서 S/N비의 예측값이 2.20323이므로, e를 구하면 1.97732 - 2.20323 = -0.22591이다. 이는 위에서 구한 신뢰구간 안에 포함되는 값이므로, 위에서 세웠던 가법 모델은 타당하다고 볼 수 있다. 결과적으로 위에서 구한 최적 조건은 타당하며, 이 조건을 이용한 재설계를 통해 두 기어에 걸리 는 최대 응력을 줄일 수 있다. 그리고 예측되는 최대 응력의 감소량은 예측된 S/N비의 값이 2.20323, 기존 수준인 1번 실험의 S/N비가 0.15652이므로 다음과 같이 구할 수 있다.

최종SN비.JPG

여기서 Ns는 안전계수의 상승량이고, 안전계수가 약 1.266배 상승한다는 것을 알 수 있다. 이는 위에서 구한 최적 조건으로 재설계를 하면 기존 설계에 비해 기어에 걸리는 최대 응력의 크기가 1/1.266 = 0.79배가 되는 것을 의미한다. 즉, 재설계를 통해 기어에 걸리는 최대 응력의 크기를 약 21% 감소시킬 수 있을 것으로 기대할 수 있다.

뒤쪽 드레일러 변속 기어의 시뮬레이션 및 재설계

앞서 보았던 것과 같이, '앞쪽 드레일러 변속 기어의 시뮬레이션 및 재설계'와 동일한 방법으로 시뮬레이션을 진행한다.

요구사항의 수학적 모델링

설계 변수

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 반경 이외에도 내구성을 높일 수 있기 때문에 중요도를 상대적으로 높지 않다고 생각하였다.


문제 해결 방법

  • 기어 이빨의 배치 간격의 결정 및 제작
- 기어 설계 전에, 우선 직접 자전거의 기어를 조절해 가며 변속 시 당겨지는 와이어의 길이를 측정한 뒤, 이를 적용하여 기어의 이빨을 설계한다. 다만 3D 프린터의 경우 인쇄 시 공차가 생길 수 있고, 기 어 이빨의 크기도 상당히 작기 때문에 공차에 의해 변속에 악영향을 미칠 수 있다. 그러므로 기어를 제작할 때 정밀도를 높게 설정하여 제작한다.
  • 적절한 Mechanism의 결정을 통한 소모 전력의 최소화
- 이번에 설계 변수로 설정한 세 개의 변수(No Mechanism, Worm Gear Mechanism, Ratchet Mechanism)에서 가장 전력 소모가 최소화 되는 Mechanism을 결정한다. 이번 프로젝트에서는 기어 변 속 후 서보 모터에서의 전력 소모를 최소화 할 수 있는 Ratchet Mechanism이 소모 전력을 최소화 할 수 있는 Mechanism인 것이 명백하므로 Ratchet Mechanism으로 결정한다
  • 적절한 서보 모터의 인가전압과 스프링의 종류 결정
- 인가전압을 조절해가며 서보 모터의 토크를 조절하고, 이번 프로젝트를 위해 구입한 여러 종류의 스 프링 중에서 적절한 스프링을 골라 최적의 조건을 찾는다. 이는 각 경우의 수에 대해 한 번씩 테스트 를 해도 시간적, 경제적으로 충분히 가능하므로, 직접 테스트하며 최적 조건에서의 서보 모터의 인가전 압과 스프링의 종류를 결정한다.
  • 기어의 재설계에서 변경할 Fillet 반경의 치수 결정
- 기어의 재설계에서는 세 지점에 대해 Fillet 반경의 치수를 바꿔가며 내구성이 최대화되는 조건을 찾 는다. 다만 모든 경우에 대해 직접 테스트하기 위해서는 3D 프린터의 인쇄 시간과 비용을 생각했을 때 비효율적이다. 그러므로 구조해석 프로그램을 이용하여 시뮬레이션을 진행하고, 시뮬레이션 횟수의 최 소화를 위해 실험계획법을 사용하여 최적의 조건을 찾아 Fillet 반경의 치수를 결정한다.

조립도

기어박스 설계

기어 이빨이 설계가 완료된 후 기어박스를 설계한다. 이때 기어박스는 원활한 설치를 위해 최대 한 작은 크기로 만들어야 한다. 기어박스를 설계할 때 고려해야 할 요소는 다음과 같다.

(1) 서보를 적절하게 장착할 수 있는가.
(2) 기어가 원활하게 가동될 수 있는 공간이 확보되는가.
(3) 와이어가 걸림 없이 장착이 가능한가.
(4) 편리하게 핸들에 부착할 수 있는가.

(1)을 우선적으로 해결하기 위해서는 서보 모터를 거치할 부분과 기어박스를 치수에 맞게 설계해 야 한다. 이를 위해서는 서보 모터의 각 치수를 잰 후 서보 홀더를 우선적으로 설계해야 한다.

서보모터와서보홀더설계.JPG

상단 우측의 사진과 같이 서보 모터의 고정부에는 서보 모터를 고정할 때 제자리에 장착하기 위 해 홈이 있으므로 이와 나사산 위치에 맞춰서 서보 홀더를 설계한다. (2)를 해결하기 위해서는 각 기어 이빨의 크기에 맞춰서 기어박스를 설계한다. 이때 서보 모터의 축의 위치와 공차 범위를 고려하여 실제 내부 공간은 약 2mm의 유격을 가질 수 있도록 설계하였다.

기어박스의기어가동공간설계.JPG

(3)을 해결하기 위해서는 기어의 고정 위치에 맞게 케이블이 들어가도록 수직, 정위치에 구멍을 추가해준다. 마지막으로 (4)를 위해서 핸들에 고정할 수 있는 형태로 설계한다.

기어박스의와이어구멍설계.JPG

아래와 같이 기어박스 디자인이 완성된 후 어셈블리를 통하여 설계에 오류가 없는지 확인한다. 실제 설계가 완료된 기어와 기어박스의 조립 예상도는 아래와 같다.

기어박스조립예상도.JPG

해당 설계를 기반으로 3D 프린팅을 실시하였으며 아래의 사진과 같이 성공적으로 모델링을 출력 하였다.

기어박스출력.JPG

출력이 완료된 제품을 이용하여 아래와 같이 조립을 한 결과 요구사항을 만족할 수 있는 제품이 출력되었음을 확인하였다.

기어&기어박스조립완료.JPG

앞 뒤 드레일러의 스프링 개선 변경

실제 자전거에 서보모터와 기어박스를 장착했을 때 서보모터에 걸리는 부하가 예상보다 강한 것 을 확인하였다. 실제 전원공급기를 이용하여 서보모터에 전력을 공급하였을 때 약 7볼트->4볼트까 지의 전압 강하가 발생하는 것을 확인하였다. 이는 드레일러에 기본적으로 장착된 스프링의 힘이 강하여 서보모터에 많은 부하를 주는 것으로 분석되었다. 이에 따라 드레일러에 장착된 스프링을 교체하였으며 필요에 따라 맞춰 브라켓을 추가로 장착하였다.

기존의드레일러.JPG

기존의 드레일러에 장착된 스프링들은 위의 사진과 같이 프론트 드레일러는 자전거 프레임 안쪽 으로 드레일러를 기본적으로 당기며 리어 드레일러는 자전거의 프레임 바깥쪽으로 기본적으로 드레 일러를 당긴다. 기어를 변속하기 위해서는 와이어가 드레일러의 스프링에 반대되는 일을 해야 기어 변속이 가능한데, 해당 드레일러의 스프링의 장력이 강하여 기존 스프링을 제거하고 상대적으로 장 력이 약하지만, 기어 복귀에는 충분한 스프링을 장착한다.


기존드레일러스프링.JPG

상기의 사진과 같이 기존 드레일러의 장착되는 스프링을 우선적으로 제거한 후 변속테스트를 한 결과 기어를 올리는 것은 잘 되지만 스프링에서 발생하는 반발력이 없기 때문에 기어가 내려가지 않는 것을 확인하였다. 이를 해결하기 위하여 기존의 스프링과 같은 역할을 해주면서 장력이 낮아 서보 모터에 부하가 적게 가는 스프링을 장착하도록 하였다.

앞드레일러에장착된스프링.JPG

앞 드레일러의 경우 기존에 내장된 스프링을 제거하고 스프링이 장착된 자리에 상기의 사진과 같 은 인장 스프링을 장착하였다. 장착한 결과 서보에 가해지는 부하가 상당히 약해졌으며 전원공급기 의 전압도 최초 약 7 Volt에서 6 Volt로 1V 수준의 준수한 전압강하를 보였다.

뒷드레일러에장착된스프링.JPG

뒷 드레일러의 경우도 마찬가지로 기존에 내장된 스프링을 제거하고 새롭게 스프링을 장착하려 하였지만 저가형 드레일러의 특성상 적절한 스프링을 장착하기 힘든 구조이기 때문에 용접으로 브 라켓을 추가적으로 부착한 후 스프링을 장착하였다. 장착 결과 서보에 가해지는 부하가 상당히 약 해졌으며 전원공급기의 전압도 7volt->6volt 수준의 준수한 전압 강하를 보였다.

조립순서

제품을 조립하기 위해서는 기존의 변속 레버 제거, 기어박스 장착 및 연결, 전자장치 장칙 및 연 결의 세단계의 절차가 필요하다. 각 해당 사항들의 상세한 설명은 아래와 같다.

① 기존의 변속 레버 제거

기존의 변속 레버를 제거하고 기어 박스를 장착한다. 기존의 변속기가 와이어의 장력을 이용하고, 이 요소를 그대로 사용해야하기 때문에 와이어의 상태를 보존해야 한다. 따라서 기존의 변속 레버 는 해체하여 분해한 상태로 제거해야 한다.

조립순서1.JPG

② 기어 박스 조립 및 장착

조립순서2.JPG

기어박스를 장착하기 이전에 M4 볼트와 너트를 이용하여 기어박스와 서보모터를 조립한다. 두 모 터는 각각 와이어를 당기기 위한 기어와 Ratchet을 회전시키기 위한 모터에 해당한다. 각 기어마다 두 개의 모터가 필요하기 때문에 총 2개의 모터가 장착된 기어박스 2개를 설치한다.

조립순서3.JPG

기어박스를 장착하기 위해서는 기존의 설계된 기어에 서보모터 브라켓을 장착한 후 와이어를 결 합한다. 이때 와이어는 미리 기어박스를 통과한 상태로 장착되어야 한다.

조립순서4.JPG

와이어와 기어를 결합 한 후 영점에 맞춰 서보모터에 결합한다. 이후 Ratchet을 다른 서보모터에 결합한다. 모든 결합이 완료되면 기존의 레버가 있던 위치에 기어박스를 장착한다.

③ 전자장치 장착 및 연

기어박스의 장착이 완료되면 앞에서 구성한 배선도대로 전체적이 전자 부품을 장착한다. 아래의 사진과 같이 자전거의 앞주머니에 임베디드 보드와 PWM모듈 및 센서를 수납하며 속도 측정을 위 한 스위치는 바퀴에 부착한다.

조립순서5.JPG

페달에 가해지는 운전자의 압력을 측정하기 위한 Load Cell과 통신을 중계하기 위한 MCU 및 RF 통신 모듈의 경우 아래의 사진과 같이 페달 내부에 장착을 한다. Load Cell의 경우, 안쪽에 위치한 금속판과 바깥쪽에 위치한 금속판에 따로 압력이 가해져야하기 때문에 페달의 빈 공간 위에 위치시 킨다. 또한 이 모듈에 전력을 공급하기 위한 건전지가 함께 위치해야 한다.

조립순서6.JPG

MCU와 각 부품의 파손 등을 막기 위하여 상기의 사진과 같이 케이블 타이 등으로 부품을 고정 한 후 반대 쪽 페달에 완충, 방수가 가능한 완충제와 실리콘을 장착, 도포한다.

부품도

내용

제어부 및 회로설계

  • 제어부 전력부 설계
ControlElectronicPart.JPG

전체적인 연산 및 제어부 회로의 대략적인 설계는 위의 사진과 같으며, 상세한 설명은 다음의 내용과 같다. 먼저 해당 연산 및 제어부는 크게 두 부분으로 나뉘며 크게 다음과 같이 나눌 수 있다.

1.임베디드 보드 부문
2.MCU 부분

임베디드 보드 부분의 경우 전체적인 데이터를 처리하며 유저 인터페이스와의 통신을 담당한다. 임베디드 보드에서 하는 일은 다음과 같다.

1. RPM 센서에서 속도를 측정
2. IMU 모듈에서 기울기 및 가속도를 측정
3. RF 모듈을 통하여 아두이노에서 측정된 로드셀 데이터를 수신
4. 서보 드라이버를 통하여 4개의 서보를 제어하여 기어 변속
5. 스마트폰과 통신하여 기어 변속 데이터를 수신 및 기어, 속도 정보 등을 송신
6. 사용자의 운행 특성 혹은 모드에 맞춰 기어 변속 패턴을 변화

MCU 부분은 페달의 압력을 측정하기 위한 독립된 모듈로 이러한 기능을 무선으로 처리하는 단독 모듈로 만들기 위해 분리된 부분에 해당한다. 해당 모듈에서 하는 일은 다음과 같다.

1. 로드셀 데이터를 측정
2. 라즈베리 파이로 로드셀 데이터 송신
    • 임베디드 보드 부분의 배선 구성
EmbeddedCircuit.JPG

우선 좌측 상단의 IMU 센서의 경우 Bosch BNO055 칩셋을 사용한 adafruit社의 IMU 보드를 사용하였다.

IMUsensor.JPG

해당 센서의 경우 UART 통신을 이용하여 임베디드 보드와 통신을 한다.

UartCommunication.JPG

UART(범용 비동기화 송수신) 방식은 데이터를 송,수신하는 핀이 별개이므로 해당 센서의 SDA를 Tx SCL을 Rx로 하여 각각 임베디드 보드의 Rx, Tx에 교차 연결을 한다. 또한 전원을 공급하기 위하여 3.3v의 전원을 Vin Ps1에 각각 연결하고 접지(Ground)를 임베디드 보드에 연결한 후 통신을 초기화하는 RST(Reset)핀을 임의의 GPIO핀에 연결한다. (해당 보드에서는 GPIO 18에 연결하였다.) 임베디드 보드와의 연결 배선도는 아래의 그림과 같다.

ImuCircuit.JPG

우측 상단의 RF 모듈의 경우 nRF24L01을 사용하였고, 이는 2.4GHz의 주파수로 통신하는 라디오 통신 모듈이다.

RfModule.JPG

RF 모듈의 경우 SPI(Serial Peripheral Interface Bus)의 방식을 사용한다. 해당 RF모듈에서의 SPI 버스는 4가지 신호를 가지는데, 이는 다음과 같다.

SCK: 직렬 클럭 (마스터로부터의 출력)
MOSI : 마스터 출력, 슬레이브 입력 (마스터로부터의 출력)
MISO : 마스터 입력, 슬레이브 출력 (슬레이브로부터의 출력)
CSN : 칩 셀렉트, 슬레이브 전송 기능 이용 (active low, 마스터로부터의 출력)

이때 IRQ 기능의 경우 인터럽트 요청 기능을 지닌 핀이지만 해당 모듈은 단방향 통신만을 수행할 예정이기 때문에 IRQ 핀은 사용하지 않는다.

임베디드 보드에 연결하기 위해서는 모듈의 MISO, MOSI, SCK, CSN 핀을 보드의 MISO, MOSI, SCLK, CS0 핀에 각각 대응하여 연결하고 vcc핀을 3.3v의 전원에, GND 핀을 접지에 연결한다. CE의 경우 임의의 GPIO에 연결하면 되는데 해당 보드에서는 GPIO25에 연결하였다. 임베디드 보드와의 연결 배선도는 아래의 그림과 같다.

RfMoudleCircuit.JPG

RPM 센서의 경우 단순히 전자기 센서 앞을 영구자석이 지나갈 때마다 신호가 ON/OFF 되는 형 태이기 때문에 스위치라고 생각하여 단순히 임의의 GPIO와 VCC에 연결하여 ON/OFF Input 신호를 계측한다.

RpmSensor.JPG

각 센서의 인가되는 전원의 경우 임베디드 보드에서 충분히 공급이 가능하기 때문에 추가적인 전 원은 설계하지 않았으며 임베디드 보드의 전원은 보조배터리를 이용하여 전원을 공급할 수 있다.

ServoDrive.JPG

서보 드라이버의 경우 임베디드 보드 위에 장착하는 방식의 Servo Hat을 채택하였다. 해당 제품 은 별도의 배선 연결 없이 사용할 수 있다는 것이 최대의 장점이다. 해당 제품의 경우 서보 모터를 구동하기 위해서는 5V의 DC 전원을 별도 공급해줘야 하지만 해당 프로젝트에서는 추가적인 전원 설계를 통하여 서보 모터에 약 7V의 전원을 공급함으로써 더 강력한 구동력을 얻을 수 있다.

ServoExtraPower.JPG

상단 좌측의 2열은 보드로부터 시그널과 그라운드를 공급받으며 우측의 3열은 각각 pwm 신호, 그라운드, VCC를 연결하며, 하단의 + - 배선에는 외부 전원공급을 연결한다. 전체 연결 배선도는 아래의 그림과 같다.

ServoServoDriveMotor.JPG
McuCircuit.JPG

MCU의 배선은 총 세 부분으로 나뉜다.

1. RF 모듈
2. 로드셀과 계측 증폭 모듈
3. 전원 공급

RF 모듈의 경우 임베디드 보드에 동일한 모듈을 사용하여 SPI 통신을 사용하는데 이를 MCU에 연결하기 위해서는 모듈의 MISO, MOSI, SCK, CSN 핀을 보드의 MISO, MOSI, SCLK, CS0 핀에 각각 대응하여 연결하고 vcc핀을 3.3v의 전원에, GND 핀을 접지에 연결한다. CE의 경우 임의의 GPIO에 연결하면 되는데 해당 보드에서는 D7 핀에 연결하였다.

로드셀의 경우 계측 증폭 모듈 없이 측정할 경우 측정 전압 변화가 약 0.5mv정도로 증폭 모듈 없 이는 MCU로 측정이 불가능한 정도였다. 이를 위해 계측 증폭 모듈을 사용하였다.

RoadCellModule.JPG

좌측의 단자는 로드셀의 배선을 연결하는데 위에서부터 VCC, GND, SIG1, SIG2를 받으며 맨 아래 의 경우 특정 5선식 로드셀에서 제공하는 기능인 잡음을 감소시키는 역할을 하지만, 해당 프로젝트 에서 사용하는 로드셀은 해당 기능을 지원하지 않는다. 우측의 단자의 경우 MCU와 통신을 하는데 상단 두개의 라인은 3.3V vcc 단자이며 그 아래로 DAT, CLK, GND 단자를 제공한다. 각각 DAT핀과 CLK 핀은 MCU의 A0, A1 핀에 연결되어 이선식 통신을 수행하게 한다. 이때 해당 프로젝트에서 사용하는 로드 셀은 3선식 로드셀로 기본적으로 하프 브릿지로 연결된 다. 하지만 해당 계측 증폭 모듈은 풀 브릿지 로드셀을 위한 모듈이기 때문에 1K의 저항 두 개를 추가적으로 연결하여 풀 브릿지 회로를 완성해준다.

BridegeCircuit.JPG

VCC와 GND를 1k저항에 추가로 연결하여 나온 전압을 출력신호 -로 하고 로드셀에서 나온 출력 신호 +를 각각 SIG1 SIG2 에 연결시켜 두 선의 전위차를 이용하여 로드 셀에 계측된 무게를 MCU 에 보낼 수 있다. 전원 공급의 경우 해당 MCU 내부에 레귤레이터가 내장되어있어 9v 배터리를 연결하여 안정적으 로 전원을 공급할수 있도록 하였다.

소프트웨어 설계

전체적인 소프트웨어 구성

소프트웨어 개발의 경우 각 센서와 출력 장치에 대한 제어 모듈을 제작하여 이를 검증한 후, 메인 데이터 처리 모듈을 제작하여 각 모듈을 제어하는 방식으로 개발한다. 각 모듈이 매우 간단한 형태를 가지기 때문에 시스템의 일부를 데모의 형태로 제작하여 테스트하는 프로토타이핑 모델을 사용하여도 큰 문제없이 개발할 수 있을 것이라고 판단하였다. 사용하는 개발 보드가 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을 겪기 때문인 것으로 생각된다.

인터페이스 설계

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

Jb image 29 app.PNG

왼쪽 사진이 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, 후방 기어 단수 하강

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

결과 및 평가

완료작품 소개

프로토타입 사진

1조창공프로토타입.JPG

포스터

포스터.png

특허출원번호 통지서

Jb image 26 patent.PNG

이번 프로젝트에서 설계하여 제작한 자동 변속기에 대해 위와 같이 특허를 출원하였다. 특허 출원에는 라쳇 구조를 이용한 변속 기어와 걸림쇠 기어, 이를 장착하는 기어 박스의 형상과 IMU 센서, 압력 센서, 속도 센서에서 측정된 값을 이용하여 딥러닝 기술로 변속 패턴을 얻어내는 방법이 포함되었다.

위의 기술 로드맵에서 언급한 바와 같이, 이번 프로젝트는 딥러닝 기술을 이용한 자동 변속이 목표였기 때문에 이에 관련된 기술에 대해서만 특허를 출원하였다. 앞으로는 변속 기어의 추가적인 내구성 개선과 하드웨어의 전력 소모를 줄이고, 추가적인 센서 부착과 센서 간의 상호 보완 및 캘리브레이션 시스템을 구축하며, 자전거를 위한 통합 인공지능을 구축할 수 있을 것으로 기대된다. 따라서 앞으로 개발이 진전되면 추가적으로 개발된 기술에 대해서도 특허를 출원할 것이다.

마지막으로, 다음의 사진은 이번 프로젝트의 특허에 대한 출원 번호 통지서이다.

Jb image 25 patent.PNG

개발사업비 내역서

Jb image 30 bill.PNG

완료 작품의 평가

평가 항목 선정

Jb image 28 eval table.PNG

평가항목의 경우 요구사항과 목적 계통도를 바탕으로 작성하였다. 각 항목은 목적 계통도에 나타난 범주를 이용하여 분류하였으며, 모듈성의 경우 기술 로드맵을 기준으로 구현도를 평가하였다. 또한 제작비용의 한계로 인해 하드웨어적 모듈화에 한계가 생겨 경제성 항목의 설치비용 부분은 평가항목에서 제외하였다.

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


작품의 평가

Jb image 27 eval.PNG

기술 로드맵 기준으로 본 프로젝트의 기간 내 목적은 프로토타입의 구현이기 때문에 평가 기준은 장치의 실현 가능성을 판단하는 범위 안에서 정해졌으며 따라서 대부분의 항목이 필수 요구조건에 해당한다. 희망사항에 해당하는 부분은 기계학습이 적용되었는지의 여부와 제작비용 및 인터페이스 만족도에 대한 부분이다.

  • 모듈의 구현도에 대한 부분은 하드웨어의 설계와 소프트웨어의 설계가 완료되었는지에 대해 평가한다. 변속기 구현도는 변속 장치에 대한 설계와 제어 알고리즘에 대한 평가로 이루어졌으며 독립적인 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)


소프트웨어 프로그램 소스

내용