18 个版本 (7 个稳定版)

1.2.3 2024年2月28日
1.2.0 2023年10月24日
1.1.0 2021年7月19日
0.5.1 2021年2月26日
0.3.0 2020年3月8日

#69硬件支持

Download history 227/week @ 2024-04-23 204/week @ 2024-04-30 202/week @ 2024-05-07 187/week @ 2024-05-14 162/week @ 2024-05-21 259/week @ 2024-05-28 234/week @ 2024-06-04 227/week @ 2024-06-11 319/week @ 2024-06-18 223/week @ 2024-06-25 329/week @ 2024-07-02 270/week @ 2024-07-09 200/week @ 2024-07-16 220/week @ 2024-07-23 143/week @ 2024-07-30 184/week @ 2024-08-06

每月768 次下载

Apache-2.0

565KB
8K SLoC

RealSense 的 Rust 绑定

该项目为 librealsense2 库提供高级绑定(crate realsense_rust)以及低级 FFI(crate realsense_sys)接口。

默认绑定适用于 librealsense 版本:2.54.2

该项目托管在 Github(https://github.com/Tangram-Vision/realsense-rust)和 Gitlab(https://gitlab.com/tangram-vision-oss/realsense-rust/)上。虽然我们乐于接受两个平台上的 pull / merge 请求,但我们主要在 Gitlab 上进行工作,因此如果您发现需要改进的地方或有关于如何工作的问题,请在那里提交问题。

入门

请确保您的系统已安装上述 librealsense 版本。访问 RealSense 官方仓库 以在宿主机上下载和安装此版本。

完成后,将此 crate 添加到项目的 Cargo.toml 文件中。

示例和用法

请查看示例文件夹,其中包含有用的代码片段以及适合一些最流行的 RealSense 设备的最小配置。有关更多说明,请参阅 crate 文档。

功能

通过运行 cargo run --features <功能名称> 使用这些功能

  • buildtime-bindgen:在构建时生成 Rust 绑定。
  • device-test:启用需要连接到 RealSense 设备的测试。

重新生成 API 绑定

非 Linux 用户:当前的绑定格式为 Linux。非 Linux 系统的用户必须使用 buildtime-bindgen 功能来重新格式化绑定。有关更多信息,请参阅 realsense-sys 的 README 文件。

向后兼容性:如果您正在使用较旧的 librealsense 版本,您可以通过启用 buildtime-bindgen 功能来重新生成绑定。我们不做任何关于向后兼容性的承诺;祝你好运。

特殊注意事项

  • USB电流消耗:许多RealSense设备消耗的电流比标准USB线缆能提供的要多。例如,标准USB可以提供0.9安培,而RealSense 435i消耗2安培。使用没有正确电流能力的USB线缆会干扰主机上的USB连接,设备似乎会断开连接。设备重启并不总是能解决这个问题。在很多情况下,主机USB集线器本身也需要重启。确保使用的任何USB线缆都能至少提供2安培的电流。更多关于此问题的信息请参阅这里

  • USB带宽:当设备连接时,librealsense将测量其USB连接的数据传输速度。USB3速度可以处理所有流同时运行。USB2速度不能;如果尝试设置超过USB2承受能力的流配置,将导致流配置失败,并导致程序失败。幸运的是,这个信息可以在运行时查找和补偿。请参阅设备特定演示示例以了解如何实现这一点。

  • 受支持但被忽略的流选项:有一些传感器选项被传感器注册为“受支持”,但实际上在运行时只是设置为默认值。这些选项在check_supported_but_ignored_sensor_options设备测试中被列出和测试。目前,Rs2Option::GlobalTimeEnabled在L500上是唯一已知的会受到影响设置。然而,测试已被编写成易于测试更多具有相同行为的选项。

Realsense-sys:一个低级API

realsense-sys存储库提供了从librealsense头文件生成的C绑定。有关更多信息,请参阅realsense-sys的README

设计理念

在制作这个库时,我们花了很多心思使其成为Rust安全的。请参阅架构文档,了解我们对Rust安全性、错误处理以及更多API的看法。

贡献

首先,查看我们的贡献指南。之后,确保您已阅读lib.rs中的文档以及您可能感兴趣贡献的任何模块!如果发现文档缺失,这被视为一个错误,因此请提交错误报告!

许可

Apache 2.0。请参阅LICENSE文件。

依赖项

~0.5–1.1MB
~24K SLoC