Mahony AHRS on STM32F401

I have the following problem. I'm trying to implement a filter Mahony / Madgwick used to estimate the orientation of the object.

STM32F401 processor which the accelerometer / magnetometer LIS303DLHC and gyroscope L3GD20.

My evaluation board

stm32f401 orientation

I am using that filter c implementationhttps://code.google.com/p/moveonpc/source/browse/external/MahonyAHRS/MahonyAHRS.c?name=mater]

I have two functions, one using only two sensors

MahonyAHRSupdateIMU (float gx,  float gy, float gz, float x, float y, float z)

Surprisingly to function properly need to give MahonyAHRSupdateIMU (-GX, -GY, -GZ, AX, AY, AZ); I do not why not MahonyAHRSupdateIMU (-GX, -GY, GZ, AX, AY, AZ); 

Although this variant is functioning properly, but because of the lack of magnetometer I'm dealing with an increasing error in the Z axis

Another option is to use all three sensors and here I have a problem

MahonyAHRSupdate (float gx, gy float, float g, float and x, float y, float z, float x, float we float m)

I do not know if I should give arguments

MahonyAHRSupdate (-gx, -gy, -gz, ax, ay, az, mx, my, mz) 

MahonyAHRSupdate (-gx, -gy, -gz, ax, ay, az, mx, mz, my)

.

.

.

MahonyAHRSupdate (-gx, -gy, -gz, ax, ay, az, -mz, -my, -mx)

It gives me a total of 48 possibilities. I modified the microprocessor program so that after pressing the button, program caused another function (with different configuration data from the magnetometer). I examined all the possibilities and none of them work properly. This is particularly evident with a turnover above 180 degrees.

The filter at the output returns in the form of a quaternion qw, qx, qy, qz The data are sent via the UART protocol to the PC where the data is visualized in OpenGL (two separate programs: one QT, the second pure OpenGL).

It converts the characters quaternionu matrix, and visualizes simply each axle. Quaternion before conversion is subjected to a process of normalization (just in case, although the processor also this can be done).

Filter using only two sensors work much better than using up to three, which is totally illogical. Someone may know something with the topic?

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Activity

DIY Robocars via Twitter
RT @TinkerGen_: "The Tinkergen MARK ($199) is my new favorite starter robocar. It’s got everything — computer vision, deep learning, sensor…
Monday
DIY Robocars via Twitter
Monday
DIY Robocars via Twitter
RT @roboton_io: Join our FREE Sumo Competition 🤖🏆 👉 https://roboton.io/ranking/vsc2020 #sumo #robot #edtech #competition #games4ed https://t.co/WOx…
Nov 16
DIY Drones via Twitter
First impressions of Tinkergen MARK robocar https://ift.tt/36IeZHc
Nov 16
DIY Robocars via Twitter
Our review of the @TinkerGen_ MARK robocar, which is the best on the market right now https://diyrobocars.com/2020/11/15/first-impressions-of-tinkergen-mark-robocar/ https://t.co/ENIlU5SfZ2
Nov 15
DIY Robocars via Twitter
RT @Ingmar_Stapel: I have now explained the OpenBot project in great detail on my blog with 12 articles step by step. I hope you enjoy read…
Nov 15
DIY Robocars via Twitter
RT @DAVGtech: This is a must attend. Click the link, follow link to read the story, sign up. #chaos2020 #digitalconnection #digitalworld ht…
Nov 15
DIY Robocars via Twitter
RT @a1k0n: Got a new chassis for outdoor races (hobbyking Quantum Vandal) but I totally didn't expect that it might cause problems for my g…
Nov 11
DIY Drones via Twitter
First impressions of the Intel OpenBot https://ift.tt/36qkVV4
Nov 10
DIY Robocars via Twitter
Nov 9
DIY Robocars via Twitter
Excellent use of cardboard instead of 3D printing! https://twitter.com/Ingmar_Stapel/status/1324960595318333441
Nov 7
DIY Robocars via Twitter
RT @chr1sa: We've got a record 50 teams competing in this month's @DIYRobocars @donkey_car virtual AI car race. Starting today at 10:00am…
Nov 7
DIY Robocars via Twitter
Nov 6
DIY Robocars via Twitter
RT @a1k0n: Car's view, using a fisheye camera. The ceiling light tracking algorithm gave me some ideas to improve ConeSLAM, and having grou…
Nov 5
DIY Robocars via Twitter
RT @a1k0n: To get ground truth I measured the rug, found the pixel coordinates of its corners, calibrated my phone camera with my standard…
Nov 5
DIY Robocars via Twitter
RT @a1k0n: @DIYRobocars is back in December, but outside. Time to reinvestigate ConeSLAM! I rigged up a quick and dirty ground-truth captur…
Nov 5
More…