十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

librealsense 深度相机 SDK 从零上手完整指南:安装部署、首个程序与避坑实录

librealsense 深度相机 SDK 从零上手完整指南:安装部署、首个程序与避坑实录 librealsense 深度相机 SDK 从零上手完整指南安装部署、首个程序与避坑实录【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense刚拿到一块 Intel RealSense D455 深度相机时很多人会一头扎进资料堆里翻半天文档、装一堆依赖、编译报错、设备枚举不到……折腾一整天还在原地打转。作为 RealSense 官方维护的跨平台 SDKlibrealsense 同时支持 Windows、Linux 和 macOS但真正让新手崩溃的往往是 Linux 上那条从装依赖到跑起第一个 Demo的漫漫长路。这篇文章不打算再复述一遍官方手册而是用一条从拆箱到跑通的主线把 librealsense 的安装部署、环境准备、首个程序和常见故障一次性讲透让你照着做就能让深度画面亮起来。一、动手之前先想清楚两条安装路线各适合谁很多教程会直接甩给你一长串 apt 命令但你先别急着复制。librealsense 在 Linux 上其实有两条完全不同的路线选错路线是后续一切麻烦的根源。路线 Aapt 仓库安装省心派这是官方推荐的开箱即用方式适合大多数只想快速用起来的开发者。它会通过 DKMS 机制自动构建并加载补丁后的内核驱动还顺带帮你装好运行时库、演示工具和 udev 规则一条命令全家桶到位。路线 B源码编译折腾派适合三种人你要用非 LTS 内核、需要集成自定义补丁、或者想改 SDK 源码本身。这种方式给你完全的控制权代价是你要亲手处理依赖、内核补丁和编译参数。我的建议很直接第一次接触先走 apt 路线快速验证设备等真正需要定制时再切源码编译。两边的具体命令下面分别给你。二、安装前的基础环境检查清单不管是哪条路线有几件事必须在安装前确认否则后面会反复踩坑。1. 确认系统版本librealsense 官方支持 Ubuntu 20/22/24 LTS 版本。先用命令确认你的发行版lsb_release -a # 查看发行版信息 uname -r # 查看内核版本如果你用非 LTS 版本或自定义内核建议直接选源码编译路线并对照项目文档里的内核兼容说明。注意一点官方明确表示不支持在虚拟机中运行因为虚拟机的 USB3.0 转换层会干扰设备通信——这是新手最容易忽视的坑。2. 安装编译基础依赖无论走哪条路线下面这些包都跑不掉分开装是为了避免个别平台一次性安装时的依赖冲突sudo apt-get update sudo apt-get upgrade sudo apt-get install libusb-1.0-0-dev sudo apt-get install libudev-dev sudo apt-get install libssl-dev pkg-config libgtk-3-dev sudo apt-get install git wget cmake build-essential如果你打算编译带图形界面的示例还需要 OpenGL 相关的三件套libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev。只想跑无界面 Demo 的话可以跳过。3. 授权设备访问权限RealSense 相机需要 udev 规则才能被普通用户访问。这一步必须在你拔掉所有 RealSense 相机的情况下执行脚本中途会要求你确认./scripts/setup_udev_rules.sh脚本来自项目根目录的 scripts/setup_udev_rules.sh作用是把 config/99-realsense-libusb.rules 拷贝到系统 udev 规则目录并重载规则。想撤销权限时加个参数即可./scripts/setup_udev_rules.sh --uninstall。三、路线 A 实战apt 仓库五分钟装好全家桶这条路线快得超乎想象三步走第一步注册仓库密钥sudo mkdir -p /etc/apt/keyrings curl -sSf https://librealsense.realsenseai.com/Debian/librealsenseai.asc | \ gpg --dearmor | sudo tee /etc/apt/keyrings/librealsenseai.gpg /dev/null第二步添加软件源并更新sudo apt-get install apt-transport-https echo deb [signed-by/etc/apt/keyrings/librealsenseai.gpg] https://librealsense.realsenseai.com/Debian/apt-repo lsb_release -cs main | \ sudo tee /etc/apt/sources.list.d/librealsense.list sudo apt-get update第三步安装核心包sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils这两行命令会一次性部署好 udev 规则、构建并激活内核模块、装好运行时库和所有演示工具。如果你还要开发自己的程序补上开发包sudo apt-get install librealsense2-dev装完后重新插拔相机然后运行验证命令realsense-viewer如果一切正常Viewer 窗口会列出你的相机并显示实时画面。还可以用这条命令确认内核补丁是否生效modinfo uvcvideo | grep version:输出里应包含realsense字样说明补丁后的 uvcvideo 驱动已经接管了设备。四、路线 B 实战源码编译一次打通需要源码编译的同学先把仓库克隆下来git clone https://gitcode.com/GitHub_Trending/li/librealsense cd librealsense第一步打内核补丁RealSense 深度相机在 Linux 上依赖修改过的内核驱动这是与普通摄像头最大的不同。Ubuntu 20/22/24 的 LTS 内核5.15、5.19、6.5、6.8、6.11、6.14直接用官方脚本./scripts/patch-realsense-ubuntu-lts-hwe.sh这个脚本会下载、编译并加载补丁后的 uvcvideo 等内核模块失败时会自动回滚原模块。打完补丁用sudo dmesg | tail -n 50查看日志应该能看到新的 uvcvideo 驱动注册记录。第二步CMake 配置与编译mkdir build cd build cmake ../ -DBUILD_EXAMPLEStrue make -j$(($(nproc)-1)) # 多核并行编译加速明显 sudo make install几个常用配置参数提前告诉你-DCMAKE_BUILD_TYPERelease编译优化版本性能更好-DBUILD_GRAPHICAL_EXAMPLESfalse无 OpenGL/X11 环境只编译命令行示例编译遇到gcc: internal compiler error多半是内存或 swap 不足关掉占用大的程序或给虚拟机至少 2GB 内存编译产物会安装到/usr/local/lib动态库、/usr/local/include头文件、/usr/local/bin工具与示例。五、首个程序让深度数据真正流起来安装只是热身验证 SDK 能不能被你调用才是关键。项目自带一个极简的hello-realsense示例见 examples/hello-realsense/rs-hello-realsense.cpp核心逻辑只有三行创建 pipeline、启动、取帧。更直观的是capture示例examples/capture/rs-capture.cpp它能同时显示深度和彩色画面#include librealsense2/rs.hpp // RealSense 跨平台 API int main() { rs2::pipeline pipe; rs2::config cfg; cfg.enable_all_streams(); // 启用相机全部数据流 pipe.start(cfg); // 启动流 while (true) { rs2::frameset data pipe.wait_for_frames(); // 等待一帧数据 auto depth data.get_depth_frame(); auto color data.get_color_frame(); // 在这里处理你的深度和彩色数据 } return 0; }如果你用的是 apt 路线编译链接一条命令搞定g -stdc11 your_program.cpp -lrealsense2 -o your_program注意-stdc11是官方要求的最低标准。编译成功并跑起来后你会看到类似这样的画面拿到深度图后能做的事就多了点云生成examples/pointcloud/rs-pointcloud.cpp、深度测量、人体骨架追踪wrappers/dlib、OpenCV 集成wrappers/opencv……SDK 的生态远比你想象得丰富。六、避坑地图五个高频故障的定位与解法跑通第一个程序后把下面这张故障地图存好它能帮你省下大量排查时间。坑 1相机插上但枚举不到先做体检lsusb | grep 8086 # 8086 是 Intel 的 USB Vendor ID dmesg | grep uvcvideo # 看驱动加载日志如果lsusb能看到设备但 SDK 枚举不到九成是 udev 规则没生效——回到第二节重新执行setup_udev_rules.sh并确认重载了规则sudo udevadm control --reload-rules。坑 2uvcvideo 模块加载失败lsmod | grep uvcvideo如果补丁模块加载失败通常是补丁版本和当前内核不匹配。用uname -r核对内核版本确认它在你执行补丁脚本时对应的内核范围内必要时重新打补丁。另外内核 4.4-30 之后日志里出现module verification failed: signature and/or required key missing属于正常告警不影响功能别被吓到。坑 3升级过程中断、进度卡住升级固件时进度条停滞或设备掉线最常见的元凶是供电不足。建议换用带独立供电的 USB 3.0 集线器并禁用 USB 自动挂起echo options usbcore autosuspend-1 | sudo tee /etc/modprobe.d/disable-usb-suspend.conf坑 4系统里有多套 udev 规则冲突同时装了 apt 版和源码版就会出现Multiple realsense udev-rules were found!的报错。对策是二选一把另一套彻底卸载apt 版用sudo apt-get purge逐个清除源码版用setup_udev_rules.sh --uninstall。坑 5企业网络环境访问超时apt 或脚本下载超时通常是防火墙拦截了。配置系统级代理基本能解决export http_proxyhttp://your-proxy:8080 export https_proxyhttp://your-proxy:8080七、进阶维护固件升级与容器化部署固件升级的正确姿势SDK 自带命令行升级工具rs-fw-update源码在 tools/fw-update。先列出设备rs-fw-update -l输出会显示相机序列号和当前固件版本然后指定序列号和固件包升级rs-fw-update -s 序列号 -f Signed_Image_UVC_版本.bin如果相机升级失败进入恢复模式列表会显示为D4XX Recovery此时用恢复参数强制重刷rs-fw-update -r -f Signed_Image_UVC_版本.bin容器化部署的捷径想在一个干净环境里快速跑 SDK官方提供了 Docker 镜像scripts/Dockerdocker pull librealsense/librealsense docker run -it --rm \ -v /dev:/dev \ --device-cgroup-rule c 81:* rmw \ --device-cgroup-rule c 189:* rmw \ librealsense/librealsense那两行device-cgroup-rule参数负责把宿主机的 USB 和 UVC 资源授权给容器缺一不可。容器默认会执行rs-enumerate-devices --compact你也可以换成任意自定义命令比如直接跑深度示例docker run -it --rm -v /dev:/dev \ --device-cgroup-rule c 81:* rmw \ --device-cgroup-rule c 189:* rmw \ librealsense/librealsense rs-depth八、写在最后一条可复用的上手路径回顾整趟旅程librealsense 的上手其实就四步选对路线 → 备好环境 → 装好 SDK → 跑通首例。如果你不想记这么多细节记住下面这张最低行动清单就够用了首次使用先走 apt 路线用realsense-viewer验证设备记得执行setup_udev_rules.sh并插拔相机遇到设备枚举不到先查lsusb和dmesg再查 udev 规则升级固件前确认供电充足失败进入恢复模式就用rs-fw-update -r抢救需要干净环境或团队协作时直接上官方 Docker 镜像现在就去把相机接上跑起你的第一个深度程序。等深度画面亮起来的那一刻你会觉得前面所有的折腾都值了——毕竟从零到一永远是整个项目里最硬核的一段路。【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表