Crate ar_drivers
source ·Expand description
This crate contains a simplified driver for Rokid Air and Mad Gaze Glow AR glasses. It supports getting basic sensor data and setting up the display.
Example usage (in a thread, probably):
ⓘ
let mut glasses = any_glasses().unwrap();
loop {
match glasses.read_event().unwrap() {
GlassesEvent::AccGyro {accelerometer, gyroscope} => ...,
GlassesEvent::Magnetometer(data) => ...,
GlassesEvent::KeyPress(data) => ...,
_ => {}
}
}
As opposed to e.g. Rokid’s own API, this is all that you get, since this is what comes
out of the hardware. To get quaternions, you should probably use a lib that implements
Madgwicks algorithm or a proper EKF. One good choice is the eskf
crate.
Feature flags
Support for individual AR glasses types ca be enabled with the following features:
mad_gaze
: Mad Gaze Glownreal
: Nreal Lightrokid
: Rokid Air
All of them are enabled by default, which may bring in some unwanted dependencies if you only want to support a specific type.
Modules
- Grawoow G530 (a.k.a. MetaVision M53) glasses support. See
GrawoowG530
It only usesrusb
for communication. - Mad Gaze Glow AR glasses support. See
MadGazeGlow
It only usesserialport
for communication. - Nreal Light AR glasses support. See
NrealLight
It only useshidapi
for communication.
Structs
- Represents one built-in camera
Enums
- Display mode used by
ARGlasses::set_display_mode
- Possible errors resulting from
ar-drivers
API calls - AR glasses sensor event, got from
ARGlasses::read_event
- Display side used by [
ARGlasses::view_matrix
]
Traits
- Common interface for AR implemented glasses
Functions
- Convenience function to detect and connect to any of the supported glasses