You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
4.2 KiB
169 lines
4.2 KiB
2 months ago
|
# Raspbian(RaspberryPi3) Installation
|
||
|
This is a setup guide for Realsense with RaspberryPi
|
||
|
|
||
|
These steps are for D435 with Raspberry Pi3 and 3+.
|
||
|
|
||
|
### Check versions
|
||
|
```
|
||
|
$ uname -a
|
||
|
Linux raspberrypi 4.14.34-v7+
|
||
|
|
||
|
$ sudo apt update;sudo apt upgrade
|
||
|
$ sudo reboot
|
||
|
$ uname -a
|
||
|
|
||
|
|
||
|
$ gcc -v
|
||
|
gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)
|
||
|
|
||
|
$ cmake --version
|
||
|
cmake version 3.7.2
|
||
|
```
|
||
|
|
||
|
### Add swap
|
||
|
Initial value is 100MB, but we need to build libraries so initial value isn't enough for that.
|
||
|
In this case, need to switch from 100 to `2048` (2GB). Note that this is only needed on Raspberry Pi's with a small amount of RAM.
|
||
|
```
|
||
|
$ sudo vim /etc/dphys-swapfile
|
||
|
CONF_SWAPSIZE=2048
|
||
|
|
||
|
$ sudo /etc/init.d/dphys-swapfile restart swapon -s
|
||
|
```
|
||
|
|
||
|
### Install packages
|
||
|
```
|
||
|
$ sudo apt-get install -y libdrm-amdgpu1 libdrm-amdgpu1-dbgsym libdrm-dev libdrm-exynos1 libdrm-exynos1-dbgsym libdrm-freedreno1 libdrm-freedreno1-dbgsym libdrm-nouveau2 libdrm-nouveau2-dbgsym libdrm-omap1 libdrm-omap1-dbgsym libdrm-radeon1 libdrm-radeon1-dbgsym libdrm-tegra0 libdrm-tegra0-dbgsym libdrm2 libdrm2-dbgsym
|
||
|
|
||
|
$ sudo apt-get install -y libglu1-mesa libglu1-mesa-dev glusterfs-common libglu1-mesa libglu1-mesa-dev libglui-dev libglui2c2
|
||
|
|
||
|
$ sudo apt-get install -y libglu1-mesa libglu1-mesa-dev mesa-utils mesa-utils-extra xorg-dev libgtk-3-dev libusb-1.0-0-dev
|
||
|
```
|
||
|
|
||
|
### update udev rule
|
||
|
Now we need to get librealsense from the repo(https://github.com/IntelRealSense/librealsense).
|
||
|
```
|
||
|
$ cd ~
|
||
|
$ git clone https://github.com/IntelRealSense/librealsense.git
|
||
|
$ cd librealsense
|
||
|
$ sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
|
||
|
$ sudo udevadm control --reload-rules && sudo udevadm trigger
|
||
|
|
||
|
```
|
||
|
|
||
|
### update `cmake` version (if your cmake is 3.7.2 or before 3.11.4)
|
||
|
If you don't use zsh, please switch `.zshrc` to `.bashrc`.
|
||
|
```
|
||
|
$ cd ~
|
||
|
$ wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
|
||
|
$ tar -zxvf cmake-3.11.4.tar.gz;rm cmake-3.11.4.tar.gz
|
||
|
$ cd cmake-3.11.4
|
||
|
$ ./configure --prefix=/home/pi/cmake-3.11.4
|
||
|
$ make -j1
|
||
|
$ sudo make install
|
||
|
$ export PATH=/home/pi/cmake-3.11.4/bin:$PATH
|
||
|
$ source ~/.zshrc
|
||
|
$ cmake --version
|
||
|
cmake version 3.11.4
|
||
|
```
|
||
|
|
||
|
### set path
|
||
|
```
|
||
|
$ vim ~/.zshrc
|
||
|
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
||
|
|
||
|
$ source ~/.zshrc
|
||
|
|
||
|
```
|
||
|
|
||
|
### install `protobuf`
|
||
|
```
|
||
|
$ cd ~
|
||
|
$ git clone --depth=1 -b v3.5.1 https://github.com/google/protobuf.git
|
||
|
$ cd protobuf
|
||
|
$ ./autogen.sh
|
||
|
$ ./configure
|
||
|
$ make -j1
|
||
|
$ sudo make install
|
||
|
$ cd python
|
||
|
$ export LD_LIBRARY_PATH=../src/.libs
|
||
|
$ python3 setup.py build --cpp_implementation
|
||
|
$ python3 setup.py test --cpp_implementation
|
||
|
$ sudo python3 setup.py install --cpp_implementation
|
||
|
$ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
|
||
|
$ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=3
|
||
|
$ sudo ldconfig
|
||
|
$ protoc --version
|
||
|
```
|
||
|
|
||
|
### install `TBB`
|
||
|
```
|
||
|
$ cd ~
|
||
|
$ wget https://github.com/PINTO0309/TBBonARMv7/raw/master/libtbb-dev_2018U2_armhf.deb
|
||
|
$ sudo dpkg -i ~/libtbb-dev_2018U2_armhf.deb
|
||
|
$ sudo ldconfig
|
||
|
$ rm libtbb-dev_2018U2_armhf.deb
|
||
|
```
|
||
|
|
||
|
### install `OpenCV`
|
||
|
You can build from source code, but it takes so much time. In this case, we will use pre-build version to save time.
|
||
|
```
|
||
|
Remove previous version
|
||
|
$ sudo apt autoremove libopencv3
|
||
|
|
||
|
Install
|
||
|
$ wget https://github.com/mt08xx/files/raw/master/opencv-rpi/libopencv3_3.4.3-20180907.1_armhf.deb
|
||
|
$ sudo apt install -y ./libopencv3_3.4.3-20180907.1_armhf.deb
|
||
|
$ sudo ldconfig
|
||
|
```
|
||
|
|
||
|
### install `RealSense` SDK/librealsense
|
||
|
```
|
||
|
$ cd ~/librealsense
|
||
|
$ mkdir build && cd build
|
||
|
$ cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release -DFORCE_LIBUVC=true
|
||
|
$ make -j1
|
||
|
$ sudo make install
|
||
|
```
|
||
|
|
||
|
### install `pyrealsense2`
|
||
|
```
|
||
|
$ cd ~/librealsense/build
|
||
|
|
||
|
for python2
|
||
|
$ cmake .. -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=$(which python)
|
||
|
|
||
|
for python3
|
||
|
$ cmake .. -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=$(which python3)
|
||
|
|
||
|
$ make -j1
|
||
|
$ sudo make install
|
||
|
|
||
|
add python path
|
||
|
$ vim ~/.zshrc
|
||
|
export PYTHONPATH=$PYTHONPATH:/usr/local/lib
|
||
|
|
||
|
$ source ~/.zshrc
|
||
|
|
||
|
```
|
||
|
|
||
|
### change `pi` settings (enable OpenGL)
|
||
|
```
|
||
|
$ sudo apt-get install python-opengl
|
||
|
$ sudo -H pip3 install pyopengl
|
||
|
$ sudo -H pip3 install pyopengl_accelerate
|
||
|
$ sudo raspi-config
|
||
|
"7.Advanced Options" - "A7 GL Driver" - "G2 GL (Fake KMS)"
|
||
|
```
|
||
|
|
||
|
Finally, need to reboot pi
|
||
|
```
|
||
|
$ sudo reboot
|
||
|
```
|
||
|
|
||
|
|
||
|
### Try RealSense D435
|
||
|
Connected D435 to the pi and open terminal
|
||
|
```
|
||
|
$ realsense-viewer
|
||
|
```
|