IMU - Orientation to vector to position

I want to Assess where someone’s ankle is relative to their hip. I have an IMU on the thigh and leg/shin (capturing orientation) and know the lengths of these. I want to know the distance down, across and forward between the hip and ankle. Is there code already suited for this application?

I have an IMU on the persons lower back and want the direction of forward/back and side/side to be relative to this IMU i.e the way the persons facing, defines what is forward.

2 Likes

Hi Sally,

That seems like a super in-depth project where most of the work on this is still in the research stage, rather than the “maker” stage where everyone gets involved.

Have you looked into optical tracking?

3 Likes

Hi Sally,

Welcome to the forum. We have a very similar discussion going on here that you may be interested in

2 Likes

Yeah! @Sally261693.
Great to have you on the forum.

That’s totally possible.
Check out this thread that’s super similar to yours.
Here I use an arduino library to extract a vector.

From there you want to finding the heading unit vector (i, j) to figure out which way is forward.
Then you call the angle of the z vector AGAINST that i+j vector.

Are you using a microcontroller to read the IMU?
Have you programmed before? :slight_smile:

Pix :heavy_heart_exclamation:

2 Likes

Thanks for the resource. Yes, we are at the proof of principle stage. Optical tracking isn’t the best option the application

1 Like

Thanks very much.

We are currently using an Arduino Nano. I haven’t programmed before but I have an electrical engineer providing some support

1 Like

We are also testing a BNO85 as a 9DOF may lead to more accurate readings?

Are you able to record the data in the experimental phase for later analysis?
Getting the Arduino nano to record the data onto an SD card would be easy. Then you can figure out all the vector stuff in a higher level language with more visual tools like julia.
Would that work for your use case?

Not sure I’m afraid. Swapping gyroscopes might make a difference but if I had to guess I think the clock speed of the Arduino nano will be the limiting factor here. i.e. the faster your clock the faster your sampling the gyroscope and the more resolution you’ll have.

There was some discussion on this thread on “drift”. I didn’t quite understand it but I think it’s worth your time researching that or prodding that thread for more detail. :slight_smile:

Pix :heavy_heart_exclamation:

Not able to record the data, as the data will needs to be analysed and used “in real time”