Ubuntu 22.04下Intel RealSense D435i深度相机驱动与ROS2 Humble接口部署实战
1. 环境准备与依赖安装在Ubuntu 22.04上部署Intel RealSense D435i相机前我们需要先搭建好基础环境。这个环节就像盖房子前要打地基一样重要我遇到过不少开发者因为跳过这步导致后续各种报错。首先更新系统软件源并升级已安装的包sudo apt update sudo apt upgrade -y接下来安装编译所需的依赖项这里我推荐使用以下组合命令一次性安装sudo apt install -y git cmake libssl-dev libusb-1.0-0-dev pkg-config \ libgtk-3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev \ python3-dev python3-pip注意Ubuntu 22.04默认使用Python3所以不需要额外安装Python2相关依赖特别提醒要检查内核版本这是很多新手容易踩坑的地方uname -r在Ubuntu 22.04上应该显示5.15或更高版本内核。我实测发现5.15内核已经内置了对D435i的良好支持不需要额外打补丁这比旧版Ubuntu省事不少。2. 源码编译安装librealsense SDK官方提供了apt和源码两种安装方式我强烈建议选择源码编译虽然耗时稍长但兼容性更好。去年在客户现场就遇到apt安装的版本无法识别IMU模块的问题。首先克隆官方仓库建议使用稳定分支git clone https://github.com/IntelRealSense/librealsense.git cd librealsense git checkout v2.53.1 # 使用稳定版本设置udev规则让普通用户也能访问设备./scripts/setup_udev_rules.sh接下来是关键的编译环节这里分享我的优化参数mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease \ -DBUILD_EXAMPLEStrue \ -DBUILD_GRAPHICAL_EXAMPLEStrue \ -DFORCE_LIBUVCtrue make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install编译完成后可以用这个命令验证安装realsense-viewer如果能看到相机实时画面说明SDK安装成功。我建议在这里先测试所有功能是否正常包括深度流、RGB和IMU数据。3. ROS2 Humble工作空间配置现在我们来创建ROS2工作空间。与ROS1不同ROS2使用colcon作为构建工具这里有个小技巧先设置好工作空间结构可以避免后续很多路径问题。创建并初始化工作空间mkdir -p ~/realsense_ws/src cd ~/realsense_ws colcon build # 先构建空工作空间接下来安装realsense-ros包。由于官方ROS2包还在持续更新我推荐使用最新开发分支cd ~/realsense_ws/src git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-development还需要安装几个依赖包sudo apt install -y ros-humble-ddynamic-reconfigure \ ros-humble-rviz2 ros-humble-navigation24. 编译与功能验证现在进入最关键的编译环节。ROS2的编译系统比ROS1更智能但也有一些新特性需要注意。首先解决依赖关系cd ~/realsense_ws rosdep install -i --from-path src --rosdistro humble -y然后开始编译使用--symlink-install可以方便调试colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease编译完成后别忘记source环境source ~/realsense_ws/install/setup.bash启动相机节点ros2 launch realsense2_camera rs_launch.py在另一个终端可以用这些命令测试# 查看所有话题 ros2 topic list # 查看深度图像 ros2 run rviz2 rviz2 -d $(ros2 pkg prefix realsense2_camera)/share/realsense2_camera/rviz/pointcloud.rviz我在实际项目中总结出几个常见问题解决方案如果点云显示异常检查相机固件是否为最新版本IMU数据丢失时可以尝试重新插拔USB线对于时间同步问题可以启用硬件同步功能5. 高级配置与优化要让D435i发挥最佳性能还需要进行一些参数调优。这里分享我的实战经验。首先创建配置文件mkdir -p ~/.ros/realsense nano ~/.ros/realsense/d435i_config.yaml加入以下优化参数depth_module: enable_auto_exposure: false exposure: 1000 laser_power: 150 depth_units: 0.0001启动时加载配置文件ros2 launch realsense2_camera rs_launch.py \ config_file:/home/$USER/.ros/realsense/d435i_config.yaml对于需要精确时间同步的场景可以启用硬件同步ros2 launch realsense2_camera rs_launch.py \ enable_sync:true align_depth:true6. 常见问题排查即使按照步骤操作也可能会遇到各种问题。这里整理了我遇到过的典型问题及解决方法。问题1USB连接不稳定解决方案sudo apt install usbutils lsusb -t | grep RealSense # 确认使用USB3.0接口问题2内核模块冲突解决方法sudo modprobe -r uvcvideo sudo modprobe uvcvideo问题3点云数据缺失调试命令ros2 topic echo /camera/depth/camera_info ros2 run rqt_graph rqt_graph最后提醒大家Intel官方论坛和GitHub issue区是很好的问题解决资源。遇到问题时记得先查看日志ros2 topic echo /camera/realsense2_camera/status