当前位置: 首页 > news >正文

Intel RealSense D455 在ARM64 (Jetson) 平台上 ubuntu22.04下使用笔记

环境:

Ubuntu 22.04
ROS2 Humble
Intel RealSense D455

1.确认系统能识别相机

D455插到USB3.0接口。运行:

lsusb

如果正常你会看到类似红色框住内容:

确认是不是 USB3

lsusb -t

关键看:5000M 如果是:480M 说明你插在 USB2 口。D455 + IMU必须 USB3

2.安装 RealSense SDK

ROS只是接口层,
真正驱动相机的是Intel RealSense SDK 2.0

安装:(方法:从英特尔服务器安装librealsense2 debian软件包)

参照原文链接:https://blog.csdn.net/weixin_51612528/article/details/140945640

1.注册服务器的公钥

sudo mkdir -p /etc/apt/keyrings curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | tee /etc/apt/keyrings/librealsense.pgp > /dev/null

2.确保安装了APT HTTPS支持

sudo apt-get install apt-transport-https

3.添加源并更新

#强制添加 Ubuntu 22.04 (jammy) 的源 # 注意:这里直接写死 jammy,防止 lsb_release 获取错误 echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo jammy main" | tee /etc/apt/sources.list.d/librealsense.list #更新软件列表 # 观察这一步的输出,如果看到 Hit 或 Get https://librealsense.intel.com... 说明源通了 apt-get update

4.安装库

在 ARM64 (Jetson) 平台上,不支持也不安装librealsense2-dkmsdkms是用于 x86 电脑动态编译内核驱动的,Jetson 的内核是 NVIDIA 定制的,不能用这个包。

只安装工具包(去掉 dkms)

既然源已经通了,我们只安装运行所需的库和工具。在终端执行:

apt-get install librealsense2-utils librealsense2

5.验证安装(启动GUI界面)

realsense-viewer

这里motion module打开报错 "UDEV-Rules are missing" 或 "Permission denied"

由于 ARM 平台的包有时不包含完整的权限规则,如果打开软件后右上角依然有红色警告,或者 Motion Module 依然打不开,请手动执行以下命令修复权限(这是针对 Jetson 平台最关键的一步):

# 1. 设置 UDEV 规则 echo 'KERNEL=="uvcvideo", GROUP="video", MODE="0666"' | tee /etc/udev/rules.d/99-realsense-libusb.rules echo 'KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0666"' | tee -a /etc/udev/rules.d/99-realsense-libusb.rules # 2. 重新加载规则 udevadm control --reload-rules udevadm trigger # 3. 将当前用户加入 video 组(确保有权限) usermod -aG video $USER

执行完上述命令后,请重启设备(reboot),然后再次运行realsense-viewer测试。

1.RealSense Viewer 是干什么的?

简单来说,它是 Intel 官方提供的相机“控制面板” + “调试工具”。 对于 ROS2 开发者来说,它的作用类似于:

  • 硬件体检中心:确认相机是不是坏的,线有没有插好。

  • 参数实验室:在写代码前,先在这里找到最佳的曝光、分辨率、帧率参数。

  • 数据录制机:录制真实世界的传感器数据(.bag 文件),让你在不插相机的情况下也能调试 ROS2 算法。


2. 针对 D455,你该怎么使用它?(核心功能指南)

结合你左侧的菜单栏,我为你梳理了最常用的功能:

A. 验证传感器数据(最基础)

你现在看到的左侧列表Stereo ModuleRGB CameraMotion Module代表相机的三个核心部件。

  • Stereo Module (深度模块):点击开关变为ON

    • 你会看到黑白噪点图(红外)或彩色深度图。

    • 作用:检查深度是否有缺失,测量距离准不准。

  • RGB Camera (彩色相机):点击开关变为ON

    • 作用:检查色彩是否正常,用于后续做 RGB-D 融合。

  • Motion Module (运动模块):点击开关变为ON

    • 作用:这是你之前报错的核心。打开后,你会看到Accelerometer (加速度计)Gyroscope (陀螺仪)的波形图在跳动。晃动相机,波形会变化,说明 IMU 正常。

B. 调整参数(调参)

点击每个模块左侧的小箭头>展开,可以看到详细参数:

  • Resolution & FPS:修改分辨率(如 1280x720)和帧率(30/60)。

    • ROS2 关联:这里能设多少,你的 ROS2 launch 文件里就能配多少。

  • Exposure / Gain:曝光和增益。

    • 场景:如果画面太暗或太亮,可以手动关掉Auto Exposure,手动调节这个值。

  • Depth Units:深度单位,通常是 0.001 (毫米)。

C. 3D 点云查看(最直观)

  • 点击界面右上角的3D按钮(你截图里已经是 3D 模式)。

  • Stereo ModuleRGB Camera都打开时,你会看到彩色的 3D 点云。

  • 鼠标操作:左键旋转,右键平移,滚轮缩放。

  • 作用:直观检查点云有没有“飞点”(噪点),深度边缘是否整齐。

D. 录制数据 (.bag 文件) ——ROS2 开发者必用

  • 点击左上角的Record按钮。

  • 选择保存路径,开始录制。

  • 作用:它会把你当前的深度、RGB、IMU 数据全部录下来存成一个.bag文件。

  • 好处:以后写 ROS2 代码调试时,不需要每次都插相机,直接播放这个 bag 包即可,极大提高开发效率。

E. 测量工具 (Measure)

  • 点击顶部工具栏的Measure(尺子图标)。

  • 在画面上点两个点,它会直接显示两点间的真实物理距离

  • 作用:验证深度相机的测距精度(比如拿个尺子量一下,跟软件显示的对比)。

3.启动 RealSense ROS2 驱动

启动:

ros2 launch realsense2_camera rs_launch.py

启动成功会看到类似:

RealSense Node Is Up!

此时 ROS2 中已经开始发布相机数据。

4.查看 ROS2 节点

查看节点:

ros2 node list

话题里有两个camera/camera/camera/...)。这是因为启动时的默认命名空间(namespace)和相机名称(camera name)重叠了。 虽然不影响使用,但如果你想把它变干净(变成/camera/accel/sample),可以在启动时加一个参数namespace:=/

ros2 launch realsense2_camera rs_launch.py \ namespace:=/ \ enable_gyro:=true \ enable_accel:=true #最后两行分别启动陀螺仪和加速度计

说明:RealSense 相机节点正在运行

5.确认imu 数据

由于运行ros2 node list 反馈的订阅话题名称为/camera/camera 所以当订阅imu 数据时命令应为:

ros2 topic echo /camera/camera/accel/sample

晃动相机此时你应该能看到终端里疯狂刷新数据;如果看到linear_acceleration的数值随晃动变化,说明IMU 数据流彻底通了!

6.查看 Topic(数据流)

查看所有 topic:

ros2 topic list

这些 topic 的含义:

Topic作用
color/image_rawRGB图像
depth/image_rect_raw深度图
camera_info相机内参
tf坐标变换

7.查看数据发布频率

验证相机数据是否真实发布。

1.测试 RGB:

ros2 topic hz /camera/camera/color/image_raw

说明:RGB图像正在发布

2.测试深度图:

ros2 topic hz /camera/camera/depth/image_rect_raw

8.RVIZ 可视化

启动 RVIZ:

rviz2

1.显示 RGB 图像

1.点击:Add。 2.选择:Image。 3.设置 topic:/camera/camera/color/image_raw

即可看到 RGB 图像。

2.显示深度图

再 add 一个:Image。topic:/camera/camera/depth/image_rect_raw

即可看到深度图。见上图。

9.查看 TF 坐标树

ros2 topic list | grep tf

生成 TF 图:

ros2 run tf2_tools view_frames

10.开启点云数据

RealSense 默认不会开启点云

启动点云:ros2 launch realsense2_camera rs_launch.py pointcloud.enable:=true

这里出现问题,此命令正常执行 但是却在rviz中看不到点云信息 。

1.先确认pointcloud模块是否存在

ros2 param list /camera/camera | grep pointcloud

这个输出已经把问题完全暴露出来了,而且这是Jetson + RealSense ROS2 很常见的坑

注意输出是:pointcloud__neon_.enable

而不是我们通常看到的:pointcloud.enable

这说明一件事:

你的 RealSense 驱动启用了 NEON 优化版本的 pointcloud filter。

NEON 是 ARM CPU(Jetson)的 SIMD 加速。

所以在 Jetson 上:pointcloud.enable 被替换成了:pointcloud__neon_.enable

所以之前的 launch 参数:pointcloud.enable:=true根本没有作用。

2.正确开启 pointcloud(Jetson版本)

正确的指令:(先发布launch文件 再设置点云信息)

ros2 launch realsense2_camera rs_launch.py ros2 param set /camera/camera pointcloud__neon_.enable true #开启点云 ros2 param set /camera/camera align_depth.enable true #深度对齐 ros2 param set /camera/camera pointcloud__neon_.stream_filter 2 #指定rgb作为纹理

第三行代码结尾数字意义:

含义
0ANY
1DEPTH
2COLOR

再检查:

ros2 topic list | grep points

3.确认 pointcloud 正在发布

ros2 topic hz /camera/camera/depth/color/points

正常应该看到:average rate: 30 Hz

4.RVIZ 显示点云

rviz2

1.设置:Fixed Frame:camera_link

2. Add: PointCloud2

3.Topic 选择:/camera/camera/depth/color/points

5.RealSense ROS 的核心调试方法

ros2 param dump /camera/camera

这就是相机完整配置树

11.展望

使用rtabmap框架用d455建图

http://www.jsqmd.com/news/473761/

相关文章:

  • 2026杭电多校春季训练赛日志
  • 【effective c++】条款四十五:运用成员函数模板接受所有兼容类型
  • 安卓wakelock 学习
  • 从空白文档到完整初稿:Paperzz 如何让毕业论文写作「零门槛」通关?
  • 创新GL微电网二次控制:基于事件触发的下垂控制及其最小事件触发间隔的扰动补偿研究“(具有参考文...
  • if-else条件语句详解
  • 【深度学习代码流程】李宏毅机器学习HW-1:预测美国COVID-19阳性病率
  • MATLAB/Simulink永磁直驱风力发电系统:SVPWM空间电压矢量调制与双闭环解耦控制应用
  • 从选题到成稿零焦虑:Paperzz 毕业论文初稿写作,让学术创作告别 “卡壳式内耗”
  • 开关磁阻电机电流斩波控制仿真 simulink仿真 双闭环控制等 含有文档报告,详细的参数说明
  • Vue3 + Vite 局域网 HTTPS 访问实战:手机秒连本地开发环境
  • 2026 学术写作破局:Paperzz 如何用「四步闭环法」解决毕业论文初稿难产,让你 3 天写完合格初稿
  • 【软件测试】系统学习清单(含知识点+掌握程度拆解)
  • # Vue 实现 PDF 预览与批量打印组件
  • 论文党「反内耗」神器:Paperzz 把毕业论文初稿写成「开卷答题」,4 步搞定从 0 到成稿
  • OpenClaw Skill 操作钉钉(原理+20个实例)
  • 数据预处理骚操作
  • 自动化仓储系统的核心设备堆垛机最怕啥?急起急停带来的机械冲击。老司机都知道S型曲线速度控制才是王道,今天咱就扒一扒西门子S7-1500里的实战代码
  • 高通跃龙QCS9100平台上工业缺陷检测实战(1): 从摄像头到端侧推理的最小闭环
  • 实测负荷数据(示例)
  • 北京上门回收老安宫牛黄丸、片仔癀!本草拾光商行高价收,变现快时效拉满 - 品牌排行榜单
  • 西门子PLC精确计算设备运行时间程序(1200PLC与1500PLC通用)——改良版实时时间比较法
  • C++学习日志——面向过程篇3.11
  • 架构2
  • ADRC双环自抗扰控制永磁同步电机矢量控制伺服系统Matlab仿真探索
  • IT系统全生命周期管理和运营方案(Word)
  • PYTHON学习笔记3
  • 代码随想录算法训练营第十天 | 用栈实现队列、 用队列实现栈、有效的括号、删除字符串中的所有相邻重复项
  • OFDM MQAM在衰落信道下误比特率性能仿真探索
  • python语法学习