因为intel已经不再对realsense t265跟踪摄像头支持,直接在ubuntu上使用apt install 安装新版的realsense2 SDK不支持t265
经过我的测试发现安装realsense2 SDK 2.51.1版本可以正常在ubuntu22上启动t265,并且可以配合realsense-ros2 4.51.1版本在ros2中使用
下面记录在搭载ubuntu22.04的树莓派4b上源码编译安装realsense2 SDK 2.51.1版本
经过测试发现arm64版和amd64都支持
1.安装工具与依赖
sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
2.拉取realsense2 SDK 2.51.1源码
一定要指定版本v2.51.1
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
git checkout v2.51.1
3.编译安装realsense2 SDK 2.51.1
其他教程都是给系统内核打补丁来兼容老版本(我没有成功)
我这里使用绕过内核驱动 (RSUSB Backend)的方法,这是librealsense SDK 提供了一种现代化的编译选项,可以完全绕过 Linux 内核的V4L2驱动,完全不需要任何内核补丁,直接通过 libusb 与摄像头通信,经验证可以成功编译安装上。
cd librealsense
mkdir build && cd build
#这里使用 -DFORCE_RSUSB_BACKEND=ON 选项运行 cmake
cmake ../ -DFORCE_RSUSB_BACKEND=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DBUILD_WITH_CUDA=false
make -j4
sudo make install
# 更新系统的动态链接库缓存
sudo ldconfig
我的树莓派4b是编译了半个小时的,耐心等待。。。
完成后为了能识别摄像头型号,要设置udev规则
sudo cp ../config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
4.编译过程可能遇到问题
我遇到下面这样的报错
[ 36%] Building CXX object CMakeFiles/realsense2.dir/src/libusb/context-libusb.cpp.o
In file included from /home/cennum/librealsense/src/libusb/context-libusb.h:10,
from /home/cennum/librealsense/src/libusb/context-libusb.cpp:4:
/home/cennum/librealsense/src/libusb/libusb.h:10:82: error: extended character ‘ is not valid in an identifier
10 | /usr/include/libusb-1.0/libusb.h:736:4: warning: ISO C++ forbids zero-size array ‘dev_capability_data’ [-Wpedantic]
| ^
问题是说/home/cennum/librealsense/src/libusb/context-libusb.h中有中文引号,可能是编译器没有识别到注释部分导致的
直接删除/librealsense/src/libusb/context-libusb.h报错的那一块,我是这样解决的,不影响
5.启动realsense-viewer
插上你的realsense 相机,启动realsense-viewer,可以看到版本号是v2.51.1
如果你想在ros2 中使用t265或者d435,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本
下一条更新在ros2 中安装realsense-ros 4.51.1并且启动相机的ros2节点