type
status
date
slug
summary
tags
category
icon
password

D435i摄像头使用

第一阶段:安装SDK


Intel 官方提供了 APT 仓库,这是最简单的安装方式,无需手动编译。
  1. 更新系统并安装依赖:
    1. 注册 Intel 公钥并添加仓库:
      1. 安装核心库与工具:
        1. 注意:librealsense2-dkms 会更新内核驱动,安装时如果弹出 "Secure Boot" 相关的提示,请根据提示设置密码或在 BIOS 中关闭 Secure Boot,否则驱动可能无法加载。
      1. 配置 USB 权限(非常重要): 插上摄像头,然后运行这行命令来赋予当前用户访问摄像头的权限:
        1. (安装完后,建议拔掉摄像头重新插一下)
       

      第二阶段:硬件连接与验证


      1. 物理连接: 使用随相机附带的 USB 3.0 数据线。D435i 在 USB 2.0 下功能会受限(如分辨率和帧率降低)。
      1. 启动可视化工具: 在终端输入以下命令启动官方预览器:
          • 检查: 如果界面右侧能看到 Stereo Module(深度)和 RGB Camera 选项,点击开关(Off -> On)看是否有画面。
          • 固件更新: 如果顶部弹出提示 "Firmware Update Available",建议点击更新以确保 D435i 的 IMU(惯性测量单元)和深度算法正常工作。
      1. 显示Connect a RealSense Camera or Add Source.
          • 拔掉摄像头。
          • 在终端运行:
            • 重新插入摄像头。
            • 再次运行 realsense-viewer
            • 如果还是不行,可以选择将 Type-C 那一头翻转 180 度重新插入摄像头。
            • 如果 ros2 topic hz 频率极低 ,应检查 USB 线是否插在了蓝色(3.0)接口,而非黑色(2.0)接口 。
        💡
        lsusb指令查找
        • Bus 010 Device 002: ID 8086:0b3a Intel Corp. Intel(R) RealSense(TM) Depth Camera 435i
        如果出现该项,则说明连接成功。
         

        第三阶段:编写简单的Python代码


        为了进行简单的“识别测试”,我们通常使用 Python 调用相机。
        这个可以单独创建一个conda环境。
        1. 创建环境:
          1. 激活环境:
            1. 安装开发包:
              1. 环境验证:
                1. 编写测试脚本: 创建一个 test_realsense.py 文件,以下代码将实时显示深度图和彩色图,并在彩色图中通过深度数据获取中心点的距离(这是最基础的“识别”:空间距离感知)。
                   

                  在ROS2中订阅相机话题

                  1. 编写节点代码
                    1. 不要忘记配置入口点。
                  1. 启动驱动节点
                      • 核心动作:驱动程序读取 USB 数据,并根据相机内参发布各种 Topics
                      • 关键参数align_depth.enable:=true 确保深度图和彩色图的像素坐标一一对应。
                  1. 终端 2:运行你编写的节点
                    其他:
                    • 报错:在 ROS2 Humble 中,如果遇到 _ARRAY_API not found,请检查 numpy 版本是否小于 2.0。
                     

                    SLAM视觉建图


                    在开始之前使用指令 lsusb | grep Intel 确定相机存在。
                    在使用视觉slam建图需要注意最好搭配里程计。

                    1. 初始版 slam_launch.py

                    请将以下内容完整覆盖你的 ~/nav2_ws/src/camera/launch/slam_launch.py
                    配置文件d435i_params.yaml
                    配置文件rtabmap_params.yaml
                     

                    2. 编译并生效

                    在运行前,请确保清理掉旧的进程并重新编译:
                    启动
                     

                    3.使用IMU优化视觉SLAM建图

                    配置文件d435i_params.yaml
                    配置文件rtabmap_params.yaml
                     

                    4.使用GPU优化

                    • 修改rtabmap_params.yaml参数
                    • 环境加速
                    • 检查是否成功使用GPU
                    Processes 列表中是否出现了 rviz2rtabmap。如果出现了,说明你已经成功开启了 GPU 模式!
                     

                    5.排错

                    • 检查硬件:
                      • 正常结果:Bus 010 Device 002: ID 8086:0b3a Intel Corp. Intel(R) RealSense(TM) Depth Camera 435i
                      • SLAM代码显示:RealSense Node Is Up!
                      • 异常:如果没有输出,重新刷新usb接口,接口转180度重新插入,换一个3.0的usb。
                      •  
                    • 检查图像
                      • 正常结果:持续输出频率(如 15Hz 或 30Hz)。
                      • 异常:如果没有输出,说明相机驱动卡死了(检查 USB 线和 MIPI Error)。
                      •  
                    • 检查 IMU
                      • 正常结果:持续输出高频数据(如 200Hz)。
                      • 异常:如果没有输出,SLAM 节点会报错。
                     

                    6.地图保存与查看

                    • 2D地图保存: ros2 run nav2_map_server map_saver_cli -f ~/my_map
                      • 注意:
                      • ros2 topic list | grep map指令查找正确的话题名称。
                      • Grid/FromDepth: "true"打开2D栅格地图
                    • 3D数据查看: 默认数据库路径为 ~/.ros/rtabmap.db
                    • 工具: 使用 rtabmap-databaseViewer 可回放建图轨迹。
                     

                    RTAB-Map 颜色状态对照


                    1. 画面变黄:预警状态(Warning)

                    当画面背景变为黄色时,通常意味着里程计(Odometry)仍在工作,但质量较低
                    • 特征点不足:当前视野内提取到的视觉特征点数量较少(低于设定阈值,如Vis/MinInliers 10) 。
                    • 匹配较弱:算法能强行计算出位姿,但置信度不高。
                    • 应对建议减慢移动速度,并将相机指向纹理丰富(有杂物、有书架)的区域 。
                     

                    2. 画面变红:丢失状态(Critical/Lost)

                    当画面背景变为红色时,意味着里程计已经彻底丢失(Odometry Lost)
                    • 运动模糊:相机晃动太快导致图像模糊,算法无法匹配前后两帧的特征点 。
                    • 视觉特征消失:相机对着白墙、镜子或纯色物体,导致没有足够的点可以追踪 。
                    • 计算阻塞:CPU 负载过高导致图像帧堆积(如遇到 queue is full 报错),导致位姿计算超时 。
                    • IMU 异常:如果开启了 wait_imu_to_init 但 IMU 没能成功初始化,系统也会卡在红色阻塞状态
                    • 应对建议:重新退回到之前的状态,借助imu恢复到上一步。
                     
                     
                    💡
                    有关问题,欢迎您在底部评论区留言,一起交流~
                     
                    OpenGauss 数据库环境配置全连接神经网络
                    Loading...