Open alexx600 opened 8 years ago
You do not need to scale the mag data, it is normalized.
-----Original Message----- From: alexx600 [mailto:notifications@github.com] Sent: November 30, 2015 10:32 AM To: kriswiner/MPU-9250 Subject: [MPU-9250] accel and magnetometer orientation (#34)
Hello! I have a few question to your MPU9250BasicAHRS.ino file.
// Sensors x (y) -axis of the accelerometer is aligned with the y (x) -axis of the magnetometer; // The z-axis magnetometer (+ Down) is opposite to the z-axis (+ up) of accelerometer and gyro! // We have to make some allowance for this orientationmismatch in feeding the output to the quaternion filter. // For the MPU-9250, we have chosen a magnetic rotation sensor That keeps the forwards along the x-axis just like // in the LSM9DS0 sensor. This rotation can be modified is allow any convenient orientation convention. // This is ok to aircraft orientation standards! // Pass rate gyro as rad / s // Madgwick Quaternion Update (ax, ay, az, GX * PI / 180.0f, gy * PI / 180.0f, g * PI / 180.0f, we, x, m); Mahony Quaternion Update (ax, ay, az, GX
1.Why you did not use -mz instead of mz? I mean MahonyQuaternionUpdate (ax, ay, az, GX * PI / 180.0f, gy * PI / 180.0f, g * PI / 180.0f, we mx -mz); Why in your code mz is positive?
Reply to this email directly or view it on GitHub https://github.com/kriswiner/MPU-9250/issues/34 . https://github.com/notifications/beacon/AGY1qktPhk5Qy79NbPJjDBJ1Eh8t7i4Wks5 pLI22gaJpZM4GrqVa.gif
OKAY. All the time and do not understand why you do not use -mz? Could you tell something about it?
I am using microprocessor stm32f401 on the board evaluation discovery. And I have a huge problem with magnetometer. Axles what I assume are presented in the picture below http://obrazki.elektroda.pl/9993576100_1448821919.jpg If you wanted to have a look. What kind of parameters should call the function? MahonyQuaternionUpdate (ax, ay, az, gx, gy, gz, mx, my, -mz); ?
This looks like North-West-Up, whereas Mahony and Madgwick usually assume North-East-Down convention. Put x facing North, which axis is pointing East? This is what you put into the Mahiny function for y. Which axis is pointing Down? This is what you put into z. So maybe you would put in x, -y, -z? Also, unless your accel/gyro and especially mag is properly calibrated, you will get garbage from the filters.
I am confused all the time. http://obrazki.elektroda.pl/5888817700_1448883307.jpg this is mpu9250. Accelerometer and Gyroscope is North-West-Up Magnetometer is North-East-Down
if Madgwick is North-East-Down why You use
MahonyQuaternionUpdate(ax, ay, az, gx_PI/180.0f, gy_PI/180.0f, gz*PI/180.0f, my, mx, mz);
Why you use North-West-Up to accelerometer and gyroscope data?
I am lazy, better to correct the orientation to make it consistent.
-----Original Message----- From: alexx600 [mailto:notifications@github.com] Sent: December 1, 2015 3:19 AM To: kriswiner/MPU-9250 Cc: Kris Winer Subject: Re: [MPU-9250] accelerometer and magnetometer orientation (#34)
I am confused all the time. http://obrazki.elektroda.pl/5888817700_1448883307.jpg this is mpu9250. Accelerometer and Gyroscope is North-West-Up Magnetometer is North-East-Down
if Madgwick is North-East-Down why You use
MahonyQuaternionUpdate(ax, ay, az, gxPI/180.0f, gyPI/180.0f, gz*PI/180.0f, my, mx, mz);
Why you use North-West-Up to accelerometer and gyroscope data?
Reply to this email directly or view it on GitHub https://github.com/kriswiner/MPU-9250/issues/34#issuecomment-160938607 . https://github.com/notifications/beacon/AGY1qqU5o4OftRf6dHyhiMcfHQNxFdN2ks5 pLXmsgaJpZM4GrqVa.gif
Which MPU9250 IC http://www.lucidarme.me/wp-content/uploads/2015/01/AxisOrientation.png Your code looks like MadgwickQuaternionUpdate(ax,..., my, mx, mz);
Which BNO-055 IC http://api.ning.com/files/4Epf-T61UHP41R5kTSFUGZGG6Y5QUaIJsZX7p6NHlqqaLunj1GGg5sE1roq0ssP4yS7Sp*7jmI2vr8P5N561hYwSloZoWx76/BNO055.jpg Your code looks like MadgwickQuaternionUpdate(ax,..., mx, my, mz);
In MPU9250 magnetometer Z axis is negated, and code is not modifed. In BNO-055 magnetometer Z axis is normal, and code is not modifed. I do not understand why?
As you said Madgwick filter is NED, futher information about optimalization could be found there http://stackoverflow.com/questions/26416738/madgwick-imu-algorithm-simulate-on-iphone
But when i watch this video https://www.youtube.com/watch?v=BXsGWoOMtmU
Top is NORTH-WEST-UP Bottom is NORTH-EAST-DOWN
How it shuld be ?
I'm also finding this greatly confusing. Could me being in the southern hemisphere be causing the algorithm to get confused?
I doubt it. More likely there is something wrong with the implementation.
On Thu, Mar 9, 2017 at 2:41 AM, Matt Cochrane notifications@github.com wrote:
I'm also finding this greatly confusing. Could me being in the southern hemisphere be causing the algorithm to get confused?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU-9250/issues/34#issuecomment-285317279, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qjt5rgVYPTZ7juNykxDchKlvA_Icks5rj9c8gaJpZM4GrqVa .
Hello! I have a few question to your MPU9250BasicAHRS.ino file.
// Sensors x (y) -axis of the accelerometer is aligned with the y (x) -axis of the magnetometer; // The z-axis magnetometer (+ Down) is opposite to the z-axis (+ up) of accelerometer and gyro! // We have to make some allowance for this orientationmismatch in feeding the output to the quaternion filter. // For the MPU-9250, we have chosen a magnetic rotation sensor That keeps the forwards along the x-axis just like // in the LSM9DS0 sensor. This rotation can be modified is allow any convenient orientation convention. // This is ok to aircraft orientation standards! // Pass rate gyro as rad / s // Madgwick Quaternion Update (ax, ay, az, GX * PI / 180.0f, gy * PI / 180.0f, g * PI / 180.0f, we, x, m); Mahony Quaternion Update (ax, ay, az, GX * PI / 180.0f, gy * PI / 180.0f, g * PI / 180.0f, we, x, m);
1.Why you did not use -mz instead of mz? I mean MahonyQuaternionUpdate (ax, ay, az, GX * PI / 180.0f, gy * PI / 180.0f, g * PI / 180.0f, my mx -mz); Why in your code mz is positive?