概念介绍:RealSense SDK 是什么
一、概念介绍:RealSense SDK 是什么
RealSense SDK 指的是 Intel 为 RealSense 系列深度相机提供的软件开发套件,跨平台的核心库叫 librealsense2,配套的 Python 绑定叫 pyrealsense2,ROS 侧则是 realsense2_camera 包。它解决的是同一个问题:把深度相机的原始数据流(深度图、彩色图、红外图、IMU 数据)以统一的 API 暴露给上层应用,让开发者不必为每个型号、每种固件版本写不同的驱动代码。
RealSense 相机的产品线大致分为两类。D 系列(如 D435、D455、D415)是双目立体视觉方案:用左右两个红外相机加一个红外投射器,通过视差计算深度,投射器在弱纹理表面上提供人工纹理。它的优点是室内外都能用、有效距离较远、帧率高;缺点是在强阳光下投射器失效、在远距离精度下降。L 系列是飞行时间(ToF)方案,通过测量光往返时间得到深度,近距离精度高、对纹理不敏感,但有效距离较短、在强光下同样受限,且对多机同时工作时的相互干扰敏感。
SDK 的核心抽象有三个。第一是 rs2::pipeline,它把设备、传感器、数据流的管理封装成一个对象,start() 之后用 wait_for_frames() 同步获取一组帧。第二是 rs2::frameset,它是一次同步输出的一组帧,可以按流类型取出深度帧、彩色帧等,同一 frameset 内的帧已经在时间上对齐。第三是 rs2::frame 及其派生类型,比如 rs2::depth_frame 提供 get_distance(x, y) 直接取某个像素的深度值。这种"流—帧集—帧"的三层结构是理解整个 SDK 的关键。
和相邻方案的差别。OpenNI / OpenNI2 是更早的深度相机框架,主要面向结构光设备,生态已经边缘化。厂商私有 SDK(如某些国产深度相机)往往只提供 Windows 或只提供 C++,跨平台与 ROS 支持不足。直接用 V4L2 读取虽然可行,但拿到的只是原始图像,没有深度对齐、没有内参管理、没有后处理滤波,实际项目里不可行。Zivid、Photoneo 这类工业级深度相机精度更高,但价格是消费级方案的很多倍。选型经验:做机器人视觉、体积测量、手势交互这类应用,RealSense 是入门成本最低的选择;做工业级高精度检测,需要考虑专业设备。
| 术语 | 含义 | 实际影响 |
|---|---|---|
| Depth Scale | 深度值的单位换算系数 | 深度原始值乘它以得到米,必须从设备读取而非硬编码 |
| Intrinsics(内参) | 焦距、主点、畸变模型 | 做点云反投影与对齐的基础 |
| Extrinsics(外参) | 深度与彩色相机之间的变换 | 决定彩色图与深度图能否对齐 |
| Align(对齐) | 把深度图重投影到彩色相机视角 | 生成对齐后的深度图,是常见需求 |
| Visual Preset | 设备内置的参数预设 | 不同预设适合不同距离与光照 |
| Advanced Mode | 高级参数控制模式 | 通过 JSON 加载/保存参数集 |
| Post-Processing | 后处理滤波链 | 如去孔洞、时域滤波、空间滤波 |
| ROS Wrapper | realsense2_camera 节点 | 把数据发布成标准 ROS 话题 |

