ardupilot开发 --- RealSense-D400 篇

0. 一些概念

  • 官网:Intel RealSense
  • 选型:D455相机
  • Intel.RealSense 所有 SDK 介绍,参考
    • (1) Intel RealSense SDK 2.0
      用于:D400系列相机、L500系列雷达的程序开发;
      用在:目标检测、跟踪、分类、SLAM、位姿估计、视觉伺服等应用;
    • (2) Intel RealSense ID SDK
      用于:F400系列相机的程序开发;
      用在:面部识别应用开发;
  • 首页的导航可以链接到任何地方:下载、文档、论坛、案例、getting start…
    在这里插入图片描述
  • 白皮书(whitepapers
    了解 Intel RealSense 公司正在进行的创新和研究,以获得市场上最全面的计算机视觉产品组合。
  • Get started
    • 某个型号产品的 Get started
      Home ~> Products ~> D455 ~> 网页底部 ~> Get started
    • 所有产品(SDK)的Get started、开发中心
      Home ~> Developers ~> Get started
  • Support
  • 开发中心
    https://www.intelrealsense.com/developers/
  • 开发文档
    Intel RealSense Documentation
  • Github
    https://github.com/IntelRealSense/librealsense
  • 什么是 Datasheet
    就是 规格书、数据手册
  • 固件 Firmware
    运行在相机设备的芯片上的固件。

1. 用 windows 检查相机是否正常

使用 Intel.RealSense官方提供的 Intel.RealSense.Viewer 工具可直接查看相机视频流。windows、Linux、Android系统皆可。

2. Intel RealSense SDK 2.0

2.1 一些概念

  • 支持的设备:D400系列相机、L500系列雷达

  • Intel RealSense SDK 2.0 支持以下编程语言、开发框架、平台、操作系统:
    在这里插入图片描述

  • SDK 包括哪些内容?

    • Intel RealSense Viewer
    • Depth Quality Tool
    • Debug Tools
    • Code Samples
    • Wrappers
  • 发行日志
    各发行版本的概况:librealsense/releases
    描述了更新细节:librealsense/wiki/Release-Notes

  • wiki
    在这里插入图片描述

  • Supported Platforms
    操作系统、Linux 发行版本、Linux 内核版本
    可在发行日志中查看,支持的平台和系统官方会持续的更新…
    如:
    在这里插入图片描述

2.2 在其他系统上安装

参考:https://dev.intelrealsense.com/docs/installation

2.3 在Linux上安装

参考

【1】https://dev.intelrealsense.com/docs/compiling-librealsense-for-linux-ubuntu-guide
【2】https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md

注意事项

1)不支持在虚拟机中安装。
2)在Linux上运行RealSense深度相机需要给Linux内核打补丁例如插入一些经过修改的内核驱动程序(见安装步骤:./scripts/patch-realsense-ubuntu-lts-hwe.sh./scripts/patch-realsense-ubuntu-lts.sh,patch即补丁的意思)。一些OEM、设备供应商选择锁定内核进行修改。解锁此功能可能需要修改BIOS设置。
3)Linux build configuration is presently configured to use the V4L2 backend by default

查看SDK支持的 Linux 发行版本、Linux 内核版本

Ubuntu 18.04/20.04/22.04 LTS (1) .
Linux kernel versions: 4.[4, 8,10,13,15], 4.16(2), 4.18, 5.[0, 3, 4, 8, 13, 15, 19], 6.[2, 5].
持续更新中…
查看方法:
发行日志:https://github.com/IntelRealSense/librealsense/releases
~> 滚动到想要安装的版本,如 Intel® RealSense™ SDK 2.0
~> Supported Platforms
如:
在这里插入图片描述

卸载

  • 通过apt安装
    参考:Uninstalling the Packages
  • 通过 make install 安装
    cd ~/librealsense/build/
    sudo make uninstall
    sudo make clean
    ./scripts/setup_udev_rules.sh --uninstall
    
    如:
    在这里插入图片描述
  • 通过 libuvc_installation.md 方式安装
    除了
    cd ~/librealsense_build/librealsense-master/build
    sudo make uninstall
    sudo make clean
    ./scripts/setup_udev_rules.sh --uninstall
    
    之外,还需要执行:
    sudo rm /etc/udev/rules.d/99-realsense-libusb.rules
    sudo rm /etc/udev/rules.d/99-realsense-d4xx-mipi-dfu.rules
    sudo udevadm control --reload-rules && sudo udevadm trigger
    

Package Details

在这里插入图片描述

什么是DKMS 、librealsense2-dkms

DKMS 即 Dynamic Kernel Module Support (DKMS),可参考这里
在Ubuntu中可以使用 apt 工具安装 librealsense2-dkms.

安装方式

安装方式选择

  • 一般情况下选择 DKMS package 方式安装,强烈建议。
  • 以下情况下选择源码编译方式安装:
    • Using SDK with non-LTS Ubuntu kernel versions: **4.16 **时;
    • 需要将自定义补丁、模块集成到 librealsense SDK 中时;
    • 需要为替补角色的Linux内核、Linux发行版系统而调整内核补丁时;

安装路径

不管是通过 apt 安装还是通过 make install 的方式安装,安装路径如下:

  • The shared object will be installed in /usr/local/lib
  • header files in /usr/local/include
  • The binary demos, tutorials and test files will be copied into /usr/local/bin

安装成功验证

  • 通过apt安装
    • run: realsense-viewerto verify the installation.
    • 运行例程
      在终端输入rs-,然后双击tab键会列出所有可用例程。
      执行某个例程如 rs-depth
    • Verify that the kernel is updated :
      modinfo uvcvideo | grep "version:"should include realsense string
  • 通过 make install 安装
    • run: realsense-viewerto verify the installation.
    • 运行例程
      在终端输入rs-,然后双击tab键会列出所有可用例程。
      执行某个例程如 rs-depth
    • 验证系统内核补丁是都安装成功
      sudo dmesg | tail -n 50
      The log should indicate that a new uvcvideo driver has been registered.
      如:
      在这里插入图片描述

cmake 编译选项

参考:build configuration
在这里插入图片描述

其他

2.4 在 Nvidia Jetson 上安装

2.4.1 知识预备

  • 参考:Nvidia Jetson installation 或:installation_jetson.md

  • 在 Nvidia Jetson 上安装与在Linux上安装的唯一区别只是打内核补丁时运行的脚本不同,其他的大致相同。

  • 最低要求
    JetPack version 4.4.1 ( L4T 32.4.4 , CUDA version 10.2).

  • RealSense SDK 的后台方式有两种可供选择:
    1)Using Native Backend,优点:稳定;缺点:需要为系统打内核补丁;
    2)Using RSUSB Backend,优点:不需要为系统打内核补丁;缺点:需要将驱动程序编译到SDK中,不稳定?;
    推荐使用第一种,特别是在生产环境中,参考

  • 兼容性
    本次记录时间2024-05-06,兼容性在不断地更新中…

    • Jetson AGX boards with JetPack 4.2.3[L4T 32.2.1,32.2.3], 4.3[L4T 32.3.1], 4.4[L4T 32.4.3], 4.5.1[L4T 32.5.1] and 5.0.2[L4T 35.1.0] 适用!
    • Jetson Nano board 不适用!!
    • Jetson Orin™ with JetPack 6.0 不适用!!
  • 需要不低于2.5Gb的闪存空间。

  • 最好将Jetson开发板设置为 Max power mode (desktop -> see the upper right corner)。

  • 安装了JetPack 6.0 的Jetson Orin 系列开发板如何安装 Intel RealSense SDK 2.0 ?
    Intel® RealSense™ camera driver for GMSL* interface

  • 遇到报错1
    Unsupported kernel version 5.10.104-tegra . The Focal patches are maintained for Ubuntu LTS with kernel 5.4, 5.8, 5.11 only
    解决:内核补丁脚本不支持该平台运行的Linux内核!即无法为该内核版本的系统打补丁。建议使用 RSUSB Backend 方式 编译 SDK,这样就不需要打系统内核补丁了!

  • 遇到报错2
    为系统打补丁( ./scripts/patch-realsense-ubuntu-L4T.sh ) 时报错:
    在这里插入图片描述
    解决:内核补丁脚本(scripts/patch-realsense-ubuntu-L4T.sh)不支持该平台运行的Linux内核!即无法为该内核版本的系统打补丁。建议使用 RSUSB Backend 方式 编译 SDK,这样就不需要打系统内核补丁了!

  • 遇到报错3
    在cmake时添加-DBUILD_WITH_CUDA=true 报错

  • cmake 编译选项
    参考:build configuration
    FORCE_RSUSB_BACKEND与 FORCE_LIBUVC、ANDROID_USB_HOST_UVC、FORCE_WINUSB_UVC 时等价的。后3者只是在不同平台下的不同命名罢了。

2.4.2 通过 apt 方式安装

限制:

  • Ubuntu 16/18/20/22 LTS.
  • Linux kernels 4.4, 4.8, 4.10, 4.13, 4.15, 4.18*, 5.0*, 5.3*, 5.4, 5.13, 5.15, 5.19, 6.2 and 6.5.

参考:Nvidia Jetson installation
略…

2.4.3 通过编译源码方式安装

Jetson Orin Nano 开发板为例。

  • 0)先将Jetson开发板刷好 JetPack

  • 1)断开相机与 Jetson 开发板的连接。

  • 2)选择一个SDK版本,下载源码,如选择最新版本:

    cd ~
    git clone https://github.com/IntelRealSense/librealsense.git
    
  • 3)选择SDK的后台方式
    在不同平台上安装 Real Sence SDK2.0 官方推荐的后台配置方式:
    在这里插入图片描述
    那么Default cmake是指选择哪种后台方式呢?不指定FORCE_RSUSB_BACKEND直接 cmake .. 吗 ???

  • 4)若选择 RSUSB Backend 方式,接下来的步骤请参考:libuvc_installation.md
    如果安装了CUDA,在cmake时请不要忘记添加-DBUILD_WITH_CUDA=true以获得最佳性能。

  • 5)若选择 Native Backend 方式(推荐),请接着往下看…

  • 6)为 Jetson L4T 内核安装一个补丁使得可以让SDK使用 V4L Native backend.
    注意:此处对于内核补丁的安装方式仅适用于:

    • Jetson AGX boards with JetPack 4.2.3[L4T 32.2.1,32.2.3], 4.3[L4T 32.3.1], 4.4[L4T 32.4.3], 4.5.1[L4T 32.5.1] and 5.0.2[L4T 35.1.0] 适用!
    • Jetson Nano board 不适用!!
    • Jetson Orin™ with JetPack 6.0 不适用!!
  • 7)接下来的所有步骤请参考:Building from Source using Native BackendDoc:Building from Source using Native Backend

  • 8)由于本 Jetson Orin Nano 开发板安装的是JetPack5.1.1,Linux内核版本是5.10.104,并不支持安装内核补丁,即运行scripts/patch-realsense-ubuntu-L4T.sh脚本时报错:
    在这里插入图片描述
    因此只能 使用 RSUSB Backend 方式 编译 SDK,这样就不需要打系统内核补丁了!
    注意:使用libuvc_installation.sh脚本默安装的是最新版本的SDK,假如需要安装不同版本的SDK请修改libuvc_installation.sh中的以下代码:

    wget https://github.com/IntelRealSense/librealsense/archive/master.zip
    unzip ./master.zip -d .
    cd ./librealsense-master
    

几点疑问:

  • Building from Source using Native Backend 时,因为./scripts/patch-realsense-ubuntu-L4T.sh 并不适用于Jetson Orin Nano 开发板安装的JetPack5.1.1,为什么跳过步骤./scripts/patch-realsense-ubuntu-L4T.sh 依旧会安装成功??
  • cmake ..cmake .. -DFORCE_RSUSB_BACKEND=true 或使用libuvc_installation.md安装
    提示 using RS2_USE_LIBUVC_BACKEND
  • cmake .. -DFORCE_RSUSB_BACKEND=false
    提示 using RS2_USE_V4L2_BACKEND
    在这里插入图片描述
    待续…

2.4.4 安装总结

  • 情形1
    针对可以打系统内核补丁的开发板,如Jetson AGX boards with JetPack 4.2.3[L4T 32.2.1,32.2.3], 4.3[L4T 32.3.1], 4.4[L4T 32.4.3], 4.5.1[L4T 32.5.1] and 5.0.2[L4T 35.1.0].
    # 更新系统,最好不用执行会影响其他
    #sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
    # 安装编译工具
    sudo apt-get install git wget cmake build-essential
    # 安装依赖库
    sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev 
    # 如果你想为SDK构建支持OpenGL的示例,请安装以下依赖
    sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
    # 下载源码,可以选择合适的版本
    cd ~/shd
    git clone https://github.com/IntelRealSense/librealsense.git
    cd librealsense
    # 为 Jetson L4T 打系统内核补丁
    ./scripts/patch-realsense-ubuntu-L4T.sh 
    # Realsense permissions script
    ./scripts/setup_udev_rules.sh
    # 编译
    mkdir build && cd build
    cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true
    make -j$(($(nproc)-1))
    # 安装,默认安装在usr/local中
    sudo make install
    
  • 情形2
    仅跳过打系统内核补丁步骤
    针对 Jetson 其他系列的开发板如Jetson Nano系列、 Jetson Orin 系列、其他按照以上安装不成功的平台。
    如果跳过打内核补丁步骤导致安装不成功,请使用 libuvc_installation.md 进行安装。
    # 更新系统,最好不用执行会影响其他
    #sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
    # 安装编译工具
    sudo apt-get install git wget cmake build-essential
    # 安装依赖库
    sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev 
    # 如果你想为SDK构建支持OpenGL的示例,请安装以下依赖
    sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
    # 下载源码,可以选择合适的版本
    cd ~/shd
    git clone https://github.com/IntelRealSense/librealsense.git
    cd librealsense
    # Realsense permissions script
    ./scripts/setup_udev_rules.sh
    # 编译
    mkdir build && cd build
    cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DBUILD_WITH_CUDA=true
    make -j$(($(nproc)-1))
    # 安装,默认安装在usr/local中
    sudo make install
    
  • 情形3
    针对不支持打内核补丁、按照 installation.md 安装失败的平台。此法支持更广泛的平台,包括较旧、较新的内核版本
    例如 Jetson 其他系列的开发板如Jetson Nano系列、 Jetson Orin 系列、其他按照以上安装不成功的平台等。
    参考:libuvc_installation.md

3. ROS + D455

https://www.yahboom.com/study/Realsense-D400series

4. ROS + Intel RealSense camera 实现室内 VSLAM

jetson_isaac_ros_visual_slam_tutorial

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值