Higher Education & Research
Relative numbers nobody could use, referenced to magnetic north
Autonomous vehicle testing was producing position and rotation relative to wherever the vehicle happened to start, which made every run internally consistent and impossible to compare against any other. Referencing the whole system to magnetic north turned it into data a person could reason about, and it is still collecting.
- Client
- A university-affiliated autonomous vehicle test range
- Duration
- Ongoing, still in service
- Team
- 1 engineer, with the platform vendor
- Year
- 2024–present
The situation
What we walked into.
There was no acquisition system. Autonomous vehicle testing was generating exactly the data the program needed and none of it was being captured in a form anybody could analyze afterward.
What the vehicle platform did report was relative: position and rotation expressed against wherever that vehicle happened to power on. Each run was therefore internally consistent and mutually incomparable: two runs of the same maneuver produced two coordinate frames, and no amount of post-processing recovers a shared reference that was never recorded.
The platform itself was a third-party device, built and maintained by its vendor, which meant the work had to be done alongside somebody else’s firmware rather than inside our own.
Approach
How we sequenced it.
Each step had to be independently valuable. That constraint is what let the client stop at any point without being stranded.
- Step 01
Establish a common reference
Magnetic north, taken as the common frame every run is expressed against. That single decision is what converts a set of unrelated coordinate frames into a dataset: runs become comparable to each other, to the map, and to the physical range they happened on.
- Step 02
Build the acquisition path
Capture, timestamping and storage for data that had previously existed only in flight. The constraint throughout was that a test run cannot be repeated cheaply, so a dropped sample is a lost run rather than an inconvenience.
- Step 03
Work the vendor’s defects rather than around them
The platform had PWM faults that surfaced under real test conditions. We diagnosed them and contributed code to the vendor rather than building compensation into our own layer, because a workaround for somebody else’s bug is a permanent liability that nobody remembers is there.
- Step 04
Hand over something that keeps running
The system was left operable by the people who use it, which is the reason it is still in service rather than the reason it was delivered on time.
What was built
The parts that mattered.
- No prior system existed; the data was being generated and discarded.
- Relative-to-startup coordinates cannot be reconciled after the fact; the reference has to be recorded at capture time.
- Vendor firmware defects were fixed upstream rather than compensated for locally.
- Still acquiring, years after handover.
Results
What changed, and how we know.
None of these is a number, because none of them should be: they are states of the delivered system rather than measurements of it. Each says what it is and what it rests on.
- Referenced to magnetic north
- One frame
- Never decommissioned
- Still in service
- Vendor defects fixed at source
- Upstream
Built with
Services involved
More work
Related engagements.
- 2023–202520 months, four phases
One codebase for the public site and the platform behind it
A public-facing site and an internal student-tracking platform, built years apart on stacks nobody still owned. We consolidated them into one application with one design system and one authorization model, and shipped it without a production regression.
Read the case study- Production regressions across the release window
- 0
- Unit and integration tests at handover
- 600+
- 2024About four weeks
The scanner read every barcode except theirs
They had no way to say who was holding what, and a barcode scanner that would not decode their own label format; the capability was licensed separately and they had declined to buy it. Writing the decoder in C cost less than the license and made the rest of the system possible.
Read the case study- Trackable, in and out, by holder
- Every item
- Bought to read their own labels
- No license
Next step
Tell us what’s breaking.
Forty-five minutes, no charge, no deck. We’ll tell you what we’d do, what it would likely cost, and whether the problem is in the hardware at all.
- Phone
- (214) 723-2510
- Reply
- A person replies, not a sequence: within one business day, from someone who would be on the engagement.