Your Cart

The Go-To Supermarket for Affordable LiDAR Sensors!

Email:info@lidarstar.com

GNSS receiver and antenna on a robotics integration bench

RTK Fixed and Float Look the Same in ROS: Audit Fix Status and Covariance Mapping

A receiver log can distinguish RTK fixed from RTK float while a ROS visualization shows the same fix label for both. Start by tracing the conversion rather than assuming that the receiver stopped reporting quality. A generic ROS navigation status can carry less information than the receiver’s original solution record.

The RTK float fixed NavSatStatus mapping audit has a specific goal: preserve enough receiver evidence to decide which measurements an application may use. Read the raw quality value, the deployed driver’s mapping, covariance provenance and the downstream admission rule together. A status flag alone does not establish position accuracy or justify an application’s acceptance threshold.

This article uses the inspected ROS 2 development branch of nmea_navsat_driver as a concrete example. Confirm its behavior against the exact installed revision and the receiver’s own output specification. Different drivers, binary protocols and receiver modes may expose different information. Do not change the meaning of a standard message constant to make a display distinguish two modes.

Generic GNSS receiver enclosure and antenna connected on a tidy integration bench
Generated illustration of receiver integration hardware; no actual receiver status or performance is shown.

Keep the original receiver quality record

Begin with a paired recording containing the original receiver messages and the ROS fixes produced from them. Include model, firmware, output configuration, driver version, launch parameters and timestamp policy. Identify whether the application receives GGA-derived fixes, a binary position solution or an upstream fused estimate. Similar topic names do not establish equivalent quality semantics.

Consult the actual model’s field definitions. The Trimble R780 GGA reference, for example, lists quality values associated with fixed and float modes, but also associates those values with additional services. That is a reason to retain output-mode context rather than treating a numeric GGA quality value as a universal receiver-independent classification.

Preserve enough native evidence to match each relevant transition to a ROS message. If the receiver provides correction age, solution flags or additional validity information, document their definitions and availability. Missing fields must remain missing. A screenshot saying fixed is insufficient to establish which measurement reached the localization node at the same time. The sensor recording guide provides useful principles for retaining original timing alongside processed exports.

Find where the distinction is collapsed

The NavSatStatus definition contains broad fix and augmentation categories rather than separate RTK fixed and float constants. Its service field identifies satellite systems, not ambiguity resolution. A display based only on these fields cannot reconstruct information that the driver did not preserve.

In the inspected ROS 2 nmea_navsat_driver implementation, GGA quality 4 and 5 both map to STATUS_GBAS_FIX. Their default estimated-error parameters differ. The driver uses HDOP with default or GST-derived estimates to construct covariance. Those choices describe conversion logic, not independent validation of receiver accuracy. Check the mapping and parameter values in the deployed revision.

Follow the input mode too. Trace the driver’s parser field map to identify which original field becomes fix_type and which sentences are supported. Then inspect the active publishing branch. A receiver output setting and a driver setting that disagree can remove useful detail before any visualizer or estimator sees it.

Write a small mapping sheet for your installation. For each observed native state, record the resulting ROS status, covariance type and any separate diagnostic output. Mark unobserved states as untested. Do not populate an apparently complete table by guessing how a different firmware or driver release will behave. Version-specific source inspection and paired observations should agree before the mapping is accepted.

Inspect covariance as a separate data product

The NavSatFix covariance contract uses an East-North-Up tangent frame and square-meter units, and distinguishes unknown, approximated and known covariance forms. Read the covariance-type field alongside the numeric matrix. A diagonal number without its origin and units is not a sufficient quality policy.

If the receiver supplies GST, inspect its actual output and timing. The Trimble GST reference identifies position error statistics, including latitude, longitude and height standard deviations. These fields are estimates, with documented units and semantics; they are not a surveyed error measurement for the robot’s current location.

Determine whether values came from a current receiver estimate, a driver default, a derived approximation or an earlier message retained in memory. Check how the installed implementation handles a gap in the error-statistics stream. A continuously published fix does not prove its uncertainty input was refreshed for that epoch. Reproduce that behavior with a controlled replay rather than inferring it from a smooth covariance plot.

Do not reverse-engineer fixed versus float from a single covariance threshold. Driver parameters can change, receiver estimates can overlap and a conversion can alter the numbers. Keep the native solution classification separately when the application requires it. The sensor-fusion overview helps separate measurement interpretation from the estimator that later assigns it weight.

Define an explicit quality admission rule

Evidence state Integration question Record the decision
Generic augmented fix only Does the task require a distinction that this message cannot supply? Required native field or documented limitation
Native quality present and current Do its model-specific semantics meet the task requirement? Accepted state set and source manual revision
Covariance approximated Which defaults and conversion produced it? Parameter values, units and provenance
Quality record missing or stale What behavior is allowed while evidence is unavailable? Timeout, rejection or documented degraded mode
Quality changes during a run Does admission change at the matching measurement epoch? Paired native and ROS transition evidence

Set accepted states, freshness limits and any uncertainty criteria from the application’s engineering requirements. Keep those decisions explicit and reviewable. A deployment that can continue using another localization source may have a different degraded-mode policy from a task that relies on absolute positioning. Neither policy should silently treat an unknown quality state as a previously good one.

Outdoor robot with a GNSS antenna parked in an open test lane
Generated illustration of a controlled integration-test location; no fixed or float solution is implied.

Test transitions and missing evidence

Exercise the conversion using retained native records containing the relevant states and gaps. Compare input classification, ROS status, covariance provenance and the downstream admission decision on one time axis. Include startup before the first quality record, a transition away from the accepted state and loss of the quality stream. Keep the platform stationary or use an approved controlled test procedure when checking behavior on hardware.

Freshness deserves its own observation. A consumer should implement the documented missing-quality policy even if another topic continues to publish. The stale-data watchdog discussion illustrates the general distinction between receiving messages and receiving current usable evidence. Apply the principle with the GNSS producer’s actual timestamp semantics, rather than copying a LiDAR timeout value.

Once quality admission is correct, investigate remaining position discrepancies by their own causes. Use the heading-reference workflow when geographic and LiDAR tracks rotate relative to each other. A fixed classification cannot establish a correct world transform, mounting geometry or map reference. Conversely, correcting a transform will not restore native quality information already discarded by a driver.

Frequently asked integration questions

Should I add new fixed and float values to NavSatStatus?

Do not invent meanings for existing constants or silently change a shared interface. If native quality is required, use a documented receiver-specific message or a separate diagnostic interface with clear timing and validity semantics. Ensure every consumer knows which information remains in the standard fix and which requires the additional record.

Can a smaller covariance prove the solution is fixed?

No. It may reflect a configured default or a receiver estimate. Verify the native state and the covariance construction separately. Position accuracy still requires appropriate independent evidence for the task.

What evidence should an integrator provide?

Supply the observed mapping sheet, native and ROS records, installed revisions, parameter values and the quality admission rule. The reproducible support bundle guide gives a useful structure. A successful audit explains exactly which distinction survives each conversion and demonstrates that missing evidence produces the intended behavior.

Leave a Reply

Your email address will not be published. Required fields are marked *

Product Enquiry