Skip to content

rtk-rs/rt-navi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT-NAVI

rust crates.io crates.io

License

rt-navi is our real-time navigation application. It proposes interfaces to our GNSS-RTK solver and supports one U-Blox receiver, since Rust language offers great support for these devices.

If support for other devices appear, it should be easy to propose other interfaces.

rt-navi expects a single serial interface and currently does not manage several receivers.

Licensing

This application is part of the RTK-rs framework which is delivered under the Mozilla V2 Public license.

PPP / RTK

rt-navi offers direct/absolute navigation by default (also referred to as PPP).

An RTK option will be developped in near future.

Compilation

The U-Blox library (one of our dependency) is not compatible with --all-features, as we use compilation features to select the U-Blox protocol (read down below). So rt-navi is not compatible with this compilation mode, you have to select the features you are interested one by one.

Cross-compilation

rt-navi is compatible with cross-compilation, but it currently requires support of the std library.

Deployment

Activate $RUST_LOG to have more information. Use trace to unlock all traces.

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

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