最近需要用到深度相机进行三维重建,于是买了intel的realsense D405,记录一下安装使用D405的坎坷经历。
一、树莓派4B
首先买了一块树莓派的板子,型号为树莓派4b,4+32G,性能已经足够,烧录的系统是Ubuntu 22.04.2 LTS。
首先找到intel提供的在Linux系统上安装驱动的说明,链接如下:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
但是在安装librealsense2-dkms
以及librealsense2-utils
时一直提示E:无法定位软件包
,尝试了各种方法,都没能解决,于是找到了另一篇在树莓派上安装驱动的教程。https://github.com/datasith/Ai_Demos_RPi/wiki/Raspberry-Pi-4-and-Intel-RealSense-D435
按照这上面的教程,先更新、升级和安装依赖项和工具:
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install automake libtool vim cmake libusb-1.0-0-dev libx11-dev xorg-dev libglu1-mesa-dev
然后需要重启,进入Advanced Options
,但是非官方的树莓派系统在使用sudo raspi-config
命令时会报错,提示找不到此命令,就需要手动安装raspi-config
。参考如下链接给出的方法:https://blog.csdn.net/qq_25231683/article/details/120018282
安装完成之后使用sudo raspi-config
命令进入如下页面,选择Advanced Options
。
之后选择拓展文件系统,后面选择完成,会进行重启。
然后sudo vi /etc/dphys-swapfile
,在这个文件里编辑CONF_SWAPSIZE=2048
,到这里发现Ubuntu文件根本就没有这个文件,不知道从何改起,只能重新烧录树莓派的系统,淦!!!!
换了新的系统再到这一步,将交换大小改成2048,然后应用更改sudo /etc/init.d/dphys-swapfile restart swapon -s
,接着克隆依赖库libreaslsense
。
cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
然后需要再root下应用更改。
sudo su
udevadm control --reload-rules && udevadm trigger
exit
添加环境变量,并且应用。
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
source ~/.bashrc
然后就需要安装各种依赖,先安装 Google 用于序列化结构化数据的中性语言、平台中立、可扩展机制:protobuf
。
cd ~
git clone --depth=1 -b v3.10.0 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
接着为C++安装并行度库:libtbb-dev
。
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
再安装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
在cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release -DFORCE_LIBUVC=true
的时候会报如下错误:
这是因为缺少ssl
库,需要安装:sudo apt-get install libssl-dev
,继续cmake
结果又报错:
这需要在cmakelist.txt
中添加一行代码:
if(POLICY CMP0072)
set(OpenGL_GL_PREFERENCE LEGACY)
endif()
再进行编译,就不会报错了,make -j1
需要的时间较长,要多等一会。
!!!!!令人费解的是,进行到这一步花了很久,我就保持开机状态,走之前还担心会过热,还给它装了散热,并且垫了一听可乐散热,过了一晚上,来的时候发现已经黑屏,开不开机了,树莓派只剩下红的的电源指示灯亮,以为是系统出现问题,于是重新烧录系统,接通电源,绿色的指示灯闪一下就灭,搞了好久还是开不开机,于是猜测是板子烧了,我是遭不住了,目前已经寄回去维修,以后再更新后续。
二、瑞芯微ROC-RK3588S-PC
于是乎在花费重金重新购买了一块板子——瑞芯微ROC-RK3588S-PC,8+64G的配置,是目前市面上能买的的性能最好的国产单片电脑了,这次吸取教训,先把散热一起装好。
这块板子上安装Ubuntu系统重复在树莓派上的操作,发现问题多多,而且难以解决,根本进行不下去,还尝试了直接编译以及直接使用他人预编译好的可执行文件,参考的链接如下https://blog.csdn.net/Zhaoxi_Li/article/details/125339179
,结果在运行realsense-viewer
的时候会有GLFW
的报错:
GLFW Error: GLX: No GLXFBConfigs returned
或者是:
couldn't find RGB GLX visual or fbconfig
尝试之后发现可能是由于显卡驱动的问题,难以解决,于是想到在Android的环境下使用,于是找到了微软提供的如下教程:https://dev.intelrealsense.com/docs/android-build-of-the-intel-realsense-sdk-20?_ga=2.178937325.899512433.1684307801-1128885324.1683183177
这里提到可以用Android studio去编译,或者直接使用他们提供的安装包,我已经搞不下去了,就直接用了他的安装包,安装包的链接如下https://egiintel.jfrog.io/ui/native/librealsense/com/intel/realsense/librealsense/
先给板子重新烧录了Android系统,在用他们的安装包,一键操作安装完成,插上深度相机,直接能用,如下图所示。