Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

本文详细记录了在Ubuntu 18.04系统中配置Intel D435i深度相机的SDK,包括更新内核、安装依赖、编译SDK、解决运行问题以及安装ROS1和ROS2的Wrapper。过程中提到了版本匹配问题,以及遇到的USB连接和相机驱动错误的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近因为学习开发需要,要开始接触一些视觉相关的内容,拿到了一个Inter 的D435i深度相机,记录一下在Ubuntu18环境下配置SDK 包的历程

写在开头

注意
Intel官方最新版的librealsense版本与ROS1的ROS Wrapper是 版本不一致的,且ROS Wrapper支持的是较低版本的SDK ,具体可以去网站查看

最新的SDK 支持ROS2 Wrapper

如果完全按照后文从git仓库克隆的方法安装的话,一般安装的都是最新版的librealsense以及ROS2 Wrapper,两者一般情况下是相互匹配的。如果是手动安装或是从其他地方离线获取了库文件,就可能存在版本不匹配的问题,查看librealsense的版本方法如下:
librealsense/目录下,打开package.xml文件,第十行左右有版本描述<version>2.51.1</version>
在这里插入图片描述

以该版本为例,其支持的SDK 为v2.51.1,与ROS2 Wrapper 4.51.1相匹配

ROS1 Wrapper支持较老版本的SDK

在这里插入图片描述
因此如果使用的是ROS1环境,建议手动下载sdk包,以及支持Ros1与librealsense v2.50.0的ROS Wrapper,后文的克隆仓库步骤就可以跳过了。

Intel官网的安装文档

文档链接

安装须知(来自官网)

  • D435i is supported on Linux, Windows 10. Requires FW 5.11.6.250+.

SDK安装(拔掉相机进行)

  • 更新Linux内核:
    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

  • 克隆远端仓库git clone https://github.com/IntelRealSense/librealsense.git

  • 安装依赖sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

  • 在克隆的本地仓库路径下,cd librealsense\

  • 运行许可脚本./scripts/setup_udev_rules.sh

  • 下载并编译内核模块./scripts/patch-realsense-ubuntu-lts.sh

  • 注意,这一步的代码运行时间会很长,要耐心等待remote :Counting objects运行完毕,约有1.5Gb的内容要获取与下载:在这里插入图片描述

  • 安装结束:

  • 在这里插入图片描述

  • 安装硬件基础包:

    • cd ./scripts/
    • ./patch-arch.sh

SDK编译

  • 在librealsense根目录下创建build文件夹:mkdir build && cd build
  • 使用cmake ..预编译,有以下三种具体方式
    • cmake ..:默认构建设置为在Debug模式下生成核心共享对象和单元测试二进制文件。使用-DCMAKE_BUILD_TYPE=Release进行优化构建。
    • cmake ../ -DBUILD_EXAMPLES=true:同时编译demos和tutorials ——我使用这个
    • cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false:针对没有OpenGL 或X11的系统
  • 清除安装,生成项目,安装至系统:sudo make uninstall && make clean && make && sudo make install
    • 注意,这一步如果因为网络原因无法连接到‘libcurl’,可以去github手动下载,然后修改/librealsense/CMake目录下的external_libcurl.cmake文件,注释掉20行左右的GIT_REPOSITORY "https://github.com/curl/curl.git"
    • 下载 后的文件夹改名为libcurl存放于目录/librealsense/build/third-party
    • 如果出现报错:gcc: internal compiler error,可能是因为设备没有足够的运行内存,可以尝试关掉一些正在运行的app再次make一下,确保RAM大于2GB(虚拟机注意)

相机试运行

进入文件目录build/examples/capture根目录下,插上相机,运行./rs-capture此时理论上会出现相机捕捉到的图像和深度图,而我在第一次运行时没有显示图像,并出现报错:

RealSense error calling rs2_pipeline_wait_for_frames(pipe:0x557831ce1260):
    Frame didn't arrive within 15000

说明通过py文件并没有正常启动摄像头,相关问题可查看:

https://github.com/IntelRealSense/librealsense/issues/2639
细细研究了一波他们的讨论后,认为应该是usb连接线以及电脑插口的问题,在命令行输入realsense-viewer,发现相机已经被电脑读取到,只是USB 端口是2.1
在这里插入图片描述
解决办法就是更换线材或是尝试升级固件,升级固件可参考realsense升级固件Firmware
再次尝试./rs-capture,即可正常显示:在这里插入图片描述

安装ROS Wrapper

官网教程
本部分一定要在前一步相机驱动安装好后进行

  • 创建工作空间mkdir -p ~/Vision_ws/src
  • 进入工作空间cd ~/Vision_ws/src
  • 克隆仓库代码(在src目录下):
    • git clone https://github.com/IntelRealSense/realsense-ros
    • cd realsense-ros/
    • git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1
    • cd ..
    • git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • 编译工作空间
    • 定义workspace:catkin_init_workspace(src中)
    • cd ..
    • catkin_make clean
    • catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
    • catkin_make install
  • 定义环境变量:
    • bash终端:
      • echo "source ~/Vision_ws/devel/setup.bash" >> ~/.bashrc
      • source ~/.bashrc
    • zsh终端:
      • echo "source ~/Vision_ws/devel/setup.zsh" >> ~/.zshrc
      • source ~/.zshrc
  • 在ROS中测试相机节点roslaunch realsense2_camera rs_camera.launch
<think>嗯,用户想了解如何对Intel深度相机D435i进行标定,配置环境,以及安装RealSense ROS并进行后续配置。首先,我需要回忆一下自己之前处理过类似问题的经验,或者查找相关资料来确保步骤正确。可能用户是机器人或者计算机视觉领域的研究者或开发者,他们需要将D435i集成到ROS环境中,进行深度和RGB相机的标定,以便后续的SLAM、三维重建等应用。 首先,标定D435i可能需要标定相机内参、外参,以及IMU的数据,因为D435i带有惯性测量单元。但用户的问题可能更侧重于安装配置ROS驱动,以及基础的标定步骤。可能用户已经有一定的ROS基础,但需要指导具体的安装流程。 安装RealSense ROS包的话,我记得官方推荐使用apt安装或者源码编译。对于ROS Noetic或Melodic版本,可能方法有所不同。需要确认用户的ROS版本,但用户没有说明,可能需要给出通用的方法,或者提示用户根据ROS版本调整步骤。 环境配置方面,可能需要安装依赖项,比如librealsense2和相应的ROS包。然后是相机的连接和测试,确保设备被正确识别。标定部分可能需要使用ROS中的相机标定工具,比如camera_calibration包,或者使用Kalibr工具进行更复杂的标定,尤其是IMU和相机之间的联合标定。 用户可能遇到的问题包括驱动安装失败,USB3.0接口的问题,或者标定过程中的错误。需要提醒用户注意这些常见问题,并提供解决方法。 另外,可能需要解释标定的目的,比如去除图像畸变,对齐深度和彩色图像,或者同步IMU和相机数据的时间戳。如果用户不太了解标定的重要性,可能需要简要说明。 总结下来,回答的结构应该是:先安装依赖和驱动,安装RealSense ROS包,连接设备测试,然后进行相机标定,可能还包括IMU标定,最后提供常见问题解决方法。需要分步骤详细说明,使用代码块显示命令,同时给出注意事项,比如USB接口要求,用户权限等。</think>以下是针对 Intel RealSense D435i 相机在 ROS 环境下的标定、环境配置安装步骤的详细指南: --- ### **1. 环境配置与驱动安装** #### **1.1 系统要求** - **ROS版本**:推荐 Noetic (Ubuntu 20.04) 或 Melodic (Ubuntu 18.04) - **USB接口**:必须使用 USB 3.0 及以上接口(蓝色接口) - **内核支持**:Ubuntu 系统需启用 UVC 内核模块(默认已支持 D435i) #### **1.2 安装依赖** ```bash # 安装 ROS 基础依赖 sudo apt-get install ros-${ROS_DISTRO}-realsense2-camera sudo apt-get install ros-${ROS_DISTRO}-realsense2-description # 安装 librealsense2 驱动 sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils ``` --- ### **2. 安装 RealSense ROS 包** #### **方法一:通过 apt 安装(推荐)** ```bash sudo apt-realsense2-camera ``` #### **方法二:源码编译** ```bash # 创建 ROS 工作空间(若已有可跳过) mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src # 克隆 RealSense ROS 仓库 git clone https://github.com/IntelRealSense/realsense-ros.git cd realsense-ros/ git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1` # 编译安装 cd ~/catkin_ws catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` --- ### **3. 连接相机并测试** #### **3.1 启动相机节点** ```bash roslaunch realsense2_camera rs_camera.launch ``` - **验证数据流**:使用 `rostopic list` 检查 `/camera/color/image_raw`、`/camera/depth/image_rect_raw` 等话题是否正常。 #### **3.2 可视化(可选)** ```bash roslaunch realsense2_camera rs_rgbd.launch # 启动 RGB-D 数据 rviz # 在 Rviz 中添加 Image 或 PointCloud2 显示 ``` --- ### **4. 相机标定** #### **4.1 RGB 和深度相机标定** ```bash # 安装标定工具 sudo apt-get install ros-${ROS_DISTRO}-camera-calibration # 启动 RGB 标定(使用棋盘格) rosrun camera_calibration cameracalibrator.py \ --size 8x6 \ # 棋盘格角点数 --square 0.024 \ # 单个方格边长(单位:米) image:=/camera/color/image_raw ``` - **操作提示**:移动棋盘格覆盖画面各个区域,直到 "CALIBRATE" 按钮亮起,点击后保存标定结果。 #### **4.2 IMU 标定(D435i 特有)** D435i 包含惯性测量单元 (IMU),需进行时间同步和噪声标定: ```bash # 录制 IMU 数据(静置桌面 30 秒) rosbag record /camera/imu /camera/gyro/sample /camera/accel/sample # 使用 Kalibr 工具标定(需提前安装) # 参考:https://github.com/ethz-asl/kalibr ``` --- ### **5. 常见问题解决** #### **问题1:USB 连接不稳定** - **原因**:供电不足或 USB 线质量问题。 - **解决**:更换带屏蔽的 USB 3.0 线缆,或使用外接电源。 #### **问题2:权限不足** ```bash # 添加用户权限 sudo usermod -aG video $USER sudo reboot ``` #### **问题3:标定结果误差大** - **建议**:确保棋盘格平整,标定时覆盖画面边缘区域,避免强光干扰。 --- ### **6. 后续配置建议** 1. **参数优化**:修改 `rs_camera.launch` 文件调整分辨率、帧率(例如 `depth_width:=640 depth_height:=480`)。 2. **多相机同步**:若使用多台 RealSense,需配置 `serial_no` 区分设备。 3. **与 SLAM 集成**:结合 RTAB-Map、ORB-SLAM3 等算法实现三维重建或定位。 --- 通过以上步骤,您可完成 D435i环境配置、驱动安装及标定工作。如需更复杂的联合标定(如相机-IMU 或多传感器融合),建议使用专业工具如 **Kalibr**。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值