树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机

2023-05-16

树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机


文章目录

  • 树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机
  • 前言
  • 一、为什么不使用Docker安装或使用官方教程安装?
  • 二、软硬件资源
  • 三、开始安装
    • 1、设置虚拟内存
    • 2、安装依赖包
      • 第二步和第三步可以开两个终端同时进行。
    • 3、下载Realsense SDK
    • 4、编译准备
    • 5、编译
    • 6、设置udev规则
    • 7、测试
  • 总结


前言

记录一下Intel Realsense SDK在树莓派4上的编译安装过程,借鉴学习了多位学者的经验,并在巨人的肩膀上自己归纳了一些小知识与大家分享学习。

树莓派4整合Intel Realsense深度相机–TYINY

树莓派4整合Intel Realsense深度相机–腹黑小太阳


一、为什么不使用Docker安装或使用官方教程安装?

Intel Realsense github官方链接
乍一看确实支持Linux,docker安装,但当我们点进去看的时候会发现
在这里插入图片描述
不支持Ubuntu22.04LTS,当然,笔者尝试用这种方法安装,但失败了。
在这里插入图片描述
问题出在,Jammy 版本的apt库会报错,说没有安全证书,所以后面apt-get就无从谈起了。
在这里插入图片描述
为什么不能docker安装很好理解,因为官方说了,当前dockers版只支持x86架构,而我们用的树莓派是arm64。不过你也可以docker pull,但docker也会报相同的错误说架构不符。
在这里插入图片描述

二、软硬件资源

板子:raspberry pi 4b 4GB
系统:Ubuntu Server 22.04.1 LTS (RPi Zero 2/3/4/400)
Realsense_SDK:2.50.0
传感器:D435i
在这里插入图片描述在这里插入图片描述在这里插入图片描述

三、开始安装

1、设置虚拟内存

sudo mousepad /etc/dphys-swapfile
sudo /etc/init.d/dphys-swapfile restart

改为固定的2048或者干脆使用动态分配的大小,重启

raspi 4 请忽略这一条,亲测动了虚拟内存以后有概率整个rootfs变为readonly状态,进不了桌面且不可逆,可能是内核bug。

2、安装依赖包

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

第二行的是核心依赖,必装。第三行是3D相关的依赖,如果不打算使用realsense-viewer,可以不装。


第二步和第三步可以开两个终端同时进行。

但第三步很容易中途超时,速度很慢,建议让他安静地下载,不要浏览其他网页。
我尝试用steam++来加速,但没什么效果,如果大家有什么好的方法欢迎在评论区分享!!


3、下载Realsense SDK

git clone https://github.com/IntelRealSense/librealsense.git

或者直接去上述地址下载zip包,解压备用,写文章时的版本为2.50.0。

4、编译准备

mkdir build && cd build

执行这条指令时需要你在librealsense文件夹里。

cmake …/ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DFORCE_RSUSB_BACKEND=ON -DBUILD_WITH_TM2=false -DIMPORT_DEPTH_CAM_FW=false

直接执行cmake命令,不需要退出build文件夹。

-DFORCE_RSUSB_BACKEND=ON 必选,强制LIBUVC后端,否则你要自己给内核打补丁。

-DBUILD_WITH_TM2=false 集成T265的固件,当前网络状况下有几率卡死…

-DIMPORT_DEPTH_CAM_FW=false 集成相机的固件,当前网络状况下有几率卡死,请在PC上更新固件不要折磨自己

5、编译

sudo make uninstall && make clean && make && sudo make install

执行这条指令时需要你在build文件夹里。

一切顺利且散热良好的情况下,在rpi4b上耗时约1小时。这里不要贪心,最多不要超过-j2,因为内存不够用。

6、设置udev规则

sudo ./scripts/setup_udev_rules.sh

执行这条指令时需要你在librealsense文件夹里,主要是为了让realsense-viewer更方便的识别设备

7、测试

realsense-viewer


在这里插入图片描述
在这里插入图片描述

总结

确实是安装好了也能跑起来了,但又有了新的问题。
1、画面变型挺严重
2、我插usb3.0接口,软件却识别的是usb2.1
3、开启软件直接CPU被占了80%
值得好好研究,正在ros入门,希望能按照自己的想法做出一个小扫描仪吧!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机 的相关文章

  • 陷阱标志(TF)和监视器陷阱标志之间的区别?

    像 GDB 这样的调试功能通过设置 eflags 寄存器的 TF 标志来工作 这会在处理器每次执行指令后引发异常 让 gdb 等工具控制调试 当我们运行虚拟机 Ex 时 在 kvm 的情况下执行以下操作同样 您需要设置一个名为 MONITO
  • Intel 在哪里记录了 ModR/M 字节中扩展寄存器 (R8-R15) 的编码?

    我用的是官方最新的 英特尔 64 和 IA 32 架构软件开发人员手册合并卷 1 2A 2B 2C 2D 3A 3B 3C 3D 和 4 作为了解x86 64 ISA的机器级编码的参考 第 2 卷第 2 1 3 节中提供的 ModR M 和
  • 逻辑 CPU 计数返回 16 而不是 4

    我有一个 Intel Core i5 2450m 2 个物理处理器和 4 个逻辑处理器 我想找到一种方法来计算 AMD 和 Intel CPU 上的逻辑和物理核心 但是 经过一番搜索 我发现了一些奇怪的事情 我的代码没有返回 4 个逻辑单元
  • 组装为什么lea快?

    我和我的教授交谈过 他说 leaq rax rax 8 比以下速度更快 imulq 9 rax 我问他为什么 在这两种情况下 我们都用几乎相同的数字进行乘法 他说我们不会讨论这个 有人可以帮助我简单地理解为什么 leaq 总体上很快吗 评论
  • 关于超线程中 L1 缓存的自适应模式

    我是一名学生 最近正在研究超线程 我对 L1 数据缓存上下文模式这个功能有点困惑 In the 架构优化手册 http www intel com content www us en architecture and technology
  • 如何减轻 Intel jcc 勘误表对 gcc 的影响?

    如果我有一个芯片受英特尔 jcc 勘误表 https stackoverflow com questions 61016077 32 byte aligned routine does not fit the uops cache 6101
  • 为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现?

    为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现 近 20 年来 这些错误一直存在于 CPU 中 考虑到对所有使用这些处理器的计算机的严重影响 为什么不尽早发现呢 答案非常简单 现代 CPU 拥有数十亿个晶体管 例如
  • 从 C 调用 Intel 8086 汇编程序

    我需要为汇编语言开发一个过程 并从 C 语言调用该过程 传递一个字符串并返回一个整数值 我的组装程序 独立 运行良好 我需要帮助将它们连接在一起 程序应该在 Intel 8086 上运行 我需要使用 MASM 或 emu8086 作为汇编器
  • 英特尔编译器值得吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 非常简单 是英特尔编译器 http software intel com en us intel compilers 值得入手吗 我主要从事系统
  • Xeon CPU (E5-2603) 向后内存预取

    Xeon CPU E5 2603 中的向后内存预取与向前内存预取一样快吗 我想实现一种需要对数据进行前向循环和后向循环的算法 由于每次迭代都需要上次迭代的结果 因此我无法反转循环的顺序 您可以运行实验来确定数据预取器是否能够处理前向顺序访问
  • 在 Skylake 上展开 1 周期循环会使性能降低 25%。 uops调度问题?

    TL DR我有一个循环需要 1 个周期才能在 Skylake 上执行 它执行 3 次加法 1 次增量 跳转 当我将其展开超过 2 次 无论多少次 时 我的程序运行速度会慢 25 左右 这可能与对齐有关 但我不清楚是什么 编辑 这个问题曾经询
  • 在 Skylake 中使用 MSR 正确禁用硬件预取

    我正在尝试禁用我的机器上的硬件预取 CPU系列 6 型号 78 型号名称 Intel R Core TM i5 6200U CPU 2 30GHz 我已经检查过 gcc march native Q help target grep Mar
  • 64位汇编介绍

    我正在寻找一篇介绍 Intel 64 位处理器和汇编的文章 x64 寄存器列表 命令语法等 供熟悉 32 位汇编的程序员使用 有点像 64 位处理器的 新增功能 The Intel 64 和 IA 32 架构软件开发人员手册 http ww
  • Intel HD 3700 linux 的 Java 8 Swing 渲染问题

    我在 Kubuntu 18 04 中用 java 8 update 181 开发了一个应用程序 在我的开发 PC 中 我拥有配备英特尔 HD Graphics 530 的英特尔 i3 6100 所有图形均使用 swing 完成 并且通过此硬
  • 高清处理器显卡 (HD4000) 无法作为英特尔 OpenCL SDK 中的设备加载

    我使用 i7 3770K Ivy Bridge 和 HD 4000 并且我已经安装了最新的驱动程序和最新的OpenCL SDK http software intel com en us articles vcsource tools op
  • 如何使用汇编程序从英特尔处理器中获取随机数?

    我需要从处理器 英特尔酷睿 i3 中的英特尔随机生成器获取随机数 我不想使用任何图书馆 我想在 C 中使用汇编程序粘贴 但我不知道应该使用哪些寄存器和指令 呼叫RDRAND支持的 CPU 目前仅 Ivy Bridge 和 Haswell I
  • 写组合缓冲区位于哪里? x86

    Write Combine 缓冲区在物理上是如何连接的 我见过说明许多变体的框图 L1 和内存控制器之间 CPU 的存储缓冲区和内存控制器之间 CPU 的 AGU 和 或存储单元之间 它依赖于微架构吗 写缓冲区在不同的处理器中可以有不同的目
  • Intel x86 与 AMD x86 CPU 上的访问性能不一致

    我已经实现了一个带有结构内存布局数组的简单线性探测哈希图 该结构包含键 值和指示条目是否有效的标志 默认情况下 该结构体由编译器填充 因为键和值是 64 位整数 但该条目仅占用 8 个布尔值 因此 我也尝试以未对齐访问为代价来打包结构 由于
  • OpenCL 在调用 clGetPlatformIDs 时崩溃

    我是 OpenCL 新手 在配备 Intel R HD Graphics 4000 运行 Windows 7 的 Core i5 计算机上工作 我安装了支持 OpenCL 的最新 Intel 驱动程序 GpuCapsViewer 确认我有
  • AVX-512CD(冲突检测)与原子变量访问有何不同?

    所以我在看他们展示了如何 void Histogram const float age int const hist const int n const float group width const int m const float o

随机推荐

  • HTTP的认证方式之DIGEST 认证(摘要认证)

    核心步骤 xff1a 步骤 1 xff1a 请求需认证的资源时 xff0c 服务器会随着状态码 401Authorization Required xff0c 返回带WWW Authenticate 首部字段的响应 该字段内包含质问响应方式
  • 相机标定评价标准

    相机标定的实验一般根据图像数据的类型分为两种 xff1a 1 仿真实验 2 实际场景的操作性实验 目前为止 xff0c 还没有形成一套完善的用于评价相机标定方法的标准体系 xff0c 通常采用的评价准则如下 xff1a 1 标定方法是否具有
  • ubuntu下串口工具的安装与使用

    1 概述 作为一个嵌入式开发人员 xff0c 串口是开发过程中不可或缺的工具之一 xff0c window下有各种各样的串口工具 xff0c 使用起来很方便 xff0c 这里不再做过多陈述 xff0c 这里主要介绍Ubuntu 16 04
  • Ubuntu查看文件大小或文件夹大小

    Ubuntu查看文件大小或文件夹大小 一 查看文件大小 查看文件大小的命令 xff1a ls l filename 会在终端输出 xff1a rw r r 1 root root 2147483648 Mar 5 09 39 filetem
  • 结构体数据对齐

    结构体数据对齐 结构体数据对齐 xff0c 是指结构体内的各个数据对齐 在结构体中的第一个成员的首地址等于整个结构体的变量的首地址 xff0c 而后的成员的地址随着它声明的顺序和实际占用的字节数递增 为了总的结构体大小对齐 xff0c 会在
  • 2016你配得上更好地自己

    传统里我一直觉得过完春节才是一年结束的时候 xff0c 但是现在慢慢习惯阳历的计算 xff0c 2017年1月1日 xff0c 看着空间里面新年祝福和期待 xff0c 突然觉得这才是过年 2016年就这样走了 xff0c 以后我再也回不到2
  • 树莓派镜像备份与恢复文章

    在做完下属步骤以后 xff0c 需要考虑分区表 xff0c 将分区表复制到镜像里 xff0c 否则系统无法启动 xff0c 而且还要回利用gparted dev loop0以及fdisk l dev loop0等命令 xff0c 查看分区类
  • 在树莓派上将现有系统复制到新存储卡(转载 )

    在树莓派上将现有系统复制到新存储卡 xff08 转载 xff09 http www eeboard com bbs thread 39663 1 1 html 最初 xff0c 使用树莓派的时候 xff0c 也许也只是为了新鲜 xff0c
  • 【c/c++】单链表、头指针、头结点、首元节点

    链表中第一个结点的存储位置叫做头指针 xff0c 那么整个链表的存取就必须是从头指针开始进行了 之后的每一个结点 xff0c 其实就是上一个的后继指针指向的位置 这里有个地方要注意 xff0c 就是对头指针概念的理解 xff0c 这个很重要
  • VINS-mono学习总结

    Vins mono是一个后端基于非线性优化的 单目与IMU紧耦合的融合定位算法 整体 xff1a 1 预处理模块 视觉 xff1a 特征点提取与追踪 IMU xff1a 惯性解算与误差状态分析 计算预积分量 2 初始化模块 xff08 旋转
  • Fast-lio个人总结

    Lidar第一帧作为基坐标 1 lidar原始数据预处理默认不提取特征 xff0c 对原始数据间隔式 xff08 间隔3个点 xff09 降采样提取 2 imu初始化 惯性解算 误差分析 状态 协方差预测 3 Lidar与imu时间状态对齐
  • 在rviz中使用键盘控制burger

    启动语句 roslaunch turtlebot3 fake turtlebot3 fake launch 启动rviz 话题通信 roslaunch turtlebot3 teleop turtlebot3 teleop key laun
  • shell脚本中=左右的空格问题

    赋值语句等号两边不能有空格 xff1a i 61 1 或i 61 i 43 1 而字符串比较 xff0c 等号两边必须有空格 if a 61 b 比较时 xff0c if a xxx b 中括号前后一定要加空格否则会报错xxx 61 eq
  • freertos.axf: Error: L6218E: Undefined symbol xTaskGetSchedulerState (referred from delay.o).

    今天移植了一下FreeRTOS xff0c 出现了freertos axf Error L6218E Undefined symbol xTaskGetSchedulerState referred from delay o xff0c 这
  • vnc桌面配置及黑屏问题解决

    一 vnc桌面配置 登入需要远程帐号下修改 vnc xstartup 如配置root远程桌面 vi vnc xstartup 原内容如下 xff1a xff3b x etc vnc xstartup xff3d amp amp exec e
  • 华清嵌入式--入学篇

    当初在学习嵌入式的时候 xff0c 就知道嵌入式门槛高 xff0c 需要的知识比较多 工作了4年多时间 xff0c 确实感觉还是刚入门的感觉 xff0c 焊接 调试 原理图 PCB 模电 数电 c语言 数据结构 单片机 linux等知识比价
  • 20.华清嵌入式--数据结构入门

    从今天开始正式开始学习数据结构与算法 从今天开始正式开始学习数据结构与算法 从上面的框图也可以从整体上把握数据结构的关键知识点 xff0c 不管是简单的顺序表还是栈 xff0c 树等 xff0c 学习的方法都是一样的他们的操作也都是无非都是
  • 35.Linux应用层开发---线程

    一 线程的概念和使用 1 线程的概念 为了进一步减少处理器的空转时间 xff0c 支持多处理器以及减少上下文切换开销 xff0c 进程在演化中出现了另外一个概念线程 它是进程内独立的一条运行路线 xff0c 是内核调度的最小单元 xff0c
  • 36.Linux 应用层开发--进程间通讯

    最近因为项目原因耽误了一些时间 xff0c 导致进程间的通讯一直没有来的及学习及整理 在我们之前学过进程相关的概念和操作 xff0c 还学习了轻量级的进程的线程 xff0c 在我们之后的开发和面试中 xff0c 多线程 xff0c 多进程开
  • 树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机

    树莓派4 ubuntu22 04LTS整合Intel Realsense深度相机 文章目录 树莓派4 ubuntu22 04LTS整合Intel Realsense深度相机前言一 为什么不使用Docker安装或使用官方教程安装 xff1f