The second Kinewright engine now carries the senses of a small rover through a room of static obstacles. It sees; it does not yet avoid, and that is the next stage. This article shows what the fourth accepted stage adds, how a sense is modelled, and every limitation still in place.
What this stage adds
- A scene: four walls, a tall post, a thin post, a low box, a tall box and a wall turned 30°, all static, every size declared in metres. No obstacle stops a shell: the motion stays kinematic, a shell driven into a box passes through it, and a contact report names the overlap on every tick it lasts.
- A rig on the four-wheel-steer shell, beside its profile: a single-zone time-of-flight cone and an 8 × 8 grid, an ultrasonic beam, a 360° scanning range-finder, a radar of up to three targets with their radial speed, two bumpers, wheel encoders and an inertial unit. Eight models of seven sensors.
- Every sensor has a rate, a latency, blind cases and seeded noise, and reports integers in its own units: millimetres, counts, bits.
- Every observation is a recorded input of the drive's journal. A drive replays headless two ways, through the controller and from the frames, byte for byte in separate processes, with the same records on Windows and macOS.
- One observing behaviour, a stub: hold 0.30 m/s while the beam reads clear, rest from the tick a reading of 0.50 m or less arrives, and rest before the first reading, because an unseen way is not a clear way. On the committed drive it stops 0.469 m short of the low box.
- Every trail is drawn from the pivot axle, the point that never slips sideways, so the hook at a turn's exit is gone. The steering motion's own shape is the next stage's first item.
How a sense is modelled
- Rays in closed form against faces, tops and the ground, the nearest crossing within range; a sample is taken on the frame of its tick and emitted its latency later, and the scanner casts each beam from its own tick's pose.
- The status comes from the true value, so noise never invents a return and never loses one. Noise is a counter-based stream, a pure function of the seed, the sensor and the sample's index, exact on every JavaScript engine, with no clock anywhere.
- Every figure is estimated from the public datasheets of the sensor's class, attributed to no single part. Nothing is measured.
Numbers from this stage
- Rates: cone 30 Hz, grid 15 Hz, beam 15 Hz, scanner 6 Hz, radar 10 Hz, bumpers and inertial unit 120 Hz, encoders 60 Hz.
- Noise, one standard deviation: cone 2 mm plus 0.4 % of range; grid 3 mm plus 0.5 %; beam 2 mm plus 0.2 %; scanner 1 %; radar 0.03 m, 1.5° and 0.03 m/s; encoders one count, 0.2 mm of rolling.
- The beam loses its echo past 7.5° to a wall; the cones are pitched up by their own half-angle, so neither reads the ground.
- In the drive shown: the beam hears the low box from two metres while the cone above it reads the far wall at 3.6 m; the radar tracks three targets at once, each closing at the shell's own speed.
- In the turn, at 0.43 m/s and full lock, the inertial unit reads a yaw rate of 92°/s: the engine's own 1.6 rad/s on a 0.27 m radius. The outer wheels' counts pull ahead of the inner ones.
- 25 fixtures and three drives are pinned by platform-stable roots; traced figures sit within 1.9·10⁻¹⁴ of their closed forms.
What it does not claim, and why
| What you see or might expect | Why | Changes at |
|---|---|---|
| The shell drives through the box | No collision response: kinematics only; the report names the overlap | The avoidance stage, built on these senses |
| A real sensor would read this | Models of declared figures from datasheet classes; no optics, acoustics or electromagnetics | A measured sensor, on hardware, much later |
| Dark or soft surfaces, a corner's ghost echo, a thin object between two rays | No surface property, no multipath; the cones are sampled by bundles, not integrated over their field | The hardware stage; multipath is not scheduled |
| The other shell shows up on the scan | A shell is not an obstacle to another shell's sensors | The moving-objects stage |
| A sensor fails, drops out or drifts | No faults, no drift, no temperature | The faults stage; calibration later |
| The encoders count exactly the distance | Pure rolling, no slip: traction needs a dynamics provider | Not a Wheels stage |
| The steering snaps from full lock to straight | The steering rate is one declared clamp with no bound on its change | The next stage, as a declared bound with its own question |
Two assumptions sit under everything here, as before: the honesty bound of the kinematic model and the tip threshold, both announced when crossed and never simulated. This stage adds no third one; the senses sit above the kinematics, not under it.


Top comments (0)