# Four corner cameras: completed engineering checkpoint

Updated 04 October 2026, 10:07 IST. Conditional simulation evidence; purchases remain on hold.

## Result in plain language

The four low, moving camera heads can be fitted around this arm without repeating the rejected tall camera-post collisions on the tested paths. One fresh nominal run returned all 21 feeds. Both larger, unchanged-controller batches are now complete. Their overall scores and weaker settings are reported below without removing or rerunning failures.

This is a useful, repeatable Phase 1 computational result for our own finite feeder definition. It does not establish a fully manufacturable robot, a continuous rally, nylon performance or the broader Phase 2 human-shot requirement. No part has been ordered or purchase gate released.

## What was physically modelled

The rejected raised posts were replaced by four compact pan/tilt heads above the fixed wheel-module structures. They attach to fixed motor-top structures, not the turning wheel forks. Tilt pivots are 500 mm high, at body coordinates (+0.40,+0.40), (+0.40,-0.40), (-0.40,+0.40) and (-0.40,-0.40) m. Each pan pivot is 60 mm below its tilt pivot. The optical pupil is 82.5 mm forward of the tilt pivot.

Each mount has four 87 mm hollow aluminium standoffs (10 mm outside, 6.6 mm inside diameter) on an 86 × 74 mm M6 pattern. A 6 mm narrow bridge uses a 70 × 60 mm centre, diagonal straps and local bolt pads; a bulky full square bridge was rejected for interference. A 30 × 30 × 2 mm post leads to a 70 × 60 × 5 mm mounting seat. Each head has two XM430-size servo allowances, a three-piece forward fork, a short 20 × 20 × 1.5 mm tube and camera/lens allowances. Supplier interfaces, screw detail and cable routing remain to finish.

All four supports and head allowances total **2.56856 kg**. The complete MuJoCo mass ledger totals **70.99352 kg**. These are model allowances, not reconciled production assembly masses. The shoulder remains 850 mm high and nominal arm reach 1.6 m. Existing chassis/arm motor limits and tyre friction assumption (mu = 0.7) were retained.

The eight camera hinges have inertia, gravity, a 0.35 Nm simulated torque cap, 5 rad/s reference speed, 80 rad/s² reference acceleration and 10 ms command delay. Physical joint speed can overshoot the reference; a torque cap is not a supplier continuous-duty rating. These operating and thermal envelopes require reconciliation before selecting hardware.

Early observations use four forward-looking heads. After four delivered observations, the front heads enter restricted rearward pan sectors of +150 to +175 degrees and -175 to -150 degrees, with tilt restricted to ±20 degrees, to clear the arm stroke. The rear heads retain wider movement and provide most later tracking. The selector uses whichever pair is geometrically suitable. Four cameras provide alternatives; they do not guarantee uninterrupted views.

The final Q8 controller replaces M04's low preparation path with a raised clearance stroke and gives M21 a 50 ms drive-reference lead. Q7 is the physical geometry revision; Q8 is the tested controller revision. Both were frozen before the statistical runs.

## The predeclared tests

Our 21 synthetic feeder settings are not the original paper's undisclosed exact machine settings. The 420 batch uses 20 repeats per setting. The 2,000 batch uses 95 per setting and five fixed randomly assigned extras. Each attempt has a fresh camera-noise/dropout seed, common pose bias and a uniformly sampled ±2% scalar launch-velocity variation. Incoming net crossing and landing legality are checked before the trial. All trials are independent starts from settled home (-3.00,0.00) m; no return-to-home or next-shot recovery is inferred.

The finite controller receives delayed noisy observations, with equal prior weight on all 21 settings; it is not given the feed identity as truth. Its selector/plan reconstruction wall time is charged to availability. Chassis and arm move together while later observations arrive. The model has 100 Hz supervisory updates and 1 ms numerical dynamics integration. Numerical integration at 1 kHz does not prove a 1 kHz target-computer control loop.

The synthetic camera model assumes 1280 × 800 pixels, fx = 723.3884 px and fy = 599.7747 px (about 83 degrees horizontal), synchronized 80 Hz exposures, 0.5 px noise, 0.1 degree angular uncertainty, common 5 mm pose bias and 6% common frame dropout. Image acquisition and processing are budgeted at 20 + 5 ms. Detailed CAD ray checks generate synthetic visibility, including opaque net top tape; visibility through the net mesh remains a photometric assumption. No real image-processing pipeline is claimed.

MuJoCo supplies motor-limited robot dynamics. Racket/stringbed crossing, impact and feather drag supply the return test: a close racket-centre distance alone is not a hit. A successful return must cross the net and land inside the human half. The feather equation used is dv/dt = -|v|v/4.49 + (0,0,-9.81), integrated with RK4. Feather and nylon cannot be treated as interchangeable.

## Completed scores

| Test | Legal returns | Score | Observed 90% threshold | 95% Wilson interval | Recorded dynamics faults |
|---|---:|---:|---:|---:|---:|
| Nominal | 21/21 | 100% | Development check | Not an independent population estimate | 0 |
| 420 | 391/420 | 93.10% | 378: met | 90.26–95.15% | 0 |
| 2,000 | 1,838/2,000 | 91.90% | 1,800: met | 90.62–93.02% | 0 |

The intervals describe sampling uncertainty conditional on the specified synthetic distribution. They do not include systematic model, camera, hardware or court errors. Neither the nominal development score nor any replay removes the failed attempts.

| Feeder setting | 420 batch | 2,000 batch |
|---|---:|---:|
| M01 | 20/20 | 94/95 |
| M02 | 20/20 | 95/95 |
| M03 | 14/20 | 81/95 |
| M04 | 20/20 | 96/96 |
| M05 | 20/20 | 96/96 |
| M06 | 20/20 | 93/95 |
| M07 | 20/20 | 83/95 |
| M08 | 20/20 | 95/95 |
| M09 | 5/20 | 17/95 |
| M10 | 20/20 | 95/95 |
| M11 | 19/20 | 95/95 |
| M12 | 20/20 | 95/96 |
| M13 | 20/20 | 94/95 |
| M14 | 20/20 | 95/96 |
| M15 | 20/20 | 95/95 |
| M16 | 20/20 | 95/96 |
| M17 | 20/20 | 94/95 |
| M18 | 20/20 | 95/95 |
| M19 | 15/20 | 57/95 |
| M20 | 20/20 | 95/95 |
| M21 | 18/20 | 83/95 |

## Independent camera-to-arm CAD checks

The nominal run was checked at 7,115 saved 5 ms poses, including braking, with zero camera/support-to-arm overlaps and 692 exact Boolean calls. An independently vectorised conservative broadphase reproduced this result. Statistical checks used the same named detailed solids, conservative box rejection and exact OpenCascade Boolean intersection against five detailed arm groups.

- **420 batch:** all 420 paths, 143,135 saved poses, 0 paths with camera/support-to-arm overlap.
- **2,000 batch:** all 2,000 paths, 681,837 saved poses, 0 paths with camera/support-to-arm overlap.

These are discrete saved-pose checks. Unmodelled cables and individual fasteners, motion between samples and whole-arm internal interfaces are outside this result.

The native SOLIDWORKS assembly has 22 resolved rigid groups, 21 hinges and 42 mates. Five executed poses were independently audited; pupil and arm forward-kinematics positions agree within 1 micrometre and no camera-head-group interference was reported in these poses. The full assembly still has unresolved raw main-arm overlaps, mass/inertia and supplier-interface reconciliation. An older distal collision proxy differs from the detailed FOREARM motor location. These differences were preserved and disclosed, not silently changed for a better score.

## Vision, controller and feasibility diagnostics

### 420 batch

Outcomes: {'legal': 391, 'illegal_contact': 9, 'miss': 20}. Correct feeder classifications: 420/420; references started: 419/420.

Total all-blind camera frames: **38**. Maximum interval between accepted captures: **513.0 ms**. Lowest per-attempt usable stereo fraction: **41.86%**. A matched feeder prior can predict through gaps; general human shots need explicit uncertainty and lost-track handling.

Simulated peaks: base speed **3.439 m/s**, tilt **0.068 degrees**, positive mechanical power **1.727 kW**, head speed **9.134 rad/s**, head torque **0.350 Nm**. These are conditional model responses.

Largest selector call: **38.42 ms** (charged). Median of per-attempt median low-level desktop Python control times: **1.632 ms**; largest call: **67.09 ms**. Low-level timing is diagnostic; the real controller/image pipeline has not met its timing gate.

### 2,000 batch

Outcomes: {'legal': 1838, 'illegal_contact': 71, 'miss': 91}. Correct feeder classifications: 2,000/2,000; references started: 1,989/2,000.

Total all-blind camera frames: **298**. Maximum interval between accepted captures: **513.0 ms**. Lowest per-attempt usable stereo fraction: **41.86%**. A matched feeder prior can predict through gaps; general human shots need explicit uncertainty and lost-track handling.

Simulated peaks: base speed **3.456 m/s**, tilt **0.068 degrees**, positive mechanical power **1.733 kW**, head speed **9.160 rad/s**, head torque **0.350 Nm**. These are conditional model responses.

Largest selector call: **56.03 ms** (charged). Median of per-attempt median low-level desktop Python control times: **1.964 ms**; largest call: **102.17 ms**. Low-level timing is diagnostic; the real controller/image pipeline has not met its timing gate.

### Sensitivity and next technical priorities

In the 420 batch, slower M03 launches were missed while faster ones succeeded, suggesting stroke timing sensitivity. All nine illegal M09 contacts had below-net flight: recorded net heights were 0.483–1.434 m, while their predicted unimpeded landings lay inside the human half. These are not court-landing failures. M09 has overlapping successful/illegal-contact speed ranges; its arrival, moving stringbed crossing and outgoing net margin must be considered together. M19 and M21 also show speed sensitivity without a perfectly separating speed cutoff. Correct classification therefore does not mean successful execution. The complete per-attempt diagnostic rows remain in EVIDENCE_AUDIT.json, and the controller was not retuned during either batch.

An offline re-projection of the 420 saved camera poses through a 75 degree, square-pixel lens reduced usable stereo from 92.77% to 91.12%, and the maximum accepted-capture gap grew from 513 to 550 ms. This does not supply a 75 degree return score because the controller was not rerun. The final selected lens must reproduce the tested calibrated optics or be evaluated afresh. Reference servo speed is also not the measured physical speed; supplier voltage/torque/speed and thermal limits remain a build constraint.

The next release work must reconcile the actual arm solids/interfaces/masses, route moving cables, qualify camera throughput and actuator envelopes, and use those corrected properties for structural FEA and motion cross-checks. The mandatory Phase 2 balanced court-position/shot-type/speed grid and continuous rallies remain. Nylon requires its own drag, impact and observation tests. Ansys is deferred by the owner's instruction; no Ansys result is asserted. Installed SOLIDWORKS Design Standard supplies CAD here, with no Motion/Simulation licence assumed.

## Agasthya's Recorded Court Replay

The completed showcase is at **http://127.0.0.1:8868/** on this PC. Its source is analysis/agasthya_simulation_lab_20261004/index.html. Both datasets retain every recorded attempt. Automatic playback starts at the first selected attempt, with slow motion or 12× showcase speed. The court overview plots actual chassis and racket paths/positions; every setting's score links to its attempts. Camera rays, capture age, blockers and the delivered frozen plan are inspectable. Native CAD screenshots are included alongside the schematic animation.

Playback takes actual saved 5 ms traces, exports poses at 10 ms and interpolates for display. The outgoing shuttle is reintegrated from the recorded impact with the same feather equation. After the recorded 500 ms braking segment, the robot pose is held; no unrecorded recovery or rally is fabricated. Camera cards/rays show the latest captured exposure, which can precede the displayed shuttle. The feather ON/nylon OFF switch reports that no qualified nylon recordings exist.

Teacher feedback stays locally in the browser and can be exported manually. The portable compressed reader was checked through HTTP using ?portable=1; direct file-URL execution was not tested by the browser-control tool. The extracted portable folder can be opened in a recent browser, with a local-server fallback documented in README.md. No public upload or messages to teachers were made.

## Evidence and source attribution

All experiment paths are under C:/Mechatronics-Projects/Mechatronics/Robo_Badminton_V1_2026-09-30/analysis/.

- corner_camera_Q8_nominal21_20261004/RESULTS.json, FROZEN_PROTOCOL.json, FROZEN_LIBRARY.json and MODEL.xml.
- corner_camera_Q8_new_trace_clearance_20261004/CLEARANCE_RESULTS.json.
- corner_camera_Q7_20261004/ASSEMBLY_INVENTORY.json, NAMED_CAMERA_PARTS.json, SOLIDWORKS_REVOLUTE_RESULTS.json and NATIVE_TRACKING_POSE_AUDIT.json.
- corner_camera_Q8_420_20261004/ and corner_camera_Q8_2000_20261004/: RESULTS.json, PREDECLARED_TEST.json, FROZEN_HASH_CHECK.json, EVIDENCE_AUDIT.json, camera_frames/, workers/*/trials/ and exact_camera_arm_CAD/RESULTS.json.
- agasthya_simulation_lab_20261004/evidence/REPLAY_PROVENANCE.json records every replay's source-trace SHA256; REPLAY_VERIFICATION.json records export consistency checks.
- Research inspiration: [the published badminton robot study](https://arxiv.org/html/2504.17771v1). Our settings and results are not the authors' test data.
- Servo reference: [ROBOTIS XM430-W210 manual](https://emanual.robotis.com/docs/en/dxl/x/xm430-w210/). Its stall and no-load specifications do not establish our operating envelope.
- Lens reference: [Arducam OV9281 standalone datasheet](https://cdn.arducam.com/downloads/modules/OV9281/OV9281_MIPI_Camera_Module_Standalone_DS.pdf); the final lens/calibration is not yet selected.

The nominal, 420 and 2,000 frozen hashes were checked again when this report was generated. Manufacturing and purchase gates remain closed.
