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

Computing Beta and Zeta Values #485

Open
mecitpmk opened this issue Dec 12, 2022 · 9 comments
Open

Computing Beta and Zeta Values #485

mecitpmk opened this issue Dec 12, 2022 · 9 comments

Comments

@mecitpmk
Copy link

Hello ,
I was trying to tune the beta and zeta parameters to make the orientation better.

I was came across with those parameeters in the codes :

float GyroMeasError = pi * (40.0f / 180.0f);   // gyroscope measurement error in rads/s (start at 40 deg/s)
float GyroMeasDrift = pi * (0.0f  / 180.0f);   // gyroscope measurement drift in rad/s/s (start at 0.0 deg/s/s)

How did you determine the gyroscope measurement error as 40 deg/s ?
I couldnt see anything about it in the datasheet.
Besides that , same question for the gyroscope measurement drift as 0.0 deg/s/s .

If you have any knowledge about it please inform me about that.

Thank you,

@kriswiner
Copy link
Owner

kriswiner commented Dec 12, 2022 via email

@mecitpmk
Copy link
Author

Thank you for the fast reply @kriswiner .

You are right, I should say the response time not the orientation quality.
Should I set those parameters with tuning and observing method to get better response time or its related with the datasheet informations?

Thank you,

@kriswiner
Copy link
Owner

kriswiner commented Dec 12, 2022 via email

@mecitpmk
Copy link
Author

mecitpmk commented Dec 12, 2022

Dear Winer,

Thank you for the repyling the content.

I was researching and going deeply into this Madgwick filter and I research iteration about Madgwick filter and I found this :

According to Magdwick :
"A conventional approach to optimisation would require multiple iterations of equation
(19) to be computed for each new orientation and corresponding senor measurements. Efficient algorithms would also require the step-size µ to be adjusted each iteration to an optimal value; usually obtained based on the second derivative of the objective function, the Hessian. However, these requirements considerably increase the computational load of the
algorithm and are not necessary in this application. It is acceptable to compute one iteration
per time sample provided that the convergence rate governed by µt
is equal or greater than the physical rate of change of orientation."

So I am confused about that. Do we really need to compute 10-20 times?

@kriswiner

Thank you,

@kriswiner
Copy link
Owner

kriswiner commented Dec 12, 2022 via email

@mecitpmk
Copy link
Author

I will try and share the result.

Thank you,

@mecitpmk
Copy link
Author

I tried and come up with those result :

Test 1:
Assume that the sensor frequency = 1000Hz,
Asseme that the Madgwick filter freq = 1000Hz,
Result : Orientation filter response is much more clear and faster.

Test 2:
Assume that the sensor frequency = 1000Hz,
Asseme that the Madgwick filter freq = 2000Hz,
Result : Orientation filter response is much more slower and delayed.

@kriswiner
Copy link
Owner

kriswiner commented Dec 18, 2022 via email

@mecitpmk
Copy link
Author

mecitpmk commented Dec 18, 2022

Yes, the experiment results based on the real IMU measurements.

According to my application, ( madgwick filter freq = sensor frequency ) get me the best result.

Thank you,

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