127 lines
7.6 KiB
Markdown
127 lines
7.6 KiB
Markdown
# Worker simulation: continuous actuation and complete dataset task
|
||
|
||
Owner request: explain and remove intermittent motion, maintain slow continuous
|
||
travel between inference results, and qualify a complete scene task rather than
|
||
claiming navigation from a short straight drive. Physical VESC control remains
|
||
out of scope. Simulation, rendering, inference, sensor archives and physics
|
||
telemetry remain on Worker006; Core8000 receives video and compact telemetry.
|
||
|
||
## Findings
|
||
|
||
The existing `LatestInference` already held the most recent valid decision;
|
||
ordinary pending inference did not force zero. The pre-physics observer pose
|
||
was used to render a post-physics rover, and displayed speed divided a prior
|
||
physics displacement by unrelated render wall intervals. This exaggerated
|
||
apparent speed variation. Native physics measurements are now authoritative.
|
||
|
||
After fixing that sampling mismatch, run `airun-a1f4bff97e284b2a89c81eee261407bb`
|
||
revealed ten actual motion-to-zero transitions caused by camera-age protection.
|
||
Heavy accumulated terrain processing, plus capture/model latency, exceeded the
|
||
unchanged 800 ms frame budget. Ignoring those stops would hide a real timing
|
||
failure. No inference exceptions occurred in this run. An earlier operator run
|
||
had transient HTTP disconnections; error records now include private stack
|
||
traces so any recurrence can be traced to the actual local provider.
|
||
|
||
## Implementation
|
||
|
||
- Native physics pre-step callback evaluates freshness and applies the latest
|
||
valid command at 60 Hz. Wheel-surface acceleration is limited to 0.2 m/s²;
|
||
both sides scale together, preserving requested curvature. Reductions and
|
||
safety stops bypass the acceleration envelope. No additional braking delay.
|
||
- Physics post-step updates the rover camera and observer before rendering.
|
||
RGB, raycast origins, pose and camera calibration share the resulting pose.
|
||
Speed is read from the articulation velocity, not render-frame differences.
|
||
- Callback failures stop the run; pause telemetry reports zero applied command.
|
||
Worker retains `physics-motion.jsonl` at physics frequency and an explicit
|
||
simulation-only motion-control profile.
|
||
- The terrain connectedness/close-pair hazard loop has a compiled C ABI helper.
|
||
Plane fitting, neighborhoods, hazard thresholds, path planning, detectors and
|
||
segmenters remain unchanged. Strict floating-point compilation avoids fused
|
||
operations/fast-math. NumPy remains the portable reference implementation.
|
||
A separate Docker image extends the pinned rectangular CMU image; model
|
||
profiles and original images/containers are preserved.
|
||
- Paired full-scene collision assets no longer inherit the generated 30 m
|
||
tile admission bounds. Source, collider and calibration identities remain
|
||
checked; physical start support/clearance stays mandatory. The first full-task
|
||
attempt was rejected before starting Isaac by this incorrect tile check.
|
||
- Mission memory retains the last observed waypoint when a frame rejects it,
|
||
while returning no current goal/zero motion for that rejected observation.
|
||
Revalidation on the next frame can recover the exact goal in the camera
|
||
blind strip. The same causal goal survives a pause of the frozen world;
|
||
new episodes, waypoint advancement and bounded recovery still reset it.
|
||
- Shared composition identity includes the numerical helper source and image.
|
||
No parallel model constructor or device-control path was introduced.
|
||
|
||
## Numeric qualification
|
||
|
||
The numerical/navigation image passed all 23 existing hazard scenarios.
|
||
418 float32/float64 cases, including exact 12 cm adjacency and 10.01 cm height
|
||
jump boundaries, matched the NumPy reference. All costs/counts matched on 130
|
||
real observed maps. Dense-map median normalization: 168.6 -> 116.1 ms (max
|
||
200.5 -> 150.4 ms). This comparison isolates the numeric stage, not end-to-end
|
||
AI latency. Spatial-index and cropped-window alternatives did not improve the
|
||
measured workload and are not shipped.
|
||
|
||
## Mission authoring
|
||
|
||
The dataset contains 100 start/goal tasks and a Detour navmesh, but no saved
|
||
waypoint trajectories. An isolated Worker-only tool uses packaged Detour to
|
||
extract complete routes. The original episode 3 route is 16.70 m including
|
||
triangle crossings; its last corner fails the current rover's mesh support
|
||
checks. It is not represented as a successfully traversable route.
|
||
|
||
Episode 97 is a complete 11.03 m source route (10.94 m source geodesic metadata).
|
||
Its 53 sampled footprint checks passed: supported ground, <=20-degree authoring
|
||
slope, <=7.5 cm plane residual, no triangle crossing the occupied body prism
|
||
above the qualified step. Intermediate mission points occur every 2 m, with
|
||
the original endpoint preserved. These are preparation checks, not proof that
|
||
perception, control or physical contact can complete the mission. The live
|
||
mission retains its existing 0.4 m arrival tolerance; the source task's 0.2 m
|
||
benchmark radius is not claimed as benchmark acceptance.
|
||
|
||
The first full live task (R33) stopped at waypoint 2 because a rejected RGB
|
||
frame erased the observed goal. Replay of frames 101–140 verified that the
|
||
corrected memory still rejects frames 101 and 113, and recovers on the next
|
||
valid observation. It does not override the semantic gate.
|
||
|
||
## Live acceptance and receipts
|
||
|
||
Installed release `22c28daad98da60b` (597 verified files), archive SHA-256
|
||
`d30c177939ee88e6f70581d41624635844198b4891ea5a43becf81dee0aa8527`.
|
||
Navigation image: `sha256:698228d0d378b166ceaf299aa86ab95b5e74179837532f2378c036c7f7621dcc`.
|
||
|
||
R34 `airun-8443e76e7fe94b5694009965dc591680` completed all six waypoints:
|
||
10.5925 m start-to-finish displacement, final endpoint error 0.3441 m, 86.2 s
|
||
simulation time, no recovery attempts or inference exceptions. Median body
|
||
speed while commanded >=0.14 m/s: 0.145 m/s (p95 0.169). Median inference
|
||
125 ms, p95 219 ms; median AI rate 4.57 Hz; median render rate 17.12 FPS.
|
||
The live operator WebRTC view was observed at 14–16 FPS. These are measured
|
||
rates, not a claim of 30 FPS video or 60 Hz AI.
|
||
|
||
Five motion-to-zero events were caused by rejected visual surface observations.
|
||
They remain conservative stops; perception temporal stability is not solved.
|
||
There were no in-motion freshness interruptions: the sole moving-to-stale event
|
||
spanned a 48.703 s operator pause. Startup and resume correctly wait for fresh
|
||
observations. Pause held the world at 76.5 s, applied command zero and AI rate
|
||
zero; continuing retained the mission and reached the endpoint. The operator
|
||
interface showed completed state and connected Worker afterward.
|
||
|
||
44 focused unit/lifecycle/composition tests passed; numerical and 23 native
|
||
navigation hazard gates are recorded above. Original Docker inventory at this
|
||
turn's baseline: 21 containers with unchanged Name/Config/HostConfig, 110 image
|
||
identities retained, 9 volumes retained. No temporary qualification containers
|
||
or own realtime simulator processes remain. The discarded SciPy candidate image
|
||
created by this experiment was removed. Core8000 and Worker registration were
|
||
healthy and idle at handoff; the temporary browser viewer was closed.
|
||
|
||
Private receipt `state/continuous-motion-evidence-20260923.json` covers seven
|
||
closed sessions, 3,961 files and 126,985,705 bytes. Receipt SHA-256:
|
||
`5c1d0bb5f081cb74d440c43cdaf4d41a8e82e488a5050834a9e727827752007b`.
|
||
Source journals, failures and comparisons are retained; no older sealed outputs
|
||
were overwritten. The direct Ops instruction MCP timed out after 60 s, so this
|
||
engineering report was saved locally and the Ops card was not updated.
|
||
|
||
Acceptance is limited to this complete paved park task. The original 16.7 m
|
||
route, Forest/Bamboo, whole-location coverage, dynamic actor encounters and
|
||
physical vehicle load/braking calibration are not established by this run.
|