
librealsense Python 接入 RealSense 深度相机Ubuntu 22.04 内核驱动到 pyrealsense2 编译全解【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsenselibrealsenseIntel RealSense SDK在 Ubuntu 22.04 上接 Python 时卡点通常集中在三处内核 uvcvideo 驱动缺少对相机的支持、udev 权限未配置导致设备无法枚举、pyrealsense2 编译后import失败。下面按内核层 → 绑定层 → 应用层的顺序把整条链路一次跑通。图RealSense Viewer 识别出 Intel RealSense SR300左侧设备树展示 Coded-Light 深度传感器与 RGB 相机两路源让系统认得设备udev 规则与内核补丁RealSense 相机走 UVC 协议但 Ubuntu 原生 uvcvideo 驱动不识别其特殊视频格式和 HID 传感器需要打官方补丁。先更新源并安装依赖v4l-utils是 udev 脚本的硬性依赖sudo apt-get update sudo apt-get install -y v4l-utils libudev-dev libssl-dev libusb-1.0-0-dev \ build-essential cmake git bc bison flex python3 python3-dev克隆仓库并进入目录git clone https://gitcode.com/GitHub_Trending/li/librealsense cd librealsense应用 udev 权限规则让当前用户无需 root 即可读取/dev/video*./scripts/setup_udev_rules.sh脚本检测到相机在线时会提示先拔掉所有 RealSense 相机再按任意键照做即可。接着打内核补丁。Ubuntu 22.04jammy的 6.2/6.5/6.8 LTS 内核用 HWE 脚本./scripts/patch-realsense-ubuntu-lts-hwe.sh脚本会自动下载对应内核源码、应用scripts/下的 camera-formats、metadata、hid 补丁重新编译 uvcvideo 等模块并热替换当前内核里的驱动。验证补丁是否生效sudo dmesg | tail -n 50日志里出现新的 uvcvideo 驱动注册记录即成功。dmesg中出现uvcvideo: module verification failed: signature and/or required key missing - tainting kernel属正常现象只是签名警告不影响功能。若系统跑的是 20.04 老内核 5.13改用./scripts/patch-realsense-ubuntu-lts.sh。把 SDK 装进 Python 环境pyrealsense2 绑定在wrappers/python/下随 SDK 一起编译安装mkdir build cd build cmake ../ -DBUILD_PYTHON_BINDINGS:booltrue -DPYTHON_EXECUTABLE$(which python3) make -j$(nproc) sudo make install export PYTHONPATH$PYTHONPATH:/usr/local/lib装完做一次导入验证python3 -c import pyrealsense2 as rs; print(rs.__file__)系统里装了多个 Python 时把-DPYTHON_EXECUTABLE换成具体路径如-DPYTHON_EXECUTABLE/usr/bin/python3.10。若PYTHONPATH不生效可改用export PYTHONPATH$PYTHONPATH:/usr/local/lib/python3.10/pyrealsense2或直接把构建产物pyrealsense2*.so和librealsense2.so拷到脚本同目录。想要自包含静态包追加-DBUILD_SHARED_LIBSfalse。跑通第一帧深度数据下面这段代码拉取 640x48030fps 的 z16 深度流16 位单位毫米转成 numpy 数组后读取中心像素距离与官方示例 wrappers/python/examples/python-tutorial-1-depth.py 用的是同一套rs.pipelineAPIimport pyrealsense2 as rs import numpy as np pipeline rs.pipeline() config rs.config() config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) pipeline.start(config) try: while True: frames pipeline.wait_for_frames() depth frames.get_depth_frame() if not depth: continue depth_image np.asanyarray(depth.get_data()) # uint16, 单位 mm print(f中心距离: {depth_image[240, 320] / 1000:.2f} m) except KeyboardInterrupt: pass finally: pipeline.stop()预期输出是每帧打印一次中心距离例如中心距离: 1.05 m距离为 0 的像素表示该点无有效深度。图z16 深度流渲染后的效果亮区为近处物体深度值越近越亮帧对象支持 buffer 协议np.asanyarray(frame.get_data())零拷贝即可获得 numpy 数组可直接喂给 OpenCV 或 PyTorch。需要深度-彩色对齐、点云导出等后处理时参考 wrappers/python/examples/align-depth2color.py 和 wrappers/python/examples/export_ply_example.py多相机同步采集看 wrappers/python/examples/box_dimensioner_multicam/ 与 C 侧的 examples/multicam/。高频问题排查lsusb看不到 Intel Corp. 设备换 USB 3.0 口直连主机避开 hub重跑./scripts/setup_udev_rules.sh再执行sudo udevadm control --reload-rules sudo udevadm triggerimport pyrealsense2报ModuleNotFoundError执行python3 -c import pyrealsense2; print(pyrealsense2.__file__)定位真实路径确认PYTHONPATH包含它所在目录dmesg出现 module verification failed 警告正常现象见上文引用块说明无需处理wait_for_frames()卡死不返回用v4l2-ctl --list-devices确认/dev/video*节点存在lsusb -t检查是否被分到 USB2 口带宽不足会导致丢帧或起流失败cmake 阶段报fastrtps/fastcdr或curl依赖错误按官方 doc/installation.md 的说明加-DBUILD_WITH_DDSOFF或-DCHECK_FOR_UPDATESOFF关闭对应集成延伸入口到这里你已能在 Ubuntu 22.04 上让内核识别 RealSense 深度相机、编译安装 pyrealsense2并用 numpy 拿到逐帧深度数据。继续深入可看官方安装说明doc/installation.mdPython 包装器文档wrappers/python/readme.mdPython 示例集wrappers/python/examples/故障排除doc/troubleshooting.mdC/C 示例总目录examples/【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考