마이크로소프트 키넥트와 라즈베리파이 연동: 손비 로봇 실시간 인간 감지
A. 목적
손비(Sonbi) 로봇의 라즈베리파이에 풀기능 소프트웨어 스택을 임베드하고, 마이크로소프트 키넥트를 연결해 센서 앞에 서 있는 인간을 감지하면 팔을 흔들어 인사하도록 하는 것이 목표였습니다.
B. 하드웨어 시스템
- 8GB 플래시 스토리지 라즈베리파이
- 폴로루 마에스트로 24채널 서보 컨트롤러
- 마이크로소프트 키넥트 (RGB 카메라, 깊이 센서, IR 이미터, 멀티-마이크 어레이, 가속도계)
- ATX 500W 파워 서플라이
- 프로토타이핑 보드, 배선, 기계 부품
라즈베리파이 사양
- 700MHz ARM1176JZF-S 코어 프로세서
- 512MB SDRAM
- 마이크로USB 5V 전원 입력
- 이더넷, HDMI, 주변기기용 USB 포트 2개
- 라즈비안 OS 실행 – 광범위한 커뮤니티 지원
폴로루 마에스트로 24
- 24개 독립 서보 채널
- 펄스 레이트 최대 333Hz
- 스크립트 메모리 최대 8KB
- 채널당 최대 1.5A
- USB 또는 파워 헤더 입력 옵션
- 네이티브 API 또는 커스텀 펌웨어로 스크립팅 가능
라즈베리파이-폴로루 연결
- 간단한 TTL 시리얼 배선: 전원, 그라운드, Tx-Rx, Rx-Tx
/etc/inittab과 /boot/cmdline.txt 편집해 Pi 기본 시리얼 콘솔 해제
- 자세한 지침은 이 튜토리얼 참조
마이크로소프트 키넥트 기능
- RGB 카메라 (1280×960 해상도) 컬러 이미지용
- IR 이미터와 깊이 센서로 3D 거리 매핑
- 4-마이크 어레이로 오디오 캡처 및 음원 위치 파악
- 3축 가속도계 (±2G) 방향 감지용
- 수직 틸트 범위: 27°
- 30fps 프레임 레이트
C. 라즈베리파이에 키넥트 통합
키넥트 네이티브 드라이버가 윈도우 전용이라 리눅스 기반 라즈베리파이에 필수 라이브러리 설치가 시간 소모적이지만 필수적입니다. 다음 단계로 과정 개요:
1. 키넥트 드라이버 설치
- Libfreenect (유저스페이스 드라이버) 또는 OpenNI (고수준 프레임워크) 선택. 최대 유연성 위해 둘 다 설치.
- Libfreenect는 RGB/깊이 이미지, 모터 제어, 가속도계, LED 지원; 오디오는 실험적.
- OpenNI는 깊이, 오디오, 스켈레톤 트래킹용 크로스플랫폼 SDK 지원.
2. Libfreenect 빌드
sudo apt-get install git-core cmake pkg-config build-essential libusb-1.0-0-dev git clone https://github.com/OpenKinect/libfreenect cd libfreenect mkdir build cd build cmake -L .. make # optional: cmake --build .
3. OpenNI 빌드
sudo apt-get install g++ python libusb-1.0-0-dev freeglut3-dev cd Platform/Linux/CreateRedist ./RedistMaker sudo ./install.sh # optional: make mono_wrapper && make mono_samples
D. 소프트웨어 스택 및 런타임
로봇 부팅 시 bootscript_sonbi.sh 스크립트가 얼굴 감지 모듈 실행:
python facedetect.py --cascade=face.xml 0
사전 학습된 하르 캐스케이드 파일 다운로드: face.xml. 스크립트가 키넥트 RGB 피드 스트리밍, 실시간 얼굴 감지, Sonbi 실행 파일에 신호 보내 서보 모터로 친근한 웨이브 동작 활성화.
E. 행동 요약
인간 감지 시 키넥트가 깊이 인식 이미지 캡처, 감지 알고리즘이 얼굴 확인, 폴로루 마에스트로가 손비 로봇 팔 서보에 환영 웨이브 수행 명령. 이 통합이 소비자 하드웨어로 인터랙티브 로보틱스 구현 가능성 입증.