Embedded H48C enters 1mg accuracy range
cessnapilot
Posts: 182
1 mg is incredibly good (0.1% or so) accuracy. It allows, for example, to resolve 0.06 deg attitude change in tilt sensing applications. This level of performance can be achieved by using a H48C/Propeller/uM-FPU combination and the "General MEMS Sensor Model" object, which has just been placed at OBEX.
The General Sensor Model can be used in embedded applications with any kind of 3-axis MEMS sensor, such as Accelerometers, Rate-Gyros or Magnetometers. The new object is a template collection for Propeller based projects where low-cost (or even better if not so low-cost) MEMS sensors can be embedded into magnitude(s) more accurate regime of operation. The General Sensor Model contains a real-time temperature correction procedure and that is shown with the new object, too.
H48Cs with that acccuracy are vital requirements to reach, tactical grade quality for a very low-cost 6DOF IMU built with four of them, that I proposed sometime before. Conventional tactical grade IMUs on the market are usually in the several thousand dollars price category.
I verified the "General MEMS Sensor Model" object with a dual Memsic 2125 setup and a dual HM55B array, as well. I observed amasing and inspiring boost (>20) of accuracy with those MEMS devices, too.
Any questions, experiencies or opinions about this object, and the theory behind it, are welcome.
Istv
The General Sensor Model can be used in embedded applications with any kind of 3-axis MEMS sensor, such as Accelerometers, Rate-Gyros or Magnetometers. The new object is a template collection for Propeller based projects where low-cost (or even better if not so low-cost) MEMS sensors can be embedded into magnitude(s) more accurate regime of operation. The General Sensor Model contains a real-time temperature correction procedure and that is shown with the new object, too.
H48Cs with that acccuracy are vital requirements to reach, tactical grade quality for a very low-cost 6DOF IMU built with four of them, that I proposed sometime before. Conventional tactical grade IMUs on the market are usually in the several thousand dollars price category.
I verified the "General MEMS Sensor Model" object with a dual Memsic 2125 setup and a dual HM55B array, as well. I observed amasing and inspiring boost (>20) of accuracy with those MEMS devices, too.
Any questions, experiencies or opinions about this object, and the theory behind it, are welcome.
Istv
Comments
Maybe its only a habit. In the pre-Propeller times I was "forced" to use the FPU with the BS2p or with the Javelin and I got used to it. Beside that, I have good reasons to use it nowadays in some Propeller projects where higher precision and speed are beneficial for some floating point calculations. The General MEMS Sensor Model (the topic of this thread) will be used in the 6DOF IMU project, where I would like to achieve 200 Hz data rate with digitally filtered data channels and direct ECEF coordinate output. That coordinates will be great for an easy and robust GPS/IMU data fusion. When I set up the necessary WGS84 Inertial Navigation Algorithm with the Float32Full object, the code used thousands of LONGs from the HUB memory, needed 2 COGs and achieved a not really amazing 35 Hz speed. With the user defined functions in the FPU it now runs about 300 Hz, takes only 1 COG and uses around 500 LONGs from the HUB. That's for speed. Now let's see the precision.
The FPU gives you higher precision results for some functions than the floating point software library. Here are at some examples:
SIN(0.5)
FLOATLIB· 0.4794314······ 4 digit correct
UM-FPU····0.47942552··· · 7 digit correct
10 DIG····· 0.4794255386
TAN(3.1)
FLOATLIB -0.041623······ ·3 digit correct
UM-FPU·· -0.041616516·· ·5 digit correct
10 DIG···· -0.04161665458
EXP(0.71)
FLOATLIB· 2.03398········· 5 digit correct··········
UM-FPU··· 2.0339913······ 7 digit correct····
10 DIG···· ·2.033991258
·These differencies might seem negligible. However, during longer calculations, where errors accumulate and amplify themselves, the higher precision gives sometimes spectacular advantage. I experienced this even with relatively simple WGS84 to/from ECEF transformations. The pair of transformations carried out with the floating point library could divert you dozens of nautical miles away from your actual position. The FPU, with the same algorithm, brings you back home with a maximum 1 meter error. Before I realized that, I debugged and debugged the floating point library code for many hours.
So, it depends on the task. Take it or leave it, but when the task needs it, better take it.
The General Sensor Model algorithm definitely needs it to be run at 200 Hz (4x).
István