Metadata-Version: 2.4
Name: riann
Version: 0.1.3
Summary: A Neural Network for attitude estimation using IMU data
Home-page: https://github.com/daniel-om-weber/riann
Author: Daniel Oliver Martin Weber
Author-email: daniel.om.weber@gmail.com
License: Apache Software License 2.0
Keywords: AHRS,Neural Network,Attitude,IMU
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: onnxruntime
Requires-Dist: packaging
Provides-Extra: dev
Requires-Dist: nbdev>2; extra == "dev"
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: h5py; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# RIANN (Robust IMU-based Attitude Neural Network)


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## What is RIANN?

RIANN is a lightweight neural network implementation for estimating
orientation (attitude) from inertial measurement unit (IMU) data. It
processes accelerometer and gyroscope readings to provide
quaternion-based attitude estimation, optimized for real-time
applications.

## Key Features

- Fast and accurate quaternion-based attitude estimation
- Optimized for real-time processing with state preservation
- Supports both batch processing and step-by-step integration
- Robust against sensor noise and motion artifacts
- Simple Python API with minimal dependencies

## Installation

``` bash
pip install riann
```

or from source

``` bash
git clone https://github.com/daniel-om-weber/riann.git
cd riann
pip install -e .
```

## Quickstart

``` python
import numpy as np
from riann.riann import RIANN

# Initialize RIANN
riann = RIANN()

# Prepare IMU data
acc = np.ones((100, 3))  # Accelerometer data (100 samples, XYZ axes)
gyr = np.zeros((100, 3)) # Gyroscope data (100 samples, XYZ axes)
fs = 200                 # Sampling rate in Hz

# Get attitude quaternions (w,x,y,z)
attitude = riann.predict(acc, gyr, fs)
print(f"Output shape: {attitude.shape}")  # (100, 4) - 100 unit quaternions
```

    Output shape: (100, 4)
