docs(aerotech): measured comparison default vs minimal run-up, position plots
CI for csaxs_bec / test (push) Successful in 3m36s
Both series of 2026-10-29 (8486-8494 default, 8501-8509 minimal_run_up): timing and positioning per case, why the saving is about half the shorter travel (Y step no longer hidden in the run-out), the constant direction offset after the velocity transient and the 20 mm/s oscillation, deviation and zoom plots, and the split of the line period with the next levers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M8zoDzDfsCTY2o5bT3J7Wv
No files matched your search
@@ -158,53 +158,119 @@ centres from the nominal cells, backward minus forward offset, and the line time
|
||||
|
||||
## Timing and positioning
|
||||
|
||||
Measured 2026-10-29 (scans 8486-8494, default run-up, PandABox as trigger, readout
|
||||
0.2 ms, X acceleration 500 mm/s^2). Positions in um; "rms" is the scatter of the
|
||||
measured exposure centres around the nominal cells (forward and backward lines
|
||||
alike), "bwd - fwd" the offset between neighbouring lines with its slope along X
|
||||
and its peak-to-peak over the line.
|
||||
Measured 2026-10-29 with the PandABox as trigger (readout 0.2 ms), X acceleration
|
||||
500 mm/s^2, X centred at 123.25, and the same nine scans in both run-up modes:
|
||||
scans 8486-8494 with the default run-up, 8501-8509 with `minimal_run_up=True`.
|
||||
The target resolution is about 20 um; the positioning accuracy should be well below
|
||||
that.
|
||||
|
||||
| Field of view (mm) | Step / exposure (speed) | Points x lines | rms | bwd - fwd | slope (um/mm) | peak-to-peak | Line period | Exposure per line | Positioning overhead per line | Scan time | Estimate with uneven positions (line, scan) |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| 0.8 x 1.2 | 100 um / 5 ms (20 mm/s) | 9 x 13 | 2.9 | +1.2 | +3.4 | 11.4 | 0.79 s | 0.04 s | 0.74 s (94 %) | 0.2 min | 0.45 s, 0.1 min |
|
||||
| 0.8 x 1.2 | 40 um / 20 ms (2 mm/s) | 21 x 31 | 1.0 | +3.6 | +0.2 | 2.9 | 1.03 s | 0.42 s | 0.61 s (59 %) | 0.6 min | 0.73 s, 0.4 min |
|
||||
| 0.8 x 1.2 | 10 um / 20 ms (0.5 mm/s) | 81 x 121 | 0.2 | +0.1 | 0.0 | 0.8 | 2.21 s | 1.62 s | 0.59 s (27 %) | 4.5 min | 1.95 s, 3.9 min |
|
||||
| 2 x 2 | 100 um / 5 ms (20 mm/s) | 21 x 21 | 5.6 | +2.3 | +0.2 | 25.6 | 0.83 s | 0.10 s | 0.72 s (87 %) | 0.4 min | 0.49 s, 0.2 min |
|
||||
| 2 x 2 | 40 um / 20 ms (2 mm/s) | 51 x 51 | 0.6 | +2.8 | 0.0 | 2.4 | 1.64 s | 1.02 s | 0.62 s (38 %) | 1.5 min | 1.34 s, 1.1 min |
|
||||
| 1 x 1 | 10 um / 20 ms (0.5 mm/s) | 101 x 101 | 0.2 | 0.0 | 0.0 | 0.8 | 2.61 s | 2.02 s | 0.59 s (23 %) | 4.5 min | 2.35 s, 4.0 min |
|
||||
| 3.5 x 3.0 | 100 um / 5 ms (20 mm/s) | 36 x 31 | 5.7 | +0.8 | +0.1 | 30.6 | 0.91 s | 0.18 s | 0.73 s (80 %) | 0.6 min | 0.57 s, 0.3 min |
|
||||
| 3.5 x 3.0 | 40 um / 20 ms (2 mm/s) | 89 x 76 | 0.5 | +2.8 | 0.0 | 2.9 | 2.40 s | 1.78 s | 0.62 s (26 %) | 3.1 min | 2.10 s, 2.7 min |
|
||||
| 3.5 x 3.0 | 10 um / 20 ms (0.5 mm/s) | 351 x 301 | 0.1 | -0.7 | 0.0 | 0.9 | 7.75 s | 7.02 s | 0.73 s (9 %) | 38.9 min | 7.49 s, 37.6 min |
|
||||
Terms used below (positions in um):
|
||||
|
||||
- **rms:** scatter of the measured exposure centres around the nominal cells.
|
||||
- **bwd - fwd:** offset between neighbouring backward and forward lines, with its
|
||||
slope along X and its peak-to-peak over the line. A constant offset only shifts the
|
||||
field of view; a slope would distort it.
|
||||
- **Line period:** time from the start of one line to the start of the next.
|
||||
- **Positioning overhead:** line period minus the exposure per line (points times
|
||||
`exp_time`), per line and as a fraction of the scan time. It contains the run-up and
|
||||
run-out, the turnaround, the Y step, and the readout of the captured positions.
|
||||
|
||||
### Default run-up
|
||||
|
||||
| Field of view (mm) | Step / exposure (speed) | Points x lines | rms | bwd - fwd | slope (um/mm) | peak-to-peak | Line period | Exposure per line | Positioning overhead per line | Scan time |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| 0.8 x 1.2 | 100 um / 5 ms (20 mm/s) | 9 x 13 | 2.9 | +1.2 | +3.4 | 11.4 | 0.79 s | 0.04 s | 0.74 s (94 %) | 0.2 min |
|
||||
| 0.8 x 1.2 | 40 um / 20 ms (2 mm/s) | 21 x 31 | 1.0 | +3.6 | +0.2 | 2.9 | 1.03 s | 0.42 s | 0.61 s (59 %) | 0.6 min |
|
||||
| 0.8 x 1.2 | 10 um / 20 ms (0.5 mm/s) | 81 x 121 | 0.2 | +0.1 | 0.0 | 0.8 | 2.21 s | 1.62 s | 0.59 s (27 %) | 4.5 min |
|
||||
| 2 x 2 | 100 um / 5 ms (20 mm/s) | 21 x 21 | 5.6 | +2.3 | +0.2 | 25.6 | 0.83 s | 0.10 s | 0.72 s (87 %) | 0.4 min |
|
||||
| 2 x 2 | 40 um / 20 ms (2 mm/s) | 51 x 51 | 0.6 | +2.8 | 0.0 | 2.4 | 1.64 s | 1.02 s | 0.62 s (38 %) | 1.5 min |
|
||||
| 1 x 1 | 10 um / 20 ms (0.5 mm/s) | 101 x 101 | 0.2 | 0.0 | 0.0 | 0.8 | 2.61 s | 2.02 s | 0.59 s (23 %) | 4.5 min |
|
||||
| 3.5 x 3.0 | 100 um / 5 ms (20 mm/s) | 36 x 31 | 5.7 | +0.8 | +0.1 | 30.6 | 0.91 s | 0.18 s | 0.73 s (80 %) | 0.6 min |
|
||||
| 3.5 x 3.0 | 40 um / 20 ms (2 mm/s) | 89 x 76 | 0.5 | +2.8 | 0.0 | 2.9 | 2.40 s | 1.78 s | 0.62 s (26 %) | 3.1 min |
|
||||
| 3.5 x 3.0 | 10 um / 20 ms (0.5 mm/s) | 351 x 301 | 0.1 | -0.7 | 0.0 | 0.9 | 7.75 s | 7.02 s | 0.73 s (9 %) | 38.9 min |
|
||||
|
||||
- **Positioning:** at 0.5 and 2 mm/s the exposure centres are within about 1 um
|
||||
rms of the nominal cells, and the snake is symmetric (no slope). A constant
|
||||
backward minus forward offset of up to ~4 um remains; it only shifts the field of
|
||||
view. At 20 mm/s an oscillation of X after the acceleration ramp reaches into the
|
||||
line: up to 25-30 um peak-to-peak on the larger fields. That is small compared with
|
||||
the 100 um cells of these quick scans, but above the 20 um resolution target.
|
||||
- **Overhead:** about 0.6-0.75 s per line at every speed: run-up and run-out,
|
||||
turnaround, the Y step (during the run-out of X), and the readout of the captured
|
||||
positions (0.03-0.3 s, growing with the points per line). It dominates the quick
|
||||
view. At 20 mm/s a ~10 Hz oscillation of X after the acceleration ramp reaches into
|
||||
the line: up to 25-30 um peak-to-peak on the larger fields. That is small compared
|
||||
with the 100 um cells of these quick scans, but above the 20 um resolution target.
|
||||
- **Overhead:** about 0.6-0.75 s per line at every speed. It dominates the quick
|
||||
scans (80-94 % at 20 mm/s) and is small for the long high resolution lines.
|
||||
- **Uneven positions:** the last column is an estimate, not a measurement: the line
|
||||
period minus the run-up and run-out that could be saved if the frames did not have
|
||||
to sit on an even grid (see below). It will be replaced by measured values of the
|
||||
same scans with `minimal_run_up=True`.
|
||||
|
||||
The target resolution is about 20 um; the positioning accuracy should be well below
|
||||
that. Columns of the result table:
|
||||
### Minimal run-up (`minimal_run_up=True`)
|
||||
|
||||
- **Positioning accuracy:** measured exposure centres minus nominal cell centres
|
||||
(rms), and the backward minus forward offset between neighbouring lines. A constant
|
||||
offset only shifts the field of view; a slope along the line would distort it.
|
||||
- **Line period:** time from the start of one line to the start of the next.
|
||||
- **Exposure per line:** points per line times `exp_time`.
|
||||
- **Positioning overhead:** line period minus exposure per line, as an absolute
|
||||
time per line and as a fraction of the scan time. It contains the run-up and
|
||||
run-out, the turnaround, the Y step (done during the run-out of X), and the
|
||||
readout of the captured positions.
|
||||
- **Estimate with uneven positions:** if the data analysis could place frames at
|
||||
unevenly spaced positions, the exposures would not have to wait for X to settle at
|
||||
constant velocity, and the run-up could shrink to the braking distance. That saves
|
||||
about `v / a + 2 * settle_time` per line (0.30-0.34 s at 0.5-20 mm/s), on top of
|
||||
any reduction of the other overheads.
|
||||
With the minimal run-up X only accelerates to the scan velocity before the first
|
||||
exposure (at least 10 um), without the settling distance. The exposures are then
|
||||
less evenly spaced, which is acceptable if the data analysis uses the measured
|
||||
positions.
|
||||
|
||||
| Field of view (mm) | Step / exposure (speed) | Line period default -> minimal | Saved per line | Scan time default -> minimal | rms default -> minimal | bwd - fwd default -> minimal | max deviation default -> minimal |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 0.8 x 1.2 | 100 um / 5 ms (20 mm/s) | 0.78 -> 0.61 s | 0.17 s (22 %) | 0.2 -> 0.2 min | 2.9 -> 7.0 | +1.2 -> +5.6 | 5.8 -> 17.1 |
|
||||
| 0.8 x 1.2 | 40 um / 20 ms (2 mm/s) | 1.02 -> 0.88 s | 0.15 s (14 %) | 0.6 -> 0.5 min | 1.0 -> 3.1 | +3.6 -> +13.3 | 4.6 -> 15.9 |
|
||||
| 0.8 x 1.2 | 10 um / 20 ms (0.5 mm/s) | 2.20 -> 2.09 s | 0.11 s (5 %) | 4.5 -> 4.3 min | 0.2 -> 1.1 | +0.1 -> -8.9 | 1.0 -> 5.5 |
|
||||
| 2 x 2 | 100 um / 5 ms (20 mm/s) | 0.84 -> 0.65 s | 0.19 s (22 %) | 0.4 -> 0.3 min | 5.6 -> 10.0 | +2.3 -> -11.1 | 15.6 -> 24.7 |
|
||||
| 2 x 2 | 40 um / 20 ms (2 mm/s) | 1.63 -> 1.48 s | 0.16 s (10 %) | 1.5 -> 1.3 min | 0.6 -> 2.1 | +2.8 -> +13.6 | 4.5 -> 15.9 |
|
||||
| 1 x 1 | 10 um / 20 ms (0.5 mm/s) | 2.60 -> 2.50 s | 0.10 s (4 %) | 4.5 -> 4.3 min | 0.2 -> 1.0 | 0.0 -> -9.1 | 1.1 -> 5.4 |
|
||||
| 3.5 x 3.0 | 100 um / 5 ms (20 mm/s) | 0.91 -> 0.74 s | 0.17 s (19 %) | 0.6 -> 0.5 min | 5.8 -> 14.0 | +0.8 -> -42.9 | 17.5 -> 44.9 |
|
||||
| 3.5 x 3.0 | 40 um / 20 ms (2 mm/s) | 2.39 -> 2.23 s | 0.15 s (6 %) | 3.1 -> 2.9 min | 0.5 -> 1.7 | +2.8 -> +12.8 | 3.9 -> 16.6 |
|
||||
| 3.5 x 3.0 | 10 um / 20 ms (0.5 mm/s) | 7.75 -> 7.55 s | 0.19 s (2 %) | 38.9 -> 38.0 min | 0.1 -> 0.6 | -0.7 -> -10.2 | 0.8 -> 5.6 |
|
||||
|
||||
- **Time:** 0.10-0.19 s less per line, 19-22 % of the quick 20 mm/s scans, 6-14 %
|
||||
at 2 mm/s, 2-5 % at 0.5 mm/s. About half of what the shorter travel alone would
|
||||
give: with the default run-up the Y step is hidden in the run-out of X; with the
|
||||
minimal run-up X turns around almost at once and waits for Y.
|
||||
- **Positions, 0.5 and 2 mm/s:** the first exposure of each line is still at its
|
||||
nominal position (the line trigger is a position), but within the next 2-3 cells
|
||||
the exposures jump to a constant offset, then stay evenly spaced along the line.
|
||||
This is the velocity transient of X after the ramp: the gates are timed, so a
|
||||
velocity below (2 mm/s) or above (0.5 mm/s) the scan velocity right after the
|
||||
trigger shifts all later exposures. The offset has opposite signs in the two
|
||||
directions, so backward and forward lines are 9-14 um apart, without a slope.
|
||||
- **Positions, 20 mm/s:** the ~10 Hz oscillation after the ramp is now in the whole
|
||||
line: up to 25 um deviation on 2 mm and 45 um on 3.5 mm fields, with backward
|
||||
minus forward offsets up to 43 um. Well above the 20 um resolution target.
|
||||
- **For the data analysis:** use the measured exposure centres, not the nominal
|
||||
grid. In the first 2-3 cells of each line the cells are compressed or stretched,
|
||||
and the centre estimate (start of the gate plus half a gate at the scan velocity)
|
||||
is less accurate there, since X is not yet at constant velocity.
|
||||
|
||||
Measured minus nominal X centre along the line, all lines thin, the mean bold
|
||||
(left: default run-up, right: minimal run-up):
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Measured exposure centres of the first cells of the first lines against the nominal
|
||||
cell centres (crosses), forward lines blue, backward lines orange:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Where the time per line goes
|
||||
|
||||
Split of the line period, measured by the scan (`motion` = X through the line and the
|
||||
trigger check, `between lines` = waiting for Y and switching the trigger window):
|
||||
|
||||
| Case | Run-up | Line period | Motion | Capture readout | Between lines |
|
||||
|---|---|---|---|---|---|
|
||||
| 0.8 mm, 20 mm/s | default -> minimal | 0.77 -> 0.58 s | 0.60 -> 0.29 s | 0.03 s | 0.14 -> 0.26 s |
|
||||
| 0.8 mm, 2 mm/s | default -> minimal | 1.03 -> 0.88 s | 0.87 -> 0.62 s | 0.04-0.05 s | 0.12 -> 0.21 s |
|
||||
| 2 x 2 mm, 2 mm/s | default -> minimal | 1.64 -> 1.48 s | 1.47 -> 1.21 s | 0.05-0.06 s | 0.12 -> 0.21 s |
|
||||
|
||||
The next levers to reduce the overhead:
|
||||
|
||||
- **Y step:** Y moves with 10 mm/s^2, so a 100 um step takes ~0.2 s, plus a 0.1 s
|
||||
hold within the tolerance before the next line starts.
|
||||
- **Software latency:** roughly 0.15-0.2 s per line in the motion phase for the end
|
||||
of the move, the trigger check and the communication.
|
||||
- **Capture readout:** 0.03-0.3 s per line, growing with the points per line.
|
||||
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 157 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 61 KiB |