保姆级教程:在Ubuntu 22.04上为ROS2 Humble安装Intel Realsense D435驱动(含SDK2.0源码编译避坑指南)

张开发
2026/5/18 6:42:59 15 分钟阅读
保姆级教程:在Ubuntu 22.04上为ROS2 Humble安装Intel Realsense D435驱动(含SDK2.0源码编译避坑指南)
在Ubuntu 22.04上为ROS2 Humble安装Intel Realsense D435驱动的完整指南第一次在Ubuntu 22.04上为ROS2 Humble配置Intel Realsense D435相机时我遇到了各种意想不到的问题。从依赖冲突到权限错误再到CMake配置失败几乎每一步都可能成为阻碍。这篇指南将带你避开这些陷阱完成从零开始到成功驱动的全过程。1. 系统准备与环境检查在开始安装之前确保你的Ubuntu 22.04系统已经更新到最新状态。打开终端并执行sudo apt update sudo apt upgrade -y检查你的ROS2 Humble安装是否完整source /opt/ros/humble/setup.bash ros2 doctor常见问题如果提示缺少依赖可以尝试rosdep install --from-paths src --ignore-src -r -y特别注意Ubuntu 22.04默认的OpenSSL版本可能与Realsense SDK不兼容。建议先安装兼容版本sudo apt install libssl1.12. 安装Realsense SDK 2.02.1 通过APT安装推荐新手尝试首先尝试官方推荐的APT安装方式sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || 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 sudo apt update sudo apt install librealsense2-dkms librealsense2-utils如果这一步顺利完成可以直接跳到ROS2包的安装部分。但根据我的经验大约60%的情况下会遇到各种问题这时就需要转向源码编译。2.2 源码编译安装解决依赖问题的终极方案当APT安装失败时源码编译是更可靠的选择。首先安装必要的依赖sudo apt install -y git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev sudo apt install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev特别注意libglfw3-dev的版本冲突是常见问题。如果遇到错误可以尝试sudo apt --fix-broken install sudo apt install libglfw3-dev3.3.2-1ubuntu1下载源码并编译git clone https://github.com/IntelRealSense/librealsense.git cd librealsense mkdir build cd build cmake .. -DBUILD_EXAMPLEStrue -DFORCE_RSUSB_BACKENDtrue make -j$(nproc) sudo make install关键参数说明-DFORCE_RSUSB_BACKENDtrue强制使用libusb后端避免内核驱动问题-j$(nproc)使用所有CPU核心加速编译3. 配置udev规则和权限即使编译安装成功普通用户可能仍然无法访问设备。需要设置udev规则sudo cp ~/librealsense/config/99-realsense-libusb.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger验证设备是否被正确识别ls /dev | grep video realsense-viewer如果realsense-viewer能正常打开并显示图像说明SDK安装成功。4. 安装ROS2 Realsense包现在可以安装ROS2的Realsense接口包sudo apt install ros-humble-realsense2-camera ros-humble-realsense2-description验证ROS2包是否安装成功ros2 pkg list | grep realsense5. 启动相机节点与常见问题排查启动相机节点ros2 launch realsense2_camera rs_launch.py常见问题及解决方案找不到设备dmesg | grep -i real检查输出是否有权限错误可能需要重新插拔设备或重启服务点云数据缺失 在启动命令中添加参数ros2 launch realsense2_camera rs_launch.py enable_pointcloud:true帧率不稳定 尝试降低分辨率ros2 launch realsense2_camera rs_launch.py depth_width:640 depth_height:480 depth_fps:306. 高级配置与优化6.1 同步多个Realsense设备如果需要使用多个相机需要设置每个设备的序列号rs-enumerate-devices | grep Serial Number然后在启动时指定ros2 launch realsense2_camera rs_launch.py serial_no:你的设备序列号6.2 保存和加载配置预设在realsense-viewer中调整好参数后可以保存为json配置文件ros2 launch realsense2_camera rs_launch.py config_file:路径/to/your/config.json6.3 性能优化建议对于D435相机推荐以下设置平衡性能和质量参数推荐值说明深度分辨率848x480平衡精度和性能深度帧率30fps稳定传输激光功率100室内环境最佳深度模式高质量牺牲速度换取精度7. 实际应用示例7.1 在RViz中查看数据启动RViz并添加相关显示ros2 run rviz2 rviz2在RViz中添加Image显示话题选择/camera/color/image_rawPointCloud2显示话题选择/camera/depth/color/points7.2 使用Python访问图像数据创建一个简单的Python节点订阅图像#!/usr/bin/env python3 import rclpy from rclpy.node import Node from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 class ImageViewer(Node): def __init__(self): super().__init__(image_viewer) self.subscription self.create_subscription( Image, /camera/color/image_raw, self.image_callback, 10) self.bridge CvBridge() def image_callback(self, msg): cv_image self.bridge.imgmsg_to_cv2(msg, bgr8) cv2.imshow(Camera View, cv_image) cv2.waitKey(1) def main(argsNone): rclpy.init(argsargs) image_viewer ImageViewer() rclpy.spin(image_viewer) image_viewer.destroy_node() rclpy.shutdown() if __name__ __main__: main()保存为image_viewer.py并运行chmod x image_viewer.py ./image_viewer.py记得先启动相机节点。这个简单的脚本展示了如何访问和处理相机数据。

更多文章