Parallax Trackingבס״ד
Multi-target tracking, sensor fusion and estimation
Interactive tutorial · with Claude AI assistance
Several sensors report only the direction to each of several targets. The tracker has to decide which report belongs to which target, and each method here is a different answer to that question.
From an Algorithm to a Real System
The four articles before this one are about algorithms. This one is about everything around them that turns an algorithm into software that flies: certification, calibration, budgets, evidence. In plain words.
The four method articles show the algorithms, with the math and the measurements. Here the subject is different. An algorithm is maybe five percent of a real system. The rest is engineering: calibration, error budgets, certification evidence, configuration control. The proportion surprises people every time, and it decides how such projects are planned and budgeted. So this is not a paper. It is a short tour of what it takes to put an algorithm like MHT into an airborne system, with the real terms named for each part, so you can see the shape of the whole job.
Terms that will come up—DO-178C, ARP4754A, development assurance level, error budget, boresight calibration, worst-case execution time, structural coverage, tool qualification, configuration index, verification matrix.
The algorithm is the small part
Look at one number first. The association engine behind these articles runs in 2.5 ms, inside a 100 ms cycle. A few hundred lines of arithmetic. Now ask what stands around it in a real airborne programme: a safety assessment, an error budget, a calibration procedure, worst-case timing analysis, structural coverage of every line of code, qualified tools, a configuration index, problem reports.
On a real programme the algorithm is a small fraction of the work. People who come from the university side usually do not believe this until they see one programme from inside. The standards that define all of it are ARP4754A for the system and DO-178C for the software, and the rest of this tour walks through the parts that cost the most.
The level is not chosen
DO-178C sorts software by what happens when it fails. Catastrophic failure means level A. Our case is milder: the tracker only advises a human operator. The worst failure is misleading data — a confirmed track with a small reported error and nothing real under it. The operator loses situation awareness, so the condition is Major and the software lands on level C.
| Level | Failure | Objectives | With independence | Coverage |
|---|---|---|---|---|
| A | Catastrophic | 71 | 30 | MC/DC, decision, statement |
| B | Hazardous | 69 | 18 | Decision, statement |
| C | Major | 62 | 5 | Statement |
| D | Minor | 26 | 2 | None |
| E | No effect | 0 | 0 | None |
Now note what happens if the output commands a manoeuvre instead of advising a person. Same tracker, same code — and the level jumps to B, with nearly double the independent verification. The assurance level comes from the system context, not from the software itself. You cannot pick it to save money.
Accuracy comes from calibration
Here is the least intuitive result in the whole design. Take the full error budget of one bearing measurement: centroid noise, lens distortion, motion smear, time stamping, and knowledge of where the sensor points. The last term is 99% of the variance.
| All optical terms together | 0.024° |
| Knowing where the sensor points | 0.25° — 99% of the variance |
| Allocation used in this report | 0.30°, with 16% margin |
So a better lens buys nothing, and a better survey of the mount buys almost everything. Accuracy is created on the ground, by calibration, and the algorithm can only preserve it. One consequence worth sitting with: the calibration file becomes airborne data, with its own part number. A wrong file crashes nothing — it gives confident wrong answers, the failure from the level discussion, arriving through the back door.
The worst case must be a number
A demo can say: it runs fast, we measured it. Avionics cannot. A measurement only tells what happened on the inputs you tried; certification asks for the worst case, as a number, proven from the structure of the code. Memory the same — fixed before the system ever runs, not observed while it does.
And the real code for such a system is written in C, to the MISRA C coding standard. This is not about style. MISRA exists to make the worst case analysable: it bans dynamic memory, unbounded loops, and the corners of C where the compiler is free to surprise you. One more thing people forget: the analysis tools themselves need qualification under DO-330, because a timing analyser that under-reports is a tool that hides an error. The reference code behind the deterministic engines is substantially progressed toward MISRA C:2012, with a documented gap analysis. Not compliant, and I do not claim it is.
Failure is a design input
In a real programme you write the failure table before you finish the design. Each row: what breaks, how the system detects it, what it does. A failure that cannot be detected is not a failure mode, it is a hazard, and you redesign until none remains.
Two examples from this system. Lose one of the three nodes, and the tracker cannot separate real targets from ghost intersections any more: accuracy drops from 41 m to 150–190 m, and no tuning can recover it, because the information is simply not in the geometry. The right response is to warn the operator, not to re-tune. And a knocked boresight is the nasty one: it produces precise, confident, wrong bearings, and the detection is indirect and late. That failure is what sets the recalibration schedule.
Verification, and the paper trail
Every requirement gets a test that traces to it, with a pass criterion written before the test runs. Together the tests must reach every statement in the code; whatever they do not reach is dead code to remove, or deactivated code to prove unreachable.
Then the layer nobody budgets for: the verification matrix, the configuration index that says exactly what was built from what, a problem report for every defect. This is not bureaucracy — it is what makes a result reproducible and a defect count. On a real programme this evidence is the deliverable. The code is almost a by-product.
What is not claimed
To be clear about this demo: no hardware was built, nothing here went through a qualification programme, and nothing is offered for certification credit. The algorithms in the method articles are real and measured — the deterministic core is verified against a reference implementation bit for bit, and the performance numbers are five-seed medians. But the system in this essay is an illustration, not a product.
If you take one thing from here, take this. When someone shows you a tracking algorithm and calls it a system, ask about the calibration plan and the worst-case timing. The answers tell you how far they really got.
Sensors
World — what happens
Filter — what it believes
Decision depth
Figure
Comparison variants
| Method | 2 sen. | 3 sen. | 4 sen. | ms/step | validation |
|---|
Estimator
Sensors
Target
Sensor noise
View
Appendix — common to all four methods
References
- D. B. Reid, “An algorithm for tracking multiple targets,” IEEE Trans. Autom. Control, vol. 24, no. 6, pp. 843–854, 1979.
- Y. Bar-Shalom and E. Tse, “Tracking in a cluttered environment with probabilistic data association,” Automatica, vol. 11, no. 5, pp. 451–460, 1975.
- K. G. Murty, “An algorithm for ranking all the assignments in order of increasing cost,” Oper. Res., vol. 16, no. 3, pp. 682–687, 1968.
- S. Deb, M. Yeddanapudi, K. Pattipati and Y. Bar-Shalom, “A generalized S-D assignment algorithm for multisensor-multitarget state estimation,” IEEE Trans. Aerosp. Electron. Syst., vol. 33, no. 2, pp. 523–538, 1997.
- D. Schuhmacher, B.-T. Vo and B.-N. Vo, “A consistent metric for performance evaluation of multi-object filters,” IEEE Trans. Signal Process., vol. 56, no. 8, pp. 3447–3457, 2008.
- S. C. Nardone and V. J. Aidala, “Observability criteria for bearings-only target motion analysis,” IEEE Trans. Aerosp. Electron. Syst., vol. 17, no. 2, pp. 162–166, 1981.
- D. P. Bertsekas, “The auction algorithm: a distributed relaxation method for the assignment problem,” Ann. Oper. Res., vol. 14, pp. 105–123, 1988.
- R. B. Langley, “Dilution of precision,” GPS World, vol. 10, no. 5, pp. 52–59, 1999.
- Y. Bar-Shalom, S. S. Blackman and R. J. Fitzgerald, “Dimensionless score function for multiple hypothesis tracking,” IEEE Trans. Aerosp. Electron. Syst., vol. 43, no. 1, pp. 392–400, 2007.
- A. Wald, “Sequential tests of statistical hypotheses,” Ann. Math. Statist., vol. 16, no. 2, pp. 117–186, 1945.
- J. Munkres, “Algorithms for the assignment and transportation problems,” J. SIAM, vol. 5, no. 1, pp. 32–38, 1957.
- P. R. J. Östergård, “A new algorithm for the maximum-weight clique problem,” Nordic J. Computing, vol. 8, no. 4, pp. 424–436, 2001.
- T. A. Feo, M. G. C. Resende and S. H. Smith, “A greedy randomized adaptive search procedure for maximum independent set,” Oper. Res., vol. 42, no. 5, pp. 860–878, 1994.
- T. Kurien, “Issues in the design of practical multitarget tracking algorithms,” in Multitarget-Multisensor Tracking: Advanced Applications, Y. Bar-Shalom, Ed. Artech House, 1990, ch. 3.