作为一名长期在机器人视觉领域工作的开发者,我深知Intel RealSense深度相机在三维感知应用中的重要性。今天要分享的是在Ubuntu系统上安装RealSense SDK驱动层的完整流程,这是使用D400系列相机(如D435i/D455)进行开发的第一步基础工作。
这个安装过程看似简单,但实际操作中会遇到各种"坑"——从密钥服务器连接失败到USB接口带宽不足,从内核模块编译错误到开发环境依赖缺失。本文将基于我过去三年在多个机器人项目中的实战经验,带你避开这些陷阱,一次性完成驱动安装。
在开始安装前,必须确认硬件环境符合要求:
USB接口选择:RealSense D400系列依赖USB 3.0的高速带宽(5Gbps),实测:
计算设备验证:
bash复制lsusb -t | grep 3.0
确认输出包含"5000M"字样,表示USB3.0控制器正常工作
RealSense驱动安装包含三个核心组件:
特别注意:如果后续要编译ROS wrapper或SLAM算法(如Ego-Planner),必须安装librealsense2-dev
首先解决软件源认证问题:
bash复制sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
常见问题处理:
bash复制sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
添加Intel官方仓库时需匹配系统版本:
bash复制sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
完整安装命令:
bash复制sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
组件作用详解:
librealsense2-dkms:自动为当前内核编译并安装驱动模块librealsense2-utils:包含调试工具和可视化程序librealsense2-dev:开发必需的头文件和静态库实测建议:安装完成后执行
modinfo uvcvideo | grep "version",应看到"realsense"字样,表示驱动加载成功
连接相机到USB3.0接口后:
bash复制realsense-viewer
正常情况应看到:
问题1:设备未识别
dmesg | grep uvc输出sudo apt-get --reinstall install librealsense2-udev-rules问题2:图像帧率低下
bash复制v4l2-ctl --device /dev/video2 --list-formats-ext
确认输出中包含"YUYV 1920x1080"等支持格式
问题3:内核模块编译失败
bash复制sudo apt-get install linux-headers-$(uname -r)
bash复制sudo /usr/lib/dkms/dkms_autoinstaller start
避免每次都需要sudo:
bash复制sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
通过官方工具升级相机固件:
bash复制rs-fw-update -l
rs-fw-update -f Signed_Image_UVC_5_15_0.bin -s <serial_number>
对于需要多个RealSense协同工作的场景:
bash复制rs-enumerate-devices -c | grep "Serial Number"
在realsense-viewer中设置硬件同步选项
典型CMakeLists.txt配置:
cmake复制find_package(realsense2 REQUIRED)
include_directories(${REALSENSE_INCLUDE_DIRS})
target_link_libraries(your_target ${REALSENSE_LIBRARY})
安装Python wrapper:
bash复制pip install pyrealsense2
验证安装:
python复制import pyrealsense2 as rs
print(rs.__version__)
不同场景下的推荐配置:
| 应用场景 | 分辨率 | 帧率 | 深度模式 |
|---|---|---|---|
| 近距离高精度 | 848x480 | 90 | High Accuracy |
| 远距离探测 | 1280x720 | 30 | High Density |
| 快速运动追踪 | 640x360 | 60 | Medium |
通过realsense-viewer调整参数:
cpp复制rs2::decimation_filter dec;
rs2::spatial_filter spat;
rs2::temporal_filter temp;
定期检查更新:
bash复制sudo apt-get update
sudo apt-get --only-upgrade install librealsense2*
内核升级处理:
sudo dkms autoinstalllsmod | grep uvcvideo备份关键配置:
bash复制rs-enumerate-devices -c > realsense_config_backup.txt
在实际项目部署中,我建议将驱动安装过程编写成自动化脚本。以下是我在无人机项目中使用的安装脚本片段:
bash复制#!/bin/bash
# 自动检测并安装RealSense驱动
KERN=$(uname -r)
echo "[INFO] Checking kernel headers..."
sudo apt-get install -y linux-headers-$KERN
echo "[INFO] Adding Intel repository..."
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
echo "[INFO] Installing packages..."
sudo apt-get install -y librealsense2-dkms librealsense2-utils librealsense2-dev
echo "[INFO] Setting udev rules..."
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
echo "[SUCCESS] Installation completed. Connect camera and run: realsense-viewer"
这个脚本已经在我们团队的20+开发机上验证通过,能处理大多数常见安装场景。如果遇到特别的内核版本冲突,可能需要手动编译驱动,这时建议参考Intel官方文档处理。