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 在 硬件支持
每月768 次下载
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