Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
d9c4269
docstring
vegard-solum-4ss Nov 6, 2025
f0bf317
docstring
vegard-solum-4ss Nov 6, 2025
f1963f7
some changes
vegard-solum-4ss Nov 7, 2025
196d6d0
some changes
vegard-solum-4ss Nov 7, 2025
1a562f1
small fix
vegard-solum-4ss Nov 7, 2025
4103cb6
move euler from rot_matrix to method
vegard-solum-4ss Nov 7, 2025
801e0c2
zyz convention
vegard-solum-4ss Nov 7, 2025
d519c54
version 2
vegard-solum-4ss Nov 7, 2025
fd5c5dc
some changes
vegard-solum-4ss Nov 7, 2025
dc70269
some changes
vegard-solum-4ss Nov 7, 2025
4849d09
simplify rot matrix from euler xyx
vegard-solum-4ss Nov 7, 2025
e59baea
some changes
vegard-solum-4ss Nov 7, 2025
d1fa86e
style
vegard-solum-4ss Nov 7, 2025
ee7438d
comment
vegard-solum-4ss Nov 7, 2025
6db8baf
delete old code
vegard-solum-4ss Nov 7, 2025
4a9c02a
docstring
vegard-solum-4ss Nov 7, 2025
5dbafd6
some changes
vegard-solum-4ss Nov 7, 2025
0005280
version 3
vegard-solum-4ss Nov 9, 2025
fd12f44
small fix
vegard-solum-4ss Nov 9, 2025
08af17c
some changes
vegard-solum-4ss Nov 9, 2025
c1cb13c
some changes
vegard-solum-4ss Nov 9, 2025
e423ce0
move to simulate file
vegard-solum-4ss Nov 9, 2025
5975a35
docstrings
vegard-solum-4ss Nov 9, 2025
ffaffff
move to simulate modue
vegard-solum-4ss Nov 9, 2025
96acdc7
docstring
vegard-solum-4ss Nov 9, 2025
f213f6a
small fix
vegard-solum-4ss Nov 9, 2025
3463043
rename to sinesinal
vegard-solum-4ss Nov 9, 2025
91559ce
some changes
vegard-solum-4ss Nov 9, 2025
a99ce72
docstring
vegard-solum-4ss Nov 9, 2025
243ee39
some changes
vegard-solum-4ss Nov 9, 2025
06f96af
docstring
vegard-solum-4ss Nov 9, 2025
3499975
docstring
vegard-solum-4ss Nov 9, 2025
9b79ee1
docstring
vegard-solum-4ss Nov 9, 2025
fd92b05
allow float angles
vegard-solum-4ss Nov 9, 2025
4d269be
IMUSimulator
vegard-solum-4ss Nov 9, 2025
bc154a3
IMU simulator
vegard-solum-4ss Nov 9, 2025
d950709
style
vegard-solum-4ss Nov 9, 2025
27eaa1e
init
vegard-solum-4ss Nov 9, 2025
a4a25c7
some changes
vegard-solum-4ss Nov 9, 2025
611f7b6
some chnages
vegard-solum-4ss Nov 9, 2025
48cf0a9
rename to DOFSignal
vegard-solum-4ss Nov 9, 2025
50a5d23
rename to dofsignal
vegard-solum-4ss Nov 10, 2025
d2e1a3d
dont return time in signal
vegard-solum-4ss Nov 10, 2025
b5f9d30
comments
vegard-solum-4ss Nov 10, 2025
b9f5802
delete old code
vegard-solum-4ss Nov 10, 2025
f9b26cc
dosctring
vegard-solum-4ss Nov 10, 2025
7b18c76
docstring
vegard-solum-4ss Nov 10, 2025
5974566
some changes
vegard-solum-4ss Nov 10, 2025
b71b1aa
rename to dof
vegard-solum-4ss Nov 10, 2025
c591c3a
rename to rampup
vegard-solum-4ss Nov 10, 2025
e5ce1da
some changes
vegard-solum-4ss Nov 10, 2025
2cd937b
basedof
vegard-solum-4ss Nov 10, 2025
fac7528
docstrings
vegard-solum-4ss Nov 10, 2025
dffef74
simplify init isinstance
vegard-solum-4ss Nov 10, 2025
6d0da88
small simplification
vegard-solum-4ss Nov 10, 2025
034c1d5
docstring
vegard-solum-4ss Nov 11, 2025
1d36c5a
simplify typing
vegard-solum-4ss Nov 11, 2025
1220f43
small fix
vegard-solum-4ss Nov 11, 2025
7b972e5
add ramp up to init
vegard-solum-4ss Nov 11, 2025
31cba87
freq_hz
vegard-solum-4ss Nov 11, 2025
8242533
reformulate DOF to take time
vegard-solum-4ss Nov 11, 2025
1b56a09
docstring
vegard-solum-4ss Nov 11, 2025
934ee7d
add base class to init
vegard-solum-4ss Nov 11, 2025
b7e07bd
delete coning code
vegard-solum-4ss Nov 13, 2025
54b3726
delete coning code
vegard-solum-4ss Nov 13, 2025
0beaeb3
Merge branch 'main' into simulate-coning
vegard-solum-4ss Dec 18, 2025
0777fcc
test DOF
vegard-solum-4ss Dec 19, 2025
9f1da49
test constant dof
vegard-solum-4ss Dec 19, 2025
fb4a891
testsine dof
vegard-solum-4ss Dec 19, 2025
f8a8213
test sine
vegard-solum-4ss Dec 19, 2025
df92bd3
more sine tests
vegard-solum-4ss Dec 19, 2025
5cb3d93
test sine offset
vegard-solum-4ss Dec 19, 2025
ebf4fb1
test init
vegard-solum-4ss Dec 19, 2025
2182935
test linear ramp
vegard-solum-4ss Dec 19, 2025
36d51d9
remove linearramp
vegard-solum-4ss Dec 19, 2025
29fcb2c
test imusim init
vegard-solum-4ss Dec 19, 2025
320b33e
test loat
vegard-solum-4ss Dec 19, 2025
91f3049
test init float
vegard-solum-4ss Dec 19, 2025
a3685ae
test call
vegard-solum-4ss Dec 19, 2025
84b55ef
test w
vegard-solum-4ss Dec 19, 2025
19e9a9f
some changes to test
vegard-solum-4ss Dec 19, 2025
62f94b5
test call radians
vegard-solum-4ss Dec 19, 2025
f09111b
typing
vegard-solum-4ss Dec 19, 2025
2ff6422
docstring
vegard-solum-4ss Dec 19, 2025
edd1813
reorder sine params
vegard-solum-4ss Dec 19, 2025
f276bf8
dosctring
vegard-solum-4ss Dec 19, 2025
5bf32be
prep beat dof
vegard-solum-4ss Dec 19, 2025
aa8627c
implement beat methods
vegard-solum-4ss Dec 19, 2025
4a4db1b
style
vegard-solum-4ss Dec 19, 2025
408ca41
style
vegard-solum-4ss Dec 19, 2025
fa8e3bb
testiit default
vegard-solum-4ss Dec 19, 2025
d37360d
offset fix + test
vegard-solum-4ss Dec 19, 2025
141ed40
test dydt
vegard-solum-4ss Dec 19, 2025
78f0fe7
test call
vegard-solum-4ss Dec 19, 2025
f49cb76
refactor
vegard-solum-4ss Dec 19, 2025
1ce2c1d
small fix
vegard-solum-4ss Dec 19, 2025
a568c6d
style
vegard-solum-4ss Dec 19, 2025
7013fcc
update benchmark pure attitude beat to use new framework
vegard-solum-4ss Dec 19, 2025
860abcf
update bench pure att beat
vegard-solum-4ss Dec 19, 2025
4c85976
deprecation warning beat dof
vegard-solum-4ss Dec 19, 2025
c89b281
docstring
vegard-solum-4ss Dec 19, 2025
dbfff21
testchirp init
vegard-solum-4ss Dec 19, 2025
8e4e63a
test init default
vegard-solum-4ss Dec 19, 2025
962e3cc
update default beat freqs
vegard-solum-4ss Dec 19, 2025
a80c500
test y
vegard-solum-4ss Dec 19, 2025
a8ce4e4
test d2ydt2
vegard-solum-4ss Dec 19, 2025
dca7e3a
test call
vegard-solum-4ss Dec 19, 2025
dc5fc5b
rename fixture to beat
vegard-solum-4ss Dec 19, 2025
1768340
black
vegard-solum-4ss Dec 19, 2025
f9dce43
update chirp pure atti
vegard-solum-4ss Dec 19, 2025
180f672
update chirp full pva
vegard-solum-4ss Dec 19, 2025
063aa55
fix amp bug
vegard-solum-4ss Dec 19, 2025
0f2e280
tag old
vegard-solum-4ss Dec 19, 2025
f2073e8
old beat
vegard-solum-4ss Dec 19, 2025
6f7881e
warning
vegard-solum-4ss Dec 19, 2025
bd54c0e
fix phase bug
vegard-solum-4ss Dec 22, 2025
534fbb6
revert test atol
vegard-solum-4ss Dec 22, 2025
3c77ff0
black
vegard-solum-4ss Dec 22, 2025
43eb0b2
delete old benchmarks
vegard-solum-4ss Dec 22, 2025
2cf7943
docstring
vegard-solum-4ss Dec 22, 2025
77f4a02
docstring fix
vegard-solum-4ss Dec 22, 2025
ec32ae6
delete obsolete benchmark helper
vegard-solum-4ss Dec 22, 2025
bedf7bc
refactor beatsignal to use beatdof
vegard-solum-4ss Dec 22, 2025
f8198e7
fix default freq_hz False chirp
vegard-solum-4ss Dec 22, 2025
9b3de55
fix chirp default values
vegard-solum-4ss Dec 22, 2025
a17c346
delete obsolete imports
vegard-solum-4ss Dec 22, 2025
4d99a3c
delete commented out linear ramp
vegard-solum-4ss Dec 22, 2025
96a2335
update quickstart
vegard-solum-4ss Dec 22, 2025
9d65682
docs
vegard-solum-4ss Dec 22, 2025
863a07d
api ref
vegard-solum-4ss Dec 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/reference/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ API reference
noise.gauss_markov
noise.random_walk
noise.white_noise
simulate.BeatDOF
simulate.ChirpDOF
simulate.ConstantDOF
simulate.IMUSimulator
simulate.SineDOF
21 changes: 16 additions & 5 deletions docs/user_guide/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,28 @@ data from an IMU sensor, and ideally position and heading data from other aiding
sensors. If you do not have access to such data, you can generate synthetic
measurements using the code provided here.

Using the ``benchmark`` module, you can generate synthetic 3D motion data with ``smsfusion``.
For example, you can generate beating signals representing position, velocity and
attitude (PVA) degrees of freedom using :func:`~smsfusion.benchmark.benchmark_full_pva_beat_202311A`:
Using the :class:`~smsfusion.simulate.IMUSimulator` class in the ``simulate`` module,
you can generate synthetic 3D motion data and corresponding IMU accelerometer and
gyroscope measurements. For example, you can simulate beating motion:


.. code-block:: python

from smsfusion.benchmark import benchmark_full_pva_beat_202311A
from smsfusion.simulate import BeatDOF, IMUSimulator


sim = IMUSimulator(
pos_x=BeatDOF(0.5, phase=0.0, phase_degrees=True),
pos_y=BeatDOF(0.5, phase=45.0, phase_degrees=True),
pos_z=BeatDOF(0.5, phase=90.0, phase_degrees=True),
alpha=BeatDOF(0.1, phase=135.0, phase_degrees=True),
beta=BeatDOF(0.1, phase=180.0, phase_degrees=True),
gamma=BeatDOF(0.1, phase=225.0, phase_degrees=True),
degrees=False,
)

fs = 10.24 # sampling rate in Hz
t, pos, vel, euler, acc, gyro = benchmark_full_pva_beat_202311A(fs)
t, pos, vel, euler, acc, gyro = sim(fs, 10_000, degrees=False)
head = euler[:, 2]

Note that the generated position signals are in meters (m), velocity signals are in meters
Expand Down
3 changes: 2 additions & 1 deletion src/smsfusion/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from . import benchmark, calibrate, constants, noise
from . import benchmark, calibrate, constants, noise, simulate
from ._ins import AHRS, VRU, AidedINS, FixedNED, StrapdownINS, gravity
from ._smoothing import FixedIntervalSmoother
from ._transforms import quaternion_from_euler
Expand All @@ -16,4 +16,5 @@
"StrapdownINS",
"VRU",
"quaternion_from_euler",
"simulate",
]
2 changes: 0 additions & 2 deletions src/smsfusion/benchmark/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
from ._benchmark import (
BeatSignal,
ChirpSignal,
_benchmark_helper,
benchmark_full_pva_beat_202311A,
benchmark_full_pva_chirp_202311A,
benchmark_pure_attitude_beat_202311A,
benchmark_pure_attitude_chirp_202311A,
)

__all__ = [
"_benchmark_helper",
"BeatSignal",
"benchmark_full_pva_beat_202311A",
"benchmark_full_pva_chirp_202311A",
Expand Down
Loading