6DOF IMU made only from Parallax components
cessnapilot
Posts: 182
Hey Guys, what about making a 6DOF IMU (3-Axis accelerometer AND 3-Axis rate gyro data) only from Parallax supplied components?
The design consists of four H48C 3-Axis accelerometers arranged at the 4 vertices of a tetrahedron. These vertices coincide with some vertices of a cube (see attached picture). Data will be collected with a Propeller that is especially suited for these parallel tasks (4 COGs, 4 left). Since involved math (*) will need some real time matrix computation I propose to use an FPU (+1 COG, 3 left).
The 1 cubic inch version may fit into an RC plane or Helicopter, the 64 cubic inch version may provide us tactical grade quality data (about or less than 10 deg gyro drift / hour in the horizontal plane) if we somehow solve the temperature regulation of the sensors. That regulation can be done with 4 DS1620 (or DS1621) in programmable thermostat mode and with some heater resistors.
For serial communication we can use FullDuplexSerial (+1 COG, 2 left)
You can divert from the original design, for example placing 2 sensors at the wingtips of your RC plane and that will give you more sensitivity. Then, you do not have to reprogram the application if you use the mentioned general matrix algebra formalism (*) in the drivers. Or, you can put those sensors in different remote places in your car to· obtain even more sensitivity. However, here you will definitely have a problem to mount your car on a 3D rotary table (**) for the UNAVOIDABLE(!) calibration of the 3D sensor array.
Although there are some natural error cancellation because of the 3x redundant signals, digital filtering (simultaneous Low pass, High pass and Band Pass) of the sensor's data would be essential. We have 2 COGs left, so an other FPU (+1 COG, 1 left) with user defined functions· can do it easily
for all the 4 channels concurrently at 100 Hz.
Sorry, but the design definitely will not yield a high resolution graphic VGA output, so you have to use an other Propeller for that! Or, if you can live with a low res text VGA for debug, that may be done (+1 COG, zero left)
Or, you can put in an other FPU (horibile dictu, not integer math again) to make Kalman filtering and applying physical common sense.(+1 COG, zero left).
To achieve high performance (near or real tactical-grade) an alignment procedure is essential. The math and the necessary algorithms to do this automatically before missions can be integrated into the device without additional costs.
By the way cost: I did not count exactly and·I just estimate it about $0.25K for the components. Parallax may give us some discount at such volume of orders.
The cost of an industrial grade IMU (1_000 deg/hr - 100 deg/hr) is about $0.5K -$3K.
Tactical grade units (10 deg/hr - 0.1 deg/hr) are priced·in the range of·$3K - $100K.
Any ideas and suggestions are welcome. Final design, if well working and passed thorough tests, will be open source and published.
(*) A very good summary of the necessary matrix math can be found in "Rigid-body pose and twist estimation using an accelerometer array" by K. Parsa et. al. in Applied Mechanics 74 (2004)223-236.
(**) I use a Tilting Angle Table holding a CNC Rotary table (All of Sherline (USA) Products) where a PC controls the rotation angle and speed with high precision.
The design consists of four H48C 3-Axis accelerometers arranged at the 4 vertices of a tetrahedron. These vertices coincide with some vertices of a cube (see attached picture). Data will be collected with a Propeller that is especially suited for these parallel tasks (4 COGs, 4 left). Since involved math (*) will need some real time matrix computation I propose to use an FPU (+1 COG, 3 left).
The 1 cubic inch version may fit into an RC plane or Helicopter, the 64 cubic inch version may provide us tactical grade quality data (about or less than 10 deg gyro drift / hour in the horizontal plane) if we somehow solve the temperature regulation of the sensors. That regulation can be done with 4 DS1620 (or DS1621) in programmable thermostat mode and with some heater resistors.
For serial communication we can use FullDuplexSerial (+1 COG, 2 left)
You can divert from the original design, for example placing 2 sensors at the wingtips of your RC plane and that will give you more sensitivity. Then, you do not have to reprogram the application if you use the mentioned general matrix algebra formalism (*) in the drivers. Or, you can put those sensors in different remote places in your car to· obtain even more sensitivity. However, here you will definitely have a problem to mount your car on a 3D rotary table (**) for the UNAVOIDABLE(!) calibration of the 3D sensor array.
Although there are some natural error cancellation because of the 3x redundant signals, digital filtering (simultaneous Low pass, High pass and Band Pass) of the sensor's data would be essential. We have 2 COGs left, so an other FPU (+1 COG, 1 left) with user defined functions· can do it easily
for all the 4 channels concurrently at 100 Hz.
Sorry, but the design definitely will not yield a high resolution graphic VGA output, so you have to use an other Propeller for that! Or, if you can live with a low res text VGA for debug, that may be done (+1 COG, zero left)
Or, you can put in an other FPU (horibile dictu, not integer math again) to make Kalman filtering and applying physical common sense.(+1 COG, zero left).
To achieve high performance (near or real tactical-grade) an alignment procedure is essential. The math and the necessary algorithms to do this automatically before missions can be integrated into the device without additional costs.
By the way cost: I did not count exactly and·I just estimate it about $0.25K for the components. Parallax may give us some discount at such volume of orders.
The cost of an industrial grade IMU (1_000 deg/hr - 100 deg/hr) is about $0.5K -$3K.
Tactical grade units (10 deg/hr - 0.1 deg/hr) are priced·in the range of·$3K - $100K.
Any ideas and suggestions are welcome. Final design, if well working and passed thorough tests, will be open source and published.
(*) A very good summary of the necessary matrix math can be found in "Rigid-body pose and twist estimation using an accelerometer array" by K. Parsa et. al. in Applied Mechanics 74 (2004)223-236.
(**) I use a Tilting Angle Table holding a CNC Rotary table (All of Sherline (USA) Products) where a PC controls the rotation angle and speed with high precision.
Comments
However, I wonder if H48C offers sufficient accuracy. Okay, if you calibrate it when not in motion you won't have any bias. But what about noise? What about quantization? What about drift? What about sensing speed limitation? However, you measure acceleration that will be integrated to get speed whose difference of two sensors is the rotation. Integration will collect any error you make. Have you already estimated the error of this IMU?
From your username I assume you know what a similar problem might cause when flying in clouds (in IMC) without proper instruction: the airplane's bank gradually increases, elevator is held constantly at weight of 1G, speed gradually increases, descend accelerates - and the plane breaks before ground contact because of overspeed.
Well. and I would use fixed numbers of sufficient length. Floats won't give any advantage.
Anyway, I'm still interested. I'll look up the sensor's resolution in the datasheet to get a final opinion.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
That seems like a neat idea. I'm just learning about INS, but from what I understand, this performance level is already available in the ADIS sensors for a similar price. Am I missing other adavantages?
>The 1 cubic inch version may fit into an RC plane or Helicopter, the 64 cubic inch version may provide us tactical grade quality data (about or less than 10 deg gyro drift / hour in the horizontal plane).
>The cost of an industrial grade IMU (1_000 deg/hr - 100 deg/hr) is about $0.5K -$3K.
>Tactical grade units (10 deg/hr - 0.1 deg/hr) are priced in the range of $3K - $100K.
quoted from diydrones:
"ADIS cubes are $530 qty 1 but $325 qty 1k"
"using the new ADIS16405 and I get about 2 deg./sqrt(hr) drift" "nice INS in a 1 in^3 package"
"drift is much better than what we have right now with the IDGs"
http://www.analog.com/en/mems-and-sensors/imems-gyroscopes/adis16405/products/product.html
I'm not sure how the performance of these devices contrasts with something like this IMU board though:
http://forums.parallax.com/forums/default.aspx?f=25&m=323472
x,y Gyro IDG300
z Gyro Lisy300Al
xyz Accelerometer Lis3LV02DQ
2 axis Compass HMC6352
I know the drift will be higher, but I was not sure by how much.
The physics, or calculations inside the proposed gyro-free IMU are not exactly like you mentioned
"However, you measure acceleration that will be integrated to get speed whose difference of two sensors is the rotation. Integration will collect any error you make."
Let us just keep it simple. Imagine a rod that has 2 accelerometers at the ends. You rotate that rod around its center in the horizontal plane. The 2 sensors will sense the gravity and an identically large but oppositely directed centripetal acceleration. The simple difference of the two vectors (gravity is transformed out then) will give you a vector that length is proportional with the square of the angular speed. Knowing the length of the rod you can even calculate it. No integration at all, up till now. You are of course not forbidden to integrate, only to find out of the sign. That is binary and does not cause drift during acceleration. Imagine this in 3D, like in the literature reference, and you can have a clever combination of data with much reduced drift. The drift at rest can be reduced by using the gravity as a stable reference vector. Practically only the drift in the horizontal plane remains that can be further reduced by filtering.·
Using low pass and high pass digital filtering you can (approximately) separate the static and dynamic accelerations. That helps a lot in pose estimate and Kalman filtering.
There will be a 3-12 time oversampling of the 12 bit data, so resolution will be enough, not to mention the noise reduction.
Flying in cloud the elevator is not held constantly at all. The "miniature airplane" symbol of the Artificial Horizon is kept levelled in the center with the careful and small adjustments of the elevator and of the ailerons. Airspeed is checked regularly, too. Anyway, it is wise to stay out of the clouds and fly in the middle of the air. We don't soar through clouds despite what poets say. IMC can sometimes envelop you even when you had never intended to fly in such conditions. I have been caught out in this way only once and after that flight I thought that I probably not want to
relive the experience again. And exactly because of that flight, I plan to start the training for my IMC certification very soon. One should never enter such a scenario you depicted, because it means that most of your instrument panel is lost. (You shouldn't take off with such a plane.) In case it happens in IMC, suction pump failure for example, which results in loss of the Artificial Horizon and the Direction Indicator, (although you have the Airspeed Indicator and the VSI,) you are facing your maker and you have nearly reached a position where only luck is going to save you and your passengers. Even in this bad situation, your Prop can process the accelerometers' output with algorithms based on physical common sense and use them as a simple tilt indicator, and even that imprecise data should be enough to orient yourself to the unseen horizon, and that can save you.
@ianw:
The ADIS cubes for $530 are a little bit more pricey, maybe twice. I do not know the IMU board you mentioned. I can only guess its price is about $0.5K-$1K. It contains a 2 axis compass and that is not a bonus, I suppose.
The proposed device has an advantage that I did not mention yet. It can contain, in one of the FPUs, an INS algorithm without any additional costs. This advanced feature is unique in this price class. The sensor, after proper initialization, can send direct ECEF coordinates to the navigation computer. So, that computer can be simpler and cheaper, maybe just an advanced microcontroller that can handle several tasks parallely...
I will report the results of the calibrations, the noise and the actually obtained drift figures. Beside many programming, which is really a joy with the Propeller, some metal work will be needed as well as the make of the thermal insulation and the heater electronics. My plan is to beat the performance of IMU devices that can be found in a factor of 10 times higher price category.
Will you have a 2-3axis compass in your design?
Umm... sorry, you are right! I took a different approach to calculate rotation from acceleration. But the precision argument still holds. To get rotation speed you have to take the square root of measured acceleration which dramatically increases noise. Let's get to the numbers...
It's not that easy to get datasheet of H48C on the net. I found one at hitachimetals.com stating a noise of 1.8 mgrms. I translate this to .018 g on mean square average. centrifugal acceleration is a = v2/r - if I remember correctly. This gives v = sqrt(a*r), right? Asusming a rod length of 1 m (sorry for metric units - I'm talking about approx. 3ft 3.37in here) we get a 'speed noise' of sqrt(.0018 * 9.81 * .5) = .094 m/s. Rod length of 1 m means circumference of some 3.14 m giving some 1.8 rpm. In bank, yaw, and pitch. Well, that's a bit shaky, isn't it?
We should also think about quantisation noise. 12 bit mean dither noise of almost the same size as sensor noise. They sum up to reduce the accuracy to a bit more than 10 bit.
Question also is the purpose of such a sensor. Do you want to use it to stabilize the plane? To simplify flying? To improve safety? For dead reckoning without compass, radio, GPS? You are probably not interested in your rotation speed but in your heading. In this case you need some integration that sums up the errors - well, in sware root size, but that's still enough.
Please don't consider me a disbeliever. I try to be realistic. Many good, creative ideas are hampered by even more practical considerations. I am having such ideas all the time. But if we get to the conclusion that your idea is feasible than I'll be one of the first to participate and contribute!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
Re calibration: You don't need to put the car on a rate table <smile>. You can calibrate the IMU in the lab, _THEN_ bolt it into the car. There remains the issue of correcting for mounting errors. For example, the alignment of early inertial platforms was done using mirrors reflecting precision-aligned light beams.
This sounds like a good place for me to repeat the warning that any IMU needs to be "trimmed" while in use. You do that using some other, outside reference such as GPS, a wheel tachometer, IR range sensor, or line-of-sight reference.
I definitely agree that two accels, one in each wing, would do wonders for keeping a Cessna's wings level. But short-term stabilizing is a far cry from navigating. Drift, scale-factor, and bias errors are unavoidable, and without some outside reference, an airplane is doomed to the dread death spiral. Accelerometers alone can't prevent that.
I used to work for a company (Honeywell) that's been making inertial reference systems since the ship gyrocompasses of the 20's. Over the years, companies like Honeywell, Sperry, and others have refined the art of navigating to the razor's edge. I think one would be advised to use the same algorithms they do.
Jack
http://www.sparkfun.com/commerce/categories.php?c=85
James
Yes, this page at sparkfun.com is one of my favorite web pages. Besides this one. But part of their sensors is not really simpler. We are talking here about four units containing three accelerometers each. (Really? Three sensor for 2 DOF each should be sufficient.) They offer such units, too. Or units containing single or double accelerometers. They offer single axis rotation sensors (gyros) which are more expensive. Some sensors they offer are really easier to handle: 5 or even 6 DOF. But they cost even more than four Parallax-H48C...
In brief: The hardwareis not complex at all, the math stuff is exiting! It's fun. And maybe even useful.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
@ianw:
You are welcome. Having a full time job in the industry, while managing my small and independent software consultant
firm, I can do it only for joy. And that means, that I will do it very soon. I expect 3 month for the first usable prototype hardware. I prepared and tested many components of the software (and some hardware) already. Into this 6DOF IMU I do not plan to place a 3-axis magnetometer. Experiencing with a sensitive Honeywell HMR3300 3-axis compass on a Cessna172 showed that it is advantegous to place the magnetic sensors separately from other lectronics and as far possible from the larger metal parts and current carrying cables. A compact design with plastic enclosure mounted somewhere behind the seats or the baggage compartment will do. The IMU itself should be placed somewhere close to the CG, below the first or second line of seats. I have written a propeller driver for that digital compass along with a WMM2005/IGRF2005 geomagnetic field calculator (using an FPU), but that HMR3300 was expensive. The more advanced HMR3600 is not cheap, either. I have bought 3 pieces of HM55B then. They are on the shelf, waiting...
@virtuPIC:
First of all, we can agree on (using the ideas of Isaac Newton and Leonhard Euler) that the angular velocity and angular acceleration vectors can be obtained directly from the accelerations data of a kinematically redundant set of
triaxial accelerometers. No integration needed, just the proper combination of the measured values. That is something
that one can feel instinctly. Some guys have to rewrite their books, I know. But that is not our problem.
OK. Let's see the noise figure. To measure noise, the heating effect or rms value is used. The standard deviation of a Gaussian noise voltage is the root-mean square or rms value of the voltage.· We use 4 independent sources for 1 accelerometer channel. That immediately divides the value by 2, so we have 0.9 mgrms.
When Gaussian noise is band-limited with a filter, its Gaussian characteristics are not changed. However, its rms
voltage is decreased. White Gaussian noise has a spectral density that is independent of frequency. Thus the mean-square voltage in a· frequency band F is directly proportional to F. The catalogue figure (1.8 mgrms) refers to 100 Hz bandwidth. Let us suppose that we do not shake the airplane with the controls with frequency higher than 4 Hz and we can use a low pass filter· with that frequency. Square root of 4 is 2 and the square root of 100 is 10. We have now a 5-fold advantage yielding 0.18 mgrms. Good to know the noise figure, but we really need to know the signal to noise ratio. Let us make a·0 to 30 degree bank in 1 second. The angular speed of this roll is (30/180)*PI and is about 0.52 rad/sec. At the end of our well proven 1 m rod this will give us more than 17.5 S/N value. And we didn't even switched on the Kalman filter or some Fuzzy-Logic based flight regime identifier. Excuse me for sometime over simplifying the reasoning, but it seems to me that amount of noise can be handled real time.
The real question, which decides the area of· applications, is: Can we make the sensor array so sensitive with emperature regulation and filters and long time (5-10min) data integration during the initialization period before mission, that it can feel the Earth's rotation? I will try it experimentally, but I don't suppose so. To measure Earth rate is a key vector for INS alignment. If the sensor array (with H48C-s) will not be so fine, it can be used in cheap AHRS systems with GPS and magnetic compass or as a high precision sensor in robotic applications or in cars. I would like to have, for example, a nice beta meter in my Honda Type-R.
The math stuff is really fun. Propeller is running with 6-8 COGS, FPUs are running parallely, too. It seems, that final
version can achieve 100 Hz with combined and filtered data on 6 channells.
@Jack Crenshaw:
I cited from one of your articles in the comment part of some OBEX objects. I can't resist to repeat it here:
"In the worlds of math, engineering and physics, it's the matrix that separates the men from the boys, the women from the girls."
hoping that you will give me permission afterwards to do so.
Of course, I will try to make this sensor better than traditional designs on the market. It is not written in the Bible that those are the best, so why not?
At low rotation rates the MEMS gyros behave with similar uncertainty. I have experienced with ADIS16100 (ANALOG DEVICES) that is a 300 deg/sec yaw rate gyro with SPI interface. It is really a good device, but it is only 1-axis and it is somewhat expensive. And when I put my finger on it it started to "rotate". You can observe similar behavior with H48C, it will "accelerate". I guess that temperature sensitivity is the main obstacle to build a high precision meter with MEMS devices. In the proposed design we have to build 4 identical temperature regulated cubic cells. The cells contain a small, shaped metal block in close thermal contact with the sensor IC. This metal block serves as a heat-bath for the sensor. A DS1620(1), also in close thermal contact with the metal, will do the digitally controlled temperature regulation in thermostat mode. The Propeller will just command the parameters of this regulation and can sometime ask for the actual temperature of the block. The temperature of the block will be kept above the temperature of the environment. This regulation can be set up, e.g., for 20, 40, 60 degrees of celsius, sothe device will work in the arctics and in the rain forests, as well. The metal block with the parts will be thermally insulated from its cubic container to keep heater currents as low as possible. These 4 identical cubes can then be easily mounted on orthogonal arms of the final assembly. This assembly will have place to contain the circuitry for the Propeller and for the heaters.
If one checks the thermal behavior of pre-assembled 5 or 6 DOF IMUs, she/he will notice "interesting" effects. And putting the whole thing into a thermally regulated and/or insulated container will not help too much. There remain thermal gradients inside the box, because of the working ICs and components. And because of these, performance in real life situation suffers.
@Jack Crenshaw:
You are right with the car if you·mount a small sensor array as a whole. But when you mount the accelerometers at separate places you have to make the calibration with the whole car, i guess.
Post Edited (cessnapilot) : 2/7/2009 2:44:55 PM GMT
Uh! That's really demanding. Earth rotation is 1/86,400 rps. This gives at 1 m height distance between two accelerometers an acceleration difference of 2.7*10-11 g. I remember having seen noise figures of Analog Devices sensors during the weekend of some .1 mg per sqrt(Hz). Running such a sensor for 10 min gives noise of 4 ug. (read 'ug' as 'micro-g'.) Measuring earth rotatioin with such a sensor seems completely impossible to me. Am I getting something wrong here?
Also, regarding noise reduction by extending measurement period - which is basically a low pass filtering of oversampled values - we have to ensure that the error we want to filter away is statistical. Have a look at Microchip's AN 1152 'Achieving Higher ADC Resolution Using Oversampling' where they also disregard this fact. They simply do a statistical calculation handling the quantization dither as Gaussian noise. But assume you have a constant value with noise so low that you don't get any change in your ADC output you won't get eny SNR improvement.
Yes we can! Can we even afree that this is even possible with a lower number of sensors? That we can get 6 DOF with 6 linear accelerometers in proper arrangement just correctly combining their current values?
Oh, one remark regarding the low pass filter during the mission. Yes, 4 Hz seems to be a reasonable value as maximum control input frequency. However, I already expereienced turbulence in a powered glider with a wing span of 17 m (almost 56 ft) and in a C152 shaking the plane at a higher rate. I am not really sure about how we will have to handle the harmonics. Have to think about that. Anyway, there is also the option to put the accelerometers into dampening harnesses. This would give a pre-measured low pass filtering without quantization errors.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
7.27E-5 rad/sec:
No, you are completely right. As I mentioned, I don't suppose that this H48C array can reach that precision. I just tried to setup a major decision point in the selection of the possible applications. A cheap but very good quality attitude sensor, or a sensor for a GPS/IMU combination and the new type of math, that was described in the literature is, however, worth implementing with the Propeller / H48C / FPU assembly. Anyway, if electronic fails, I shall always win the bets about that rotation sensing with the device. I shall need only a long string.[noparse]:)[/noparse]
Oversampling:
The oversampling (3-9) occurs before the low-pass filter. Here 1.8 mgrms noise figure is greater than the quantitatizaton noise. The H48C analog output before the ADC is 200 Hz bandwidth limited so the noise may be higher than the mentioned 100 Hz catalogue figure. The minimum readout time of the ADC in my design is about 30 us. ADC can be sampled at higher speed than 50 ksps, so oversampling bursts, at the first place, will 'improve' the resolution of the ADC, not especially the noise. Noise will be handled at later stages with digital filters. Clever digital filters can not only decrease noise or·just shape·signals but can even recognise and remove spikes from the data. Those spikes can drive Kalman filters crazy.
6 sensors:
Yes, you can arrange 6 linear sensors in a very similar way. Actually the posted idea to use 3D sensors on the
tetrahedron came to my mind while I was reading many '6 sensors on a cube' articles. I checked the literature and I
did not find the proposed arrangement, although it seemed very plausible. Perhaps at that time 3-axis accelerometers
were not so common. The mathematical equivalence between the 2 arrangements are trivial. 3-axis data, however can be handled more easily. And you have twice as many signals/channel to (really) cancel noise.
Harmonics:
Air can be sometimes very bumpy, in thermals for example. That shakings of the plane certainly have higher than 4 Hz
harmonics. Some data recording with MEMSIC2125 accelerometer showed that in a Skyhawk most of the harmonics that came from maneuvering and from the interaction with the outside air are usually below 10-15 Hz. Higher frequency engine vibration and the vibration during taxiing and rolls can be (I suppose) filtered out effectively. (Not to mention the vibrations at such landings that are more of an arrival than a smooth touch-down.)
Post Edited (cessnapilot) : 2/10/2009 12:07:49 AM GMT
Wow, those are high dollar magnetometers. With such affordable low drift gyros and 5Hz+ GPS I've wondered how necessary magnetometers really are, especially the high dollar ones. Are your heading measurements significantly improved with these magnetometers?
You stay very busy - I thought you might be the same I.K
The GPS can't give you attitude, of course. But if you hold a constant heading and altitude, you can be pretty sure you're flying rubber side down. No "death spiral" without heading change.
Jack
Well, from GPS you also get ground speed which is also interesting for cross country flights and refuelling plans. You get altitude - but expect up to 100 ft error. You want to get attitude if your plane has elevator, aileron, and rudder for coordinated flight. This saves fuel, adds performance, and safety. A few issues ago there was an article in AOPA Pilot on this topic. Sure, you cannot get into a graveyard spiral. But if you are climbing at relatively low speed with a fully loaded plane you have to keep 'the ball in the middle' - means to fly coordinated. Because if you stall you will simply drop straight ahead and won't start to spin. Coordinated stalls can be recovered much more easierand with much less altitude loss than spins.
Then I would also think about controlling auto pilots. Here you need fast reaction. A typical low cost GPS gives you one sample per second at an accuracy of some 15 m (50 ft) horizontally and 30 m (100 ft) vertically for 95% of the time. If you want to correct gusts in the mountains or even actively dampen turbulence you have to be much faster. Oh, sorry, you can't do this with GPS. It doesn't give you attitude. Well, you could try some automatic landing which was already possible with the Lockhead Tristar. But take a wide, long runway to be sure you hit.
Well, I wouldn't say that a single type of sensor (i.e. IMU, GPS, VOR, DME, QDM, NDB, ILS, magnetic, aerodynamic, aerostatic...) can covver all demands. Of course, you can restrict to a certain class depending on your needs. On the other hand intelligently combining different kinds of sensors gives you a more complete picture. I know of other projects in aviation combining IMU and GPS to add their individual advantages.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
Magnetometers will improve the heading and the better ones even the attitude values, if you use, e.g. WMM2005 magnetic field data to compare readings. However, you have to place the sensor to a 'magnetically quiet and steady' place somewhere, and you have to calibrate it with rotating the whole vehicle 360 degs (several times).
Jack and virtuPIC:
I completly agree with vituPIC. Use whatever available and don't trust only one device, especially the GPS. Modern technology isn't 100 percent failsafe. (Older ones aren't, too.) Remember Herbert Weiss case (2007). The champion pilot was provided with high-tech radios, microwave telemetry, GPS and TV technology with rely helicopters to handle long distance communication and video. And they lost contact and the pilot did not even have the chance to send Mayday.
Another advice (to stepson): don't forget how paper maps look like. I often fly deliberately without GPS, using only maps, pilotage and dead reckoning. GPS listens and records in the baggage compartment, only to check later my precision over the legs.
I think I said, early on, that any nav sensor device works better (or only if) it's trimmed by another. The gyro/GPS combo is a natural. Way back when, I used to work on nav systems. We worked hard to make the gyros and accels as stable and low-drift as humanly possible. Some of Honeywell's systems are legendary. But even the best of them still drift, so need some external measurement, be it from radio beacons, doppler radar, map-reading, or something, to keep the error from building with time.
All that changed with the advent of GPS. As more systems have used GPS for primary nav, the need for accuracy in the other sensors has gone down, to the extent that we're now quite content to use solid-state MEMS parts as the short-term sensors.
As you imply, you use gyros and accels to damp (relatively) high-frequency inputs, as from turbulence; GPS or something to say on course.
Nobody disputes that a cheap nav package, augmented by GPS, is the way to go. My son's comment simply says that if you have to make do with only one, the GPS is the one to choose.
My main point is that, like ianw, I think 3 gyros, 3 accels is a much better choice than 6 accels. Unless your goal is simply to use only Parallax components, the idea of using accel pairs instead of gyros is a Bad Idea.
One last point: You were right the first time: You really do need to integrate angular accel to get angular velocity, and again to get attitude. Trying to sense angular velocity from centrifucal force is not workable.
Jack
You DO NOT NEED TO INTEGRATE angular acceleration to get angular velocity. Believe it, or not. Getting angular velocity directly from point acceleration measurements is COMPLETELY (practically, theoretically and easily) DOABLE. I gave a good reference at the beginning of this thread. Now I give another one:
P.Cardou, J. Angeles,
Angular Velocity Estimation From the Angular Acceleration Matrix,
Journal of Applied Mechanics, March, 2008., Vol 75, issue 2.
I even reproduced the method of the first reference with success using Matlab and TI 92plus. So, I must believe my eyes and my very personal experience. And, of course, in my physical common sense.
I try to explain it now without tensors and vectors, but with some simplification. Imagine that
-You can measure directly the square of a magic quantity.
-You can measure directly the rate of change of that magic quantity.
After square root you have the measured absolute value of the magic quantity. Let it be 6.0.
At the next time step the measured absolute value of the magic quantity is, for example 5.5.
The measured rate of change during this period is +20.0. Measured plus 20.
Time step is 0.025. Measured plus 0.025 because of the arrow of time.
Measured change (with sign) of the magic quantity is +0.5, then.
Question: What is the sign of the measured magic quantity? (Its absolute value went from 6 to 5.5.)
Answer: Of course, minus.
A computer can figure out this for all 4 cases, WITHOUT INTEGRATION.
Let me answer your previous definite statement (bad idea) somewhat later. Just a short preliminary: The 2 methods are theoretically equivalent. With both you can measure acceleration and angular velocity directly. Practical implementation can favor this one or that one, depending on the requirements and price.·The main point in my argument will be that with accelerometers you can make practically·driftless gyros. (Using gravity and mag) Of course you can correct gyro drift by itself using that technique if you like high dollar solutions with the same outcome.
Regards
Regarding the arithmetics, I am still confident that we only need fixed point at a sufficient number of bits. Well, from there it's not far to floating point...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
Yes. GPS not only can help in the calibration but the 6DOF IMU data can be fused with the GPS readings using a Kalman filter to benefit from the best properties of the sources. The proposed IMU solution has two features to promote GPS/IMU data fusion:
(A)It will have a built in navigation data processor (see INS_Math_WGS84_Earth, http://obex.parallax.com/objects/335/) and will provide ready made ECEF coordinates to the GPS/IMU Kalman filter. GPS yields ECEF coordinates, too. So this filter can be very simple in the outer 1Hz loop. Weighted data average with perhaps a simple kinematic vehicle model, where the matrices involved will be small and the time to calculate an inverse will be long enough.
(B)In the faster (e.g 100 Hz) inner loop inside the IMU the proposed kinematic calibration method seems doable continuously in real time during the travel. And this might obviate the usage of a Kalman filter there. This Kalman filter would use much larger matrices to treat all offsets and drifts, so its avoidance will KISS the project.
Another thing. In the PDF you might have noticed, that the symmetrization of the W matrix is not necessary to obtain the angular velocity vector. Diagonal elements are ab ovo parts of the symmetrical version, without any transformation. So the algorithm is even simpler than I wrote there.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Now, I have a question and I need help. I figured out how to make a symmetrical 100 Hz square wave on a pin setting CTRA and FREQA of Counter A. But, how can I setup the counter to produce an unsymmetric square wave with the same frequency, but with, for example (1/64) duty cycle? I need just a short trigger signal in the· 1-200 Hz range for all the sensor drivers.
Thanks in advance.·
Regarding your question, keep in mind that the on / off times of your 100 Hz signal must be multiples of the clock period. A very simple approach is to modify the timer registers after change of output to change the time to next change. I assume the output won't change if you change the control registers. (Does it?) You only have to guarantee a check for a change at least once during each high and low time. Of course you can waste a cog for this task or generate the timing in software instead...
Oh, I would also think about two interacting timers...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets for tools & toys
PilotInCommand, if you have seen the PDF, your question about the sign·has been·answered one way. Here is another, likely easy way to determine sign. I try to write it down in SPIN (for a given omega component, that as we know, is obtained as an absolute value from the W matrix). But we obtained alpha with sign!!!
signOfwNow := (wNow-wPrevious)*alphaNow
Just one line in SPIN. No more, no less. It is hard to make simpler than that. In the technical literature old mistakes die hard. If you see what I mean. Good to know, that the recognition of this simple fact about basic, measured physical quantities happened in the last five years by some·smart robotic engineers. You may combine this simple code with the summation code described in the PDF to get an even more robust numeric method to decide sign from the measured values.
My question about square waves is related to the precise synchronization of several sensors. I do not have to use a separate COG for this task. I even start the wave in COG 0 from SPIN code. The accuracy of the frequency at 100 Hz is better than 0.01 Hz (measured with a 0.1 ppm accurate frequency source). All the drivers WAITPEQ to start conversion. Of course, the drivers's PASM code can handle the symmetrical wave. After the conversion, they all wait for a LOW line, before the next conversion. The code would be 2-4 PASM lines simpler if the wave resembled· spikes. Beside that, there remains a general technical question, wether can we·generate a low frequency, unsymmetric wave or not, with Counter A?
A new version of the accelerometer array document is attached , where the General MEMS Sensor·Model method is discussed in details, and the title has been changed·to better· describe the project in advance.
Istvan