A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/gitboosting/imuf below:

GitHub - gitboosting/imuf

imuf

‘imuf’ uses complementary filtering to estimate the orientation of an inertial measurement unit (IMU) with a 3-axis accelerometer and a 3-axis gyroscope. It takes the IMU’s accelerometer and gyroscope readings, time duration, its initial orientation, and a ‘gain’ factor as inputs, and provides an estimate of the final orientation as outputs.

‘imuf’ adopts the north-east-down (NED) coordinate system. The initial and final orientations are expressed as quaternions in (w, x, y, z) convention.

You can install the development version of imuf from GitHub with:

# install.packages("pak")
pak::pak("gitboosting/imuf")

This is a basic example which shows you how to solve a common problem:

library(imuf)
#
acc <- c(0, 0, -1)         # accelerometer NED readings in g (~ 9.81 m/s^2) 
gyr <- c(1, 0, 0)          # gyroscope NED readings in radians per second
deltat <- 0.1              # time duration in seconds
initq <- c(1, 0, 0, 0)     # initial orientation expressed as a quaternion
gain <- 0.1                # a weight (0-1) given to the accelerometer readings
#
# final orientation expressed as a quaternion
(final <- compUpdate(acc, gyr, deltat, initq, gain))
#> [1] 0.99898767 0.04498481 0.00000000 0.00000000
#
#
# rotate a vector pointing east by 90 deg about north
q <- c(cos(pi/4), sin(pi/4), 0, 0)   # quaternion to rotate 90 deg about north
vin <- c(0, 1, 0)                    # vector in east direction
(vout <- rotV(q, vin))               # after rotation, vector is in down direction
#> [1] 0.000000e+00 2.220446e-16 1.000000e+00

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4