i want to get accurate data from gyroscopes and i have more than one gyroscope, so how can i combine this data (in 3D orientation) to calculate absolute roll, pitch and yaw?
If you have N identical gyroscopes for each axis with uncorrelated errors, you can simply average their indications. This is not efficient, since the resulting error is only sqrt(N) times smaller than the individual gyroscope error. If one of these N gyroscopes is several times better than others, use only this one. Of course, if you have only three gyros for 3D orientation, they cannot help one another to reduce the errors. There also existed some extraordinary designs with, for example, 4 non-orthogonal gyroscopes, but the main purpose of such approaches was to provide system immunity against gyroscope failure, but not to decrease the overall drift.
Hi there! First of all your question does not sound to be very consistent. May be you are little confused with what kind of errors you want to deal with. Let me tell you a few things to help you realize what you actually want to achieve.
1. Requirement: You have three identical single axis gyroscopes which give out angular rates about a sensitive axis. Now you want them to be arranged in a mutually orthogonal fashion such that the three sensors cover up three axes of rotation for any rigid body.
Concern: At this point you should be worried about the misalignment that can very easily happen with the set of sensors while you are arranging them. I mean how accurately you can arrange them in the preferred fashion is a matter of great concern. However, Misalignment error is systematic and can be eliminated using good calibration.
2. Requirement: Reduction of drift for the overall system in giving out absolute orientation and attitude measurements.
Concern: Keep in mind that you are not using more than one sensor in the same axis so that you can use some fusion algorithm for eliminating stochastic errors like drift. What you can do for the entire system is that-you collect stationary data from the assembled system along all three axes. Get ARW coefficient through Allan Variance analysis, so that you can compute the integral noise for the sensor system. Now you need to use an additional aid like magnetic compass whose data you can fuse using some Kalman filter in order to get the estimated absolute values for attitude and orientation. You can also perform GyroCompassing in order to get the true North heading.
Hope you get an idea of what actually suits your requirement.
It seems that you are looking for a estimation algorithm, assuming that you are putting more than one gyro in each axis to measures the body rates. The optimal one is Kalman Filter as already mentioned. In order to apply it for your problem you have to model your gyros errors. There is a lot of Inertial System books where you can find the main equations. After that you can elaborate the Kalman Filter using Matlab.
Normally aditional sensors like accelerometer and magnetometes are used to compensate drift problems caused by the integration of gyroscope data over the time.
The best way is to calculate the attitude using all possible triple gyroscopes with non-coplanar axes of sensitivity (for example, for six non-coplanar axes - twenty variants), and then average in any suitable manner, including using the optimal filtering.