After a few more tests, I now have the final version of the ArduIMU. The main problem was the calibration of the gyros: converting the raw data to degrees/s. I had to change the source code, compile it, upload, and repeat it over and over again. Totally waste of time.So i configured Arduino to externally adjust the gyros and the accelerometer jitter filter, using the nunchuck potentiometers (joystick axis). Now it’s working pretty well. =)Please, in the source code, ignore all the lines marked with "//(kalman)", this lines are related to the kalman filter code, those marked by "//(nunchuck) are related to nunchuck accelerometer and axis control, and all marked by "//(gyro)" are code related to the control of the gyroscope.Another tip, all the data is processed in radians, then is converted to degrees (radian*180/PI = radians*57.295779= degrees). If somebody needs any help, please feel free of asking me.Video:-Yellow color = Just Accelerometer read-Red color= Accelerometer+Gyro+KalmanFIiterArduino Source Code: http://sites.google.com/site/jordiuavs/Home/kalman_filter_by_Jordi.txt Labview (ground station) source code: http://sites.google.com/site/jordiuavs/Home/kalman_filter_by_Jordi.txt To do: -Integrate another Gyro (to make it dual axis) . -Program the SPI altimeter.-And put all the hardware together and make it work (GPS, Altimeter, IMU, Modem).
Done: -Servo control -Gps Waypoint navigation (I’ll post later about it).
The next article I'm going to post all the links to get started with Arduino environment. All you would need to learn: tutorials, examples, references, tips and tricks. If you already know C++ it’s going to be 99% easier. If not, you are going to discover why C/C++ is the most compressive and famous language ever ;-) Then jumping to any AVR, ARM, PIC microcontroller C/C++ language environment, is going to be a lot easier, because they’re all based on the same principles.
Comments
Muchas gracias
are you still working on your ArduIMU project, everything I see seems quite dated now?
Could you send me the labview code??
Thanks!!!
Felicidades por tu trabajo!!I hope you can help me. I'm trying to use a 3 axis accelerometer and a 3 axis gyroscop to track the movement of my arm. But I have doubts when setting the values of Q_gyro and Q_angle. The problem is that if I use a frecuency of 150 Hz to get the values of the devices, 6'6mseg, the minimum value of Q_angle I can use it's around 0'02. If I use values below I can't follow the movements of my arm because the angle value goes to infinity. However, when I use a frecuency of 50 Hz, 20mseg, doesn't matter what value I use for Q_angle, I don't have this problems. The question is, why this happens, and how I know what values I have to use for Q_angle and Q_gyro?
Thankx for your time.
Ion.