Skip to content

Draft: d/xreal_light: Basic Xreal Light driver

Gavin John requested to merge Pandapip1/monado:xreal-light into main

CC #328, webpage!47

I'm opening this MR early so that:

  1. Contributors can point me in the right direction; and
  2. Whatever code I have is available to build off of if I abandon this effort

To Do

  • Get monado/utilities/xr-hardware!31 (merged) merged (blocker)
  • Get !2156 merged (dependency)
  • Wait on !2150 (merged) to be merged (merge conflicts)
  • CMakeLists.txt
    • Add XRT_BUILD_DRIVER_XREAL_LIGHT option_with_deps (dependent on hidapi)
    • Add "XREAL_LIGHT" to AVAILABLE_DRIVERS list
    • Add debug message
  • Create src/xrt/targets/common/target_builder_xreal_light.c
    • Add target to target_lists.c
    • Add target target_builder_interface.h
    • Add target to CMakeLists.txt
    • t_builder_xreal_light_create
      • estimate_system
        • Check for OV580
        • Check for MCU
        • Check for display matching EDID data
      • open_system
        • Get xrt_prober_device for OV580
        • Get xrt_prober_device for MCU
        • Open interfaces as needed
        • Pass interfaces to xreal_light_hmd_create
  • xreal_light_hmd_create
    • Figure out which inputs to create
      • XRT_INPUT_GENERIC_HEAD_POSE -> 3DoF (Does this also do 6DoF or not?)
      • XRT_INPUT_GENERIC_STAGE_SPACE_POSE? -> Is this for 6DoF?
      • XRT_INPUT_GENERIC_HAND_TRACKING_RIGHT & XRT_INPUT_GENERIC_HAND_TRACKING_LEFT? -> Or is this done in a separate driver
    • Figure out which outputs to create
      • None?
    • xreal_light_hmd_get_tracked_pose
    • xreal_light_hmd_destroy
    • xreal_light_hmd_update_inputs
    • IMU reading thread
    • Hand tracking
    • 6DoF tracking
    • Figure out what else needs to be implemented to get a working driver
  • Finish this TODO list

References

https://voidcomputing.hu/blog/good-bad-ugly/

https://github.com/badicsalex/ar-drivers-rs/blob/master/src/nreal_light.rs

!1798 (merged)

!1930 (merged)

https://pastebin.com/wcmstRN8

Edited by Gavin John

Merge request reports