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
Hi Jordi, I have a question about your code. What is the difference between the q_m and q_bias? Is q_bias the voltage or the digital value the gyro outputs when it's not moving? I'm trying to combine a digital compass and a single axis gyro using a kalman filter, so any help that you can give me would be greatly appreciated.
how to convert this code for pitch roll and yaw axis with 6 dof razor imu
how to convert this code for pitch roll and yaw axis with 6 dof razor imu
Hello sir,
i have been looking for Kalman filter to use on my Arduino, with 3-axis acclerometer (BMA-180) and 3-axis gyro (ITG-3200)...
Can you please tell me if your code here works for me?
Also what circuit connects i have to make?
I'm a beginner into this so please help..
thank you..
Am I right when I am saying that this implementation works only when the system doesn't move? I think that when you move, the accelerations will appear either if you are rotating or not.
Do you have any idea on how I can get a good angle value using gyrometers and accelerometers aswell?
I need this for a INS/GPS integration, when the system is in a continuous move.
I can't access the link of Arduino 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. Can you send it to my email?
My email id:jiahe.95@163.com? Thanks for ever!!
Best wishes!
So sorry but i lost everything. I been unable to find somebody with a copy of the code.
The are very simple functions of LabView, everything is available even in the student version.
Regards.
If you could share your LabView testing blocks, or even just a good reference that you used to make it, I would really appreciate it.
I was wondering what sort of value joy_x_axis and joy_y_axis are equal to.
I am using an IMU board from sparkfun, so no joystick attachments!
I still want to be able o adjust for jitter, but is it really best to have potentiometers for it or should I just adjust the program code?
Many thanks
Simon