1조-레전두

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

프로젝트 개요

기술개발 과제

국문 : 침대용 얼굴 추적 거치대

영문 : Face-Tracking Smart Phone Holder on Bed

과제 팀명

레전두

지도교수

신동헌 교수님

개발기간

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

구성원 소개

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

서울시립대학교 기계정보공학과 20XXXXX0** 공**

서울시립대학교 기계정보공학과 20XXXXX0** 이**

서울시립대학교 기계정보공학과 20XXXXX0** 허*

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

서론

개발 과제의 개요

개발 과제 요약

기존 침대용 스마트폰 거치대 이용에는 자세 변경 시 사용자가 직접 위치를 재조정해야 하는 불편함이 있다. 이를 해소하기 위해 카메라를 통해 사용자의 얼굴을 인식하고 이를 바탕으로 자동으로 스마트폰의 위치를 조정해주는 자동 위치 조정 거치대를 개발한다. 라즈베리파이를 통해 MediaPipe 프레임워크를 사용하여 사용자의 얼굴을 인식할 수 있도록 하고, 모터드라이버를 통해 서보모터를 제어하여 사용자의 얼굴 방향에 맞추어 거치대가 구동할 수 있도록 한다. 이를 통해 침대에서 휴대폰을 이용하는 사용자가 수동 조정이 따로 필요없이 편리하게 스마트폰을 볼 수 있도록 하며, 특히 몸이 불편한 환자나 연세가 있으신 분들에게 휴대폰 사용에 있어서 더욱 편의성을 가져다줄 것으로 기대한다.

개발 과제의 배경

2006년 아이폰의 출시화 함께 스마트 폰이 등장하면서 컴퓨터를 사용해야만 하는 작업이 스마트 폰으로 가능해졌고, 휴대폰은 단순 전화기를 넘어선 ‘만능 기기’로 재탄생했다. 연락, 업무, 은행 등 일상적인 일부터 유튜브, 넷플릭스 같은 스트리밍, 게임까지 다양한 취미생활까지 점령하고 있는 스마트폰은 이제 사람과 밀접한 관계가 되었다.

컴퓨터로만 가능했던 일을 스마트폰에서도 할 수 있게 됨에 따라, 다른 작업과 함께 스마트폰을 이용하거나, 침대에서 사용한다는 등 더 편하게 스마트폰을 이용하기 위한 ‘휴대폰 거치대’가 등장했다. 초기의 거치대는 단순히 수동으로 각도 조정이 가능한 1자유도의 받침대 형태로 등장했다.

fig 1. 1 자유도 형태의 수동형 휴대폰 거치대

이후 유연하게 움직이는 팔을 가진 거치대가 출시되었고, 각도를 자유롭게 조절하여 사용자가 원하는 상태로 만들 수 있게 되었다. 이는 여분의 자유도를 추가해 침대에 누워 편하게 스마트폰을 즐길 수 있는 환경을 조성했다.


Fig 2. 다 자유도 형태의 수동형 휴대폰 거치대


하지만 기존 스마트폰 거치대는 단순 고정 기능만 있을 뿐 자세가 조금이라도 달라지면 위치와 각도를 다시 조절해야 하는 번거로움이 있다. 만약 자주 뒤척이는 사용자가 기존 거치대를 사용하는 경우, 매번 거치대의 각도를 변경해야 하는 큰 번거로움이 있다.

이러한 번거로움을 덜어주기 위해, 자동 조정 거치대를 찾아보면, 사용자의 얼굴을 인식하고 이를 바탕으로 각도를 조정하는 1자유도 자동형 거치대가 존재한다. 하지만 360도 회전하는 1자유도만 가지기 때문에 시선과 정확한 거치대를 맞추기 어렵고, 침대에서 휴대폰을 사용하는 경우가 많다는 점을 고려하면, 누워서 사용하는 것이 불가능하다는 단점이 있다.

Fig 3. 1자유도의 face 인식 자동 조정 거치대

따라서 본 과제에서는 이러한 기존의 거치대의 단점을 보완할, 침대에서도 사용자가 누워서 편리하게 휴대폰을 사용할 수 있도록 4 자유도를 가지는 자동형 거치대를 제작하고자 한다. 그 이상의 자유도는 설계가 복잡하고 시간적 측면에서 불가능하다고 판단하여 4자유도를 택하였다.

Fig 4. Dlib와 Mediapipe 라이브러리를 이용한 얼굴 방향 추적

얼굴 방향 추출 방식에는 여러가지가 있지만, 접근성이 좋고, 정면이 아닌 경우에도 인식이 가능하며, 라즈베리파이와 같은 모바일 및 저사양 기기에 최적화된 mediapipe 라이브러리를 이용하기로 한다. 기존 기술인 Dlib 라이브러리는 68개의 landmark를 이용하여 사람의 얼굴 특징을 추출하는 방법이였다. 하지만, 낮은 정확도와 동 사양의 기기에서 최적화 부분에서 뒤쳐진 기술이었기에, mediapipe 라이브러리를 사용하기로 결정했다.

Mediapipe 라이브러리에서는 얼굴 추적을 위해 기술적 특성이 약한 장치에 최적화된 BlazeFace 모델을 사용한다. 라이브러리에서 제공되는 face_mesh 추적 기능을 활용하여, 카메라를 통해 촬영한 사람의 얼굴 특징을 파악한다. 특히 BlazeFace을 통해 얻은 468개의 landmark 좌표값 중 눈, 코, 입 주변의 landmark 좌표 값을 통해 현재 사용자 얼굴의 방향을 추정할 수 있다.

최종적으로, 기존의 거치대와 비교하여 현재 개발하려는 face-tracking 스마트폰 거치대의 장점은 다음과 같다.

  • 고개를 상하좌우로 움직이는 것에 맞춰 자동으로 각도를 변경하여 수동 조정이 필요 없다.
  • 4 자유도라는 면에서 기존의 자동형 거치대에 비해서 더욱 향상된 편의성을 가져다준다.

종합하면, face-tracking 스마트폰 거치대는 사용자의 편의성을 증대할 것으로 예상된다. 본 연구에서는 거치대 중에서도, 사용자가 침대에 누워서 휴대폰을 사용할 수 있도록 하는 것에 초점을 두어, ‘침대용 face-tracking 스마트폰 거치대를 만들고자 한다. 이 제품을 통해 사용자는 한 자세로 오래 있어야 하는 불편함을 겪지 않아도 되며, 자세를 바꿀 때 마다 거치대 각도를 조정할 필요가 없으므로 사용자에게 더 큰 편리함을 줄 수 있다.

개발 과제의 목표 및 내용

Fig 5. 침대용 face - tracking 휴대폰 거치대 모식도

1) 라즈베리파이용 카메라와 MediaPipe라이브러리를 이용한 실시간 사용자 얼굴 방향 추적

본 프로젝트는 실시간으로 사용자의 얼굴을 인식하여 거치대가 사용자의 정면 모습을 추적하게 만드는 기술이 필요하다. 이를 구현하기 위해 라즈베리파이의 환경에서 mediapipe 라이브러리와 BlazeFace 모델의 face_mesh 추적기능을 통해 눈, 코, 입과 같은 사용자의 얼굴 특징들을 인식하고, 얼굴이 현재 바라보는 방향을 추정할 수 있도록 한다. 추출된 데이터를 기반으로 핸드폰 거치대의 위치와 각도를 자동 조정하여 사용자의 얼굴 방향을 따라 움직이게 할 예정이다.

  • OpenCV를 사용하는 이유

OpenCV와 mediapipe라이브러리를 사용하는 이유는 접근성이 좋고, 이미지 처리와 컴퓨터 비전 작업에 필요한 다양한 함수를 제공하기 때문에 복잡한 알고리즘 개발 시간을 절약하고 프로젝트의 효율성을 높일 수 있기 때문이다. 실제로 해당 라이브러리들은 안정성과 성능 면에서 검증되었고, 다른 라이브러리에 비해 확장과 수정이 용이한 것으로 알려져 있다. 또한 OpenCV의 경우 이전 프로젝트에서 사용해본 경험이 있기 때문에, 보다 더 사용하는 데에 있어서 친숙하다는 점을 고려하여OpenCV를 사용하기로 결정했다.

  • 라즈베리파이를 사용하는 이유

라즈베리파이는 Linux 기반의 운영 체제를 지원하여 다양한 소프트웨어와 라이브러리의 설치가 가능하다. 또한, 고해상도 카메라 연결이 용이하여 컴퓨터 비전 프로젝트에 적합하다고 생각하여 라즈베리파이를 선택하였다.


2) 거치대 manipulator 구성

manipulator의 경우 4개의 rotation joint를 지니는 4 DOF 구조의 거치대 제작을 목표로 한다. 4 DOF를 초과하는 manipulator은 제작 및 SW 설계가 어려울 것으로 판단하여 복잡한 매커니즘은 본 연구에서는 따로 고려하지 않기로 한다. 사용자의 머리맡은 고정되어있는 상태에서, 머리만 회전하여 움직이는 상황만을 가정한다.

CATIA로 manipulator의 각 link들을 모델링하고, manipulator 구동상황을 바탕으로 ANSYS FEM tool로 응력해석을 하여 각 link의 내구성을 판단한다. 이 과정을 통해, manipulator 가 문제없이 거치대의 역할을 할 수 있도록 한다. 개략적인 거치대 manipulator 형태 및 구동 양상은 아래 Fig 6 과 Fig 7과 같다.

  • Fig 6. 거치대 manipulator 의 개략적인 형태
  • Fig 7. 사용자의 시선에 따른 거치대의 구동 양상

3) manipulator의 각도를 조절하기 위한 모터 제어

manipulator의 rotation joint를 구현하기 위해서 각도 제어가 용이한 모터인 서보모터를 사용한다. MediaPipe로 계산된 방향 정보와 모터 구동 사이의 딜레이를 최소화하기 위해 아두이노를 사용하지 않고 모터 드라이버를 라즈베리파이에 직접 연결하여 4개의 모터를 제어한다. 라즈베리파이에서 구한 사용자의 방향과 위치 값을 바탕으로 휴대폰이 점차 사용자 정면 방향에 가도록 제어한다. 방향 정보에는 카메라에 대한 사용자 얼굴의 roll, pitch, yaw 값과 사진 상에서의 사용자 코의 위치좌표가 나온다. Roll, pitch, yaw 값은 최소가 되도록, 코의 위치좌표는 사진 중앙에 오도록 제어한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

1. 휴대폰 거치대

1) 수동 1 자유도 휴대폰 거치대

Fig 8. 수동 1자유도 휴대폰 거치대

단순히 스마트폰을 받치기 위한 거치대이다. 보통 책상에서 사무 보조 용도로 쓰이며 차량용의 경우 네비게이션 같은 운전 보조 용도로 쓰인다.

2) 수동 다자유도 휴대폰 거치대

Fig 9. 수동 다자유도 휴대폰 거치대

와이어형의 경우 위치를 자유롭게 조정이 가능해 서있거나 앉아 있지 않은 상태에서도 휴대폰 화면을 볼 수 있다. 우측의 다자유도를 가진 거치대 역시 자유롭게 위치를 조정할 수 있다는 장점이 있다. 두 거치대 모두 휴대폰이 떨어지지 않도록 하는 end effector 쪽 홀더가 필요하다.

3) 자동 1 자유도 거치대

Fig 10. 자동 1자유도 거치대

1 자유도를 가치고 z축을 기준으로 360도 회전한다. 카메라에서 목표물을 선택하면 움직이는 물체를 따라가는 Smart Track 시스템이 내장되어 실시간으로 물체를 추적해 촬영이 가능하다. 수동으로 x축 혹은 y축 방향으로 일정 각도를 변경할 수 있다.

4) 스마트폰 짐벌

Fig 11. 자동 스마트폰 짐벌

촬영을 지원하기 위한 스마트폰 짐벌로, 오토 트래킹 기능을 탑재했다. 타겟이 카메라를 벗어나지 않게 자동으로 3축을 적절하게 움직여 목표물을 자동으로 추적한다.

관련 기술의 특징을 정리하면 다음과 같다.

수동 1 자유도 휴대폰 거치대 수동 다자유도 휴대폰 거치대 자동 1 자유도 거치대 자동 스마트폰 짐벌
2023 2 레전두 f1.jpg
2023 2 레전두 f2 1.jpg
2023 2 레전두 f3.png
2023 2 레전두 f11.png
장점
* 좁은 공간에서 사용 가능하다 * 홀더의 위치를 자유롭게 조절 가능하다 * 물체를 인식해 자동으로 각도를 조절한다 * 물체를 인식해 자동으로 각도를 조절한다
* 3 자유도를 가져 다양한 각도로 변화가 가능하다
단점
* 좁은 공간에서 사용 가능하다 * 홀더의 위치를 자유롭게 조절 가능하다 * 물체를 인식해 자동으로 각도를 조절한다 * 물체를 인식해 자동으로 각도를 조절한다
* 3 자유도를 가져 다양한 각도로 변화가 가능하다

현재 시장에 있는 휴대폰 거치대를 분석해보면, 목표물을 인식해 회전하는 자동 1자유도 모델을 제외하면 자동으로 각도를 조절하는 휴대폰 거치대를 찾지 못했다.

2. 안면 인식 기술

본 프로젝트에서는 비교적 작고 값싼 임베디드 보드인 라즈베리파이를 사용하기 때문에, 객체탐지 기술 중에서 연산량이 많이 필요한 기술은 활용하기 어렵다. 따라서 본 프로젝트에서는 저사양의 임베디드 보드에서 비교적 적은 연산으로 작동시킬 수 있는 간단한 객체탐지 기술을 활용해야 한다. 이와 관련된 기술 현황들을 소개하고, 성능을 비교하고자 한다.

1) OpenCV

Fig 12. OpenCV 로고

‘OpenCV’는 다른 컴퓨터 비전 라이브러리들과 비교했을 때 몇 가지 강점을 지니고 있다.

  1. Haar Cascade 알고리즘 라이브러리처럼 눈 인식과 같은 특정 작업을 위한 세분화된 도구들이 풍부하게 구비되어 있다.
  2. 실시간 처리에 중점을 두어 이에 최적화된 코드는 빠른 실행 시간을 보장하며, 이는 실시간 얼굴 인식 프로젝트에서 큰 이점이 된다.
  3. 다양한 프로그래밍 언어와 플랫폼에 대한 광범위한 지원은 개발자들이 편리하게 자신의 환경에서 작업할 수 있게 한다.

이러한 특성들로 인해 OpenCV를 이번 프로젝트에서 비전 관련 라이브러리로 사용할 것이다.

2) Haar Cascade

Fig 13. Haar Cascade

OpenCV의 ‘Haar cascade’는 Paul Viola와 Michael Jones에 의해 2001년에 발표된 객체 인식 알고리즘에 기반을 두고 있다. 이 알고리즘은 이미지 내에서 Haar-like 특징을 신속하게 추출하고, Adaboost를 이용해 유용한 특징만을 선택한 후, cascade 구조를 통해 실시간 객체 인식을 가능하게 하는 방식으로 작동한다.

Haar cascade는 빠른 계산 속도와 간결한 구조를 가진 객체 인식 알고리즘으로, 실시간 애플리케이션에 적합하다. 이미지의 다양한 영역에서 간단한 Haar-like 특징을 효율적으로 추출할 수 있어, 리소스가 제한된 장치에서도 높은 성능을 발휘한다. 또한, 학습 과정이 비교적 단순하며, OpenCV와 같은 라이브러리를 통해 쉽게 구현하고 사용할 수 있다. 그러나 얼굴 정면 사진이 아니면 인식률이 급격하게 떨어진다는 단점이 존재한다.

3) Dlib facial landmark detection

Fig 14. Facial landmarks

‘Dlib’은 컴퓨터 비전과 기계 학습 분야에서 두각을 나타내는 C++ 라이브러리로, 특히 HOG와 신경망 기반의 고성능 얼굴 탐지기와 68개의 정확한 얼굴 랜드마크 추출 기능을 제공한다. 또한 템플릿 프로그래밍, 광범위한 기계 학습 알고리즘, 선형 최적화 도구, 그리고 Python 바인딩은 사용자에게 유연성과 다양한 활용성을 제공한다. 모듈식 설계와 플랫폼 독립성 덕분에 dlib은 다양한 환경에서 효과적으로 사용될 수 있다. Haar Cascade와 달리 비정면 사진에서도 눈 인식률이 높다는 장점을 지니고 있다.

4) Mtcnn

Fig 15. mtcnn algorithm

‘MTCNN’은 상당히 놓은 성능과, 랜드마크를 함께 표시할 수 있기 때문에 중심을 잡는 용도 등 다양한 활용이 가능하다는 장점이 존재한다. 다만 프로젝트 적용에 있어서는 생각보다 많은 자원이 사용되며, 특히 속도상에 이점을 가지기가 어려웠고, 최근 코로나 이후 마스크 착용이 대중화되었는데, 이런 마스크 등의 요인으로 랜드마크를 잘 못 찾는 등의 문제도 발생한다.

5) Mobilenet_ssd

Fig 16. SSD architecture


‘SSD’는 One-Stage 종류의 모델로, Region Proposal과 Object Detection을 따로 분리하지 않고 한 번에 수행하는 모델이다. One-Stage 모델은 Two-Stage 모델보다 학습 속도가 빠르기 때문에 자율 주행 차량에서 객체를 빠르게 탐지하기 위해 주로 사용된다. Two-Stage 모델들은 탐지 성능이 뛰어나지만 상대적으로 탐지 속도는 매우 느린 편이다. 따라서 연구자들은 이런 느린 탐지 속도 문제를 해결하고자 One-Stage 모델을 개발하고 있다.

6) Mediapipe

Fig 17. Mediapipe

Mediapipe는 구글에서 주로 인체를 대상으로 하는 비전 인식 기능들을 AI모델 개발과 기계학습까지 마친 상태로 제공하는 서비스이다. 다양한 프로그램언어에서 사용하기 편하게 라이브러리 형태로 모듈화 되어 제공되며 사용방법 또한 풍부하게 제공되기 때문에 몇 가지 간단한 단계로 미디어파이프에서 제공하는 AI기능을 활용한 응용 프로그램개발이 가능하다.

7) 성능 비교


Fig 18. 성능 비교표

위에서 소개한 mediapipe를 제외한 5개의 안면 인식 모델의 성능 비교표이다. 프로젝트가 비교적 낮은 성능인 라즈베리 파이 환경에서 진행되기 때문에 이를 고려하여 모델을 선정해야 했다. 최종적으로 메모리 소모량이 낮고, 실시간으로 얼굴을 탐지해야 하기에 반응 속도가 빠른 ‘Haar Cascade’와 ‘Dlib’ 라이브러리가 이번 프로젝트에 알맞은 것으로 보인다.

Fig 19. dlib vs mediapipe

Dlib와 Mediapipe 라이브러리를 비교해 봤을 때, mediapipe 라이브러리의 장점은 다음과 같다. Dlib보다 좀 더 웹 애플리케이션과 스마트폰에서 사용하기에 편리하다는 점이다. 또한 얼굴 추적에는 기술적 특성이 약한 장치에 최적화된 BlazeFace 모델이 사용되어 사양이 상대적으로 부족한 라즈베리파이 환경에서 사용하기에 적합하다. BlazeFace는 여러 면에 동시에 468개의 주요 지점을 구축하고 3차원 공간에서 해당 좌표를 추정할 수 있기에 68개의 landmark를 사용하는 dlib 보다 성능이 더 좋다. 이런 이유들을 바탕으로 최종적으로 mediapipe 라이브러리를 이번 프로젝트에 사용하기로 결정했다.


  • 기술 로드맵

1. 휴대폰 거치대

Fig 20. 휴대폰 거치대 기술 로드맵


2. 안면 인식 기술

Fig 21. 안면 인식 기술 로드맵


1) OpenCV

‘OpenCV’는 1999년에 인텔에서 시작된 오픈 소스 컴퓨터 비전 라이브러리로, 기본적인 이미지 처리와 컴퓨터 비전 기능을 제공하는 첫 버전이 2000년대 초에 발표되었다. 2009년에는 C++ 기반의 인터페이스를 도입하면서 많은 새로운 기능과 알고리즘이 추가된 2.x 버전이 공개되었고, 이어서 2012년에는 GPU를 활용한 연산 최적화가 중점적으로 이루어진 2.4 버전이 출시되었다. 2015년에는 새로운 모듈 구조와 함께 딥러닝과 관련된 다양한 모듈이 도입된 3.x 버전이 등장하였고, 이는 인공 지능 연구와 응용 프로그램 개발에서의 활용성을 크게 높였다. 또한, 2018년에는 C++11 표준을 기반으로 API와 구조를 현대화한 4.x 버전이 발표되었으며, 이후 2020년대에는 딥러닝, AR, VR 등의 최신 컴퓨터 비전 기술에 초점을 맞춘 계속된 업데이트와 개선 작업이 진행되었다.

2) Haar Cascade

2001년에 Paul Viola와 Michael Jones에 의해 발표된 "Rapid Object Detection using a Boosted Cascade of Simple Features" 논문은 Haar-like 특징을 활용한 객체 검출 방법을 선보였으며, 이는 특히 실시간 얼굴 검출에 큰 효과를 보였다. 이 기법의 성공적인 도입으로, 2000년대 초반에 OpenCV 라이브러리에 Haar Cascade를 사용한 객체 검출 기능이 포함되어, 개발자들은 직접 분류기를 훈련시키거나 미리 훈련된 분류기를 사용하여 객체 검출을 수행할 수 있게 되었다. 이후, 2010년대에 접어들며, 딥러닝 기반의 객체 검출 기술인 R-CNN, Faster R-CNN, SSD, YOLO 등이 등장하면서 더 높은 정확도와 다양한 환경 대응 능력을 보였다. 앞으로의 미래 전망에서는 딥러닝과 같은 발전된 기술이 주요 연구와 상용화의 중심이 될 것으로 예상되며, Haar Cascade는 그 역할이 점차 줄어들 것으로 보인다. 최근의 딥러닝 발전에 따라 Haar Cascade의 중요성은 상대적으로 감소하였으나, 그 빠르고 경량한 특성으로 인해 제한된 리소스를 가진 환경이나 특정 어플리케이션에서는 여전히 유용하게 사용될 수 있다.

3) Dlib facial landmark detection

‘Dlib’은 2000년대 중반에 기본적인 기계 학습 및 컴퓨터 비전 라이브러리로 시작됐으며, 2010년대 초에 HOG 기반의 얼굴 탐지 기능을 도입했다. 2010년대 중반에는 68개의 얼굴 랜드마크 감지 기능이 추가됐고, 후반에는 딥러닝 및 ResNet 기반의 얼굴 인식 기술로 성능을 향상시켰다. 2020년대 초에는 GPU 지원 확장과 실시간 처리 성능 최적화를 중심으로 라이브러리가 지속적으로 발전 중이다.

4) Mediapipe

‘MediaPipe’는 구글에서 개발한 멀티 모달 및 크로스 플랫폼 머신 러닝 파이프라인을 구축하기 위한 프레임워크다. 이 프레임워크는 처음에는 인식 및 처리 파이프라인을 구축하는 데 초점을 맞췄으며, 다양한 기기의 능력을 활용하고, 자원 사용과 결과 품질 사이의 균형을 맞추며, 병렬 및 파이프라인 작업을 수행하고, 시계열 데이터를 적절히 동기화하는 데 도움이 되도록 설계됐다.

MediaPipe의 주요 기능과 능력에는 얼굴 감지, 손 추적, 제스처 감지, 객체 감지 등이 포함된다. 이 기능들은 주로 모바일 장치에 배포되었지만, WebAssembly 및 XNNPack ML 추론 라이브러리와 같은 기술을 통해 웹 애플리케이션으로 확장됐다. MediaPipe는 다양한 솔루션을 지원하며, C++, Python, JavaScript, Android, iOS 등 여러 프로그래밍 언어에서 사용할 수 있다. 이 프레임워크는 멀티 모달 그래프를 지원하며, 다양한 계산기가 별도의 스레드에서 실행되어 성능을 최적화한다. 또한, MediaPipe는 OpenCV 및 FFMPEG와 같은 다른 기술에 의존하여 비디오 및 오디오 데이터를 처리한다. GraphConfig는 MediaPipe 그래프의 토폴로지와 기능을 설명하는 사양으로, 그래프 내의 노드는 계산기의 인스턴스를 나타낸다. 이러한 노드는 타입, 입력, 출력 및 노드 별 옵션과 같은 구성을 지정한다. MediaPipe의 스케줄링 로직과 동기화 기본원리는 시계열 데이터를 맞춤식으로 처리할 수 있게 해준다. 초기 버전의 MediaPipe는 주로 C++을 기반으로 했으나, 시간이 지남에 따라 Python 등 다른 언어로의 접근성이 향상됐다. Python 버전은 초보자에게도 쉽게 접근할 수 있도록 설계됐다.

현재 MediaPipe는 지속적으로 개발되고 있으며, 새로운 기능이 추가되고 기존 기능이 향상되고 있다. 이 프레임워크는 시간에 따라 머신 러닝 애플리케이션 개발에 있어서 점점 더 중요한 도구로 자리잡고 있다.


  • 특허조사 및 특허 전략 분석
2013 2012 2010
휴대폰 거치대 침대용 단말기 거치대 휴대용 단말기의 침대용 거치대
2023 2 레전두 특허조사1.png
2023 2 레전두 특허조사2.png
2023 2 레전두 특허조사3.png
특징
* 고정판을 이용해 고정대상물에 부착하고, 억지회전을 통해 사용자가 원하는 방향으로 휴대용 단말기를 조절할 수 있음
* 침대 프레임이 없어도 벽면에 고정하여 사용 가능
* 침대 프레임에 별도로 고정 설치하는 파이프 또는 침대 프레임에 착탈 가능하게 결합되는 바이스를 통해 고정함
* 미사용시 접철시켜 부피를 축소시킴으로써 공간 활용에 유리한 효과가 있다
* 4자유도를 가지며, 상하좌우 각도를 조절해 사용자의 시선을 맞출 수 있음
* 휴대용 단말기를 침대에 거치할 수 있도록 하여 사용자가 침대에 누운 채로 휴대용 단말기를 조절할 수 있음
* 3자유도를 가지며, 엔드이펙터의 상하 각도 조절을 통해 사용자의 시선을 맞출 수 있음
* 침대 다리에 고정을 해야함
* 엔드이펙터는 홀더 형식이 아니라 받침대 부분에 넣는 형식임
청구항
특허 소멸 상태 * 침대 프레임에 착탈 가능하게 결합되는 바이스에 삽입되는 샤프트와 연결된는 샤프트 아암을 포함하는 침대용 단말기 거치대
* 단말기가 탄성적으로 걸리는 다수의 탄성후크를 포함한 헤드를 포함한 거치대
특허 포기 상태


특허 내용 특허 전략
특허 1 * 고정판을 이용해 고정 대상물에 부착학, 억지 회전을 통해 사용자가 원하는 방향으로 휴대용 단말기를 조절 가능 * 개발하고자 하는 face-tracking 스마트폰 거치대는 물리적인 조정없이 자동으로 사용자의 시선을 따라 움직임으로 편의성이 증대함
특허 2 * 침대 프레임에 별도로 고정 설치하는 파이프 또는 침대 프레임에 착탈 가능하게 결합되는 바이스를 통해 고정하기에 공간 활용에 유리함 * 관련 기술의 장단점을 파악하여 바이스 사용 여부를 결정함
* 사용자의 눈 감김 여부를 파악하여 장시간 감지가 되지 않으면 로봇 팔이 접히도록 하는 특허를 확보하고자 함
특허 3 * 홀더 방식이 아닌 받침대 부분에 넣는 형식을 사용하여 사용자가 힘을 많이 쓰지 않더라도 설치가 가능하도록 함 * 해당 특허와는 달리 사용자의 시선에 따라 상하 각도뿐 만 아니라 좌우 각도도 움직여야 하므로 홀더 방식을 채택하여 안정성을 더하고자 함

우리가 제작하고자 하는 제품과 유사한 특허를 찾아보면, face-tracking을 이용한 휴대폰 거치대를 찾지 못했다. 하지만 침대용 단말기 거치대는 침대 머리맡에 고정할 수 있다는 고정부에 대한 청구항이 있는데, 탈착이 가능한 바이스를 사용한다는 점과 모터를 사용하지 않는다는 점에서 우리의 제품과 차이가 있다고 판단했다. 또한 저러한 구조를 가지는 스마트폰 거치대가 너무 많이 상용화 되어 있기 때문에, 혹여나 구조가 비슷하더라도 유명무실한 특허인 것으로 판단했다.

시장상황에 대한 분석

  • 경쟁제품 조사 비교

휴대폰 거치대 시장을 조사해본 결과, face-tracking을 이용하여 자동으로 위치를 조절하는 다자유도 거치대를 찾지 못했다. 하지만 face-tracking을 이용한 다자유도 셀카봉은 시중에 판매되고 있다. 따라서 본 경쟁제품 조사에서는 기존에 판매되고 있는 휴대폰 거치대와, face-tracking을 이용한 짐벌을 조사했다.

제조사 모가비 잇츠온 바우아토 SHANGHAI YOUNG ZHENG TRADING COMPANY Shenzhen Funsnap Technology Co.Ltd Insta 360
제품명 MOG-102 v2 잇츠온 침대용 4단 관절 스마트폰 자바라 거치대 바우아토 4단 관절 맥세이프 무선 충전 자바라 침대 핸드폰 거치대 BYMO-Rolling 다퍼남 스마트폰 핸드 3축 짐벌 Capture2 인스타360 Flow 스마트폰 짐벌 white
사진
2023 2 레전두 경쟁1.png
2023 2 레전두 경쟁2.png
2023 2 레전두 경쟁3.png
2023 2 레전두 경쟁4.png
2023 2 레전두 경쟁5.png
2023 2 레전두 경쟁6.png
태블릿 커버 불가능 가능 불가능 불가능 불가능 불가능
자유도 다자유도 4 4 1 3 3
위치 조절 방식 수동 수동 수동 자동 (Face-Tracking) 자동 (Face-Tracking) 자동 (Face-Tracking)
관절 소재 스틸 알루미늄 스틸
가격(원) 26,000 20,000 30,000 69,000 98,000 199,000


  • 마케팅 전략 제시

1. 시장 조사 및 전략

  • Fig 22. 2012-2023 국내 연령별 스마트폰 사용률(출처:한국갤럽)
  • Fig 23. 국내 고령층 여가 활동 관련 의식 변화(출처: 한국 통계청)


2012년 대비 2023년도 스마트폰 사용률은 전 연령층에서 지속적으로 증가하였다. 특히 60대 이상의 고령층에서 크게 증가함을 볼 수 있다. 또한, 국내 고령층의 여가 활동 의식 변화 통계에서는 고령층의 여가 활동 중 동영상 시청이 가장 큰 부분을 차지하고 있음을 확인할 수 있다. 개발하고자 하는 face-tracking 스마트폰 거치대는 사용자들이 스마트폰을 이용해 편리하게 여러 컨텐츠를 시청할 수 있다는 편리함이라는 큰 장점을 가진다. 여기에 더해서 거동이 불편한 사용자들에게는 편리함을 넘어서 스마트폰 이용에 대한 접근성을 높여 준다는 점에서 큰 경쟁력이 될 것이다. 고령층에는 거동이 불편한 사용자가 다른 연령층 대비 많아 주 소비자 층이 될 것이라 예상된다.

2. SWOT 분석

Strength Weakness
* Face-tracking을 통해 자동으로 자세 변경마다 별도의 수동 조정 없이 스마트폰을 편리하게 볼 수 있음 * 자동 트래킹 기능 동작 시 발생하는 소음으로 인해 불편함을 느낄 수 있음
* 4 자유도로는 사용자의 모든 자세에 맞는 위치로 동작 시키는데 한계가 있음
* 자동으로 동작하는 거치대인 만큼 스마트폰 고정력과 내구성이 부족할 수 있음
Opportunity Threat
* 사용자의 얼굴 방향만으로 스마트폰의 위치를 정할 수 있기 때문에 거동이 불편한 사용자들의 니즈를 충족시킬 수 있음 * 다른 경쟁 제품에 비해 가격 경쟁력이 부족
* 경쟁 제품의 내구성과 고정력 부분에서는 이미 높은 수준으로 연구 개발되어 있음


S-O W-O
* Face-tracking을 통해 자동으로 자세 변경마다 별도의 수동 조정 없이 스마트폰을 편리하게 볼 수 있음 * 자동 트래킹 기능 동작 시 발생하는 소음으로 인해 불편함을 느낄 수 있음
* 4 자유도로는 사용자의 모든 자세에 맞는 위치로 동작 시키는데 한계가 있음
* 자동으로 동작하는 거치대인 만큼 스마트폰 고정력과 내구성이 부족할 수 있음
S-T W-T
* 사용자의 얼굴 방향만으로 스마트폰의 위치를 정할 수 있기 때문에 거동이 불편한 사용자들의 니즈를 충족시킬 수 있음 * 다른 경쟁 제품에 비해 가격 경쟁력이 부족
* 경쟁 제품의 내구성과 고정력 부분에서는 이미 높은 수준으로 연구 개발되어 있음

개발과제의 기대효과

기술적 기대효과

  • 사용자 편의성 향상

face-tracking을 통해 사용자의 얼굴 방향을 실시간으로 감지하고 스마트폰의 위치를 자동으로 조절하여, 사용자들은 따로 조절하지 않고도 최적의 시야에서 콘텐츠를 즐길 수 있어 편리함을 경험할 수 있다.

  • 접근성 향상

얼굴 방향 이동에 따라 스마트폰을 조절함으로써, 장애인 및 특수한 상황에 있는 사용자들에게도 보다 쉬운 사용이 가능하게 한다.

경제적, 사회적 기대 및 파급효과

본 연구에서 다룬 사용자의 얼굴을 추적하여 휴대폰 홀더의 위치를 알맞게 조정하는 기술은, 해당 제품은 단순 침대용 휴대폰 거치대 차원에서 벗어나, 다른 작업을 하면서 화면을 봐야하는, 양손을 자유롭게 활용할 수 없는 다양한 상황에서 사용자의 불편함을 해소시켜 줄 것이다. 뿐만 아니라, 기존 거치대의 자세를 수정하는 것조차 어려운 거동이 불편한 노약자나 환자의 경우에도 큰 도움을 가져다줄 수 있을 것이다. 특히, 병원 내 개인 맞춤형 모니터를 사용하는 입원 환자의 경우, 본 연구에서 개발한 기술을 적용하면 모니터 사용에 있어서 생기는 거동 불편자의 많은 불편함을 해결해 줄 것으로 기대된다. 본 연구에서는 4 DOF의 낮은 자유도의 거치대만 다루었지만, 추후 연구를 통해 더욱 다양한 상황에서 사용자에게 편리함을 가져다줄 수 있을 것이다.

이 외에도, 로봇공학의 새로운 적용 분야를 개척하여, 새로운 활로를 찾는다는 면을, 그리고 거치대 시장의 흐름 변화를 유도할 수 있다는 점을 고려하면 경제적 파급력도 있을 것으로 추측된다.

하지만 우려되는 부분 또한 있다. 자동 거치대에 너무 의존하게 되는 나머지 사람이 게을러질 수 있다는 것이다. 하지만 이러한 영향보다 다양한 불편한 상황을 해결할 수도 있다는 점, 그리고 거동이 불편한 사람에게 큰 도움이 될 수 있다는 장점이 더 크다고 판단이 되기 때문에, 본 연구는 이 단점에도 불구하고 연구 가치를 갖는다고 할 수 있다.

기술개발 일정 및 추진체계

개발 일정

단계별 세부개발 내용 담당자 개발기간 (월 단위) 비고
9 10 11 12
거치대 설계 공세훈, 최윤
거치대 구조 해석 공세훈, 최윤
얼굴 인식 알고리즘 구현 이승현, 허단, 정구현
거치대 구동 제어 이승현, 허단, 정구현
테스트 및 수정 전 인원
결과 해석 및 보고 전 인원

구성원 및 추진체계

팀원명 역할
공세훈 3D 모델링 및 응력 해석
이승현 얼굴 인식 알고리즘 구현
정구현 응력 해석, 3D 프린팅 및 제작
최 윤 3D 모델링 및 응력 해석, 모터 제어
허 단 모터 제어 및 회로 구현

설계

설계사양

제품의 요구사항

번호 요구 사항 D or W 비고
1 휴대폰을 안정적으로 거치할 수 있는가? D
2 침대 머리판(Head board)에 안정적으로 고정이 가능한가? D
3 사용자가 잠을 자거나 자리를 이탈한 경우를 인식하는 가? D
4 사용자의 얼굴을 정확히 인식하는가? D
5 거치대가 목표한 경로 및 위치로 정상적으로 이동하는가? D
6 구동 수행 시간이 3초 내인가? W
7 구동 민감도가 사용자가 이용하기에 편리한 수준인지? W
8 Power off 시켰을 때 안정도를 유지하는가? W


목적 계통도

Fig 24. 목적계통도
안정성 토크 하드웨어의 설계와 모터 선택이 동작에 있어 무리가 없게 해야함
구조 안정 응력해석을 통한 하드웨어 설계
신속성 인식 속도 사용자의 얼굴 좌표 값을 구하는 데 걸리는 시간을 고려
동작 속도 거치대 홀더가 목표한 위치까지 이동하는 데 걸리는 시간을 고려
정확성 인식 정확성 사용자의 얼굴을 인식하는 정확성을 고려
구동 정확성 목표한 위치에 거치대 홀더가 위치할 수 있도록 함
편의성 범용성 다양한 크기의 스마트폰을 파지 가능하도록 함
사용자 편의성 추구 사용자가 좀 더 편리하게 이용할 수 있도록 거치대 홀더의 위치 및 방향, 민감도 등을 고려하여 설계

설계 사양

1) 거치대 구조

번호 항목 설계사양 단위
1 자유도 ≤4 DOF
2 안전계수 ≥2 -


거치대의 경우 4자유도 이하의 manipulator 형태로 설계하여, 4자유도를 초과하는 복잡한 구동 및 제어에 대해서는 고려하지 않기로 한다. 또한 휴대폰을 거치해야 하는 제품의 특성상 안전하게 거치할 수 있는 가가 중요한 부분이기 때문에, 응력해석 tool을 바탕으로 안전계수를 구하여, 내구성을 갖춘 설계를 할 수 있도록 한다.


2) 인식 및 제어부

번호 항목 설계사양 단위
1 얼굴 인식 속도 ≤1 sec
2 민감도 - -


사용자의 얼굴을 인식하고, 이를 바탕으로 구동을 하기 때문에, 인식 속도 및 정확도가 중요한 부분이다. 또한, 얼굴 방향이 달라질 때마다 반응이 너무 즉각적으로 이루어지면 오히려 사용자 입장에서는 불편할 수 있다. 따라서 특정 초 전의 사진에 비해서 얼마만큼 얼굴 방향이 바뀌었는지에 대한 임계치를 정하여, 너무 민감하게 구동부가 반응하지 않도록 제어한다. 임계치에 대한 부분은 아래 구동부에서 더 상세히 설명한다.

3) 구동부

Fig 25. 사용자 머리를 기준으로 한 오일러 각
번호 항목 설계사양 단위
1 구동 완료 시간 ≤3 sec
2 파지 가능 무게 ≤300 g
3 사용자의 머리와 스마트폰 화면 간의 yaw 방향 오차 ≤ ±10 °
4 사용자의 머리와 스마트폰 화면 간의 roll 방향 오차 ≤ ±10 °
5 사용자의 머리와 스마트폰 화면 간의 pitch 방향 오차 ≤ ±10 °

본 제품은 사용자의 얼굴 방향에 맞추어 사용자 편의성을 고려한 최적의 자세로 거치대의 홀더를 위치시키는 것이 기본 기능이다. 따라서 구동시간, 방향 정확성 등을 위와 같은 설계 사양을 따라야 한다.

Fig 26. 코드 상에서 모터가 움직이기 위한 조건

Fig 26의 조건을 만족할 때 모터를 돌리게 하여 구동부의 방향, 위치에 대한 설계사항을 맞추었다.

개념설계안

본 프로젝트에서 개발할 제품의 시스템 개략도는 다음과 같다.

Fig 27. 시스템 개략도

라즈베리파이와 직접적으로 연결된 카메라로부터 사용자의 얼굴을 촬영한 뒤, 이 이미지 파일을 바탕으로 라즈베리파이에서 MediaPipe 라이브러리를 통해 얼굴의 방향 및 위치를 계산을 한다. 이후 사용자의 얼굴의 위치 및 방향에 따라서 4 DOF의 manipulator을 어떻게 구동시킬지를 결정하고, 서보모터 드라이버를 통해서 각 서보모터에 PWM 신호를 주어 적정 모터 회전 값을 갖도록 한다. 이를 반복적으로 수행해 가면서, 사용자가 휴대폰을 이용하기에 편리한 방향으로 manipulator가 동작할 수 있도록 한다.

가. manipulator HW

Fig 28. 왼쪽부터 순서대로 1번, 2번, 3번, 4번 joint


Manipulator의 경우, 본 프로젝트에서는 4 DOF manipulator 제작을 목표로 한다. Fig 28와 같이 1,2,3,4 번 joint를 구현하기 위한 서보모터와, 서보모터를 고정하고 joint와 joint를 잇기 위한 아크릴 링크를 통해서 manipulator을 구현한다. 이 때 서보모터는 펄스의 폭에 따라서 모터의 회전 각을 결정하며, 원히는 위치로 이동하는 데 용이하게 사용할 수 있는 RC 서보모터를 활용한다. 링크는 서보모터와 휴대폰 홀더 등의 기성품 치수를 고려하여 아크릴로 제작한다.

각 joint의 구동 양상은 다음과 같다.

1번 joint의 구동 양상
2023 2 레전두 개념1.png
2023 2 레전두 개념2.png


2번 joint의 구동 양상
2023 2 레전두 개념3.png
2023 2 레전두 개념4.png


3번 joint의 구동 양상
2023 2 레전두 개념5.png
2023 2 레전두 개념6.png


4번 joint의 구동 양상
2023 2 레전두 개념7.png
2023 2 레전두 개념.png


1번, 3번 joint는 사용자가 고개를 좌우로 돌릴 때, 2번 joint는 사용자가 고개를 위아래로 젖히고 숙일 때, 마지막으로 4번 joint는 사용자의 좌우 고개 돌림에 따라 사용자의 고개 Roll 방향이 휴대폰 화면에 대해서 틀어지는 상황에 대응하기 위한 joint로, 휴대폰의 방향과 사용자의 두 눈 사이를 잇는 직선이 평행하게 하여 사용자의 편의성을 극대화시키는 역할을 수행한다.

위에 대한 내용을 CATIA의 Human Builder tool을 통하여 확인해보도록 하겠다. 우선, 사용자의 고개를 좌/우로 돌리는 상황을 가정해보자. 사용자의 고개 돌림에 대해서1번 joint만을 구동시킨다면 사용자의 시선에서는 아래 그림과 같이 휴대폰이 사용자 시선 방향에 대해서 틀어져 있는 것을 확인할 수 있다.


Fig 29. Manipulator의 3번 joint 구동 전


Fig 30. Manipulator의 3번 joint 구동 후

manipulator의 3번 joint를 구동하면 이 상황을 해결할 수 있다. 위의 Fig 30을 확인해 보면 3번 joint를 통해 휴대폰의 위치를 변경하면, 사용자의 시선 방향과 휴대폰 화면의 법선 방향이 나란하도록 설정할 수 있는 것을 확인할 수 있다.

다음은 사용자가 고개를 숙이거나 젖히는 상황을 생각해보자.

Fig 31. Manipulator의 2번 joint 구동 전

위의 Fig 31와 같이 사람이 고개를 숙이게 되면, 휴대폰 화면의 법선 방향이, 사용자의 눈의 위치보다 더 위를 향하게 되어, 사용자가 휴대폰을 보기에 불편한 상황이 만들어진다.

이 경우 2번 joint를 사용하여 휴대폰을 각도를 변경하면, 아래 그림과 같이 사용자의 시선과 휴대폰 화면의 법선 방향이 최대한 일치하도록 할 수 있다. 이렇게 CATIA의 Human Builder을 통해 manipulator의 기능을 사전에 검증할 수 있었다.

Fig 32. Manipulator의 2번 joint 구동 후


나. 회로부

개발 제품의 MCU의 경우 Raspberry Pi 4B 모델을 사용하였다. 이미지 처리를 통해 사용자의 얼굴 인식을 하기 때문에 아두이노를 사용하기에는 무리가 있다고 판단했다. 개발 초기 당시 Pi 4B 모델보다 성능이 좋고 가격 차이가 별로 없는 Pi 5 모델이 나올 예정이었지만 개발일정과 출시일을 고려하여 개발 시간을 확보할 수 있는 Pi 4B 모델을 선택하였다.

라즈베리파이, SMPS, 카메라 등의 다양한 회로 구성 요소들의 물리적 위치의 경우 다음과 같이 확정지었다. 각 요소들이 어떻게 연결되었는지는 6.제어부 및 회로 설계 부분에서 회로도를 통해서 자세히 설명하도록 하겠다.

Fig 33. 회로부 구성요소들의 배치. 왼쪽 위부터 카메라. 라즈베리파이 및 모터 드라이버, SMPS의 위치


주요 구성요소인 카메라, 라즈베리 파이, 모터 드라이버의 위치는 위와 같다. 카메라의 경우 카메라의 방향과 휴대폰의 화면 방향을 최대한 일치시키기 위해서 휴대폰 홀더에 부착시켜, 이에 따라 손쉽게 사용자의 위치를 파악하고 휴대폰을 보다 더 용이하고 직관적으로 구동시킬 수 있도록 한다.

라즈베리파이와 모터드라이버의 경우, 거치대의 알루미늄 프로파일 기둥 내부 공간에 배치를 하여, 공간을 최대한 효율적으로 활용하고자 한다. 또한 외부 전원인 SMPS의 경우는 상대적으로 무거운 편이기 때문에, 밑바닥에 배치를 하여 거치대의 무게 중심 측면에서 안정성을 더하도록 한다.


다. 소프트웨어


Fig 34. Mediapipe 라이브러리

본 프로젝트에서 가장 핵심이 되는 기술인 얼굴 인식의 경우, 앞서 1.2의 가.State of art 에서 언급했듯 MediaPipe를 활용하여 구현한다.

MediaPipe를 활용하게 된 가장 큰 이유는 얼굴의 방향을 인지하는 인식률 때문이다. 앞서 말했듯 MediaPipe의 BlazeFace 모델의 경우 468개의 주요 지점을 구축하고, 3차원 공간에서 해당 좌표를 추정할 수 있기에, 68개의 landmark를 활용하여 얼굴의 세부 요소의 좌표값을 알아내는 dlib보다 성능이 좋다. 실제로 각 라이브러리를 활용해보면, dlib는 얼굴의 방향의 카메라의 정면 방향에 대해서 많이 틀어지게 되면 인식이 아예 되지 않는 치명적인 결함을 갖는다. 반면 MediaPipe 라이브러리를 활용하면 얼굴의 방향이 많이 틀어지더라도, 인식이 잘 되는 것을 확인할 수 있다.

Fig 35. Dlib를 활용한 결과. 정면 방향에서 고개를 돌리면 인식률이 급격히 저하되는 모습을 보임
Fig 36. Media Pipe를 활용한 결과, 사용자가 고개를 살짝 돌려도 인식률이 높은 것을 확인할 수 있음

또한, MediaPipe 라이브러리를 활용하면 사용자 얼굴의 좌표값 및 Roll, Pitch, Yaw 값 또한 알아낼 수 있다. 따라서 이를 바탕으로 서보모터를 제어하여 사용자가 휴대폰을 보기 편리하도록 거치대 manipulator을 구동하고자 하였다.

이론적 계산 및 시뮬레이션

가. Manipulator 구동 시 필요한 토크 및 구동 시간 판별

휴대폰을 거치하여 움직이게 하는 것이 주된 목적이므로, 모터의 토크를 파악하고 이에 따라 알맞은 모터를 선정하는 것이 매우 중요한 부분이다. 모터의 토크의 경우 다음의 자중 토크와 관성 토크를 동시에 고려하여 필요 토크를 구한다.

1. 자중 토크(마찰 토크) – 운전부의 무게에 의해서 발생하는 토크

자중 토크 : T_m=μ×m×g×r

2. 관성 토크(가속 토크) – 회전 운동 시 필요한 토크

관성 토크 : T_a=I×α

거치대 payload(300g), 모터의 무게(55g)을 가정하고, 각 링크는 아크릴을 바탕으로 만들어진 플라스틱 재질이라고 가정하고, CATIA의 각 part에 material 정보를 입력하여, 거치대에 질량 정보를 기입할 수 있다. 이를 통하여, Counter Balance로 필요로 하는 무게추의 질량을 구할 수 있고, 최종적으로 전체적인 무게 중심점과, 관성 모멘트를 구할 수 있다.

모터 구동에 있어서 가장 critical한 point를 찾아보자. Critical한 point는 사용자의 고개 돌림에 대해서 대응하는 1번 joint 이다.

Fig 37. manipulator의 1번 joint

1번 joint와 연관된 거치대의 관성 모멘트에 대한 내용은 다음과 같다. 실제 수식적인 계산은 힘들기 때문에 다음과 같이 CATIA tool을 통하여 구하였다.

Fig 38. manipulator의 1번 joint의 axis에 대한 관성 모멘트

이 값을 통하여 거치대의 관성 토크를 구할 수 있다. Counter Balance를 정확하게 맞추었다고 가정을 하면, 모터의 자중 토크는 크게 고려하지 않아도 될 뿐더러, 실제로 1번 joint의 모터는 중력에 대응하여 작동하는 모터가 아니기 때문에 자중 토크는 고려하지 않는다.

1번 joint의 축에 대한 관성 모멘트를 구할 수 있기 때문에, 이에 따라 모터의 holding torque에 대한 최적의 각 가속도를 구할 수 있다. 본 프로젝트에서 사용한 MG996R 모터의 holding torque 는 11kgf·cm 로, 1.078N·m 이다.

Weight: 55g
Dimension: 40.7 * 19.7 * 42.9 mm approx.
Stall torque: 9.4 kgf * cm (4.8V), 11 kgf*cm (6V)
Operating Speed: 0.17s/60° (4.8V), 0.14s/60° (6V)

따라서 holding torque를 유지한다고 가정하였을 때 최대 가능한 각 가속도 수치는 다음과 같다.

α=T_a/I=  1.078/0.205=5.259 rad/s^2

이를 바탕으로, 각가속도가 5.259 rad/s^2를 크게 벗어나지 않는 한에서 manipulator을 구동시킬 예정이다.

Fig 39. 모터 구동에 대한 시간 – 각속도 그래프

위의 그림과 같은 각속도 – 시간 그래프를 생각해보자. 이론상 최대 각속도인 5.259 rad/s^2로 모터를 구동시킨다고 가정하면, 위의 그래프와 같이 서보모터를 구동시킬 수 있다.

모터의 최대회전 각도인 120° 움직인다고 가정을 했을 때, 다음과 같은 수식을 작성할 수 있다.

(넓이 A)=서보모터 동작시 이동한 각도=a^2×5.259=  2π/3 
∴ a= 0.6311

최대 각도 이동 시 동작 시간 = 2a = 1.26 s 로, 이론상으로는 과제 제안서에서 제안한 목표인 manipulator 3초 이내 구동을 만족시킨다. 하지만 이 이론적 동작 시간은 모터에 명령을 한번 내렸을 때의 상황을 가정한 것이고, 라즈베리파이 내에서의 연산 시간 및 회로 내에서의 통신 시간을 고려하지 않은 값이기 때문에, 실제로는 시간이 조금 더 걸릴 것으로 예상된다.


나. 거치대 manipulator 구조 해석

거치대 manipulator에 지속적으로 동적하중이 작용하는 상황은 아니기 때문에, 모터와 휴대폰, 그리고 Counter Balance에 의한 정적하중만을 고려하여, 항복에 대한 안전계수를 구한다.

해석 조건은 다음과 같다.

Mesh Size : 0.005m 
Fixed : 서보모터(MG996R)와 결합하는 부분
Force :
(1) 휴대폰과 서보모터의 무게에 대한 하중을 받는 두 부분 : 각각 -z 방향으로 2.5N
(2) Counter Balance 무게에 의한 하중을 받는 부분: -z 방향으로 25N
Fig 40. 경계조건의 Fixed 부분(서보모터와 연결되는 부분)

Force (1)의 경우, 휴대폰의 질량(300g)과 서보모터의 질량(55g), 그리고 아크릴의 부품들의 무게까지 고려하여 약 500g이 거치대 1번 링크의 끝 쪽에 작용한다고 가정한다. 또한, 이를 두개의 아크릴 판이 지지하는 구조이므로, 각각의 아크릴 부품이 동일한 하중을 부담한다고 가정하여 2.5N 씩 Force 경계 조건을 주었다.

Fig 41. Force (1) 이 작용하는 부분

또한, 휴대폰이 위치한 부분에서 1번 joint 까지의 거리와, Counter Balance 와 1번 joint 까지의 거리의 비율은 약 5:1이기 때문에, Counter Balance가 1번 링크에 부담하는 하중은 25N으로 가정한다.

Fig 42. Force (2)가 작용하는 부분

해석 결과

변형률 및 항복 안전계수에 대한 해석은 다음과 같다. 우선 total deformation의 경우, 휴대폰이 위치하게 되는 1번 link의 끝 쪽에서 가장 크게 일어나게 되고, 그 수치는 0.0044m 로 약 4mm 정도의 변형이 일어난다.

안전계수의 경우, 가장 ciritical 한 부분은 Counter Balance에 의한 하중이 가해지는 부분이고, 이 경우, 안전계수는 2.99로 나타난다.

4mm 정도의 변형은 크게 문제되는 부분은 아니라고 판단하였고, 과제 제안서에서 목표로 하였던 안전계수는 2 이상이었으므로, 아크릴 기반으로 만든 manipulator의 내구성 측면에서의 적합성을 판단하였다.

Fig 43. manipulator 1번 link의 total deformation
Fig 44. manipulator 1번 link의 항복 안전계수

상세설계 내용

가. 조립도

제작하고자 하는 거치대의 최종 모습은 다음과 같다. 가장 하단의 거치대를 지지하는 판은 5T의 철판을 이용하고, 스탠드의 경우 알루미늄 프로파일, 그 외의 링크 부분은 아크릴 가공 후 이를 결합하여 제작한다.

Fig 45. 최종 거치대 완성 모습
Fig 46. 거치대의 구성

Manipulator은 위의 Fig 46와 같이 주로 5개의 부분으로 크게 나눌 수 있다. 본 프로젝트에서 각 부분의 명칭은 다음과 같이 명명하도록 하곘다. 이후 해당 부분에 대한 자세한 조립도 및 조립 순서를 서술하도록 하겠다.

  1. Base element
  2. Link1
  3. Link2
  4. Link3
  5. End effector

1. Base Element

Base element의 조립 완성도는 다음과 같다. 가장 하단의 지지판의 경우 철판으로 구성하며, 기둥은 알루미늄 프로파일로 구성한다. 또한 서보모터 지지를 할 부품으로는 아크릴을 가공하여 사용하며, 각 구성요소들은 M5 볼트 및 너트, 그리고 L자 브라켓을 활용하여 결합한다.

Fig 47. Base element의 구성 및 치수

1-A. 조립 순서

  1. 철판과 알루미늄 프로파일을 L자 브라켓, M5 볼트, 그리고 너트를 활용하여 결합후 ,
  2. 아크릴 지지부와 알루미늄 프로파일을 볼트, 너트 및 L 자 브라켓을 활용하여 결합을 수행한다.
  3. 그 이후에 서보모터를 전용 고정 볼트를 활용하여 아크릴에 고정시킨다.
Fig 48. Base element의 분해도
Fig 49. 알루미늄 프로파일과 아크릴 지지부의 결합 과정
Fig 50. 서보모터와 아크릴 지지부의 결합 과정


2. Link 1

Link 1은 Base element과 결합되어, manipulator의 첫번째 joint 부분에 해당하는 Link이다. 다음의 그림은 Link1 의 조립 완성도 및 분해도 이다. Link1 의 구성요소에는 link를 구성하기 위한 아크릴 가공 파트 및 Counter Balance용 하우징, 서보모터로 이루어져 있다.

Fig 51. Link 1의 조립도 및 분해도

2-A. 조립 순서

  1. 아크릴 가공 파트 및 Counter Balance용 하우징의 경우, 록타이트를 활용하여 접착하여 결합시킨다.
  2. 서보모터의 경우, Base element에서와 유사하게 전용 볼트를 활용하여 아크릴 가공 파트와 결합시킨다.
Fig 52. 서보모터와 아크릴 Link와의 결합 과정

3. Link 2

Link 2의 경우는 Link1 과 Link3 과 연결된 Link 로, 여기에 위치한 서보모터는 2번 joint의 역할을 한다. 앞에서 말했듯 아크릴 간의 결합은 록타이트로, 서보모터와의 결합은 볼트로 체결한다.

Fig 53. Link2 의 조립도 및 분해도

3-A. 조립 순서

  1. 먼저 가공된 아크릴 요소들을 구멍에 맞게 결합한 후 록타이트로 접합한 뒤,
  2. 서보모터와 아크릴 요소를 볼트를 통해서 결합한다.


4. Link 3

Link 3의 경우는 Link2 과 End Effector 과 연결된 Link 로, 여기에 위치한 서보모터는 3번 joint의 역할을 한다. 앞에서 말했듯 아크릴 간의 결합은 록타이트로, 서보모터와의 결합은 볼트로 체결한다.

Fig 54. Link3 의 조립도 및 분해도

4-A. 조립 순서

  1. 가공된 아크릴 요소들을 구멍에 맞게 결합한 후 록타이트로 접합한 뒤,
  2. 서보모터와 아크릴 요소를 볼트를 통해서 결합한다.


5. End Effector

End Effector 은 직접적으로 스마트폰 홀더로 스마트폰을 지지하는 구조이다. 아크릴 간의 결합은 록타이트로 결합하며, 아크릴과 홀더와의 결합은 1/4 inch 직경의 볼트로 체결한다. 이때, 볼트 체결 부위가 한 곳이기 때문에, 아크릴 지지부를 형성하여 방향이 틀어지지 않도록 한다.

Fig 55. End Effector 의 조립도 및 분해도


5-A. 조립 순서

  1. 가공된 아크릴 요소들을 구멍에 맞게 결합한 후 록타이트로 접합한 뒤,
  2. 휴대폰 홀더와 이에 맞는 1/4 inch 직경 볼트를 통해서 아크릴 링크와 휴대폰 홀더를 결합한다.
  3. 이후 사용할 휴대폰을 홀더 안에 밀어 넣는다.


6. 최종 결합

위에서 언급한 1, 2, 3, 4, 5 의 구성요소들을 결합한 거치대의 최종 조립도는 아래와 같다.

Fig 56. 거치대 최종 조립도

위에서 언급한 Link 와 Base element, End effector과의 결합은 서보모터를 중심으로 이루어지므로, 본 프로젝트에서 사용되는 MG996R 서보모터 전용 서보 혼을 활용하여, 이를 아크릴 구조물과 볼트 체결을 통해 결합한다.

Fig 57. 왼쪽부터 Base Element, Link1, Link2, Link3, End effector 사이의 결합 과정, M3 볼트를 활용하여 결합

단, Link1과 Link2의 경우, 서보모터 만으로 축을 형성하였을 경우, 비틀림에 대한 저항이 약하기 때문에, 아래 Fig 58과 같이 rod와 rod end를 활용하여, 안정적인 joint 축을 형성할 수 있도록 한다.

Fig 58. Link1 와 Link2 의 결합 과정. 추가적인 rod 와 rod end를 활용하여 joint 형성 및 결합

6-A. 최종 조립 순서

  1. Link1 과 Base Element를 서보 혼과 M3 볼트를 통하여 결합한다.
  2. Link2의 경우 Link1 원과 서보 혼과 M3 볼트를 통해 결합한다. 이때, 직경 4mm의 rod와 rod가 빠져나가지 않도록 고정해주는 rod end를 볼트를 통해 결합하여, Link1과 Link2가 안정적으로 연결되도록 한다.
  3. Link2와 Link3을, 그리고 Link3과 End Effector을 서보 혼과 M3 볼트를 통해 결합한다.
  4. 라즈베리파이, 모터 드라이버, SMPS 등은 케이블 타이와 글루건 등을 통해 Base element에 결합한다.


나. 부품도

1. Link 1

Link 1에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도1.png

2. Link 2

Link 2에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도2.png

3. Link 3

Link 3에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도3.png

4. Phone Holder

핸드폰 거치부에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도4.png

5. Base Connector

베이스 연결부에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도5.png

6. Counter Balance

중력 보상 장치(Cover)에 대한 부품도는 다음과 같다.

2023 2 레전두 부품도6.png

다. 제어부 및 회로 설계

Fig 59. 최종회로도
Fig 60. 최종회로도 2

최종회로도는 Fig 59, Fig 60과같다. 우선 PCA9685는 5V, 10A SMPS를 통해 전원을 공급받는다. 라즈베리파이는 이와 분리된 전원을 공급받는다. PCA9685는 MG996R 모터 4개와 연결 되어있다. MG996R의 작동 전압이 5V, stall current가 2.5A이므로 5V, 10A 전원은 충분한 전력을 공급한다. 라즈베리파이의 하나의 GPIO 핀은 스위치와 연결되어 있다. 이 스위치의 역할은 소프트웨어 부분에서 설명하기로 한다.


라. 소프트웨어 설계

1. 제어 알고리즘

Fig 61. 전체순서도

전체적인 순서도는 Fig 61와 같다. 우선 프로그램이 시작되면 거치대는 초기위치를 잡고 사용자의 버튼 입력을 기다린다. 사용자가 버튼을 누르면 이 시점부터 카메라가 동작하게 된다. 카메라로부터 이미지를 얻고 얼굴 인식 알고리즘을 통해 사용자의 roll, pitch, yaw 값과 사진 상에서 사용자의 코 좌표를 계산한다. 방향 값과 좌표 값을 통해 사용자의 시선과 핸드폰 방향이 정면이 아니라고 판단할 경우 모터를 돌려 이를 조정한다. 이후 위치가 변경되었을 때의 사진을 찍고 다시 방향 정보와 좌표 정보를 계산한 후 정면인지를 판단한다. 정면일 경우 별도의 모터 동작 없이 다시 사진을 찍는 과정을 반복한다. 만약 이 과정 사이에서 사용자가 버튼을 입력할 경우 거치대는 초기 자세를 잡고 다시 사용자가 버튼을 누를 때까지 대기 상태에 들어간다. 즉, 버튼 입력은 사용자가 트랙킹 기능을 사용하는 순간을 정하는 신호역할을 한다.

2. 얼굴 인식 알고리즘 라이브러리 Mediapipe

Fig 62. 이미지 처리 방식 순서

사람의 얼굴을 인식하기 위한 라이브러리로 MediaPipe를 선정했으며, BlazeFace 모델을 통해 얼굴을 인식한 후 거치대를 이동시키기 위한 핵심 값인 Roll, Pitch, Yaw 값을 추출하는 과정을 설명한다.

① 이미지에서 얼굴의 특징을 추출하는 기능: extract_features(img, face_mesh)


해당 함수는 주어진 이미지에서 특정 얼굴 특징점의 위치를 찾아내어 그 좌표를 반환하는 역할을 한다.

2023 2 레전두 소프트1.png
  1. 얼굴의 특징 점 인덱스 화: 함수는 미리 정의된 일련의 얼굴 특징 점 인덱스를 사용한다. 얼굴 특징 중 핵심 부위를 인덱스 화 시키며, 다음 부위를 인덱스 화 한다. NOSE (코), FOREHEAD (이마), LEFT_EYE (왼쪽), MOUTH_LEFT (왼쪽 입가), CHIN (턱), RIGHT_EYE (오른쪽 눈), MOUTH_RIGHT (오른쪽 입가)
  2. 얼굴 특징 점 처리: 함수는 face_mesh.process(img)를 호출하여 입력된 이미지에서 얼굴 특징 점을 찾는다.
  3. 특징 점 추출: ‘result.multi_face_landmarks’이 있는지 검증하는 과정을 통해 얼굴이 감지되었는지 확인한다. 감지된 각 얼굴에 대해, 미리 정의된 특징 점 인덱스에 해당하는 위치 좌표(x, y)를 추출한다.
  4. 결과 반환: 추출된 특징 점의 위치 좌표는 face_features 리스트에 추가되고, 이 리스트가 함수의 반환 값으로 사용된다.


② 얼굴에서 추출한 특징 점 데이터를 정규화 하는 과정: normalize(poses_df)

해당 함수의 목적은 얼굴의 위치나 크기가 다양한 경우에도 일관된 방식으로 얼굴 특징점을 분석할 수 있도록 하는 것이다. 이는 컴퓨터 비전이나 얼굴 인식 시스템에서 중요한 단계로, 다양한 조건에서도 비교 가능한 결과를 얻기 위해 필요하다.

2023 2 레전두 소프트2.png


  1. 데이터 복사: 먼저, 입력으로 받은 ‘poses_df’ 데이터프레임의 복사본을 생성한다. 이렇게 하면 원본 데이터에 영향을 주지 않고 작업을 수행할 수 있다.
  2. 중심 이동 (Centering): 함수는 'x'와 'y' 두 차원에 대해 반복문을 수행한다. 각 특징 점(forehead, nose, mouth_left, mouth_right, left_eye, chin, right_eye)의 위치를 코(nose) 위치를 기준으로 조정한다. 이는 데이터를 코를 중심으로 이동시켜 위치를 표준화하기 위함이다.
  3. 크기 조정 (Scaling): mouth_right와 left_eye 사이의 거리를 계산한다. 이 거리는 정규화의 기준이 되는 스케일 요소로 사용된다. 다음으로, 모든 특징 점의 위치를 이 스케일 요소로 나누어 크기를 조정한다. 이렇게 하면 얼굴의 크기가 다른 경우에도 특징 점 간의 상대적인 위치 관계가 유지된다.
  4. 정규화된 데이터 반환: 수정된 특징 점 위치를 포함하는 정규화된 데이터 프레임을 결과로 반환한다.


③ 주어진 이미지에 3차원 회전 축 생성하는 과정: draw_axes(img, pitch, yaw, roll, tx, ty, size=50)

함수는 주어진 이미지에 3차원 회전 축(axes)을 그리는 작업을 수행한다. 각 축은 Roll, Pitch, Yaw 각도를 사용하여 회전된다.

2023 2 레전두 소프트3.png


※입력 파라미터:

  • img: 기준 이미지
  • pitch, yaw, roll: 각각 피치, 요, 롤 회전을 나타내는 각도
  • tx, ty: 이미지 상의 축의 위치를 조정하기 위한 변환 값
  • size: 축을 그리는 길이
  1. 요(Yaw) 각도 조정: yaw 값에 음수를 적용하여 조정한다. 이는 회전 방향을 반대로 설정하기 위함이다.
  2. 회전 행렬 생성: cv2.Rodrigues 함수를 사용하여 회전 벡터([pitch, yaw, roll])를 회전 행렬로 변환한다. 이 회전 행렬은 3D 공간에서의 객체 회전을 나타낸다.
  3. 축 포인트 정의 및 변환: 3차원 공간에서의 세 축(X, Y, Z)을 나타내는 포인트를 정의한다. 정의된 포인트에 회전 행렬을 적용하여 회전된 축 포인트를 얻는다. 2차원 이미지에 맞게 축 포인트를 조정하고, size 매개변수를 이용하여 크기를 조절한다. tx와 ty를 사용하여 이미지 내에서 축의 위치를 조정한다.
  4. 축 그리기: cv2.line 함수를 사용하여 회전된 각 축을 이미지에 그린다. X축은 빨간색, Y축은 초록색, Z축은 파란색으로 표시한다.
  5. 결과 반환: 수정된 이미지(new_img)를 반환한다.


④ 전체 과정 Flow Chart

2023 2 레전두 소프트4.png


라이브러리 초기화 및 모델 로드 Mediapipe, OpenCV, Numpy 등의 필요한 라이브러리를 초기화하고 사전 훈련된 모델을 로드
카메라 캡처 시작 OpenCV를 사용하여 카메라에서 비디오 프레임을 캡처
프레임 처리 캡처된 프레임을 RGB 색 공간으로 변환하고 이미지를 반전
얼굴 특징 추출 Mediapipe의 얼굴 메시(Face Mesh)를 사용하여 얼굴 특징점을 추출
특징점 정규화 추출된 얼굴 특징점을 정규화
머리 자세 예측 사전 훈련된 모델을 사용하여 머리의 피치(pitch), 요(yaw), 롤(roll) 각도를 예측
3D 축 그리기 예측된 각도를 기반으로 얼굴에 3D 축을 그림
종료 카메라를 해제하고 모든 OpenCV 창을 닫고 종료

마. 서보 모터 제어 알고리즘

모터 제어 방식은 다음과 같다. MediaPipe로 얻은 roll, yaw 값과 코의 좌표 값을 판단하여 모터 1, 2, 3, 4를 돌린다. 사용자의 시선이 정면에 있다고 판단하는 기준, 각 물리 값들에 가장 큰 영향을 미치는 모터, 조정해야할 우선순위는 다음과 같다.

물리 값 기준치 관련 Joint (motor) 우선 순위
Roll 3° 이하 Motor 4 4
Yaw 10° 이하 Motor 1, 3 1
X ±20 이내 Motor 1, 3 2
Y ±30 이내 Motor 2 3


  • Fig 63. 자세에 대한 roll, pitch, yaw
  • Fig 64. 각 모터의 위치와 번호

Fig 63와 Fig 64를 함께 보면 각 모터가 회전했을 때 어떤 값이 가장 크게 바뀌는지를 알 수 있다. Fig.64의 선들은 각 모터의 회전 축이다. Motor 1, 3은 yaw값과 사진 상에서의 사람의 x 좌표를 크게 바꾼다. Motor 2의 경우 사진 상에서의 사람의 y좌표를 크게 바꾼다. 마지막으로 Motor 4는 사용자의 roll 값을 크게 바꾼다.

Fig 65. 시퀀스 다이어그램 – 모터 제어


사용자의 시선이 정면이 아니라고 판단할 시 Fig.65의 로직이 시작된다. 사용자가 고개를 돌리게 되면 yaw가 크게 변하게 된다. 이로 인해 yaw값을 맞춰주기 위해 제일 먼저 Motor 1을 먼저 돌린다. 이 과정에서 사용자가 카메라에 벗어나게 될 경우가 생길 수 있기 때문에 x 좌표를 판단하여 Motor 3을 돌려 카메라가 사람을 찍을 수 있도록 한다. 이후 y좌표를 확인하고 Motor 2를, roll 값을 확인하고 Motor 4를 돌리게 된다. 모터를 돌릴 때마다 새롭게 촬영해 계산한 roll, yaw, x, y 값을 활용하게 된다.

특히 Motor 1과 Motor 4는 yaw, roll 값에 따라 그 가중치가 다르다. 정확도를 높이려면 작은 각도를 움직여야 하는데 항상 작은 각도로 모터를 움직인다면 고개를 크게 돌린 상황에서 동작이 빠르게 끝나지 않을 수가 있다. 따라서 yaw, roll의 값에 따라 Motor 1, 4의 회전 각도를 달리 주었다.

Motor 1의 이동 각도
Yaw 40° 이상 20° 이상 10° 이상
Motor 1
1 스텝 이동각도
10°


Motor 4의 이동 각도
Roll 20° 이상 10° 이상 3° 이상
Motor 4
1 스텝 이동각도
20° 10°


바. 자재 소요서

부품 번호 부품명 규격 재질 수량 구매, 외주, 제작 비고
1 Base Acryl - 아크릴 1 제작 레이저 가공
2 Link 1 - 아크릴 1 제작 레이저 가공 및 접합
3 Link 2 - 아크릴 1 제작 레이저 가공 및 접합
4 Link 3 - 아크릴 1 제작 레이저 가공 및 접합
5 End Effector - 아크릴 1 제작 레이저 가공
6 Counter Balance - PLA 1 제작 3D 프린팅
7 SMPS(5V, 10A) - - 1 구매 -
8 MG996R - - 4 구매 -
9 PCA9685 - - 1 구매 -

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

Fig 66. 프로토 타입 실물 사진

포스터

Fig 67. 포스터 사진

관련사업비 내역서

항목
(품명, 규격)
수량 단가 금액 비고
현금 -




라즈베리파이 카메라용
아크릴 거치대 케이스
1 2.2 1 2.2 - -
라즈베리파이 카메라 모듈 V2 1 24.2 1 24.2 - -
소켓 점퍼 케이블 40P
(칼라) (M/F) 20cm
2 0.935 2 1.87 - -
소켓 점퍼 케이블 40P
(칼라) (M/M) 20cm
2 0.935 2 1.87 - -
소켓 점퍼 케이블 40P
(칼라) (F/F) 20cm
2 0.935 2 1.87 - -
FFC/FPC 케이블
1.0mm/15P/20㎝
5 0.88 5 4.4 - -
FPC/FFC 1mm 15p
리본케이블 연장 보드
(Cross type)
5 2.42 5 12.1 - -
라즈베리파이4 B 8GB 1 126.5 1 126.5 - -
아두이노 나노 호환보드
FT232RL (케이블 포함)
3 7.7 3 23.1 - -
TowerPro 호환 서보모터 MG996R 5 7.15 5 35.75 - -
DC-DC 5A 가변 컨버터
[SZH-PWSDF-036]
6 4.73 6 28.38 - -
STAR 80D-F-1212C
(80W 듀얼 12V -12V)
1 67.65 1 67.65 - -
우리파파 CCA전선 LED 배선 다이용전선 알루미늄전선
18 20 22 24 AWG, 18AWG (0.8 스퀘어), 1개
20 0.38 20 7.6 - -
라즈베리파이4 전용 액세서리 투명케이스
메모리카드 브레드보드 케이블,
HDMI변환케이블, 1개
1 3.5 1 3.5 - -
홈플래닛 고급 UTP CAT7
랜선 랜케이블, 2m, 그레이, 1개
1 5.59 1 5.59 - -
라즈베리파이4 B 전용 액세서리 투명케이스
메모리카드 브레드보드 케이블,
고그부명케이스, 1개
1 4.5 1 4.5 - -
JK-C-15-5 5V3A 라즈베리파이
C타입 아답터, 1개
1 5.17 1 5.17 - -
라즈베리파이4 B 전용 액세서리 투명케이스
메모리카드 브레드보드 케이블,
32GB메모리, 1개
1 3.5 1 3.5 - -
라즈베리파이4 B 전용 액세서리 투명케이스
메모리카드 브레드보드 케이블,
메모리카드리더기, 1개
1 1 1 1 - -
(당일배송) 아두이노 400홀 브레드보드
빵판 Breadboard 8.5x5.5mm,
P000IOAA000A
2 1.1 2 2.2 - -
아크릴재단 (자동 견적프로그램) 282 0.1 282 28.2 - -
25T 서보모터용 20파이 서보 혼
MG995/MG996R 호환
[SZH-LMS002]
5 0.99 5 4.95 - -
알루미늄 프로파일
2020 900mm 가공 절단 제단
4 4.46 4 17.84 - -
알루미늄 프로파일 부품 철브라켓
20용 2015 스틸브라켓
20 0.31 20 6.2 - -
알루미늄 프로파일
둥근머리렌치볼트 20용 5x10
100 0.08 100 8 - -
카메라 삼각대 나사 1/4나사 D링
스트랩 연결 스크류 액션캠_MC
3 1.75 3 5.25 - -
렌치볼트 스텐 유두 무두
둥근 접시 머리
SUS 304 육각렌치볼트 너트 M3
20 0.04 20 0.8 - -
스마트폰 삼각대 연결 어댑터
마운트 셀카봉 1/4나사
2 2.69 2 5.38 - -
카고플랜 3.6V USB 충전형
가정용 드릴 공구, 옵션1, 1세트
1 18.81 1 18.81 - -
록타이트 다용도 초강력 순간접착제 401, 2개 1 7.16 1 7.16 - -
짧은목 롱 육각 렌치 세트 9p, 1개 1 13 1 13 - -
WHUZF 블록 사각 너트, T-트랙
슬라이딩 해머 패스너용
알루미늄 프로파일 3030 20-M5,
색상:02 50PCS
1 12.5 1 12.5 - -
스틸브라켓 2020 3030 4040 3060 4080
6060 3090 프로파일브라켓
[20용 [2015] (부가세포함)]
20 0.39 20 7.8 - -
국산 M1급 표준분동 / 1kg 2kg / 무게추 저울추
/ 국가 검정품, 1개
1 44 1 44 - -
FPC/FFC 1mm 15p
리본케이블 연장 보드(Cross type)
5 2.2 5 11 - -
FFC/FPC 케이블 1.0mm/ 15P/ 20cm 3 0.8 3 2.4 - -
TowerPro 호환 서보모터 MG996R 2 6.5 2 13 - -
렌치볼트 스텐 유두 무두 둥근 접시
머리 SUS 304 육각렌치볼트 너트 M3(3mm),
기장(길이):10mm
40 0.1375 40 5.5 - -
오일링 고무 링 수리 씰링 키트
NBR200 IA
1 3.2 1 3.2 - -
싸이피아 C00 16채널 PWM 서보모터
드라이버 PCA9685 아두이노, 1개
1 6.7 1 6.7 - -
MEAN WELL-민웰 파워서플라이
LRS-50-5 DC5V 10A, 1개
1 21.5 1 21.5 - -
아두이노 택트 스위치 SMD
12x12x5.5 DM2339
5 0.15 5 0.75 - -
합계 606.69 - -

완료작품의 평가

평가 항목 평가 방법 적용 기준 개발 목표치 결과 비중 (%) 평가 결과
홀더 정면 방향
정확성 (yaw, pitch)
사용자의 코의 방향과
휴대폰 화면의 방향의
각도를 측정
각도 (degree) 10회 평균
10도 이내
2.64 30% 30
홀더 회전 방향
정확성 (roll 방향)
거치된 스마트폰으로
찍은 사진에서
코의 각도를 측정
각도 (degree) 10회 평균
5도 이내
4.65 30% 30
내구성 가장 위험한 자세를
가정하여 정적하중(300g)에 대한
안전계수를 측정
안전계수 2.0 이상 2.99 20% 20
신속성 사용자가 고개를 돌렸을 때부터
모터가 움직여 정지할 때까지의 시간
평균 응답시간 (sec) 10회 평균
3초 이내
6.4 20% 9

향후계획

가. 자유도 개선

본 프로토 타입은 4자유도로 사람의 방향과는 어느정도 일치시킬 수 있지만 사람과 휴대폰 사이의 거리를 조절할 수 없는 단점이 존재한다. 자유도를 추가한다면 방향뿐 아니라 거리 또한 조절함으로써 보다 편리한 환경을 제공할 수 있다. 또한 다양한 자세가 가능해지면서 방향에 대한 오차 범위를 더욱 줄일 수 있다.


나. 제어로직 개선

4 자유도를 사용하고 특정한 방향 값에 대해 하나의 모터를 제어함으로써 사용자 시선을 일치시켰다. 만약 자유도가 추가되어 구조가 변경된다면 피드백 제어 방식이 아닌 로보틱스를 적용하여 사람의 시선에 위치하도록 할 수 있다.


다. 편의성 개선

부가적인 센서를 추가하여 사용자의 편의성을 개선할 수 있다. 센서를 활용하여 사용자가 갑자기 일어날 경우 거치대가 회피하도록 적용할 수 있다. 또한 사용자가 눈을 감으면 이를 인식하고 거치대가 휴대폰을 자동으로 놓을 수 있도록 발전시킬 수 있다.

특허 출원 내용

Fig 68. 특허 출원 번호 통지서