Universal Radar to GPS Microcontroller
Hi, I'm still working on this chip, and currently I'm not ready yet to give a accurate description of how this works, but do not worry, I'll do that very soon.
For now so you can get it working at least, here is what the settings mean on it (Also you can make it a 3x1, if you do not intend to use the advanced features)
Basic radar setup (group 1)
1 — The type of radar you want this to be, the role of it.
1.1 — Input count
How many radar target channels to read from the radar(1..8).
1.2 — FOV X (turns)
Horizontal radar FOV in turns (same as what is on the radar block). Used to auto-size the search averaging window.
1.3 — FOV Y (turns)
Vertical radar FOV in turns (same as what is on the radar block). Same purpose as 1.2.
1.4 — Radar Block
The radar block you use. Same purpose as 1.2 and 1.3.
1.5 — Output/Input axis order XZY
off = XYZ (what the game uses internally and how the physics and astronomy sensors work), on = XZY (what, for complicated reasons, most other creations on the workshop use). Affects all position/velocity outputs and also how the mount offset (group 2) is interpreted (your 2.2/2.3 get swapped when on).
Mounting / coordinate frame (group 2)
2.1 — Sensor offset X (blocks)
X offset of the radar/physics sensor from vehicle origin (in blocks; converted to meters ×0.25).
2.2 — Sensor offset Y (blocks)
Y offset (or Z if 1.5 is ON; the code maps this for you). Blocks → meters ×0.25.
2.3 — Sensor offset Z (blocks)
Z offset (or Y if 1.5 is ON). Blocks → meters ×0.25.
Why: These are needed to get a accurate GPS position. Also the offset needs to go to the center of the base of the radar.
Search mode (group 3)
3 — Search filter
When ON, averages hits over a short window (length auto-derived from FOV & range) to reduce jitter before output.
3.1 — Multiplex outputs
When ON and 1.1 ≠ 1, serializes multiple detections into channels 1..4 (XYZ + age). Otherwise each input channel gets its own XYZ outputs. Best used with the search filter on, and on low FOV.
3.2 — Sticky output
Holds the last seen position per channel indefinitely until a new hit arrives. If OFF, the hold time is controlled by 3.3.
3.3 — Hold time (ticks)
When 3.2 is OFF, keep last seen position this many ticks before clearing.
Tracking behavior (group 4)
4 — Match radius (meters)
Gate radius for associating a radar hit to the current track. Bigger = Easy to track faster targets, but more likely to jump to nearby targets aswell.
4.1 — Lost timeout (ticks)
How long to coast on prediction (Kalman) with no hits before the track is dropped.
4.2 — Velocity enable
When ON, estimates velocity with linear regression and enables lead output (4.1). When OFF, outputs only position and zeros out velocity channels.
4.3 — Lead (ticks)
Predicts the output position ahead by this many ticks using the estimated velocity. Ignored if 4.3 is OFF or set to 0.
Why: used so that you can account for the time of processing, so you can have a accurate GPS, for pointing at the target.
Velocity estimation (group 5)
5 — Regression samples
Window size for the least-squares slope used to estimate velocity. More = smoother but slower to respond.
Kalman filter (group 6)
6 — Q position
Process noise for position. Higher = trust model less, react faster to measurements.
6.1 — Q velocity
Process noise for velocity. Higher = allow faster velocity changes.
6.2 — R measurement
Measurement noise variance. Higher = trust radar less, trust prediction more.
Manual seed & reseed (group 7)
7 — Seed feature enable
Master switch for the manual seed system and its outputs.
7.1 — Require seed to acquire
If ON, the tracker will only start when a hit is found near the armed seed. If OFF, it can lock to the first visible target as a fallback.
7.2 — Seed match radius (meters)
Special gate radius used only for matching to an armed seed. ≤0 means “use normal match radius (4.2)”.
7.3 — Reseed while tracking
If ON, an armed seed can switch the tracker mid-track if a hit appears near the seed.
7.4 — Seed expiry (ticks)
Auto-clears an unused seed after this many ticks. 0 = never expire.
If you have qwestions feel free to ask me at Andrei11033 on discord or just on steam directly in the comment section.
Also feel free to suggest a feature, if i can ill try and implement it. My goal is to make a chip that works perfectly for every situation.