OpenCV 학습을 위한 스테레오 카메라 테스트

다시금 4족 보행 로봇에 관심을 기울이게 되면서 기왕이면 OpenCV를 이용하여 Object Detection을 구현하고
낮은 수준의 자율주행 기능을 포함시키고 싶었다. 하지만 새로운 것을 공부해야 한다는 부담감 때문에 섣불리
손을 못대고 있다가 본능에 따라 한 번 들이대보기로 하였다.

 

아직은 정리할만큼도 학습을 못했기 때문에 실제 OpenCV에 대해서는 언급할 내용이 없고 오늘은 카메라에 대한
이야기나 조금 찌끄려보려고 한다.

 

USB Web CAM을 이용한 스테레오 카메라

사실 라즈베리파이에서 카메라 모듈을 2개 이상(4개까지) 연결하여 사용할 수 있는 모듈이 있다. 하지만 가격이
만만치 않다(6~7만원 선). 게다가 파이 카메라 모듈도 필요하고(그나마 V1.3 만 지원한다고 하니 파이 카메라
가격은 좀 저렴하게 구성할 수 있다), 어쨌든 대충 계산해도 한 10만원은 있어야 스테레오 카메라를 구성할 수
있을 것이다.

 

라즈베리파이에 4개까지 파이 카메라 V1.3을 연결할 수 있는 모듈

 

그래서 생각한 것이 저렴한 USB 웹캠 2개를 이용하면 되지 않을까 하는 생각이었다. 실제로 그렇게 구현한 예도
유튜브에 종종 보이고…그래서 일단 만원짜리 웹캠을 2개 샀다. 그리고 3D 프린터로 작은 홀더를 2개 만들어서
각각 등짝에 하나씩 붙여주고 8∅짜리 스테인레스 파이프로 연결하여 고정해주었다. 

 

 

그리고 라즈베리파이에 USB 웹캠을 연결을 하고 샘플 코드를 돌려보았다.
하지만…언제나 그렇듯이 유튜브에서 보여지는 것은 F1 레이싱카였지만 내가 돌리는 것은 애기들 태우는 전동차
수준…ㅠ.ㅠ 하드웨어 문제인지 뭔가 추가적인 코드가 더 필요한 것인지 영상이 엄청 끊기는데다가 2대의 카메라
영상이 거의 동기화가 되지 않았다…ㅠ.ㅠ

 

 

 

일단 바로 해볼 수 있는 해결 방법은 영상의 크기를 줄이는 방법! 그래서 코드에서 카메라 영상의 크기를 320X240
으로 줄이고 다시 시도해보았다. 역시나 사이즈가 작아지니 영상 끊김도 거의 없고 두 영상이 어느정도 동기화 되는
모습을 볼 수 있었다. 하지만 아직도 만족스러운 정도는 아니었다.

 

 

 

ELP Dual lense USB Camera module

계속해서 스테레오 카메라를 알아보고 있었는데 올 초부터 눈에 밟히는 녀석이 하나 있었다. 물론 전문적인 용도는
아니고 그냥 가볍게 사용해볼 수 있을만한 제품으로 보였다. 그럼에도 가격대는 역시 8만원대로 그리 만만한
녀석은 아니었다.

 

그리고…마침 로봇에 꽂혀 이것 저것 부품을 마련하는데 돈이 필요했던 나는 예전에 빅데이터와 클러스터링을
한번
 공부해보겠다고 어렵게 모은 맥미니 5대 중 3대를 팔아버리고 말았다…ㅠ.ㅠ 물론 가격은 구입 당시의 반토막
…ㅠ.ㅠ

 

그렇게 돈을 마련하고 제일 먼저 알리에서 이 제품을 구매했다. 그리고 생각보다 배송이 일찍되어 오늘 이렇게
라즈베리파이에 연결하여 확인을 해볼 수 있었다.

 

 

일단 하나의 모듈로 만들어진 제품이기 때문에 두 카메라로 입력된 영상이 하나의 영상의로 합쳐져 출력되었고
코드상에서도 하나의 VideoCapture 클래스만 사용하면 되었다. 영상의 동기화도 훌륭하고 기본으로 출력되는
320X240 정도의 크기(두 영상이 합쳐서 나오기 때문에 실제 가로는 640)에서는 영상 프레임도 상당히 좋은
수준을 보여줬다.

 

 

영상 사이즈를 640X480(전체 사이즈 1280X480)으로 출력했을 때도 영상이 끊기는 문제는 있었지만 적어도
프리징 되지는 않았고 동기화는 원활했다.

 

 

다만 사용하다보니 발열이 좀 있었고 하나의 영상의 입력되기 때문에 나중에 여러가지 처리를 하기 위해서는
영상을 둘로 나누는 코드가 필요할
것이다. 설마 이정도 코드 추가가 성능 저하를 일으키진 않겠지…-.-

 

정리

아직 이렇다할 작업 내용이 없어서 오늘은 2대의 웹캠을 이용한 것과 하나의 모듈로 구성된 2대의 카메라를 이용한
것의 영상 출력만을 비교해보았다. 앞으로 어느정도 학습이 진행이 되면 OpenCV에 대한 실습 내용을 위주로
블로그에 정리를 해보도록 하겠다.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

 

2019/01/13 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #1

2019/01/21 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #2

2019/03/03 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #3

2019/03/11 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #4

2019/03/31 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #5

2019/06/09 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #6

2019/07/20 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #7

 

한동안 드론 작업을 못했다.
늘 그렇듯 관심사가 사방팔방으로 뻗치는 나로서는 당연하다면 당연한 일…-.-


최근에는 다시 4족 보행 로봇을 준비하고 있어 여러가지 부품도 사모으고 머릿속에서는 어떤 식으로 설계를
할 것인지에 대한 생각이 떠나질 않는다. 게다가 OpenCV 공부도 시작하여 책볼 시간도 할애를 해야 하고
아직 시작은 못했지만 곧 실습도 해봐야 하고…자연스레 진척이 더딘 드론 만들기는 뒷전이 되어 가고 있었다.

 

그래도 끝은 봐야겠기에 지난 2주동안 프레임도 새로 만들고 로드킬 당한 동물같은 처참한 모양이나마
조립도 하여 테스트를 해보았으나…어마어마한 중량(배터리 포함 무려 170g…ㅠ.ㅠ)으로 실패하고 말았다.
오늘은 간단하게 실패 영상이나 하나 올리고 마치려고 한다…-.-

 

진행 경과

 

지난 포스팅에서 일단 헤더핀을 모두 부착하고 점퍼케이블로 연결하여 겨우 모터를 정상적으로 돌리는데 성공을
하였다. 그 후 최초로 만들었던 회로에서 테스트했을 때 잘 안되었는데 계속 만지작대다보니 어느 순간 모터가
돌기 시작했다. 그래서 일단은 최초로 만든 회로를 프레임에 장착하기로 했다.

 

최초 만들었던 회로

 

프레임은 프로펠러 가드를 포함한 모양으로 만들었는데 사실 이 부분 때문에 무게가 폭증하였다. 
프레임은 123D Design으로 모델링하고 3D 프린터로 출력을 하였는데…출력 소음이 아이들 공부하는데 방해
된다는 클레임이 들어와 울며 겨자먹기로 출력 대행업체에 의뢰를 할 수 밖에 없었다…이 무슨 자린고비 굴비같은
상황인지…ㅠ.ㅠ

 

123D Design으로 모델링한 프레임

 

이렇게 우여곡절 끝에 조립을 하였지만 서두에 언급한대로 무게가 무려 170g…보통 미니 드론들이 40~50g
정도인 것을 생각하면 애초에 이녀석이 날 수 있을 것이란 기대는 안드로메다로 날아간 것이다…-,.-

그래도 일단 만들어는 놓았으니 돌려는 봐야겠지 않은가….


하지만 역시나…

 

 

추후 계획

 

일단 현재로싸는 무게가 가장 문제이기에 체중 감량에 중점을 두어 개선을 해야할 것으로 판단된다.
무게의 가장 큰 부분을 차지하는 자작 프레임은 과감하게 쓰레기통으로…ㅠ.ㅠ

 

그리고 처음 구입했던 Q100 타입의 드론 프레임을 다시 사용해야겠다. 그러려면 회로도 다시 납땜을
해야 한다. 이번에는 조금 더 차분하게 납땜을 해봐야겠다.

 

차선책으로는 모터를 바꾸는 것도 생각하고 있다. 사실 모터를 바꾸는 쪽이 조금은 더 수월할 것 같다.
아무래도 8520 코어리스 모터보다는 1106나 1406 정도의 BLDC 모터쪽이 추력이 더 강할테니…


물론 그렇게 되면 배터리 셀 수도 늘어나야 해서 배터리 무게와 또 ESC를 사용해야 하니 그 무게도
더해져서 무게가 더 늘어나긴 하겠지만 그정도는 커버할 수 있지 않을까 하는 계산이다(신빙성은 없다…-,.-).

일단은 이 2가지 계획을 순서대로 차근차근 진행해보자~

 

정리

 

뭔가 하나에 집중하지 못하는 성인 ADHD 환자같은 성격탓에 이 조그만 드론 하나에 몇달을 보내고 있다…ㅠ.ㅠ
하지만 느려도 황소걸음이라고 문제를 찾고 그 문제를 해결해가는 과정은 착실하게 진행되고 있다는 점에서는
나름 성취감을 느끼고 있다.

 

아직 원격 조정을 위한 소프트웨어 개발 문제가 남아있지만 일단 뜨는 것이라도 보면 속이 좀 후련하겠다…^^;;;
얼른 요 드론 놀이는 마치고 본격적인 로봇 개발을 시작하고 싶다. 사실 이 로봇 개발도 흔히 사람들이 선택하는
방법이 아니다보니 성공할 수 있을지 많이 불안하다. 하지만 뜻이 있는 곳이 길이 있나니!

 

더운 여름~
집구석에서 에이컨 쐬면서 드론하고 로봇이나 만들자~

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요