All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Option to pass
dtfor each update step (pr #57 from ManuelPalermo) - WMM 2025 (pr #130 from niklasknoell)
- Build Backend Replacement (pr #116 from eragooon)
- Type hints to be compatible with PEP-484.
- Citation file.
- Submodule
sensorsin moduleutils. - Submodule
geodesyin moduleutils. - Unscented Kalman Filter attitude estimator. Including documentation and unit tests.
- Fast Kalman Filter attitude estimator. Including documentation and unit tests.
- Jupyter Notebook to showcase main features.
- Enable CI Testing.
- Logo and icon.
- Added
pyproject.tomlfile to replace the deprecatedsetup.py. - Added
__version__to main package__init__.pyfile. - Attribute
rngin classSensorsand set its default to global aGENERATOR. - Description of basic requirements for core utils in docstring.
- Guard clauses in attitude estimators to validate input data.
- Examples in docstring of all attitude estimators.
- Method
_validate_input()in attitude estimators for sensor data. - Core function
_assert_acc_mag_inputs()to improve assertion of sensor data. - Script
test_core_functionsto test core utility functions. - Use attribute rng for random angular positions in class
Sensors. - Unit tests for
AngularRateusing method'series'and'closed'. - Test for estimation of rotation matrices with
AngularRate. - Test of Euler angles for estimator
AngularRate. - Information about its computation into its docstring.
- Core function
_assert_numerical_positive_variable()to simplify assertions. test_wmm.pyto tests folder.- Unit test
TestEcompass. - Guards in
ecompass. - Examples in docstring of
random_attitudes(). - Link to Madgwick's personal Google Scholar page.
- Implementation, documentation pages, and unit tests of:
dca2enu.enu2dca.enu2aer.aer2enu.
- Unit Tests for:
enu2ecef.qad.qcip.qeip.qdist.ecef2enu.geo2rect.sind.cosd.geo2rect().random_attitudes().- Inverse of non-versor quaternions, and add helper constant SQ22 in quaternion tests.
- Rpy parameter in class Quaternion, and move test of random attitudes to TestQuaternion.
- Random quaternion in construction.
- SLERP methods and functions.
- LERP interpolation in
slerp. slerp_Iof AQUA submodule.- Euler angles equal to 0 or factors of 2*pi in DCM.
- Axis as int in euler angle rotations.
- Test assertion for when euler rotation axis is None.
- Rotation sequences in DCM.
- Multi array of DCMs.
- Methods of dcm to quaternion, and use seeded random generator.
- Documentation pages of:
ecef2geodetic.geodetic2ecef.geodetic2enu.enu2ecef.
- In
QuaternionArray:- Method
slerp_nan()to fill NaNs with interpolated values. - Method
angular_velocities()to compute angular velocities from a sequence of quaternions. - Method
from_DCM()and parameterDCM. - Method
from_rpy(). - Method
to_array(). - Validity check to constructor.
- Testing purity and reality of
QuaternionArrayobjects. - Explanatory comments in
__new__method ofQuaternionArray. - Use
_assert_numerical_iterable(). - Option
in_placeto methodrotate_by. - Parameter
rpyto classQuaternionArrayto build quaternions from roll-pitch-yaw angles. - Parameter
order. - Properties in documentation.
- Information and warning to docstring.
- Test for method
to_DCM().
- Method
- Information about second geodetic coordinates for
geodetic2enutransformation. - Refactor test of
geodetic2enuto fit format of the other tests. - Documentation page of
enu2ecef. - Missing parameters in docstring of
ececf2enuandenu2ecef. - Function
enu2uvwto transform with UVW mapping, and redefineenu2ecefusingenu2uvw. - Epoch
'1984'toIGF. - Information about height in docstring of geo2rect.
- Reference of CODATA 2018.
- Docstring of class
referenceEllipsoid. - Geodesy to submodule
utils. - Function
ecef2enuvand use it to re-defineecef2enu. - References about geodetic and cartesian transformations.
- Guard clauses and degrees to radian conversion of coordinates in
geo2rect. - Constant values for repeated computations over SQ22.
- Hyperlink to codacy site in codacy badge.
- Assertions to function
slerp(). - Method
__array_finalize__to properly sub-class from NumPy array. - Private method
_assert_triaxial_sample_vector()to AQUA and improve handling of empty acc vector. - Information about AQUA's adaptive gain in docstrings, and add image illustrating it.
- Identity matrix return as default estimation in
Tilt. - Parameter
representationin estimatorTilt. - Possibility of accepting lists in
FLAE.estimate(). - Handling of sensor measurements equal to zero.
- Option to use int for axes in function
rot_seq(). - Information in docstring of class
Sensors, and add its documentation. - Reference of Wikipedia's Euler Angles.
- Return type to
_guard_clauses()method. - Try catch logic for method description function.
- New case of logarithm for when quaternion is real (scalar).
- Missing bibtex references in
WGSsubmodule. - Virtual environment to gitignore.
- Support for BibTeX citations using
sphinxcontrib-bibtex. - Sphinx extensions to doc dependencies in
pyproject.toml - Docstring information to
itzhack(). - Unit tests for each DCM to quaternion algorithm.
- Information to docstring of all methods converting from DCM to Quaternion.
- Space after code-block:: console directive to avoid parsing errors.
test_conjugate()andtest_conj()toTestQuaternionArray.test_is_identity()toTestQuaternionArray.test_is_versor()toTestQuaternionArray.- Unit Tests for all estimators.
- Function
_assert_list_of_strings()in core functions script. - Guard clauses to option
'euler'in DCM constructor, and use_assert_numerical_iterableinstead of_assert_iterablesin script. - Function
ecef2lla()to compute geodetic latitude, longitude, and altitude from ECEF coordinates. - Options
'yaw'and'span'to classSensors. - Final paragraph in docstring of
Sarabandi's. - Return for trivial case in
log(R), and its reference. - Sphinx extension dependencies in
requirements.txtof docs. - Parameter 'degrees' to
DCMto indicate the use of angles in degrees. - Parameter degrees to functions
rotation()androt_seq()to be compliant with other packages and software that also implements them. - Indentation in parameters of
EKF.__init__()to comply with PEP-8. - Class
Sensorsto generate synthetic sensor data. - Experimental function
__centrifugal_force(). - Property
geodetic_vectorto classWMM. - Documentation of methods for DCM to quaternion:
Itzhack.Sarabandi.Shepperd.
- Page of Specialized Functions for Attitudes.
- Explanation of
random_attitudes(), and add examples in docstring of classQuaternion. - Pages for class DCM, and its methods. Remove unused docs, and fix docstring in method
from_quaternion(). - Function
get_nan_intervals()to core sub-module. - Examples to
qdist,qeip,qcip, andqad. - Function
rmse_matrices()to submodule metrics. - Function
random_angpos()to generate angular positions, and add tests for Complementary Filter. - Example in docstring of
FQA. - Information in docstring of, and handle matrices in function
rmse. - Missing backslash in formula of docstring.
- Info to docstrings of the functions of submodule core.
- Information in docstring of method
angular_velocities(). - Table of Contents in docstring of Madgwick's
- Data handling in Complementary Filter
- Optional estimation without magnetometer.
- Options of representation in docstring.
- Assertions for invalid earth-measurements.
test_wrong_input_vector_typesin unit tests.- Assertion of numerical array to
FLAEandFAMCunit tests. - Private submodule
coreto handle data. - Labels in guard clauses.
- Error handling and tests to Davenport's estimator.
- Typing and improve error handling in
FLAEestimator. - Option
representationtoSAAM, and its corresponding unit test. - Two-dimensional vectorized computation in
hughesfunction, and change its nomeclature to fit original documentation. - Mathematical background to docstring of Hughes method.
- "Attitude Representations" to main page.
- Terms in page "Nomenclature".
- Mathematical background to docstring of function
chaverini. - Pypi topics in setup.
- setuptools and wheel to CI action.
- Information to core submodule.
- Reference to newest technical report of WMM.
- Attributes of
DCMto Sphinx documentation. - Parameter
orderin classQuaternion. - Unit Tests for classes:
Quaternion.QuaternionArray.DCM.
- Functions for synthetic angular velocities.
- in
DCM:- Private assertion of
SO3inDCM. - Error raise when parameter of
to_quaternion()is incorrect. - Multi-dimensionality to Chiaverini's method converting
DCMtoQuaternion.
- Private assertion of
- Option 'frame' and guard clauses for input parameters.
- Estimation of error over 3d arrays in chordal distance.
- Option to pass dt for each update step: -adds option to pass a different dt for each update step on filters which do gyroscope integration -relevant for real data, where sampling time might be inconstant defaults to constant value defined on
__init__if no value is specified in the update step. - Option of random orientation to class
Quaternion. - Immediate computation of orientation when only 1 sample of each sensor is given.
- Clipping of values in function
qad()to avoid NANs witharccos. - Guard clauses to class
TRIAD. - Guard clauses when creating rotation sequences.
- Docstring and examples to metrics functions.
- Guard clauses to quaternion metrics.
- Unit tests for all attitude estimators.
- Unit tests for
WGSandinternational_gravity. - Unit test for
WGS84. - Tests for functions of metrics.
- Validation of rotations with guard clauses in metrics functions.
- Definitions to nomenclature docs.
- Handling of empty quaternion in class
Quaternion. - Examples of
slerpandlerpin docstring. - Expand error handlings to
TRIAD.
- Update documentation to adhere to aerospace notation (pr #88 from nasbotond)
- Moved from the setuptools to hatchling build backend.
- Docutils version will now be installed by Sphinx.
docs/conf.pyto get its version from the package import.- Use new class
Sensorsto generate data for unit tests of attitude estimators. - Migrate
.readthedocs.ymlto v2. See https://blog.readthedocs.com/migrate-configuration-v2/ - Change
nansum()tosum(), so thatnp.nanvalues can be returned inqad. - Rename attribute
ang_posasangular_positionsin classSensorsandTestTilt. - Use a local variable for the random number generator in function
random_angpos(). FUNDING.yml.- Information in YAML file of readthedocs.
- Documentation theme to Pydata.
- Update
READMEwith github badge and submodule information. - Update information about requirements of installation.
- Madgwick:
- Use class
Quaternionfor setting ofq0. - Use
getattr()instead of dunder method__getattribute__to call methods in assertion of inputs. - Skip correction with accelerometer and magnetometer if gradient norm is equal to zero.
- Simplify handling of incorrect measurements in update methods.
- Refactor quaternion correction in methods
updateIMU()andupdateMARG(). - Update nomeclature and improve documentation.
- Handle of zero-gradient at
updateIMU()method.
- Use class
- EKF:
- Use local variables
zandq, instead of creating attributes. - Use
np.arrayinstead ofnp.copyto try to optimize memory usage. - Use function
_assert_numerical_positive_variableto validate input values. - Redefine Jacobian
dh/dq, and change order of default noises array. - Definition of
Q_tin methodupdate(). - Switch reference frame of acceleration.
- Change format of subscripts of matrices to be consistent in docstring.
- Improve description of
qin docstring of methods. - Use
ecompassinstead ofam2qfor first quaternion.
- Use local variables
- AQUA: Enforce returning numpy array in method updateMARG of AQUA.
- Re-define test for adaptive gain to be range-focused.
- Simplify examples in docstring of
adaptive_gain(). - Improve handling of zeroed vector norms.
- Use global variables in unit test.
- Update wording in index of documentation and info in table.
- Improve assertion of input parameters.
- SAAM:
- Use symbol of asymptotically equal for relation of vectors through rotation matrix.
- Expand description of minimization problem in docstring.
- Use
_assert_acc_mag_inputs()to check validity of sensor inputs.
- AngularRate:
- Rename final quaternion as
q_newfor readability. - Use boxes to highlight important equations.
- Update method
integrate_angular_positions()to use given input parameter'representation'instead of class attribute. - Refactor methods to make it more effective and readable.
- Use
factorialfrom standard library instead of numpy's implementation.
- Rename final quaternion as
- Fourati:
- Use class
Quaternionfor setting ofq0. - Estimate initial attitude with
am2q, and redefine operations to be closer to article's. - Import functions and constants directly in Fourati estimator.
- Use class
- Mahony:
- Increase indentation of
__init__parameters. - Add types of return values of private methods.
- Increase indentation of
- Move default noise std deviations to be attributes of class Sensors instead of global variables.
- Expand explanation of quaternion exponential in its docstring.
- Expand process model to show linear operation between rotation operator and previous quaternion.
- Change page "World Models" to "Geodesy".
- Move info from
geodesy.rstto docstring ofgeodesy.py - Move docs of
WMM,WGS84, and related functions to subfoldergeodesy. - Improve handling of wrong input in method
from_DCM(). - Moved unit tests from submodule
wmmto folder/tests. - Re-implementation of
Complementaryfilter using roll-pitch-yaw angles. - Re-implementation of
rec2geobased on ESA's publication. - Improve error handling in attitude estimators with new guard clauses.
- Use assertion of numerical iterable in attitude estimators.
- Use class
Quaternionand/orQuaternionArrayin attitude estimators. - Update string formatting to f-strings.
- Move contents of page frames to page of geodesy.
- Change
cmathtomath. - Set same global threshold (0.08) for
SAAMandFAMCestimators. - Use new attribute geodetic_vector of
WMMto setREFERENCE_MAGNETIC_VECTOR, and correct height value inNORMAL_GRAVITY. - Rewrite short description of class
WMM. - Use function
_assert_numerical_positive_variable()to validate input values inFourati,Mahony, andROLEQ. - Use core function
_assert_acc_mag_inputs()to check validity of given sensor data inDavenport,QUEST,FAMC, andFLAE. - Use absolute value for
T2inFLAEto avoid square root of negative. - Use local copies of arrays instead of attributes in method
_compute_all()ofFAMC,FLAE, andQUEST. - Change names for unit tests of
geodetic2ecef. - Swap input of
latandlonparameters ingeo2rectto conform standard practice. - Rename
geo2rectasgeodetic2ecefto be name-compatible with other software. - Rename
rec2geoasecef2geodeticto be name-compatible with other software. - Make
ecef2llasynonym ofecef2geodetic. - Compute latitude without altitude in
ecef2geodetic(), and usearctan2. - Explicitly define epoch inside
__init__ofWMM. - Update documentation, and version used of
q2Rin computation of Measurement Modelh. - Update version in conf file of docs.
- Make Shepperd's the default method in method
from_DCM()of classQuaternionArray. - Make Shepperd's the default method in method
to_quaternion()of classDCM. - Move tests of
WGS84to Unit Test script. - Bibtex reference
inbooktoincollection. numpy.copyfunctions tonumpy.arrayin assertions of core utilities.- In
OLEQestimator:- Improve description of weights in docstring.
- Improve weights assertion with unit tests.
- Simplify handling of zero norm of accelerometers or magnetometers.
- Use
OLEQ(instead ofecompass) to estimate initial attitude inROLEQ. - List input parameters in a section, instead of a section per parameter.
- Move ESA reference up to conform to alphabetic order.
- Change
referenceEllipsoidtoReferenceEllipsoidusing PascalCase to conform to PEP-8. - Re-define
WGSsub-classing it fromReferenceEllipsoid. - Update geodetic information of Munich to be at Mariensäule (km 0.)
- Change call
ptp()tonumpy.ptp(). - Change test
q0value of[1, 0, 0]to[0, 0, 0]for invalid pure quaternion inTestAngular. - Update
python-app.ymlto use latest Python version. - Vectorize method
angular_velocities. - Simplify handling of magnetic field equal to zero in method
estimate()ofTilt. - Angles as attributes of
Tilt. - Raise error with wrong acceleration in class
Tilt. - Add
.ipynb_checkpointsto.gitignore. - SLERP:
- Expand docstring with explanation and examples.
- Rename variables to avoid confusion with other notations.
- Return empty array if
nan_intervalsnot found. SLERP_NaN()returns same array if no NaNs are found.
- Bibliography:
- Submodules' and filters' docstrings use
bibtex. - Update to
bibtexcitation in submodulemetrics. - Lock version of
sphinxcontrib-bibtexto be 2.6.3 or newer to avoid problem withpybtex.
- Submodules' and filters' docstrings use
- Update values of
IGFepoch1980. - Use Numpy's new random number generator for the creation of sensor signals.
- Clip traces to
[-1, 3]in functionhughes(). - Handle NaNs in function
itzhack(). - Expand docstring of
qeipto explain return values. - Re-phrase
qdistdocstring to make it clear. - Move titles of filters' docstrings to rst files.
- Update information about frames in the submodule's docstring.
- Move metrics RST files to new folder
metrics, and update their links inmetrics.rst. - Simplify
NEDandENUtransformations with a single function. - Move class
Sensorsto highest level of package. - Method
wrap_angle()allows now to take values outside the range[-2pi, 2pi]. - Change
KeyErrortoValueErrorin methodwrap_angle(). - Rename
_assert_iterableas_assert_valid_array_type. - Move
_assert_same_shapesfunction tocoresubmodule. - Better handling of zero-valued accelerometer values.
- Computed angles are returned as radians.
- Improve handling of angle inputs that are factors of 2*pi radians in
DCM. - Reject axes as integers in rotation sequence functions of orientation and
DCM. - Change version of Python to
'latest'inreadthedocsbuild action. - Refactor
Itzhackmethod to obtain quaternion fromDCMaccording to original article. - Use normalized standard deviations for gaussian noises.
- Use global variables in tests to be re-usable accross different unit tests.
assertEqualtoassertAlmostEqualinTestAngularDistance.- Simplify operations in method
angular_velocitiesand adapt typing hints. - Aesthetical improvements in docstrings of class
Quaternion. - Improve docstring in method
productfrom classQuaternion - Expand description of
coreutils submodule. - Use method
from_rpy()for parameter'angles'in classQuaternion. - Simplify input validation with class
Quaternionand function_assert_numerical_positive_variable(). - Replace
_assert_iterables()with_assert_numerical_iterable()for improved verification in classQuaternion. - Improve handling of zero arrays as input of
Quaternion. - Make method
from_quaternion()static to ease its call in classDCM. - Simplify setting of attribute
scalar_vectorin classQuaternion. - Improve example in docstring of
QuaternionArray.is_real(). - Improve docstring of
QuaternionArray.rotate_by(). - Revert assertion of new
QuaternionArrayto use_assert_iterables(). - Update
THRESHOLDvalue, addNDvalues to generated magnetometer values. - Angle setting in function
rotation()to simplify computations. - Tests of parameter
rpyinDCMto use angles as radians. - Update docstring in
ecef2geo(). - Import global constants independently in
wgs84, instead of star import. - Update computation of prime meridian curve radius and add its reference.
- Switch places of roll and yaw in
rpy2q(), to be consistent with order in documentation and most references. - Explicitly set
html_css_filesin Sphinx'sconf.pyto an empty list. - Simplify setting reference frames in
TRIAD. - Use function
random_angpos()to generate reference orientations. - Use uniform random generator in function
random_attitudes(). - Improve detection of numerical values in
coreutils. - Re-organize index page of documentation.
- Redefine log of Rotation matrix.
- Use logarithm of Rotation matrix to test angular distance between rotation matrices.
- Index of attitude representation pages packed into a single page.
- Foldable sections from bullet points in
README.md. - Change message of assertion of
intorfloatin_assert_numerical_positive_variable(). - Refactor messages of
assertAlmostEqualin tests ofWMMto use f-strings. - Change decimal precision of tests involving
ecefandenuto 4. - Redefine transformation functions in
WGS84to useaandbonly. - Switch comparison in docutils dependency at
pyprojectfile to use the newest version.
- Imports of
warningbreaking some builds.
requirements.txtfrom docstoolsfolder for version management. Checkpyproject.tomlpythonbuild.ymlioandplotsubmodules from code base.- Unused
**kwargsineuclidean(). - Unused constant
EARTH_FLATTENING. - Unused function
q2R()inMahony. - Unused constant of Earth's eccentricity.
- Unused function
logR(). - Unused import of numpy type hints.
- Testing three-element array when setting
q0. - Section about different gravitational methods from
WGS84docstring. - Note about quaternion conversion. It is not valid anymore.
- Guards for
Quaternionobjects in method__mul__. - Repeated functions
rotation()androt_seq(). They are in submoduledcm. - Sphinx extensions from list of docs in
pyproject.toml - Sphinx extensions from requirements.
- Wrong type of test in
metrics. - Keyword version in install of Python dependencies.
- Loops for
'hughes'and'chiaverini'(they vectorize 3d arrays already.) - Method
angle_integration(), and estimate attitude with explicit loop (it improves readability.) - Test of assertion when
gain = 0is given toComplementaryTest. It is overhead, but possible. - Constrained angles in
QuaternionArray. - Omega attribute breaking return values.
- Unused test files.
test_newunit test.- Unnecessary control flow in class
Quaternion. - Normalization of product of quaternions. They are now assumed as non-versors.
- Order of roll, pitch, yaw in
Quaternion.from_rpy()(pr #65 from jaluebbe) - Bias integration in Mahony filter (pr #66 from timethy)
- Unwanted compass rotations at 180deg heading (pr #67 from jaluebbe)
- Equation docstring of QUEST algorithm (pr #108 from tokoro10g)
- Loop condition in
FLAE-newton(pr #102 from petrinm). - Default values for gravity vector.
- Default Munich height.
- Leading spaces in docstring in
QuaternionArray.remove_jumps(). - Rendering of example code in docstring of
random_attitudes(). - Handle undefined variable
iinQuaternionArray.from_DCM(). - Re-raise
RuntimeWarningasRuntimeErrorinfrom_DCMmethod ofQuaternionArray - Clip trace values of estimation of
q_win functionchiaverini()to[-1, 3], to avoid negatedsqrt()created by impreciseDCM. - Char escapes to properly parse blank spaces in docstring.
AngularRateasserts input quaternion, instead of initial quaternion.TestChordaluseschordalinstead ofeuclidean.- Values for reference gravitational vector in
EKF. - Docstrings for magnetic references in
EKF. - Equations in docstrings of
enu2dcaanddca2enu. - Equation in docstring of
qdist, and add information about its error span. - Example call of
ReferenceEllipsoidat each of its methods. - Default values in docstring of
WMM, and default value of height parameter. - So-called invalid escapes in docstring of class
WMM. - Type in citation, and fix example in docstring of property
first_eccentricity_squared. - Default value to use first eccentricity squared in
geo2rect. - Example in docstring of function
rotation(). - Handling of zeroed-gyroscope measurements in AQUA's
updateIMU(). - Calls in
test_wrong_input_vectors()for unit tests of attitude estimators. - AQUA's adaptive gain updates.
- Examples in docstring of
DCMto useDEG2RAD. - Equation of quaternion derivative in footnote.
- Invalid backslash to avoid parsing errors in LaTeX of docstrings.
- Computation of
log(R). - Clipping values in multi-array computation of Quaternion in Chaverini's method.
- In
QUESTestimator:- Use a normalized gravitational vector.
- Definition of
_set_magnetic_field_vector(). - Equation docstring of
QUESTalgorithm - Other errors in docstring equations.
- In
Mahonyestimator:- Bias integration.
- Vector field
v_m.
- Return of inverse when quaternion is not versor.
- Docstring of function
random_angpos()in estimator's tests. - Setting of array in method
rotate_by()of classQuaternionArray. - Typos and wording in
index.rst. - References and phrasing in docstring of
AQUA. - Formatting of escape characters in docstring.
- Use of array in function
q_conjof submoduleorientation. - Docstring of
chaverini. - Code style and add typing in
__gaussian_filter() - Initial values of
ROLEQand reference vectors. - Estimation of auxiliary quaternion from magnetometer readings.
- Broken link to Wahba's Problem.
- Documentation in
WGS84. - Example in docstring of
FAMC. - Correct vertical bar in definition of quaternion derivative in docstring of
AngularRate. - Definition of SCADA.
- Equation of Taylor series in Quaternion Linearization.
- Documentation and add example in doc of class.
- Docstring about degrees in function
rot_seq(). - Reduce expression of redundant boolean check in
get_nan_interval(). - Instructions to install package.
- Comments about equation references.
- Docstring about negative skew-symmetric matrices.
- Docstring of Chiaverini's method.
- Docstring in Hughes method.
- Definition of objective function in docstring, and update information about LTP.
- Error raise if geomagnetic field is invalid in class
EKF. - New method
Omegain classAQUAto simplify the product between angular rate and quaternion. - New method
rotate_byin classQuaternionArray. - More Acronyms in page
Nomeclatureof documentation. - Individual pages for each method and attribute of classes
QuaternionandDCMinto documentation. - Merge pull request of basic automation tests.
- Fix undefined matrix
Rin methodupdateof classEKF. - Fix shape of converted points in function
ned2enu. - Fix parameters in function
rec2geoof submoduleframes. - Fix method
from_quaternionof classDCM. - Fix Munich height (in km) in global constants.
- Improve detection of empty arrays when building
TRIADobject. - Improve description of estimator
AQUAin its docstring. - Improve imports in submodules
framesanddcm. - Improve style and descriptions in docstrings of functions in submodule
orientation. - Method
init_qis now synonym of the more convenient methodestimatein classAQUA. - Parameter
as_quaternionin methodestimateof classTRIADrenamed torepresentation, and its value is now of typestr. - Versioning is defined using f-strings.
- Redundant normalization of magnetic measurement vector in class
FQA.
- World Magnetic Model as class
WMM. - World Geodetic System as class
WGS. - Geodetic and planetary constants.
- New class
DCMto represent Direction Cosine Matrices. - Attitude Estimator
EKF. - Attitude Estimator
TRIAD. - Attitude Estimator
Davenport. - Attitude Estimator
QUEST. - Attitude Estimator
SAAM. - Attitude Estimator
OLEQ. - Attitude Estimator
ROLEQ. - Implementation of modes
newton,eigandsymbolicin estimatorFLAE. - New function
ecompassto estimate Orientation from an observation of an accelerometer and a magnetometer. - New method
row_reductionin estimatorFLAE. - New methods
to_angles,is_pure,is_real,is_versor, andis_identityin classQuaternionArray. - New properties
logarithmandlogin classQuaternion. - New parameter
versordefaulting toTruein classQuaternionto initialize quaternions as versors. - New frame transformations
ned2enu,enu2ned,ecef2enu,enu2ecef,ll2ecef, andecef2llf. - Requirements file.
- Manifest file.
- Documentation with Sphinx.
- Type hints.
- Fix
AQUA. - Fix missing imports in several submodules.
- Fix versioning that prevented install from a fresh setup.
Tiltcan perform vectorized estimations over 2D arrays.QuaternionArrayis now subclassed from anumpy.array.- Simplify implementation of class
Complementary. - Create copies of quaternions and normalize them when given in
metricsfunctions. - Complete attitude estimator
FAMC. - Complete docstrings of all functions, methods and classes.
- Improve examples and information in
README.
- Submodules
plotandioto remove dependencies onscipyandmatplotlib.
- Support for other characters as separators in function
loadof submoduleio. - Function
am2eulerto obtain Euler angles from gravity and geomagnetic measurements. - Notice of discontinuation of
ioandplottingsubmodules. - Add badge of code quality.
- Using
isinstance(x, y)instead oftype(x)==yto confirm types of variables. - Update setup information.
- This changelog.
- Script
triad.pyfor future submodule implementation of TRIAD method.
- Action
Build Python Packagebuilds only when new commit is pushed tomasterbranch. - Simplify building triads in function
triadof submoduleorientation. - Fix documentation of
am2anglesandquestof submoduleorientation.
- Class
QuaternionArrayto handle several quaternions at once. - Add methods
log(),exp(),inv(),to_array()andto_list()to classQuaternion.
- Class
Quaternionto handle quaternion operations. - Add methods
log(),exp(),inv(),to_array()andto_list()to classQuaternion. - More definitions of colors with formats ints and floats.
- Functions
hex_to_int()andhex_to_float()convert any color defined as hex intointandfloat. - Badges in README to indicate basic information.
- Improve versioning.
- Function
R2q()to get quaternion from rotation matrix. Methodfrom_DCM()of classQuaternionis preferred.