Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get user heading #20

Open
dmenneck opened this issue May 31, 2022 · 4 comments
Open

Get user heading #20

dmenneck opened this issue May 31, 2022 · 4 comments

Comments

@dmenneck
Copy link

Hi @psiphi75, thanks for your great package! It looks very promising.

I'm working on a smartphone-based pedestrian dead reckoning system and for that i need the heading direction of the user. The literature often states that a Madgwick and Mahony filter could help with obtaining the user's heading.

Sadly i'm not quite sure how to interpret the values obtained from madgwick.getEulerAngles().

madgwick.update(gyr.x, gyr.y, gyr.z, acc.x, acc.y, acc.z, mag.x, mag.y, mag.z);
const { heading } = madgwick.getEulerAngles()

console.log(heading * (180/Math.PI))

I'd like to draw conclusions like 'the user turned 45 degrees to the left'. Do you think it's possible with this package?

@psiphi75
Copy link
Owner

psiphi75 commented Jun 1, 2022

Do you think it's possible with this package?

That depends. If you use this on a mobile phone and it's in the user's pocket, then it's unlikely to help. But if you place the IMU on a stable platform that is always positioned the same way relative to the direction of motion, it will be useful.

Essentially you need to know the orientation of the IMU with respect to the frame of reference for the object you are measuring. See here https://github.com/psiphi75/ahrs#orientation. I.e. if the user is always holding the mobile device in the same orientation then the heading will work if you have the correct orientation.

Sadly i'm not quite sure how to interpret the values obtained from madgwick.getEulerAngles().

Again, you need to convert the orientation of your IMU values (e.g. ax, ay, yz, gx, ...) to the orientation of the body for madgwick.getEulerAngles() to make sense.

@dmenneck
Copy link
Author

dmenneck commented Jun 1, 2022

The smartphone will be in a hand hold position, in front of the users body. So It’s very likely that the smartphone will move. Would you say that it’s stable enough, @psiphi75?

The initial orientation will be known, because the user has to position himself in the direction of the pathway.

For my application (indoor navigation) it’s actually not relevant if the user is pointing to true or magnetic north. I just need to detect if the user turned 90 degrees to the left/right or 180 degrees. So relative changes should be enough.

The IMU measurements are provided by the react-native-sensors package.

@psiphi75
Copy link
Owner

Sorry for the delay in the reply, I thought I had answered this.

So It’s very likely that the smartphone will move. Would you say that it’s stable enough, @psiphi75?

That's something you would need to test yourself. "Stable enough" is pretty subjective and depends a lot on your application. I would say you should be able to get +/-15 degrees. If you use any compass app on your phone, you would get a feel for it.

@psiphi75
Copy link
Owner

psiphi75 commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants