Skip to content

Commit 3c5b2ba

Browse files
authored
Update README.md
1 parent a0c2d6a commit 3c5b2ba

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

examples/python/DynamicCalibration/README.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ This folder contains two minimal, end-to-end examples that use **`dai.node.Dynam
99
## What the node does
1010

1111
`dai.node.DynamicCalibration` consumes **raw, unrectified** left/right mono frames and:
12-
- Streams **coverage feedback** (how well the calibration pattern is seen across the image).
12+
- Streams **coverage feedback**
1313
- Produces either:
14-
- a **new calibration** (intrinsics/extrinsics) you can apply on the device, or
15-
- a **quality report** comparing *current* vs *achievable* calibration.
14+
- a **new calibration** (extrinsics) you can apply on the device, or
15+
- a **quality report** comparing *current* vs *achieved* calibration.
1616

1717
### Outputs & metrics
1818

@@ -37,7 +37,7 @@ This folder contains two minimal, end-to-end examples that use **`dai.node.Dynam
3737

3838
## 1) Live dynamic calibration (apply new calibration)
3939

40-
**Script idea:** `calibrate_dynamic.py` (based on your first snippet)
40+
**Script:** `calibrate_dynamic.py`
4141

4242
**Flow:**
4343
1. Create mono cameras → request **full-res NV12** (unrectified) → link to:
@@ -47,7 +47,7 @@ This folder contains two minimal, end-to-end examples that use **`dai.node.Dynam
4747
3. **Start calibration** with:
4848
```python
4949
dynCalibInputControl.send(
50-
dai.StartCalibrationCommand()
50+
dai.DynamicCalibrationControl(dai.DynamicCalibrationControl.Commands.StartCalibration())
5151
)
5252
```
5353
4. In the loop:
@@ -57,7 +57,7 @@ This folder contains two minimal, end-to-end examples that use **`dai.node.Dynam
5757
5. When a result arrives:
5858
- **Apply** it:
5959
```python
60-
dynCalibInputControl.send(dai.ApplyCalibrationCommand(calibrationData.newCalibration))
60+
dynCalibInputControl.send(dai.DynamicCalibrationControl(dai.DynamicCalibrationControl.Commands.ApplyCalibration(calibrationData.newCalibration)))
6161
```
6262
- Print quality deltas: rotation magnitude, Sampson errors, depth-error deltas.
6363

@@ -79,26 +79,26 @@ Theoretical Depth Error Difference @1m:-4.20%, 2m:-3.10%, 5m:-1.60%, 10m:-0.90%
7979
8080
## 2) Calibration **quality check** (no applying)
8181
82-
**Script idea:** `quality_dynamic.py` (based on your second snippet)
82+
**Script:** `calib_quality_dynamic.py`
8383
8484
**Flow:**
8585
1. Same camera / StereoDepth / DynamicCalibration setup as above.
8686
2. In the loop:
8787
- Show `left`, `right`, and `disparity`.
8888
- Ask for **coverage** on demand:
8989
```python
90-
dynCalibInputControl.send(dai.LoadImageCommand())
90+
dynCalibInputControl.send(dai.DynamicCalibrationControl(dai.DynamicCalibrationControl.Commands.LoadImage()))
9191
coverage = dynCalibCoverageQueue.get()
9292
```
9393
- Ask for **quality** on demand:
9494
```python
95-
dynCalibInputControl.send(dai.CalibrationQualityCommand())
95+
dynCalibInputControl.send(dai.DynamicCalibrationControl(dai.DynamicCalibrationControl.Commands.dai.CalibrationQuality()))
9696
dynQualityResult = dynCalibQualityQueue.get()
9797
```
9898
3. If `qualityData` is present, print rotation/Sampson/depth-error metrics.
9999
4. Optionally reset the internal sample store:
100100
```python
101-
dynCalibInputControl.send(dai.ResetDataCommand())
101+
dynCalibInputControl.send(dai.DynamicCalibrationControl(dai.DynamicCalibrationControl.Commands.ResetData()))
102102
```
103103

104104
**Use this when:**
@@ -140,7 +140,7 @@ pip install depthai opencv-python numpy
140140
python calibrate_dynamic.py
141141

142142
# Quality evaluation (reports metrics; does not apply)
143-
python quality_dynamic.py
143+
python calib_quality_dynamic.py
144144
```
145145

146146
> Tip: Ensure your calibration target is well-lit, sharp, and observed across the **entire** FOV. Aim for high `meanCoverage` and steadily increasing `dataAcquired`.
@@ -149,19 +149,19 @@ python quality_dynamic.py
149149

150150
## Commands overview
151151

152-
- `StartCalibrationCommand()`
153-
Begins dynamic calibration collection/solve. Use `OPTIMIZE_SPEED` for speed or `OPTIMIZE_PERFORMANCE` for more robust estimation.
152+
- `StartCalibration()`
153+
Begins dynamic calibration collection/solve.
154154

155-
- `ApplyCalibrationCommand(calibration)`
155+
- `ApplyCalibration(calibration)`
156156
Applies the provided `CalibrationHandler` to the device (affects downstream nodes in this session).
157157

158-
- `LoadImageCommand()`
158+
- `LoadImage()`
159159
Triggers coverage computation for the current frame(s).
160160

161-
- `CalibrationQualityCommand()`
161+
- `CalibrationQuality()`
162162
Produces a `CalibrationQuality` message with `qualityData` if estimation is possible.
163163

164-
- `ResetDataCommand()`
164+
- `ResetData()`
165165
Clears accumulated samples/coverage state to start fresh.
166166

167167
---
@@ -187,9 +187,9 @@ python quality_dynamic.py
187187
Ensure the pattern is visible, not motion-blurred, and covers diverse regions of the image. Increase lighting, adjust exposure, or hold the rig steady.
188188

189189
- **Disparity looks worse after apply**
190-
Re-run to collect more diverse views (tilt/translate the target), or try `OPTIMIZE_PERFORMANCE`. Check for lens smudges and ensure focus is appropriate.
190+
Re-run to collect more diverse views (tilt/translate the target).
191191

192192
- **Typos in prints**
193193
The examples should print “Successfully calibrated” and “Rotation difference” (avoid “Succesfully”/“dofference” if copying code).
194194

195-
---
195+
---

0 commit comments

Comments
 (0)