Skip to main content

INSLIB

INSLIB

Python binding of INSLIB, a portable C11 library for 3D navigation state estimation: a 15/18-state error-state Kalman filter fusing IMU, GNSS, magnetometer, barometer and local position, plus standalone AHRS/ARS attitude filters and a baro/accel vertical channel, run side by side with automatic mode arbitration.

The wheel ships the compiled C library, the Python side is a thin ctypes layer over it, with no required dependencies.

Install

pip install inslib

Wheels exist for Linux x86_64, aarch64 and armv7l (64- and 32-bit Raspberry Pi OS included), Windows x64 and ARM64, and macOS Intel and Apple silicon. Anywhere else (a Pi Zero/1, for example), install from a checkout of the repository with pip install -e python/, which needs a C compiler.

The import name is INSLIB.

Quick start

Roll and pitch from nothing but an IMU (gyroscope and accelerometer), with the ARS attitude filter that runs inside every Navigator:

import math
import random
from INSLIB import Navigator

D2R = math.pi / 180.0

# Stand-in for a real sensor: an IMU resting at roll 10 deg, pitch -5 deg.
# Body frame FRD (front/right/down),
# accelerometer (acc) in m/s^2 (lying flat would read 0, 0, -9.81),
# gyroscope (gyr) in rad/s.
# A little noise is added here, like a real sensor.
def read_imu():
    r, p, g = 10.0 * D2R, -5.0 * D2R, 9.81
    acc = (g * math.sin(p), -g * math.sin(r) * math.cos(p),
           -g * math.cos(r) * math.cos(p))
    acc = [a + random.gauss(0.0, 0.02) for a in acc]
    gyr = [random.gauss(0.0, 0.002) for _ in range(3)]
    return acc, gyr

random.seed(1)
nav = Navigator()

dt = 0.01                                  # 100 Hz simulated data
for k in range(1, 501):                    # Simulate for 5 s
    acc, gyr = read_imu()
    nav.imu(int(k * dt * 1e6), dt, acc=acc, gyr=gyr)
    nav.update()                           # Process data
    rpy = nav.rpy_ars()                    # Get [roll, pitch, yaw] in rad
    if rpy:
        if k % 100 == 0:
            print("t %.0f s  roll %6.2f deg  pitch %6.2f deg"
                  % (k * dt, rpy[0] / D2R, rpy[1] / D2R))

It prints:

t 1 s  roll   9.97 deg  pitch  -4.98 deg
t 2 s  roll  10.00 deg  pitch  -5.01 deg
t 3 s  roll  10.03 deg  pitch  -5.02 deg
t 4 s  roll  10.03 deg  pitch  -5.00 deg
t 5 s  roll  10.04 deg  pitch  -4.99 deg

For your own sensor, replace read_imu() and pass its real time stamps. More sensors are one call each: GNSS for position and velocity, a magnetometer for a north-referenced heading, a barometer for height. The Python tutorial shows how.

Conventions: body frame FRD, navigation frame NED, Hamilton quaternion [w, x, y, z], time in int64 microseconds, angles in radians.

Documentation

The replay, post-processing GUI and calibration tools live in the repository's tools/ directory, not in this package.

License

AGPL-3.0-or-later.

Metadata

Release files for INSLIB 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for INSLIB 1.4.0
File Actions
inslib-1.4.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details for inslib-1.4.0-py3-none-win_arm64.whl
inslib-1.4.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for inslib-1.4.0-py3-none-win_amd64.whl
inslib-1.4.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for inslib-1.4.0-py3-none-musllinux_1_2_x86_64.whl
inslib-1.4.0-py3-none-musllinux_1_2_armv7l.whl Python 3 none Linux musl 1.2+ ARMv7l Details for inslib-1.4.0-py3-none-musllinux_1_2_armv7l.whl
inslib-1.4.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for inslib-1.4.0-py3-none-musllinux_1_2_aarch64.whl
inslib-1.4.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for inslib-1.4.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
inslib-1.4.0-py3-none-manylinux_2_27_armv7l.manylinux_2_31_armv7l.whl Python 3 none Linux glibc 2.31+ ARMv7l, Linux glibc 2.27+ ARMv7l Details for inslib-1.4.0-py3-none-manylinux_2_27_armv7l.manylinux_2_31_armv7l.whl
inslib-1.4.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for inslib-1.4.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
inslib-1.4.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for inslib-1.4.0-py3-none-macosx_11_0_arm64.whl
inslib-1.4.0-py3-none-macosx_10_13_x86_64.whl Python 3 none macOS 10.13+ x86-64 Details for inslib-1.4.0-py3-none-macosx_10_13_x86_64.whl

Total release size: 1.5 MB

Release files / inslib-1.4.0-py3-none-win_arm64.whl

Download URL inslib-1.4.0-py3-none-win_arm64.whl
Size 140.2 kB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
389416b568d625532514e5b5c6ced81ee78e8cab5ccdb14f1b0c2050985bb9a1
BLAKE2b-256 checksum
How to use checksums
79edfaee9f21bf461752c75c77fbefc757a63ac4c14af7725b898277daa29538
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-win_amd64.whl

Download URL inslib-1.4.0-py3-none-win_amd64.whl
Size 179.1 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
20395dff0bda825bf10051d5f884053ea735f414b78643e04627c076669c1c42
BLAKE2b-256 checksum
How to use checksums
9b0158c16c2052bdded78b69c10ae2a6d642ead8dfce9ba53b737a317abbb6eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-musllinux_1_2_x86_64.whl

Download URL inslib-1.4.0-py3-none-musllinux_1_2_x86_64.whl
Size 156.6 kB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a706fad3423344f26bb9389ebdc6663e508516fd33fe32a3a95235f9cd47af33
BLAKE2b-256 checksum
How to use checksums
5cbeb82871864f045bf04f36d7e7f4ef88d2f37c0757762f819a8cb4fffedb41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-musllinux_1_2_armv7l.whl

Download URL inslib-1.4.0-py3-none-musllinux_1_2_armv7l.whl
Size 147.8 kB
Tags Linux musl 1.2+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
5884a85a81a8c5764581353a421faf11145d3fd5f77c09a8d851d5c1c04f9326
BLAKE2b-256 checksum
How to use checksums
b439e5e79540f7f3f744747189d5aef72fdddb49fd42deaf2540d0258d30a6eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-musllinux_1_2_aarch64.whl

Download URL inslib-1.4.0-py3-none-musllinux_1_2_aarch64.whl
Size 155.3 kB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
0554943ffc6ff1b44005dd6d43faea084fe201ae7e110b67a8cace9df69a7b02
BLAKE2b-256 checksum
How to use checksums
5cafa78c6024fb54fa22bd7d209d74c1ef02b64f2804ca5eac2477bde2e87c96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL inslib-1.4.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 156.2 kB
Tags Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
52bfb815d8155d10346f64c8e5c562cde6894ff89b3fb292e960f017cf509549
BLAKE2b-256 checksum
How to use checksums
e9699335c1c4a31e4bc7fa14f0b090cc34dcf2dde10707da14422359cdf02949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-manylinux_2_27_armv7l.manylinux_2_31_armv7l.whl

Download URL inslib-1.4.0-py3-none-manylinux_2_27_armv7l.manylinux_2_31_armv7l.whl
Size 148.6 kB
Tags Linux glibc 2.27+ ARMv7l Linux glibc 2.31+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
40b470a23dbb260ac42c30d0196ca1745f461f4679a0759491a789054f49915e
BLAKE2b-256 checksum
How to use checksums
2af9b48ae0e75f454b732af409d21578e661f284e576d964bf8871497e8452a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL inslib-1.4.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 153.2 kB
Tags Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
b932474e0d270aaad820699b28fd36312859f74e7315f2ad12ad88a450191ba6
BLAKE2b-256 checksum
How to use checksums
c84da650fc212d6bb15c9d1e15a49b30bdbdd637278cd3f3e1b274f11700fcfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-macosx_11_0_arm64.whl

Download URL inslib-1.4.0-py3-none-macosx_11_0_arm64.whl
Size 145.6 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
82e94d97e0ed6a3610ab5042b9416aaa7c25dbc537dfdaddb7f9aa2177aa994f
BLAKE2b-256 checksum
How to use checksums
b9d227530cf84f671a62e86a1849f52fbf62cfe88c7c2e2416945dc6dceb0443
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / inslib-1.4.0-py3-none-macosx_10_13_x86_64.whl

Download URL inslib-1.4.0-py3-none-macosx_10_13_x86_64.whl
Size 153.1 kB
Tags Python 3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
49537be3f0fe5c9dab4fdd1a1f49bdb2650c1f5385ce86a58c55cdc5c6d6089e
BLAKE2b-256 checksum
How to use checksums
4b7c5de0e07074f4f25b878344bfc8a330328f32e74b551fa79946260acd204f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Security for INSLIB 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 10 files in this release have been uploaded with provenance metadata.

Select from 10 files

Attestation for inslib-1.4.0-py3-none-win_arm64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.4.0 This release

10 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page