Skip to content

Commit f350228

Browse files
authored
Merge pull request #32 from jbrodovsky/joss
JOSS publication and bug fixes
2 parents 939698c + 0622c2c commit f350228

13 files changed

Lines changed: 1318 additions & 2410 deletions

File tree

.github/workflows/draft-pdf.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Draft PDF
2+
on: [push]
3+
4+
jobs:
5+
paper:
6+
runs-on: ubuntu-latest
7+
name: Paper Draft
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v4
11+
- name: Build draft PDF
12+
uses: openjournals/openjournals-draft-action@master
13+
with:
14+
journal: joss
15+
# This should be the path to the paper within your repo.
16+
paper-path: paper.md
17+
- name: Upload
18+
uses: actions/upload-artifact@v4
19+
with:
20+
name: paper
21+
# This is the output path where Pandoc will write the compiled
22+
# PDF. Note, this should be the same directory as the input
23+
# paper.md
24+
path: paper.pdf

Cargo.lock

Lines changed: 38 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "strapdown-rs"
33
authors = ["James Brodovsky"]
4-
version = "0.1.1"
4+
version = "0.2.0"
55
edition = "2024"
66
description = "A toolbox for building and analyzing strapdown inertial navigation systems."
77
license = "MIT"
@@ -25,7 +25,7 @@ path = "src/strapdown.rs"
2525

2626
[dependencies]
2727
angle = "0.5.0"
28-
chrono = "0.4.41"
28+
chrono = {version = "0.4.41", features = ["serde"] }
2929
csv = "1.3.1"
3030
nalgebra = "0.33.2"
3131
nav-types = "0.5.2"

core/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,7 @@ In addition to the core library there is a basic command line tool for evaluatin
3838

3939
1. **Open Loop**: This mode processes a set of inertial measurements (IMU data) and outputs the estimated position, velocity, and orientation over time in an open loop INS configuration; i.e. dead reckoning. This can be used to build an error state filter on top of or to develop a drift trajectory to compare your INS implementation to.
4040
2. **Closed Loop**: This mode processes a set of inertial measurements (IMU data) and outputs the estimated position, velocity, and orientation over time in a closed loop INS configuration; i.e. with aiding from an external source such as GNSS or a visual odometry system. This specific implementation uses a three-state position measurement (latitude, longitude, and altitude) to correct the INS state. This can be used to compare alternative or complimentary navigation aides to GPS-aided performance.
41+
42+
## Installation
43+
44+
There is both a library of navigation functionality and a command line tool for running dead-reckoning and cannonical closed-loop INS simulations. The library can be added to your Rust project as a dependency in your `Cargo.toml` file: `cargo add strapdown-rs`. The command line tool can be installed via `cargo install strapdown-rs`.

core/src/earth.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ pub const MAGNETIC_REFERENCE_RADIUS: f64 = 6371200.0; // meters, reference radiu
7878
/// Earth's magnetic field strength ($B_0$), teslas (2025, International Geomagnetic Reference Field)
7979
pub const MAGNETIC_FIELD_STRENGTH: f64 = 3.12e-5; // T, reference mean magnetic field strength
8080
/// Rough conversion factor from meters to degrees for latitude/longitude via nautical miles (1 degree ~ 60 nautical miles; 1 nautical mile ~ 1852 meters)
81-
pub const METERS_TO_DEGREES: f64 = 60.0 / 1852.0;
81+
pub const METERS_TO_DEGREES: f64 = 1.0 / (60.0 * 1852.0);
8282
/// Rough conversion factor from degrees to meters for latitude/longitude via nautical miles (1 degree ~ 60 nautical miles; 1 nautical mile ~ 1852 meters)
83-
pub const DEGREES_TO_METERS: f64 = 1852.0 / 60.0;
83+
pub const DEGREES_TO_METERS: f64 = 60.0 * 1852.0;
8484

8585
/// Convert a three-element vector to a skew-symmetric matrix
8686
///

0 commit comments

Comments
 (0)