|
| 1 | +// Copyright (c) 2020-2021 Swift Navigation Inc. |
| 2 | +// Contact: Swift Navigation <dev@swiftnav.com> |
| 3 | +// |
| 4 | +// This source is subject to the license found in the file 'LICENSE' which must |
| 5 | +// be be distributed together with this source. All other rights reserved. |
| 6 | +// |
| 7 | +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, |
| 8 | +// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED |
| 9 | +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. |
| 10 | +//! `swiftnav-rs` is a library that implements GNSS utility functions to perform |
| 11 | +//! position estimations. The data used by `swiftnav-rs` typically comes from GNSS |
| 12 | +//! receiver chips as raw observation and ephemeris data. `swiftnav-rs` is more of |
| 13 | +//! a "bring your own algorithm" library, it provides a bunch of functionality that |
| 14 | +//! is useful when processing raw GNSS data, but it provides only limited position |
| 15 | +//! estimation capabilities. Each module encompasses a single set of functionality, |
| 16 | +//! and they are meant to be pretty self-explanatory for developers familiar with |
| 17 | +//! GNSS processing. |
| 18 | +//! |
1 | 19 | //! GNSS systems are used to estimate the location of the receiver by determining
|
2 |
| -//! the distance between the receiver and several satelites. The satellites send |
| 20 | +//! the distance between the receiver and several satellites. The satellites send |
3 | 21 | //! out precisely timed periodic messages and the receiver measures the delay
|
4 | 22 | //! of those messages. Knowing the location of the satellites at the time of
|
5 | 23 | //! transmission and the delays of the messages the receiver is able to determine
|
6 | 24 | //! the location of itself in relation to the satellites.
|
7 | 25 | //!
|
8 |
| -//! Libswiftnav is a library that implements GNSS utility functions to perform |
9 |
| -//! position estimations. The data used by libswiftnav typically comes from GNSS |
10 |
| -//! reciever chips as raw observation and ephemeris data. |
| 26 | +//! `swiftnav-rs` does not provide any functionality for communicating with |
| 27 | +//! receivers made by Swift Navigation, or any manufacturer. |
| 28 | +//! [libsbp](https://github.com/swift-nav/libsbp) is the library to use if you |
| 29 | +//! want to communicate with receivers using Swift Binary Protocol (SBP). |
| 30 | +//! |
| 31 | +//! ## Time |
| 32 | +//! Time is a very important aspect of GNSS. `swiftnav-rs` defaults to representing |
| 33 | +//! all times as GPS times. It provides the ability to manipulate GPS time stamps, |
| 34 | +//! as well as means to convert a GPS time stamp into various other time bases |
| 35 | +//! (GLONASS time, UTC, MJD). |
| 36 | +//! |
| 37 | +//! ## Coordinates |
| 38 | +//! Several different coordinate types have representations and the ability to |
| 39 | +//! convert between them. Earth centered earth fixed (ECEF), Latitude longitude and |
| 40 | +//! height (both in radians and degrees), and Azimuth and elevation coordinates are |
| 41 | +//! available. |
| 42 | +//! |
| 43 | +//! ## Ephemeris |
| 44 | +//! Decoding and evaluation of broadcast ephemeris for all major GNSS constellations |
| 45 | +//! is made available. You are able to calculate the satellite position at a |
| 46 | +//! particular point in time in several different coordinates. |
11 | 47 | //!
|
12 |
| -//! Libswiftnav does not provide any functionality for communicating with Swift |
13 |
| -//! Navigation or any other receivers. See [libsbp](https://github.com/swift-nav/libsbp) |
14 |
| -//! to communicate with receivers using Swift Binary Protocol (SBP). |
| 48 | +//! ## Troposphere and Ionosphere |
| 49 | +//! Two major sources of signal error in GNSS are the troposphere and ionosphere. |
| 50 | +//! `swiftnav-rs` provides the ability to decode and use the broadcast Klobuchar |
| 51 | +//! ionosphere model. An implementation of the UNM3m troposphere model is also |
| 52 | +//! provided. |
15 | 53 | //!
|
| 54 | +//! ## Single epoch position solver |
| 55 | +//! A simple least squares position solver is also included. This allows you to |
| 56 | +//! get an approximate position with GNSS measurements from a single point in time. |
| 57 | +//! It uses a least squares algorith, so no state is maintained between solves. |
| 58 | +//! This can be used to seed your own position estimation algorithm with a rough |
| 59 | +//! starting location. |
16 | 60 |
|
17 | 61 | mod c_bindings;
|
18 | 62 | pub mod coords;
|
|
0 commit comments