2018년 3월 21일 수요일

linux에 realsense 설치하기

realsense로 SR300을 사용

<참조: https://pypi.python.org/pypi/pyrealsense/2.0>
<참조: https://pypi.org/project/pyrealsense/>

환경: ubuntu 16.04, SR300

1. windows에 realsense를 누른 후, Firmware update함.

2. 설치
* 현재 python wrapper는 pyrealsense 2.x를 지원하지 않음. pyrealsense 1.x만 지원함.
혹시 2.x가 설치되었다면 아래를 참고하여 삭제할 것.
2.1. 설치 (realsense 2.x)
<참조: https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md>
만약 compile을 통한 설치를 원한다면 다음을 참조.
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md

echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main' | sudo tee /etc/apt/sources.list.d/realsense-public.list

sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE

sudo apt-get update

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

# g++ -std=c++11 filename.cpp -lrealsense2

modinfo uvcvideo | grep "version:"
입력시 realsense가 보이면 설치 성공

*. 삭제를 원한다면
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge

2.1. 설치 (librealsense 1.x)
https://github.com/IntelRealSense/librealsense/tree/v1.12.1
https://github.com/IntelRealSense/librealsense/blob/v1.12.1/doc/installation.mdsudo 
에서 download zip파일(우상단 다운로드 클릭)

관련 library설치
apt-get update && sudo apt-get upgrade
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev

if 망가진 의존성이 뜬다면(쓰지말 것, 의존성 회복시키면서 기존 것 망가뜨림)
sudo apt-get install aptitude
sudo aptitude -f install

librealsense 설치
cd librealsense-1.12.1
mkdir build
cd build
cmake ..
make && sudo make install

cd ..
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
./scripts/patch-uvcvideo-16.04.simple.sh

sudo modprobe uvcvideo

sudo dmesg | tail -n 50
을 통해서 새 usbcore: registered ~~~인지 확인

2.2. 설치 (pycparser, cython, numpy)
sudo apt-get update
sudo apt-get install python-pycparser
sudo apt-get install cython
sudo apt-get install python-numpy

sudo pip install pyrealsense

설치실패시 아래 사이트 참조.
https://github.com/toinsson/pyrealsense/issues/66 참조
pyrealsense는 librealsense2를 지원못함.
순서1을 통해 v1을 설치후 실행하면 됨.

3. 소스코드 사용
import pyrealsense as pyrs

serv = pyrs.Service()
serv.start()

'''pyrc.stream.color.depth.cad (color aligned on depth).dac (depth aligned on color)'''
cam = serv.Device(device_id=0, streams=[pyrs.stream.ColorStream(fps=60),
                                        pyrs.stream.DepthStream(fps=60)
                                        # pyrs.stream.CADStream(fps=60),                                        # pyrs.stream.DACStream(fps=60)                                        ])
scale = cam.depth_scale * 1000
while (True):
    cam.wait_for_frames()
    # print(cam.color)    current_color = cam.color[:, :, ::-1]
    current_depth = cam.depth * scale
    # current_cad = cam.cad[:, :, ::-1]    # current_dac = cam.dac * scale
    cv2.imshow('color', current_color)
    cv2.imshow('depth', current_depth / 1000)
    # cv2.imshow('CAD', current_cad)    # cv2.imshow('DAC', current_dac / 1000)
    cv2.waitKey(10)