首页
/ 在Jetson AGX Orin上使用librealsense驱动Intel RealSense D455相机的解决方案

在Jetson AGX Orin上使用librealsense驱动Intel RealSense D455相机的解决方案

2025-05-28 23:03:25作者:宣聪麟

问题背景

在Jetson AGX Orin开发套件(运行Ubuntu 22.04 LTS系统)上,用户尝试使用librealsense驱动Intel RealSense D455深度相机时遇到了设备无法识别的问题。虽然通过lsusb命令可以检测到相机设备,但在运行realsense-viewer时却显示"Found 0 RealSense devices"。

环境配置

用户的环境配置如下:

  • 硬件平台:NVIDIA Jetson AGX Orin开发套件
  • 操作系统:Ubuntu 22.04 LTS (Linux内核版本5.15.148-tegra)
  • 相机型号:Intel RealSense D455深度相机
  • JetPack版本:6.1

问题分析

通过分析用户的操作过程和错误信息,可以确定问题主要出在以下几个方面:

  1. 内核补丁问题:用户最初尝试运行patch-realsense-ubuntu-lts-hwe.sh脚本,这是针对PC计算机的补丁脚本,不适用于Jetson平台。

  2. 构建配置问题:用户在构建librealsense时没有正确设置RSUSB后端标志,导致无法绕过内核模块直接与设备通信。

  3. 平台兼容性问题:Jetson AGX Orin使用的JetPack 6.1版本较新,现有的L4T补丁脚本尚未完全支持。

解决方案

经过多次尝试和验证,最终确定以下解决方案:

  1. 使用正确的构建参数:在构建librealsense时,必须设置-DFORCE_RSUSB_BACKEND=true标志,这样可以绕过内核模块直接使用libusb后端与设备通信。

  2. 完整的构建命令:推荐使用以下完整的构建命令:

    mkdir build && cd build && \
    cmake .. -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true \
    -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=true \
    -DBUILD_WITH_CUDA=true && \
    make -j$(($(nproc)-1)) && sudo make install
    
  3. 清理旧构建:在重新构建前,建议完全清理旧的构建目录和安装文件,以确保没有残留的配置影响新构建。

技术原理

-DFORCE_RSUSB_BACKEND=true参数的作用是强制librealsense使用基于libusb的后端实现,而不是依赖内核模块。这种方式有以下优势:

  1. 不需要为特定内核版本打补丁
  2. 兼容性更好,可以支持更多平台和内核版本
  3. 简化了部署流程,特别是在嵌入式系统上

对于Jetson这类嵌入式平台,使用RSUSB后端通常是更可靠的选择,因为它避免了与特定内核版本的兼容性问题。

注意事项

  1. 性能考虑:RSUSB后端可能会有轻微的性能开销,但对于大多数应用场景来说影响不大。

  2. 权限问题:即使使用RSUSB后端,在某些情况下仍可能需要sudo权限访问设备。

  3. 长期维护:随着JetPack 6.x的普及,建议关注librealsense的更新,未来版本可能会提供更好的原生支持。

总结

在Jetson AGX Orin等嵌入式平台上使用Intel RealSense相机时,采用RSUSB后端构建librealsense是最可靠的解决方案。这种方法不仅解决了设备识别问题,还简化了部署流程,特别适合快速原型开发和产品部署。

热门项目推荐
相关项目推荐

项目优选

收起
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
50
13
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
267
383
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
409
311
carboncarbon
轻量级、语义化、对开发者友好的 golang 时间处理库
Go
7
2
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TSX
287
26
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
38
102
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
607
69
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
85
234
open-eBackupopen-eBackup
open-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。
HTML
108
73
凹语言凹语言
凹语言(凹读音“Wā”)是针对 WebAssembly 设计的编程语言,目标:为高性能网页应用提供一门简洁、可靠、易用、强类型的编译型通用语言。凹语言的代码生成器及运行时为全自主研发(不依赖于LLVM等外部项目),实现了全链路自主可控。目前凹语言处于工程试用阶段。
Go
13
4