Git Product home page Git Product logo

oscillatory-motion-tracking-with-x-imu's Introduction

Oscillatory-Motion-Tracking-With-x-IMU

A demonstration for tracking cyclic motion using an x-IMU as shown in this video. During cyclic motion, the mean velocity and position are zero over a short period of time. For example, this might represent the motion of a buoy bobbing up and down in the ocean or the chewing motion of a jaw.

In the video, the x-IMU was used to log test data via USB which was then processed using MALAB. Only the gyroscope and accelerometer measurements was used. The sensor data was first processed through an AHRS algorithm to calculate the orientation of the x-IMU relative to the Earth so that the corresponding direction of gravity could be subtracted from the accelerometer measurements. The resultant measurement of acceleration was then integrated to yield a velocity and the velocity high-pass filtered to remove any drift. This was then integrated again to yield a position which was also high-pass filtered to remove drift. The resultant position tracking seen in the video is able to track the cyclic motion of the x-IMU but slowly 'pulls' the x-IMU back to the origin when it is stationary.

The repository includes the original source code and example data used to create the video.

oscillatory-motion-tracking-with-x-imu's People

Contributors

xiotechnologies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oscillatory-motion-tracking-with-x-imu's Issues

AHRS Algorhitm and gravity removal

Hello,
I'm using a NGIMU for a similar application and I would like to ask if I need to apply the AHRS algorhitm and remove gravity with the version of IMU that I'm using.
Moreover, is there a new version of the code adapted to NGIMU?
Thank you very much!

Reat time issues

I try the sample data, the project works well. But I don't know if this method works for real-time data.
Thank you!

Undefined function or variable 'avifile'.

Undefined function or variable 'avifile'.

Error in SixDOFanimation (line 83)
aviobj = avifile(fileName, 'fps', AVIfps, 'compression', 'Cinepak', 'quality',
100);

Error in Script (line 168)
SixDOFanimation(linPosHP, R, ...

I am using latest matlab version.
During execution am getting above error message.
kindly let me know how to solve the same

How do you select Beta and Zeta gains in Madgwicks/Tahony ahrs?

Hi @xioTechnologies

I have a question regarding the value for the beta and zeta of the Magwidck/Tahony ahrs. According to the documentation, the filter gains beta and zeta should represente the bias of the gyroscope.

In am working with the BMI160 IMU and I would like to have its respective gyroscope bias too, is this error the so called Zero-rate offset?

On the other hand, how do you know/calculate the time to get an estable output of the Madgwick filtering (its convergence)?

Thanks in advance,

Regards!

Filtering accel data

Why do you first integrate acceleration and then filter the speed and position?
Can I just filter the acceleration?

Removing "Pull" from code

Hello,

I see in the code that it says it "pulls" the XIMU back to the origin when it's stationary. Do you know how I could remove this feature?

Thanks,
Mike

NGIMU Port

Greetings,

is there a way to port this code to be compatible with NGIMU hardware?
x-IMU hardware isn't available anymore on the website.

Main thing is that the CSV files created by the NGIMU Data Logger/Converter contains the time in the first column; the matlab script accepts a 'packet number'. This packet number may be a sequence of integers, but not all packet numbers are "1" - step from each other (i.e. gaps exist).

How does the packet number relate to time?

Kind regards,
Thomas

Filters

Hello
I'm triing to realize tracking device via arduino.
I integrate velocity but I have drift. As I understood you use Butterworth filter in matlab to remove drift.
Could you advice what filters should I use in arduino?

Problem with sample data

Hi,

Thanks for this awesome example.
I've tried running the demo data that you've supplied in the example but I'm getting very weird results.
Can you upload a walking example on the repo please?
Thanks.

FYI
screen shot 2015-02-26 at 18 08 05

Determine earth coordinates relative to IMU

Hi,
I am having some troubles using the code.
It works perfectly with the dataset provided, but when I use the samples obtained from my own IMU the output does not make sense . I think that this is due to the initial condition 'Quaternion=1 0 0 0', that represents the Earth relative to the sensor. Probably I should set my own 'Quaternion' as an argument of the MahonyAHRS function.
If this is right, how do I find this quaternion?

Please let me know. :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.