Expand description
§Vzense ToF Camera Bindings for Rust
This library provides high-level bindings to connect to and read data from Vzense Time of Flight (ToF) Cameras. The underlying low-level FFI crate is vzense-sys.
§Architecture support
Support for x86_64 and aarch64 is provided.
§OS support
Currently only Linux is supported (for MacOS, Vzense unfortunately does not provide drivers). The library is based on the Scepter SDK and Vzense SDK repositories. Tested for Debian 12.8 and Fedora 42 on x86-64 and Asahi Linux on aarch64 (Apple M2).
§Camera support
The scepter module supports NYX650/660, DS86/87, DS77C, and DS77 cameras. (Only NYX650 has been tested so far.)
The dcam560 module is specifically for the Vzense DCAM560 camera but other models like DCAM305, DCAM550, and DCAM710 can be added upon request. (Only DCAM560 has been tested so far.)
§Example and Usage
The scepter module is used by default. To use the dcam560 module, set default = ["dcam560"] under [features] in Cargo.toml.
The basic example covers all the functionality provided by the library and can be run with cargo run --example basic. To stream with maximum frame rate add --release. For the example, the winit and pixels crates are used as dev-dependencies to display data.
In case the standalone binary has problems to find links (stored in <projectDir>/target/<buildType>/deps/) to the shared libraries, one can add that path to LD_LIBRARY_PATH. Or use chrpath but make sure that rpath = true is set under [profile.<buildType>] in Cargo.toml.
§Issues for rustc < v1.90
There was an issue that data for the “color mapped to depth frame” is not available for the NYX650 camera if running with --release (see here for details) which was apparently due to a rustc FFI optimization bug for rustc < v1.90. So please make sure to use at least v1.90 if you need that frame type.
§License
This project is licensed under the terms of the MIT and BSD-3-Clause License.
Modules§
- dcam560
- An older API specifically for the DCAM560 camera. See the repository.
- scepter
- The latest Scepter API for NYX650/660, DS86/87, DS77C, and DS77 cameras. See the repository and the API docs.
- util
- Common utilities used by all APIs.
Structs§
- Resolution
- Frame resolution.
Enums§
- Color
Format - Choose RGB or BGR format.
- Color
Resolution - Possible color resolutions.
- Data
Mode - Possible data modes. Only used for DCAM560.
- Depth
Measuring Range - Possible depth measuring ranges. Only used for DCAM560.
Constants§
- DEFAULT_
PIXEL_ COUNT - Total number of pixels for
DEFAULT_RESOLUTION. - DEFAULT_
RESOLUTION - The default resolution is 640x480. For depth and IR frames there is only this resolution. The color frame can be set to higher resolutions using
set_color_resolution(), but the defaults is also 640x480.