본문 바로가기

전체 글

바닥의 패턴을 사용한 로봇의 위치인식 방법 얼마전 호텔의 한 식당에서 회의가 있어 서울의 모 호텔에 간 적이 있습니다. 회의시작시각이 좀 남아 호텔 로비에서 기다리고 있었습니다. 그런데 로비 바닥에 대리석으로 장식된 패턴을 보고 갑자기 생각이 떠올랐는데, 이런 바닥의 패턴을 보고 로봇이 위치를 알 수 없을까 하는 것이었습니다. 제가 로봇의 자율주행이나 위치인식에 관심이 많다보니 이런것만 보이나 봅니다. 지금 로봇의 위치인식은 천정이 대세입니다. 천정의 형광등을 보고 위치를 알아내거나 천정에 랜드마크를 붙이고 위치를 알아내는 등 천정의 특징을 이용하게 되는데, 이게 잘 안될 때가 종종 있습니다. 바로 천정이 높거나 불규칙적인 경우 혹은 아예 천정이 없는 경우겠죠. 호텔 로비나 전시장과 같이 천정이 높고 주위가 넓은 공간에서는 벽이나 천정에 랜드마크.. 더보기
무인자동차를 위한 도로면 차선 인식 최근에는 자동차의 자율주행에 대한 관심이 높습니다. DARPA의 Urban Challenge를 통해 자동차의 자율주행 기술이 전세계적으로 관심을 받았으며, 여기서 나온 연구결과를 바탕으로 구글에서는 실제 도로에서 운행하는 로봇 자동차를 만들고 있습니다. 국내에서도 현대자동차의 무인자동차 경진대회가 개최되는 등 관심도가 높아지고 있습니다. 제 생각에는 10년 이내에 이러한 자동차의 무인화 기술이 적용된 차들이 선보일 것으로 기대하고 있습니다. 몇년전 스마트폰과 태블릿으로 전세계의 IT 판을 뒤집은 애플이 있었고, 가까운 미래에는 구글이 무인+전기 자동차 기술을 앞세워 세계 자동차 생태계를 휘저을 것으로 생각합니다. 로봇 자동차가 도로에서 위치인식과 자율주행을 할 때, 우선적으로 주변 도로환경으로부터 정보를.. 더보기
웹캠을 적외선 카메라로 개조 이전 글에서 IR 카메라를 만들기 위한 요소 부품들을 조사해 보았습니다. 이번에는 일반 웹캠을 적외선 카메라로 개조하는 방법에 대해 소개합니다. 먼저 T9T9 PLANET 블로그를 참고바랍니다: http://t9t9.com/361. 블로그에서 시중에서 구하기 쉬운 재료들로 적외선 카메라를 만드는 방법에 대해서 설명하고 있습니다. 본 블로그에서는 웹캠 중에서 나름 고가의 제품인 "Logitech HD 프로 웹캠 C910" 모델로 개조를 진행해 보겠습니다. 이 모델을 선택한 이유는 먼저 CMOS 이미지 센서 소자가 다른 웹캠에 비해 크고 물리적으로 렌즈를 움직여 초점 거리 조절을 하기 때문에 입력 이미지의 품질이 우수하고 카메라의 다양한 특성들을 조절할 수 있기때문입니다. 먼저 카메라를 분해합니다. 양쪽 사.. 더보기
OpenCV에서 네트워크 카메라(IP Camera) 읽기 PC에 연결하는 웹캠은 여전히 USB 타입이 대부분이지만, 최근들어 보안감시 분야에서 네트워크 카메라가 많이 출시되고 있습니다. 네트워크 카메라들은 기존의 NTSC나 PAL을 출력하는 카메라들에 비해 추가로 필요한 장비가 거의 없고 이미 깔려있는 네트워크를 그대로 이용하면서도 로컬의 PC나 원격에서 스마트폰으로 영상을 볼 수 있는 장점이 있습니다. 그리고 요즘들어 검사 장비나 로봇의 시각으로 사용되던 고급 사양의 카메라 모듈들도 IEEE1394보다 Gigabit Ethernet을 더 많이 지원하는것같습니다. 어쨌거나 네트워크 카메라를 이용하면 USB 2.0의 대역폭 한계를 넘어서는 대용량의 HD급 영상을 속도 저하 없이 PC에서 받아볼 수도 있고 USB나 IEEE1394의 케이블 길이 문제도 극복할 수 .. 더보기
적외선 카메라(IR Camera) 제작 정보 적외선 카메라 제작에 필요한 요소 기술들을 조사한다. 일차 목표는 하기소닉의 StarGazer와 같은 형태로 만드는 것이다. 하지만 StarGazer와 달리 IR 이미지를 가공 없이 USB나 Ethernet을 통해 PC로 전송하고 PC에서 랜드마크를 인식하는 알고리즘을 개발하고자 한다. 하기소닉 StarGazer: 적외선 사람의 눈으로 볼 수 있는 가시광선의 파장은 380nm ~ 780nm 영역이고 파장이 이 영역을 벗어나면 사람의 눈으로는 볼 수 없는 자외선이나 적외선 영역이다. 파장이 380nm보다 짧은 영역은 자외선 영역이고 780nm보다 긴 영역은 적외선 영역이다. 이미지 센서 빛을 받아들이는 이미지 센서로 CCD와 CMOS가 주로 사용된다. 둘 다 IR 대역폭까지 받아들이나 CCD가 IR 대역폭.. 더보기
랜드마크 인식용 카메라 선정 로봇에 장착된 카메라의 입력 영상으로부터 벽면이나 천정, 바닥의 랜드마크를 인식하고 랜드마크와 로봇간의 거리와 방위 정보를 이용하여 로봇의 위치인식을 수행하고자 한다. 본 문서는 이에 적합한 카메라를 선정하기 위한 각종 카메라에 대한 실험 내용을 정리하고 있다. USB 화상캠 이용 조명이 있는 웹캠, CCD 웹캠 등 각종 웹캠을 두루 구매하여 테스트 해봤는데, 지금까지 웹캠 수준에서는 "Logitech HD 프로 웹캠 C910" 모델이 로봇에 부착하기에는 제일 적합해 보인다. 이유로는 먼저 CMOS 이미지 센서 소자가 다른 웹캠에 비해 크고 물리적으로 렌즈를 움직여 초점 거리 조절을 하기 때문에 입력 이미지의 품질이 우수하고 카메라의 다양한 특성들을 조절할 수 있다. 하지만, 일반 RGB 카메라로 인식한.. 더보기
Learning OpenCV 책에서 3D 좌표변환 관련내용 정리 저는 주로 로보틱스 분야에서 로봇의 위치인식에 OpenCV 라이브러리를 사용하다 보니 3D 비전 분야을 주로 사용합니다. 그래서 Learning OpenCV 책에서 주로 보는 분야가 다음과 같습니다. Chapter 6: Image Transforms Chapter 11: Camera Models and Calibration Chapter 12: Projection and 3D Vision 처음 책을 볼 때 3D 비젼에 사용되는 어휘들도 생소하고 수식들간의 연관관계도 헷갈리고 해서 Cheat Sheet를 만들었던 적이 있습니다. 이 블로그를 보시는 분들에게도 저의 Cheat Sheet가 도움이 되기를 바랍니다. 더보기
Obj, Mtl 파일 로더(loader)와 OpenGL로 화면 표시 3DS Max와 같은 3D 모델링 도구로 만든 이미지를 OpenGL에서 읽기 위해 자료를 좀 찾아보았습니다. 주로 obj 파일과 mtl 파일로 저장하여 C++에서 읽어들이는 것 같은데, 제가 원하는 것은 3D 모델을 읽어 OpenGL로 지정된 색과 텍스쳐를 입혀 화면에 표시할 수 있는 정도의 로더(loader)였습니다. 그래서 구글로 열심히 검색을 하다가 아주 간단한 파일 하나 짜리 obj 파일 로더를 찾게 되었습니다. http://junpp.egloos.com/2410743 블로그에서 ObjLoader.h 파일을 다운받아 OpenGL로 디스플레이 하는 부분을 붙여너어 컴파일, 실행해 보았더니 화면에 원하는 결과가 나오지 않았습니다. 디버깅을 좀 하다보니 obj 파일을 읽는 부분에서 문제가 있어 이를 수.. 더보기