Skip to content

nav-solutions/rt-navi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT-NAVI

rust crates.io crates.io

License

rt-navi is a proof-of-concept that real-time application of our P.V.T solver is possible and gives correct results. To do that, we use a U-Blox GNSS receiver that we operate in "raw/manual" mode and serves mostly as a measurement system that we feed to the solver. The solver resolves does all the work and we eventually compare the manual performance to the firmware. We use U-Blox receivers because they are well documented, well supported and fully capable, that many not apply to other manufacturers.

rt-navi is not particularly tied to the receiver, if support for other ever become feasible, we may give it a try.

rt-navi expects a single serial interface and currently does operate with a single receiver.

Licensing

This application is part of the Nav-solutions framework and is licensed under Mozilla V2 Public license.

PPP / RTK

rt-navi deploys PPP navigation (direct/absolute) by default. A RTK proof of concept will be developed in near future.

The PPP navigation mode is compatible with any U-Blox supporting the RAW messaging. RTK is feasible starting from F9P serie.

Getting started

Install the latest release from the official portal:

cargo install rt-navi

Build from source

Download our latest application and build it manually. rt-navi can then be cross-compiled but it requires the std library.

git clone https://github.com/nav-solutions/rt-navi
cargo build -r

rt-navi cannot be compiled with --all-features (currently).
We use features to select the U-Blox protocol revision, and you can only select one at a time. The default UBX protocol to be compiled is v23.

In this example, we switch to more recent protocol:

cargo build --no-default-features --ubx31

List of supported revisions:

  • V14
  • V23
  • V27
  • V31

Deployment

Use -p,--port to specify the serial interface to the U-Blox.

rt-navi uses the $RUST_LOG environment variable to define its logging behavior. Use trace to unlock all traces.

RUST_LOG=debug rt-navi -p /dev/ttyACM0

[2025-05-11T09:31:21Z INFO  anise::almanac] Loading bytes as DAF/SPK
[2025-05-11T09:31:21Z DEBUG rt_navi] deployed with User {
        profile: Some(
            Pedestrian,
        ),
        clock_sigma_s: 0.001,
    } 

[...]
[2025-05-11T09:31:21Z DEBUG rt_navi] deployed with Config {
        timescale: GPST,
        method: SPP,
        user: User {
            profile: None,
            clock_sigma_s: 0.001,
        },

[...]
[2025-05-11T09:31:21Z INFO  rt_navi] solver deployed
[2025-05-11T09:31:21Z DEBUG rt_navi] deploying ublox..
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] UBX-RXM-RAWX
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] UBX-NAV-PVT
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] UBX-RXM-SFRBX
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] UBX-RXM-RATE
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] UBX-MON-VER
[2025-05-11T09:31:21Z DEBUG rt_navi::ublox] ublox: hw-version: 00080000, sw-version: EXT CORE 3.01 (111141) , extensions: ["ROM BASE 2.01 (75331)", "FWVER=TIM 1.10", "PROTVER=22.00", "MOD=NEO-M8T-0", "FIS=0xEF4015 (100111)", "GPS;GLO;GAL;BDS", "SBAS;IMES;QZSS"]

Soon the navigation messages gathering starts, and so does the measurement collection.
When both align and everything becomes feasible, the solver naturally consumes all of this data and we obtain a P.V.T:

U-Blox specificity

rt-navi currently requires a U-Blox receiver to operate. We offer several compilation options to select the U-Blox protocol ("protocol" version being very important, because it actually defines which receiver you can operate!):

  • ubx_proto23 v23 (Default, for M8 series)
  • ubx_proto14 v14
  • ubx_proto27 v27 (for F9 series)
  • ubx_proto31 v31 (for newer series)

P.V.T solutions

TODO

Initial fix

We offer a few options to specify initial x, y and z coordiates. This reduces the constraint to initial fix and make it easier to obtain. We recommend using this only if you have a rather good idea.

rt-navi -p /dev/ttyACM0 --coords-ecef-km=1000.0,2000.0,3000.0

Ecosystem

rt-navi uses the combination of several major crates to achieve its objectives

About

High Precision Navigation in Real Time

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages