"I have done testing on this as well for anyone who is interested in the performance of a Venus GPS at 10Hz vs an SCP100 Baro. I found the GPS was very unreliable when it first locks on and when it is stationary.
"Hey guys, been away from the computer for a while. Thanks for your input. Ive decided to order in an ET-STM32 Stamp micro. I realise that I could go with the Mega but this micro comes with 16 12Bit ADC's,a few DAC's, 5 USARTS and heaps of…"
Hi guys,I finally have my IMU up and running and outputting all the data I could ever possible want at 50Hz. The next step for me is the autopilot side of things. Currently the IMU outputs its data over standard UART. This means that my other micro (Arduino nano) must have at least 1 UART which it does. The problem is that I require long distance two way communication and I also want to design around a Spektrum satellite receiver which also communicates over a serial interface. This means that…See More
"Ryan, just a note of praise and thanks for you, too. This sort of rapid diagnostics and problem solving is SO impressive to see, and all of us reading along are getting an education, too. Many, many thanks for all you do here!"
"Hi Doug, I though that two bytes were able to represent numbers up to 65,535? my rates dont exceed 600degrees per sec so 600*100= 60,000 which is less than 65,535. Or is my problem that it is a signed number? does this mean only numbers between…"
In answer to your question, I am sorry, if you want to run the DCM algorithm, you will need three gyros. There is no way to get around it.
If you want to get away with fewer gyros, you can do that, but you will need to use a different algorithm.
When I started out in this hobby, I was using a board that had a yaw gyro and a pitch gyro, without a roll gyro. It also had a GPS and a 2 axis accelerometer. I was able to achieve control and navigation of a Gentle Lady without any problem, using complementary filter.
I think it is going to be difficult for you to control yaw without a yaw gyro, using GPS alone, unless you use a GPS with a high update rate, such as a uBlox. The problem with a GPS with a 1 Hz update rate is that the control yaw control loop will go unstable if you turn the gain up, and the wind will blow your plane away if the gain is too low.
However, the situation you propose is different from the one that I tried, since you are proposing a roll gyro. Maybe it would work. But if I were using only two gyros, I would use yaw and pitch.
You know, you could buy the UAV DevBoard for $150, a PICkit2 programmer from Microchip for $40, and an EM406A GPS from SparkFun for $60. That is only $60 over your budget.
Thankyou so much for your help that really clears things up for me. I have just one other question for you. Is it possible to implement the DCM on only the Pitch and Yaw axis? The reason I ask is that one of my goals in developing this device is to keep the cost below $200. I felt that I could achieve satisfactory turns with only pitch and roll data coming from the IMU and the Yaw being updated once a second from the GPS. The extra gyro is going to blow my budget :) What are your thoughts on this.
Jordi is using the DCM algorithm, based on Robert Mahoney's ideas.
The DCM algorithm maintains the 9 elements of the direction cosine matrix that represent the rotational orientation of the plane with respect to the ground. The basic idea of the method is:
1. Perform direct numerical integration of the nonlinear differential equations that relate the time rate of change of the 9 direction cosines to the 9 direction cosines and the roll, pitch, and yaw rates measured by gyros in the frame of reference of the plane.
2. Adjust the 9 elements of the matrix to enforce the orthogonality relationships that the rows and columns of the matrix must satisfy.
3. Use nonlinear complementary filters to compensate for gyro drift using accelerometer and GPS information.
There are no singularities in the computations in the DCM algorithm.
You can express all control and navigation computations in terms of the 9 direction cosines, but some folks prefer working in terms of Euler angles, so Jordi computes Euler angles from the direction cosines.
Regarding the difference between the DCM algorithm and a linear complementary filter, the DCM algorithm is much more accurate in all orientations, since it explicitly represents the nonlinearities of the rotation group at all stages of the computations.