한이음 (Hanium) 중간 보고서 (S/W)



한이음 프로젝트 중간 보고서 (소프트웨어 위주, 개인 작성)


[프로젝트 소개]

WebioPi를 이용한 옴니 휠 RC카는 엔터테인먼트적 요소와 실생활 사용 가능성에 무게를 두고 개발하고 있는 프로젝트입니다.

라즈베리파이와 Wifi 통신을 기반으로 하며 안드로이드 앱을 통해 원격으로 RC카를 조작할 수 있습니다.

기본적으로 자유로운 이동 방향성을 가지고 있으며 온/습도, 미세먼지, 초음파 센서 및 카메라를 이용하여 실생활에서 측정될 수 있는 다양한 아날로그 값들을 수집하고 데이터베이스에 저장한 후 통계 처리하여 모바일 앱에서 시각화된 정보를 볼 수 있도록 합니다.

안드로이드 앱에서는 기본적인 버튼 조작 방식과 더불어 조이스틱 조작 방식, 자이로스코프 센서 조작 방식을 포함해 사용자가 편한 방식으로 RC카의 움직임을 제어할 수 있도록 합니다.



[추진배경 및 필요성]

캡스톤디자인 주제를 찾다가 우연히 RC카에 대한 개발 현황 자료들을 보게 되었습니다.

대부분의 무선 조종 자동차들은 기본적으로 앞, 뒤로만 이동이 가능한 바퀴를 장착하고 블루투스를 이용하여 통신하는 경우가 많아 이러한 통신 방식에 변화를 주고 특수한 기능들을 더하면 좋을 것 같다는 생각을 하였습니다.

이동에 제약이 많은 장소에 옴니 RC카를 배치하여 해당 지역에서 다양한 정보들을 수집할 수 있다면 사람이 직접 해당 장소에 들어가 확인할 필요가 없어질 것으로 판단하였고 이를 바탕으로 프로젝트를 추진하게 되었습니다.

RC카 베이스에 4방향 이동이 자유로운 옴니 휠을 장착하였으며, 회전까지 더하면 8방향 이동도 어렵지 않기 때문에 장애물 회피 문제와 이동 간 효율적인 공간 활용이 가능할 것으로 생각됩니다.

또한, 기존 RC카에는 없던 데이터 수집 기능이 포함되어 있으므로 다양한 아날로그 정보들을 시간별, 장소별로 확인해 볼 수 있고 통계 처리된 자료를 바탕으로 특정 지역의 변화 연구도 가능할 것입니다.



[국내/외 기술 현황]

기본적으로 옴니 휠을 이용한 제품은 국내/외에서 물건이나 사람 등을 운반해주는 역할을 주로 하고 있습니다.

일반 바퀴를 이용한 단순 RC카 기술과 그것을 이용한 응용 기술에 관한 내용은 어느 정도 찾을 수 있었지만 옴니 휠을 이용하여 데이터 수집까지 할 수 있는 RC카 사례는 찾을 수 없었습니다.

국내/외로 어려운 시니어들이 자유롭게 활동할 수 있도록 도움을 주는 전동 휠체어, 마트 내에서 고객을 따라다니는 자율 주행 카트, 물류 이동을 위한 전동 지게차 등에 사용되고 있으며 미래에는 차량에도 옴니 휠 또는 메카넘 휠이 장착되어 조금 더 자유로운 이동이 가능하게 될 수도 있을 것으로 생각합니다.

그 이외에 옴니 휠 복합 캐리어, 배관 내부 이동 로봇, 환자 자동추적 링거대 등 다양한 기관과 개인으로부터 옴니 휠을 이용한 다양한 특허 출원도 이어지고 있습니다.



[최종 개발 목표]

옴니 휠을 이용한 RC카를 사람이 들어가기 어려운 침대 밑이나 냉장고 뒤 등과 같은 좁은 지역부터 오염된 곳이나 통신 거리가 닿는 광활한 지역까지 다양하게 배치하여 센서를 통해 정보를 수집하는 것뿐만 아니라 현장을 촬영하고 필요한 경우 물건을 집어서 가져올 수 있는 기능까지 구현하고자 합니다.

또한, 데이터 수집 기능을 바탕으로 통계된 자료를 추출하고자 하기 때문에 빅데이터 분석 도구를 이용하여 데이터를 확인하고 안드로이드 앱에서 한눈에 보기 쉽게 시각화하는 것이 최종적인 목표입니다.

옴니 RC카는 라즈베리파이를 기반으로 하고 있으므로 빅데이터 분석 도구인 R과 연동하여 운용한다면 좋은 시너지 효과를 낼 수 있을 것으로 생각합니다.



[주요 개발 내용 - 기능 중심]

현재까지 옴니 휠 베이스에 다양한 센서들을 부착하여 라즈베리파이 내 파이썬 코드를 통해 조작하는 기능을 수행하였으며, 전압 인가 방식에 따른 바퀴의 이동 방향을 연구하였습니다.

또 안드로이드 앱의 대부분의 레이아웃 구성을 마쳤으며, RC카와 원격으로 연결되었을 경우를 생각하여 필요한 조작 기능에 대한 Java 코드를 1:1 방식으로 연결하여 계속해서 보완해나가고 있습니다.

이 부분에는 여러 가지 조작 방식, 카메라 기능, 데이터 자동 저장 기능, 저장 주기 등이 포함되어 있습니다.

추가적으로 라즈베리파이 내에 데이터를 저장할 수 있는 DB를 구축하였고 앱 내에서의 로컬 저장도 가능할 수 있도록 SQLiteDatabase를 이용하여 DB를 구성해두었습니다.

차후 많은 데이터를 앱의 한 화면에서 볼 수 있을 것입니다.



[기존 기술 활용 여부 및 차별성]

기본적으로 라즈베리파이의 WebioPi라는 GPIO 포트 웹 제어 프로그램을 이용하여 원격으로 RC카를 조작하려고 합니다.

이 과정에서 Wifi 통신이 필요하며 개발한 안드로이드 앱에서 손쉽게 제어할 수 있습니다.

기존에는 WebioPi를 이용하여 포트를 제어하는 것에서 끝났다면 센싱한 데이터들을 웹을 통해 뿌려주고 그 정보들을 파싱을 통해 앱으로 가져와 저장할 수 있는 기능까지 담는 것을 목표로 하고 있습니다.

이 프로젝트는 큰 차별성을 보여주는 것보다 기존에 있는 많은 기술을 총망라하여 또 하나의 새로운 융합 기술을 보여주는 것이라고 할 수 있을 것 같습니다.



[주요 기능 및 설명]

제일 먼저 개발을 시작한 것은 안드로이드 애플리케이션입니다.

지금도 계속해서 보완해나가고 있지만 기본적인 레이아웃은 이미 다 구상하여 앱에 적용했고, 앱 구동시 제일 먼저 현재 연결된 아이피 주소 및 포트 정보, 작동 시작 버튼, 아이피 정보 변경 버튼, 데이터 관리 버튼 그리고 환경설정 버튼을 확인할 수 있습니다.

작동 시작 버튼을 누르게 되면 현재 날짜와 시간, 연결 상태, 이동 방향 결정을 위한 화살표 버튼, 카메라 화면, 각종 센서 정보 등을 확인할 수 있습니다.

메인 기능은 이 부분에서 모두 돌아가며 환경설정에서 조작 방식을 변경하면 사용자가 원하는 방식에 따라 버튼 방식에서 조이스틱 방식 또는 자이로스코프 센서 방식으로 교체할 수 있습니다.

연결하고자 하는 아이피/포트 정보는 아이피 정보 변경 버튼을 통해 수정할 수 있고 수집된 데이터들은 데이터 관리 화면에서 확인할 수 있습니다.

해당 화면에서는 데이터 검색, 전체 데이터 확인, 그리고 데이터 분석 기능을 제공합니다. 자세한 연동 과정은 H/W 설정이 마무리되는 대로 진행하고 계속해서 기능들을 추가, 보완해나갈 예정입니다.



[적용 기술]

  • S/W (모바일): 안드로이드 앱은 안드로이드 스튜디오를 이용하여 Java와 xml 처리 언어를 중심으로 개발을 진행하였습니다.

현재 앱에는 동시 제어를 위한 Thread, 데이터 저장을 위한 SQLiteDatabase 연동, 조이스틱 방식을 위한 Canvas 또는 안드로이드 엔진 등이 포함되어 있으며 차후 보완 과정에서 Wifi 통신, 자이로스코프 센서 연동 기술을 포함할 예정입니다.



[예상 결과물]

개별적으로 제작한 30 x 30cm 크기의 PCB 베이스(회로 미포함)에 옴니 휠 바퀴와 각종 센서(온/습도, 초음파, 미세먼지), 카메라, 배터리 등을 부착합니다.

센서들은 현재 위치한 곳의 각종 아날로그 값들을 측정하며 데이터베이스에 값을 저장하고, 필요한 경우 파이썬을 이용하여 빅데이터 분석 툴인 R을 통해 통계 처리된 값을 보존합니다.

바퀴의 움직임, 각각의 센서에 대한 자료 수집, 카메라 연동 등의 과정은 앱을 통해 이루어지게 되며 Wifi 통신 및 라즈베리파이의 GPIO 웹 제어 프로그램인 WebioPi와의 상호작용을 통해 모든 제어와 데이터 송수신을 진행하게 됩니다.

최종적으로 옴니 휠 RC카를 필요한 장소에 배치하고 수집된 데이터를 바탕으로 통계낸 자료들을 앱에서 시각적으로 확인할 수 있게 됩니다.

이 프로젝트에서는 작은 크기와 큰 크기의 RC카를 동시에 테스트하며 필요한 인가전압, 센서 배치 및 동작 방식, 카메라 원격 제어 및 4개의 로봇 팔 동시 제어 등을 연구하며 개발이 진행될 예정입니다.



[기대효과]

  • 안드로이드 애플리케이션을 이용하여 Wifi를 통해 쉽고 다양한 방식으로 옴니 휠 RC카를 제어할 수 있다.

  • 사람이 접근하기 어려운 장소에서도 효율적인 움직임을 통해 탐사가 가능하다.

  • 실시간으로 다양한 데이터를 수집하고 안드로이드 애플리케이션을 통해 시각화된 통계 자료를 확인할 수 있다.

  • 옴니 휠의 이동 방식 및 통신 방식 연구와 안드로이드 앱 개발을 통해 전공 관련 학습 능력과 전문성을 증진시킬 수 있다.

  • 학습공동체 활동을 통해 사회적인 기술도 습득할 수 있다.



[개선사항]

  • 아두이노 환경에서 테스트를 먼저 진행하였고 라즈베리파이 환경에서도 모든 기능들을 추가적으로 테스트 할 예정이다.

  • Wifi 환경이 원활하지 않거나 존재하지 않는 경우도 RC카를 제어할 수 있도록 스마트폰의 블루투스 기능과 라즈베리파이 3B+의 블루투스 기능을 연동하여 제어 가능하게 할 수 있도록 한다.

  • 처음에 기획했던 5V짜리 모터가 아닌 12V 모터를 활용하여 5~10도 가량의 경사도에서 이동할 수 있도록 하고자 하며 이를 위해 직접 PCB 보드를 설계하고 제작을 의뢰하였다.

  • 각각의 센서의 통신 방식을 고려할 때 UART 통신 방식의 센서가 2개인 것을 인지하였고 이를 개선하기 위해 다른 통신 방식의 센서로 교체하였다.

Author

Alec J

Posted on

2019-08-10

Updated on

2021-02-09

Licensed under