Depth configuration parity with the reference camera driver #12

Closed
opened 2026-09-04 20:35:30 +00:00 by cristhian · 0 comments
Owner

Feature: Depth configuration parity with the reference camera driver

User Story

As an operator configuring the camera,
I want the depth modes and confidence filters the reference driver uses,
so that depth quality on the robot matches what perception was tuned against.

Requirements

  • ZED_DEPTH_MODE accepts NEURAL, NEURAL_PLUS, NEURAL_LIGHT, PERFORMANCE, QUALITY, NONE.
  • An unrecognised ZED_DEPTH_MODE is a startup error listing the accepted values, not a silent fallback.
  • Add ZED_CONFIDENCE_THRESHOLD, default 60, applied to sl::RuntimeParameters::confidence_threshold.
  • Add ZED_TEXTURE_CONFIDENCE_THRESHOLD, default 100, applied to sl::RuntimeParameters::texture_confidence_threshold.
  • Change defaults: ZED_RESOLUTION=1080, ZED_DEPTH_MIN_MM=200, ZED_DEPTH_MAX_MM=600.
  • Log the resolved depth mode, both thresholds and the depth range at startup.
  • Document every variable and its default in README.md.

Acceptance Criteria

  • Each of the six depth modes can be selected and is reported at startup.
  • An unknown depth mode exits non-zero and prints the accepted values.
  • Both confidence thresholds reach sl::RuntimeParameters.
  • Defaults are 1080, 200 mm and 600 mm.
  • README.md matches the implemented defaults.

Notes

Current behaviour: parse_depth_mode in src/zed/camera.cc returns NEURAL for any
unrecognised string, so a typo silently changes depth quality. NEURAL_PLUS,
NEURAL_LIGHT and ULTRA are not reachable. Neither confidence threshold is set, so the
SDK defaults apply.

Reference values from littlehand/cameras/zed.py: ZED_DEPTH_MODES maps NEURAL,
NEURAL_PLUS and NEURAL_LIGHT; confidence_threshold=60;
texture_confidence_threshold=100; resolution=1080; depth_min_mm=200;
depth_max_mm=600. The two thresholds discard the depth the SDK is least certain of.

# Feature: Depth configuration parity with the reference camera driver ## User Story As an operator configuring the camera, I want the depth modes and confidence filters the reference driver uses, so that depth quality on the robot matches what perception was tuned against. ## Requirements - `ZED_DEPTH_MODE` accepts `NEURAL`, `NEURAL_PLUS`, `NEURAL_LIGHT`, `PERFORMANCE`, `QUALITY`, `NONE`. - An unrecognised `ZED_DEPTH_MODE` is a startup error listing the accepted values, not a silent fallback. - Add `ZED_CONFIDENCE_THRESHOLD`, default `60`, applied to `sl::RuntimeParameters::confidence_threshold`. - Add `ZED_TEXTURE_CONFIDENCE_THRESHOLD`, default `100`, applied to `sl::RuntimeParameters::texture_confidence_threshold`. - Change defaults: `ZED_RESOLUTION=1080`, `ZED_DEPTH_MIN_MM=200`, `ZED_DEPTH_MAX_MM=600`. - Log the resolved depth mode, both thresholds and the depth range at startup. - Document every variable and its default in `README.md`. ## Acceptance Criteria - [ ] Each of the six depth modes can be selected and is reported at startup. - [ ] An unknown depth mode exits non-zero and prints the accepted values. - [ ] Both confidence thresholds reach `sl::RuntimeParameters`. - [ ] Defaults are 1080, 200 mm and 600 mm. - [ ] `README.md` matches the implemented defaults. ## Notes Current behaviour: `parse_depth_mode` in `src/zed/camera.cc` returns `NEURAL` for any unrecognised string, so a typo silently changes depth quality. `NEURAL_PLUS`, `NEURAL_LIGHT` and `ULTRA` are not reachable. Neither confidence threshold is set, so the SDK defaults apply. Reference values from `littlehand/cameras/zed.py`: `ZED_DEPTH_MODES` maps `NEURAL`, `NEURAL_PLUS` and `NEURAL_LIGHT`; `confidence_threshold=60`; `texture_confidence_threshold=100`; `resolution=1080`; `depth_min_mm=200`; `depth_max_mm=600`. The two thresholds discard the depth the SDK is least certain of.
cristhian added this to the v0.2.0 Pure camera source on dora 1.0 milestone 2026-09-04 20:35:30 +00:00
cristhian added the feature label 2026-09-04 20:35:30 +00:00
Sign in to join this conversation.