PARAMETER ESTIMATION FOR ACCELEROMETERS, PROCESSES, CIRCUITS, DEVICES AND SYSTEMS
An electronic circuit includes accelerometer (1140) sensors mounted on different axes, memory circuitry (1024) and an electronic processor (1030) coupled to the accelerometer (1140) sensors and to the memory circuitry (1024), the electronic processor (1030) operable to generate signals representing at least one calibration parameter for the accelerometer (1140) sensors from signals representing data resulting from the accelerometer (1140) sensors in an imprecise orientation of the accelerometer (1140) sensors. Information storage media, systems for measuring acceleration, and processes of operation and processes of manufacture are also disclosed.
Latest TEXAS INSTRUMENTS INCORPORATED Patents:
- BULK ACOUSTIC WAVE RESONATORS HAVING CONVEX SURFACES, AND METHODS OF FORMING THE SAME
- Oscillator circuit with open loop frequency modulation
- Streaming engine with multi dimensional circular addressing selectable at each dimension
- System and method for recharging a battery
- Pseudo channel hopping using scan dwell times in mesh networks without time synchronization
This application is related to India Patent Application Number 567/CHE/2008 filed Mar. 6, 2008, titled “Estimation Of Bias Error And Axes Gain For Mems Tri-Axes Accelerometers Implemented On Cell Phone Platform For Vehicle Navigation” and priority is claimed under the Paris Convention and 35 U.S.C. 119 and all other applicable law.
This application is related to India Patent Application Number 565/CHE/2008 filed Mar. 6, 2008, titled “Accurately Calibrating E-Compass For Tilt Error In A Suboptimal IMU System Comprising Of Accelerometer And E-Compass Mounted On Cell Phones” and priority is claimed under the Paris Convention and 35 U.S.C. 119 and all other applicable law.
This application is related to the US patent application titled “Processes for More Accurately Calibrating E-Compass for Tilt Error, Circuits, and Systems” Ser. No. ______ (TI-65997) filed on even date herewith, and said U.S. patent application is incorporated herein by reference in its entirety.
This application is related to US patent application publication US 2009/0054075 dated Feb. 26, 2009, and U.S. patent application Ser. No. 11/844,006 (TI-38194) filed Aug. 23, 2007, titled “Satellite (GPS) Assisted Clock Apparatus, Circuits, Systems And Processes For Cellular Terminals On Asynchronous Networks” and said U.S. patent application documents are incorporated herein by reference.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENTNot applicable.
COPYRIGHT NOTIFICATIONPortions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, or the patent disclosure, as it appears in the United States Patent and Trademark Office, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTIONThis invention is in the fields of electronic computing hardware and software, navigation and communications, and processes of operating and making such circuits, devices and systems. Without limitation, the background is further described in connection with accelerometer-based applications, circuits, devices and systems, such as for portable, including mobile, applications.
Mobile telephony can communicate video and digital data, and voice over packet (VoP or VoIP), in addition to cellular voice. Streams of information such as video, voice, audio content, images of all kinds, and data should be flexibly handled by such mobile devices and platforms. But power dissipation can limit time between battery recharges and limit the features and number of applications running. And system latency might cause various kinds of delays and lapses in desirable application operation.
Processors of various types, including DSP (digital signal processing) chips, RISC (reduced instruction set computing), information storage memories and/or other integrated circuit blocks and devices are important to these systems and applications. Containing or reducing energy dissipation, system latency and the cost of manufacture while providing a variety of circuit, device and system products with performance features for different market segments are important goals in integrated circuits generally and system-on-a-chip (SOC) design.
MEMS (micro-electromechanical structure) accelerometers can be used in portable platforms such as cellular phones, personal assistants, positioning devices, and other applications. The platforms are useful such as for freefall detection, tilt sensing, position sensing, velocity measurement, gaming applications, elderly monitoring systems, and Inertial Navigation systems (INS as an assistance to GPS) in vehicular and pedestrian navigation generally, and e-compass supported navigation. MEMS accelerometers can be used for Inertial Navigation (INS) Assistance to GPS in GPS challenged environments.
MEMS accelerometers suffer from bias error and axes gain errors which should be estimated precisely for applications like tilt sensing, inertial navigation and vehicular and pedestrian navigation. Estimation of accelerometer parameters, such as bias errors and axes gains, of MEMS accelerometers can be problematic. It is difficult for a cell phone user to estimate and calibrate gain and bias errors in accelerometers on-the-fly. Accordingly, new solutions that provide more fully user-friendly embodiments to evaluate accelerometer bias errors and gain errors would be highly desirable.
SUMMARY OF THE INVENTIONGenerally and in one form of the invention, an electronic circuit includes accelerometer sensors mounted on different axes, memory circuitry, and an electronic processor coupled to the accelerometer sensors and to the memory circuitry, the electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors from signals representing data resulting from the accelerometer sensors in an imprecise orientation of the accelerometer sensors.
Generally, another form of the invention involves an information storage medium holding a set of physical representations of instructions executable by an electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations.
Generally, a process form of the invention involves a process of accelerometer calibration, and the process includes generating signals representing accelerometer calibration parameters from signals representing multi-axes accelerometer data from different imprecise accelerometer orientations.
Generally, a system form of the invention for measuring acceleration includes a portable device having accelerometer sensors mounted on different axes and operable to supply accelerometer signals representing accelerometer data, a transducer associated with the portable device and operable to emit a user-perceptible prompt, and an electronic processor coupled to the accelerometer sensors and to the transducer, the electronic processor operable to cause the transducer to emit the user-perceptible prompt, and the electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors in response to the accelerometer signals in different freely-establishable orientations of the portable device.
Generally, and in a process of manufacture form of the invention, a process of manufacture includes attaching to a printed wiring board an electronic processor and an accelerometer and a flash memory holding a set of physical representations of instructions executable by the electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations.
These and other forms of circuit, device, system, information storage medium, apparatus, process, and other forms of the invention are disclosed and claimed.
Corresponding numerals in different figures indicate corresponding parts except where the context indicates otherwise.
DETAILED DESCRIPTION OF EMBODIMENTSIn
“Navigation” as used herein includes any one, some or all of position, direction, heading, tilt, altitude, azimuth, velocity and acceleration sensing and/or location-based applications, position-based applications, map-related applications, trajectory control, braking control, cruise control, steering control, engine control, course monitoring and completion, maneuvering, free fall detection, image acquisition control, image stabilization, and other applications combining or benefiting from any of the foregoing. “Portable device” as used herein includes any device, apparatus, or system, such as those stated herein as well as others, that is sufficiently movable in orientation to utilize and benefit from the embodiments and teachings herein.
In
A camera 1490 provides video pickup for cell phone 2010 to send over the internet to cell phone 2010′, personal digital assistant/personal entertainment unit PDA/PEU 2096, STB (set top box) 2092 and television TV 2094, automobile 2095 and to a monitor of PC 2070 via any one, some or all of cellular base station 2050, DVB (digital video broadcasting) station 2020, and WLAN AP/gateway 2060. Handsets 2010 and 2010′ have a manual input 1050′ such as a keyboard, a microphone 1055, a display 1060, and user prompt transducer(s) 1180 such as a flashing LED and/or audible transducer. Analogously, PDA/PEU 2096 has user prompt transducer(s) 2097, and a display 2098. Handsets 2010 and 2010′ have a video storage and other information storage medium, such as hard drive, flash drive, high density memory, and/or compact disk (like CD 2075) in the handset or external thereto for installation of applications, etc. Digital video recording (DVR) is supported, such as for delayed reproduction, transcoding, and retransmission of video to other handsets and other destinations.
On a cell phone printed circuit board (PCB) 1020 in handset 2010, is provided a secure processor integrated circuit 1022, an external flash memory 1025 and SDRAM (synchronous dynamic random access memory) 1024, and a serial interface 1026. A Power, Resets, and Control Module PRCM 1050 (1770 of
Cell phone 2010 intercommunication also occurs via modems 1100, such as a cellular modem, WLAN, Bluetooth, and any other modem(s) and can access a website 2055 or 2065, television and physical layer (PHY) or other such circuitry 1100′. A WLAN and/or WiMax portion includes MAC (media access controller), PHY (physical layer) and AFE (analog front end). A MIMO UWB (ultra wideband) MAC/PHY supports OFDM in 3-10 GHz. UWB bands for communications in some embodiments. A digital video integrated circuit provides television antenna tuning, antenna selection, filtering, and RF input stage for recovering video/audio/controls from DVB station 2020.
Processor integrated circuit 1022 has MPU (or CPU) block 1030 coupled to an internal (on-chip read-only memory) ROM 1032, an internal random access memory RAM 1034, and flash memory 1036. A security logic circuit 1038 is coupled to secure-or-general-purpose-identification value (Security/GPI) bits 1037 of a non-volatile one-time alterable Production ID register or array of electronic fuses (E-Fuses), for enhancing secure e-commerce and system security generally. Depending on the Security/GPI bits, boot code residing in ROM 1032 responds differently to a Power-On Reset (POR) circuit 1042 and to a secure watchdog circuit 1044 coupled to processor 1030. Secure Demand Paging 1040 supports the system and increases the effective size of secure memory.
In this way, advanced networking capability for services, software, and content, such as cellular telephony and data, navigation applications, audio, music, voice, video, e-mail, gaming, security, e-commerce, file transfer and other data services, internet, world wide web browsing, TCP/IP (transmission control protocol/Internet protocol), voice over packet and voice over Internet protocol (VoP/VoIP), robotics, medical-related services, and other services accommodates and provides security for secure utilization and entertainment appropriate to the just-listed and other particular applications.
The embodiments, applications and system blocks disclosed herein are suitably implemented in fixed and portable devices such as for mobile, automotive 2095, seaborne, and airborne, communications, control, set top box 2092, television 2094 (receiver or two-way TV), and other apparatus. DLP™ display technology from Texas Instruments Incorporated, or liquid crystal display LCD or other video display technology is coupled to any of the system blocks of
In combination with the GPS circuit 1190, and the video display, the RISC processor 1422 and/or IVA (imaging and video applications unit) DSP 1424 support location-based embodiments and services of various types. These services provide roadmaps and directions thereon to a destination, pictorials of nearby commercial establishments, offices, and residences of friends, various family supervision applications, position sending to friends or to emergency E911 service, and other location based services now known or yet to be devised. For such services, fast time of position fixing, low system power consumption, and reliability of accurate timekeeping to support position-based services even during power management operations and cellular network base station handover or handoff operations are all desirable for improved technology such as supported by various embodiments herein.
It is contemplated that the skilled worker uses each of the integrated circuits shown in
In
Data exchange between a peripheral subsystem and a memory subsystem and general system transactions from memory to memory are handled by the System SDMA 1710.1. The DMA channels support interconnect qualifiers collectively designated MreqInfo, such as MreqSecure, MreqPrivilege, MreqSystem in order to regulate access to different protected memory spaces. The system configures and generates these different access qualifiers in a security robust way and delivers them to hardware firewalls 1712.1, 1712.2, etc. via lines 1738 as well as to firewalls 1722.1, 1722.2, etc. associated with some or all of the targets. The hardware firewalls protect the targets according to different access rights of initiators. The DMA channels 1715.1, .2, etc. are configurable through the L4 Interconnect 1734 by the MPU subsystem 1705. Firewall configuration on a DMA interface 1715.i restricts different DMA channels according to the configuration previously written to configuration Internal Register fields. This Firewall configuration implements hardware security architecture rules in place to allow and restrict usage of the DMA channel qualifiers used in attempted accesses to various targets. When an attempt to configure access for DMA channels in a disallowed way is detected, in-band errors are sent back to the initiator that made the accesses and out-band errors are generated to a Control Module 1765 and converted into an MPU Interrupt for security attack detection and neutralization.
Data exchanges within a DSP subsystem 1710.2 are handled by the DSP DMA 1718.2. Data exchange to store camera 1490 image capture is handled using a Camera DMA 1718.3 in camera subsystem CAM 1710.3. The CAM subsystem 1710.3 suitably handles one or two camera 1490 inputs of either serial or parallel data transfer types, and provides image capture hardware image pipeline and preview. Data exchange to refresh a display 1060 is handled in a display subsystem 1710.4 using a DISP DMA 1718.4. This subsystem 1710.4, for instance, includes a dual output three layer display processor for 1xGraphics and 2xVideo, temporal dithering (turning pixels on and off to produce grays or intermediate colors) and SDTV to QCIF video format and translation between other video format pairs. The Display block 1710.4 feeds a user-viewable display, such as a DLP™ display from Texas Instruments Incorporated or an LCD panel or other display, using either a serial or parallel interface. Also television output TV and Amp provide CVBS or S-Video output and other television output types for display.
In
In
In
In
In
In
GE 2160 is coupled to the rest of system 1700 of
In
In
In
One demanding approach in estimating bias errors and axes gain involves orienting the 3 axes accelerometer 1140 of
Embodiments of method and system herein remove the necessity of accurately orienting the accelerometer 1140. Instead, accelerometer 1140 readings at rest in different, imprecise or unspecified, freely-establishable orientations are conveniently taken. Precise or specific postures need not be prescribed nor relied upon while taking these readings. An ordinary or regular user can easily tilt the cell phone 2010, PDA 2096, or other portable device in different orientations 2535A, 2535B, 2535C and perform the calibration. Since the exact postures are not of concern, there is no requirement on the accuracy of the postures.
Various embodiments work on the datasets signaled by accelerometer 1140 at different imprecise, unspecified, non-specific or unknown orientations and nevertheless can estimate best-fit values for various accelerometer parameters, such as the axes gain and bias errors, etc. In other words, various embodiments of structure and process benefit from different orientations 2535A, B, C that are freely-establishable and user-determinable. No test fixture, calibration jig, nor otherwise-additional precision test instrumentation is required. Various types of accelerometer 1140 sensors, such as capacitive, piezoelectric, optical, MEMS (micro-electromechanical structure), and/or gyroscopic and others can be employed.
In
A succeeding step 2530 cues the user such as by display messages and/or audible instructions calling for the user to position the accelerometer 1140 in different orientations or directions 2535A, B, C to accumulate data for calibration purposes. Various position assist prompts are suitably given to the user to clarify and facilitate the measurement process. A succession 2535 of cues and measurements occurs, as suggested by orientation-changing arrows 2535A, 2535B, and 2535C in
The portable device is programmed to cue the user with a beep and/or flash when each measurement is to be taken. Then after the orientation is stable and the measurement is acquired, a beep-beep and/or double-flash from prompt transducers 1180 is issued. If the orientation is not changed within a modest time interval, then a single cueing beep is again issued as a reminder. Any of numerous other audible sounds and optical cues and/or other cues can be issued in various embodiments, and human factors engineering can be applied to establish convenient, understandable cues/prompts.
In
A further step 2550 performs a pre-calibration calculation of the parameters of the accelerometer 1140, such as bias errors μ and axes gains S for each of the three accelerometer sensors X, Y, Z that best fit with the measurements. A step 2560 performs position sensing calculations that blend the accelerometer 1140 information (INS) and GPS position information as in
For example, if the user were still accelerating or decelerating the portable platform 2010 holding the accelerometer sensors in the process of changing the orientation of the platform, then the latest measurement vector that can depart significantly from the 1 g acceleration of gravity. Also, if the platform were accidentally dropped, the accelerometer sensors would be in free fall and would produce a measurement vector that would depart significantly from the 1 g acceleration of gravity. In use at run-time, measurements by properly-calibrated accelerometer sensors that depart from 1 g significantly would acceptably and desirably contribute to velocity-sensing and position-sensing. In this example of a specifically distinct calibration process at step 2620, however, the platform is oriented and held stationary in such a way that the acceleration is close to one-g.
Of course, sensors in need of calibration will supply measurement data that seemingly departs from 1 g acceleration of gravity, but moderately (e.g., within a small decision range on the order of plus/minus one percent +/−0.01 g). This decision range can be established, for instance, in relation to accelerometer vendor specified bias error (offset) range and gain error range. A programmed decision range used by step 2620 does accept a measurement that departs moderately from 1 g acceleration of gravity. In such case, operations proceed to a step 2630. (It may be better to perform these measurements with an assurance of stationarity from the user. Else, the data may be corrupted by small accelerations that falls in the decision range.)
In
The embodiments are user friendly. An ordinary user can orient the cell phone in six or more orientations and perform the calibration of bias errors and axes gains. Accelerometer bias error and sensitivity specifications are subject to inaccuracies of orientation in accelerometer vendor test setups when using the demanding six-posture method described earlier hereinabove. Here, the calibration embodiments do not depend on exact posture or accuracy of orientations and can be used not only by accelerometer manufacturers and portable device manufacturers to tighten their specs on parameters such as bias errors and sensitivity, but also by ordinary users.
Smart phones 2010 and 2010′, such as in third-generation (3G) phone category can include Inertial Navigation as a beneficial navigation feature using MEMS (micro-electromechanical structure) 3-axis accelerometer 1140, gyros and e-compass 1150. MEMS accelerometers are low cost, low power devices that are quite useful in inertial navigation providing information on acceleration along its axes as well as performing as tilt sensors. Inertial navigation for vehicular navigation is however susceptible to accelerometer bias errors and gain errors. The velocity (speed) and the distance traversed by a vehicle 2095 are obtained by integrating the accelerometer 1140 output once and twice respectively. Accelerometer bias error can produce over time a linear error in velocity, and a quadratic error in distance due to time-integration (e.g., see equation (42.1) described later herein below).
In vehicle navigation, it is important to correct the bias errors μ and gain errors S of an accelerometer 1140 periodically to prevent a rapid build up in velocity and distance. For instance, a Kalman Filter can be provided to receive GPS (Global Positioning System) 1190 and accelerometer 1140 (Inertial) measurements and then calibrate the inertial output with respect to good GPS measurements. Reasonable estimates of the bias errors and gain errors of a given accelerometer 1140 help to define the initial states and facilitate quick convergence of the calibration filter. A 3-axis accelerometer 1140 exposed to acceleration (fa) {=[fxfyfz]T} registers acceleration outputs (fm) in all three axes given by:
fm=S*[faxfayfaz]T+μ+w (1)
where, S is the gain (sensitivity) matrix, μ is the bias error vector referenced to the gravitational acceleration and w is a noise vector representing the accelerometers noise on all three axes X, Y, Z.
In this example and in all formulations beyond this point, the acceleration values are referenced to the acceleration due to gravity in that location, where in the acceleration due to gravity is defined a value of unity. The actual accelerations in S.I. unit would be obtained by multiplying the corresponding acceleration vector with the actual gravity of that location (e.g. obtained from WGS 84 model).
Notice that if the measurement process is arranged to average out the noise w, then
faT=S1*(fm−μ) (1A)
The three diagonal elements Sx, Sy, Sz of the gain matrix S are the gain coefficients for individual axes X, Y, Z while the six off-diagonal terms Sxy, Syx, Szx, Sxz, Syz, Szy represent cross-axes gain from each orthogonal axis. The cross-axes terms arise from small alignment errors of the individual sensor axes in the three axis accelerometer 1140. Typically the cross axis effects are less than 2% for state of art MEMS accelerometers and do not affect the inertial measurements significantly for purposes of some applications. MEMS accelerometer vendors can specify error bounds for bias error and axes gain errors.
Suppose the demanding six-posture method were used to estimate the coefficients of Gain matrix S and bias error μ. A precise test set up measures acceleration output vectors at 6 different orientations, the first one with the x-axis towards gravity axis or vector g followed by the second one with x-axis against gravity axis or vector g; the third and fourth one corresponding to y axis towards and against the gravity axis or vector g and the fifth and sixth one corresponding to z-axis towards and against the gravity axis or vector g. The measurements are averaged over a long enough time to reduce the effect of accelerometer 1140 noise.
The corresponding equations for averaged measured vector (fm) in the six-posture method are given by:
f1m=S*[1 0 0]T+μ (2)
f2m=S*[−1 0 0]T+μ (3)
f3m=S*[0 1 0]T+μ (4)
f4m=S*[0 −1 0]T+μ (5)
f5m=S*[0 0 1]T+μ (6)
f6m=S*[0 0 −1]T+μ (7)
The bias error parameter vector μ and gain parameter matrix S are estimated in the six posture method as follows. Local acceleration due to gravity is normalized to unity here, and plus/minus unity in equations (2)-(7) represents the orientation of a given one of the three accelerometer sensors parallel or anti-parallel to the downward gravitational acceleration. The zeros in equations (2)-(7) represent the negligible acceleration measured in each of the six postures by the other two accelerometer sensors, which are assumed to have perfectly orthogonal orientations relative to the given sensor. Because of the six precise orientations reflected by the measured acceleration vectors [1 0 0]T, [−1 0 0]T, . . . [0 0 −1]T of the accelerometer 1140 on the test stand, adding all those measured acceleration vectors cancels out contributions from matrix S and delivers the bias error vector μ by equation (8):
Moreover, because of the six precise orientations, pair wise subtraction for each of the three pairs of measured acceleration vectors cancels the bias error vector μ and delivers three column vectors comprised in estimated parameter matrix S, all according to equation (9):
S=[(f1m−f2m)/2(f3m−f4m)/2(f5m−f6m)/2] (9)
The demanding six-posture method has some practical difficulties in implementation. Small errors in orientation of each accelerometer sensor on the precision test stand relative to the gravitational acceleration vector g (i.e., straight down) cause erroneous estimation of bias error vector μ and axes gain matrix S. For an accelerometer 1140 in a cell phone 2010 that may need to get calibrated by a phone user, it would be difficult to implement the six-orientation based scheme that demands high accuracy of the orientation.
By contrast, an approach to solving the problems more conveniently is described herein and has various embodiments. At any point of time the true acceleration measurements of all three axes X, Y, Z at condition of rest produce a resultant vector of a unit of gravitational acceleration g. Normalizing the true acceleration vector fa for gravitational acceleration g to be unity, the true accelerations fa of the 3-axis [fxa fya fza]T satisfies the equation:
fafaT=[fxafyafza][fxafyafza]T=g2=1 (10)
Using equations (1A) and (10), equation (11) represents the constancy of the gravitational acceleration regardless of the posture of the accelerometer 1140:
(fm−μ)T(S−1)T(S−1)(fm−μ)=g2 (11)
The three accelerometer 1140 X, Y, Z sensor outputs fm(k)=[fxm(k) fym(k) fzm(k)]T represent a kth measurement and constitute the measured accelerometer vector averaged over long enough time to reduce the statistical variance of accelerometer noise w to an acceptably small level. The target value of gravitational acceleration g is unity (1), for example, in an iterative process embodiment described herein.
Notice that there are as many as nine (9) unknowns in the axes gain matrix S and three (3) unknowns in the bias error vector μ. Solving for these twelve (12) unknown quantities in some embodiments is performed in some embodiments by taking measurements (e.g., m>=12) at different postures and solving equation (11) in a recursive least squares sense, such as by using a microprocessor in system 1700 of
In some embodiments, for simplicity of analysis, the cross axes terms in matrix S are ignored. When the cross axes terms are negligible, the above assumption (ignoring the cross-axes terms) does not affect acceleration measurements significantly. In accordance with the definition, the matrix S is defined as a diagonal matrix with the axes gain terms:
In these embodiments, three (3) unknowns in the axes gain matrix S and three (3) unknowns in the bias error vector μ make a total of six (6) unknowns. Solving for these six unknown quantities in some of these embodiments is performed in some embodiments by taking measurements (e.g., m>=6) at different postures and solving equation (11) in a recursive least squares sense, such as by using a microprocessor in system 1700 performing linear minimum mean square estimation (LMMSE), iterative error feedback, and/or a gradient descent process, and/or other applicable data analysis process. More measurements can be taken (m>6) to improve the accuracy of measurement of the six unknowns.
Define the diagonal matrix Y=S−1
where
Yxx=1/Sxx
Yyy=1/Syy
Yzz=1/Szz (14)
A number “m” of vector acceleration measurements fm(k) indexed k of are taken at different freely-established postures and a measured value of the acceleration of gravity g(k) is computed using equation (15). The orientation of each of the postures does not need to be known. Equation (11) is expressed as a square root of sum of squares for the kth measurement, and is given by equation (15).
g(k)=√(Yxx2(fxm(k)=μx)2+Yyy2(fym(k)=μy)2+Yzz2(fzm(k)=μz)2) (15)
The measured acceleration of gravity g (k) for any given measurement will likely be different from the known value unity (1.00) while the six unknown parameters are being optimized by the procedure described next.
Define a parameter vector p holding the six unknowns (can be initialization values or currently-unrefined values) in this process embodiment:
p=[YxxYyyYzzμxμyμz]T (16)
Here, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, linearizing equation (15) by chain rule calculus differentiation, and expressing equation (15) directly in terms of changes Δ of measured quantities for an iterative process embodiment based on the gradient ∇g(k) with respect to the unknown parameters p, gives:
Δg(k)=ΔYxx(Yxx(fxm(k)−μx)2/g(k))+ΔYyy(Yyy(fym(k)−μy)2/g(k))+ΔYzz(Yzz(fzm(k)−μz)2/g(k))−Δμz(Yxx2(fxm(k)−μx)/g(k))−Δμy(Yyy2(fym(k)−μy)/g(k))−Δμz(Yzz2(fzm(k)−μz)/g(k)) (17)
An equivalent linearized form for an iterative process embodiment that substitutes equation (1A) to intermediately compute components of true acceleration fa for use in equation (17) is expressed as equation (17A):
Δg(k)=ΔYxxfza(k)2/(Yxxg(k))+ΔYyyfya(k)2/(Yyyg(k))+ΔYzzfaa(k)2/(Yzzg(k))−ΔμzYxxfxa(k)/g(k)−μyYyyfya(k)/g(k)−ΔμzYzzfza(k)/g(k) (17A)
Rewriting either equation (17) or (17A) in matrix form provides a respective version of:
Δg=[∇Tg]Δp=HΔp (18)
The matrix ∇Tg=H signifies a matrix having m rows, each row equal to the transpose of column values of gradient of gravity with respect to the parameters p for a respective kth one of the m measurements fm(k). Additionally writing with a 6×6 matrix product HTH provides
HTΔg=HTHΔP (18A)
where,
Δp=[ΔYxxΔYyyΔYzzΔμxΔμyΔμz]T
Δg=[Δg(1) . . . Δg(k) . . . Δg(m)]T
In (m×1) column vector Δg, each entry is given by equation (19):
Δg(k)=1−g(k) (19)
and H is the relation matrix (m×6) related to the gradient of gravity and defined by equation (17). Solving equation (18A) yields
Δp=(HTH)−1HTΔg (20)
In a first example, note that each kth row of an (m×6) relation matrix H is based on the sensor outputs fxm(k) fym(k) fzm(k) of the kth measurement and equation (17) and has six numerical values that are numerically generated by an electronic processor programmed with these six expressions that use information from equations (15) and (16):
In a second example, note that each kth row of (m×6) relation matrix H is based instead on equation (1A) applied to compute components of true acceleration fa from the sensor outputs fxm(k) fym(k) fzm(k) of the kth measurement. Each kth row of relation matrix H is based on equation (17A) and gets the same six numerical values as in the first example, but which are numerically generated by an electronic processor alternatively programmed with these alternative six expressions that use information from equations (1A), (15) and (16):
[fza(k)2(Yxxg(k)),fya(k)2/Yyyg(k),fza(k)2/(Yaag(k)−Yxxfza(k),−Yyyfya(k)/g(k),Yzzfza(k)/g(k)] (21A)
The iterative process is programmed and stored, e.g., in flash memory 1025 (1720.1) for execution on a floating-point or fixed point processor in system 1700 of
The various parameters initialization for equation (16) is shown in TABLE 1. The final estimates of bias errors μx, μy, μz and axes gain reciprocals Yxx, Yyy, Yzz are obtained through multiple iterations. The steps for each iteration are as follows and are further described in connection with
Estimation Process I
1. Initialize parameters p according to TABLE 1.
2. Keep the three axes accelerometer 1140 at any arbitrary posture, keep it stationary and measure the average acceleration on all three axes: [fxm fym fzm]T. Repeat the process “m” number of times with different postures 2535A, B, C every time to get “m” sets of measurement vectors.
3. Compute the measured value of g(k) using the current parameter values and equation (15) for each measurement k; k=1 to m
4. Compute Δg(k)=1−g(k); k=1 to m (Difference between target value and measured value of gravity)
5. Compute the gradient-related matrix H using equation (21) where the kth row of H is computed from the kth measurement set and the current parameter values.
6. Compute Δp using equation (20).
7. Update the parameter values; p=p+Δp.
9. If ((ΔgTΔg)<Specified Threshold) Stop, else loopback to Step 5.
Note that the Specified Threshold for step (9) may also be expressed as the product (mε) of the number of measurements m times a small specified amount epsilon ε defining a numerical bound within which the optimizing iterations are to be regarded as having sufficiently approached zero when the estimation process has converged.
In
Also, step 2820 establishes a configured number m of measurements and initializes measurement index k to one (1) to represent that a first measurement will be taken. A succeeding step 2830 prompts the user via control signals to prompt transducers 1180 to reorient the platform (e.g., cell phone handset 2010 with an accelerometer 1140) in any one or more of directions 2535A, B, C and put the platform in a new stationary arbitrary posture. Accelerometer 1140 has sensors for each of three substantially mutually perpendicular axes. An input step 2850 measures the average acceleration vector components fxm(k), fym(k), and fzm(k) from accelerometer 1140 at the currently established stationary arbitrary posture for measurement k as discussed in connection with
In some embodiments a decision step 2855 screens that latest measurement k2 to determine whether it is an essential duplicate of a previous measurement k1, such as by checking whether the sum of squared differences between the 3-element measurement vectors |(fm(k2)−fm(k1))|2 is less than a predetermined small value. (Duplication might occur either by user inaction or inadvertently by some re-orientations that, in effect, merely precess the accelerometer 1140 around the vertical.) If six or fewer measurements have been taken so far, (Yes at step 2855) then operations branch to a step 2858 to drop the latest measurement and prompt the user for more diverse positioning, whereupon operations go back through a point (D) to step 2830. This helps reduce the chances that the rank of the gradient-related matrix product HTH will be less than the number of unknowns (e.g., 6), which can impede inversion of matrix product HTH in equation (20).
In due course, sufficiently-diverse measurements fm(k) are taken, and operations proceed from decision step 2855 to a step 2860. Step 2860 increments the measurement index k=k+1. Then decision step 2870 determines whether all of a number m>=6 of desired measurements have been taken. If not, operations loop back to step 2830 to prompt the user to put the platform in another new stationary arbitrary posture, and the loop 2830-2870 is repeated until all m measurements have been taken. When k>m, (Yes at step 2870), operations proceed through point A of
In
Further in
At completion of step 2940 in
p=p+Δp=p+(HTH)−1HTΔg (22)
Associated with step 2960, a test 2965 is provided (such as determining whether the determinant of matrix product HTH is less than a predetermined small values for the purpose of invertibility testing) to determine whether matrix product HTH is invertible, i.e., whether its rank is at least equal to the number of unknowns (e.g., 6). If the determinant is very small or zero at step 2965, operations branch to a step 2968 to prepare to take another measurement by setting k=m+1 and m=m+1 and cueing the user. After step 2968, operations go back to point (D) and step 2830 of
The outer loop has a decision step 2970 that computes a convergence metric and compares it with a threshold to determine whether the outer loop is converged. One example of such convergence test involves the sum of squares of computed gravity differences Δg:
ΔgTΔg<mε (23)
Inequality (23) expresses the convergence criterion that the parameters p should be such that the sum of squares of computed gravity differences relative to unity over all the m measurements should be small (i.e., less than some small configuration value established for the purpose of convergence testing) so that all or almost all the measurements do a good job of measuring the gravitational acceleration components. An alternate method of convergence for all methods is to use (ΔpTΔp<εp), i.e. less than a specified convergence value epsilon.
If decision step 2970 detects that the outer loop is not converged (No), then operations loop back to step 2910 and perform another iteration based on the updated parameters p. When the outer loop is converged (Yes) at step 2970, operations proceed to a step 2980 that outputs recalibrated accelerometer parameters p whence RETURN 2995 is reached and the recalibrated accelerometer parameters p are stored in a memory record along with associated environmental sensor 1160 measurements and are used in navigation applications thereafter.
An experiment was carried out with 12 bit accelerometer KXR94 from Kionix Inc. The accelerometer bias errors and axes gain were initially estimated by obtaining the averaged outputs of the accelerometer in six different precise orientations or postures as discussed in connection with equations (8) and (9). The individual readings (for each orientation) and the computed estimates of parameters using this demanding six-posture method are shown in TABLE 2.
Next, according to the more user-convenient process embodiment I, the accelerometer was placed on 14 different and arbitrary postures and the averaged output on each posture at rest was obtained. The individual readings (for each orientation) and the computed estimates of parameters p are shown in TABLE 3 for the more convenient approach of embodiment I taught herein. The convenient approach of embodiment I is user friendly and does not depend on any specific orientation during calibration of accelerometers. A total of six readings at any different orientations is sufficient to obtain a solution for the axes gain and bias errors, however more observations help to refine the estimates. A set of observations drawn from various orientations (spanning 4π steradians of a sphere) is likely to provide better accuracy of estimates.
The estimates of bias errors and axes gain obtained from the demanding six-posture approach of TABLE 2 and the process embodiment I in TABLE 3 were applied to the various measurements at different orientations. The resultant value of gravity vector was computed after applying the bias and scale corrections to the various observations on all three axes. The result is tabulated in TABLE 4 and shows the percentage errors as the magnitude of the difference between unity gravitational acceleration and computed gravitational acceleration based on the measurements.
The results in TABLE 4 show a lower average error magnitude for Process I, with an upper bound of less than 0.3%. The error is higher for the demanding six-posture approach of TABLE 2 since it is difficult to accurately orient the accelerometers in the required six predetermined postures. Not only does Process I accurately measure the magnitude of gravity, but also it accurately measures the X, Y, Z vector components of the gravitational acceleration, as indicated by the close correspondence of the respective values determined for Estimated Bias errors in TABLES 3 and 2 and the close correspondence of the values determined for Estimated Axes gain in TABLES 3 and 2. The work presents a simple procedure to the user to measure bias and axes gain by process I and TABLE 3. It does not put any restriction on orientation and would benefit even ordinary cell phone users to calibrate accelerometers 1140 on the fly for portable device and vehicle navigation. The knowledge of bias errors and axes gain can serve as good initial estimates for a subsequent Kalman filter states for calibrating INS with respect to GPS as in
A separate use of Kalman filtering is taught next herein for an alternative process embodiment 1K wherein the accelerometer 1140 calibration itself is achieved for process I above using Kalman filtering instead. The Kalman embodiment for Method IK goes as follows:
Step 1K-1. Parameters to be estimated: p=[Yxx, Yyy, Yzz, μx, μy, μz]. Use a starting a priori estimate of the parameters: p−=[1 1 1 0 0 0], where the values represent the starting values of the parameters defined in vectorp.
Step 1K-2. Establish an initial uncertainty covariance matrix P− that describes the initial covariance of the uncertainties in parameters. P− (i,j)=E ((qi−p−i)(qj−p−j)) where “E( )” signifies expectation and where {qi, qj} are the unknown actual values of parameters p−i, p−j. For example, set the a priori estimate of the covariance matrix according to a specification of the accelerometer 1140 bias error range and gain error range. Covariance matrix P− is square and symmetric in general, and has dimensions (6×6) in an example with six parameters as here.
The Kalman filter process for the above estimation problem is divided into a Time Update and a Measurement Model:
Step 1K-3. In the Time Update the parameters p are propagated from one time instant t to a next time instant t+1, i.e. pt+1=pt. In this example, iterations are used as a proxy for time.
Step 1K-4.1. The Measurement Model first determines the value of gravity function g based on a priori estimates of p(=p−) and references it to unity (normalized value of gravity) e.g., as in Equation (15). Actual gravity magnitude unity is equal to the sum of gravity function plus measurement noise as expressed by: 1=g(fxk, fyk, fzk, p−)+w. Gravity g and noise w are bolded as column vectors indexed on the measurements k.
Step 1K-4.2. The values entered in measurement noise w from accelerometers 1140 are assumed to arise from a zero mean white Gaussian process. Establish a (m×m) matrix W as the covariance matrix for (m×1) measurement noise w.
W(i,j)=E(wi*wj)
It may be noted that for white Gaussian process,
W(i,j)=σi2
W(i,j)=0; i≠j
Δg(k)=1−g(fxk, fykfzk, p−) is defined as the residue of the measurements k.
Step 1K-5. Compute values for a matrix H where H is the Jacobian (a gradient-based matrix) of the function g with respect to the parameters p, i.e., H (k, j)=δg(k)δp (j) is the Jacobian or gradient of the kth measurement with respect to the jth parameter. Matrix H is (m×6) and same as equation (21) hereinabove, for example.
Step 1K-6. Compute the Kalman Gain as follows:
K=P−HT(HP−HT+W)−1
(6×m)=(6×6) (6×m)×[(m×6)(6×6)(6×m)+(m×m)] is the dimensional relation.
The Kalman Gain K represents a suitable weighting factor to the measurement update based on the current state uncertainties and measurement uncertainties.
Step 1K-7.1. Update the parameters according to the equation:
p=p−+KΔg
i.e., (6×1)=(6×1)+(6×m)(m×1).
Step 1K-7.2. Update the estimates for the parameters p− for the next iteration using p−k+1=pk.
Step 1K-8.1. Update a matrix capital-P (P matrix) with the measurement as follows:
P=(I−KH)P−.
i.e., (6×6)=((6×6)−(6×m)(m×6)) (6×6).
Step 1K-8.2. Update the estimates for the parameter covariance matrix P− for the next iteration using P−k+1=Pk.
Step 1K-9.1. Generate the sum of squared residues (ΔgTΔg).
-
- This sum is a scalar (1×m)(m×1)=(1×1).
Step 1K-9.2. Determine whether the sum of squared residues is less than a threshold value ε pre-established for purposes of convergence testing. If not less, loop back to Step 1K-4.1. The loop is continued until the estimation process converges, as indicated when the sum of squared residues (ΔgTΔg) is less than the pre-established threshold ε. Then process goes to Step 1K-10.
Step 1K-10. Output the estimates for the parameters p for use in a navigation application. If a navigation application utilizes any other estimates generated by the Kalman filter process, output those other estimates as well. In some embodiments, measurements are time-windowed or grouped according to similar temperature, or both, according to a measurement grouping process. In such cases, the procedure is executed again when appropriate to do so given the type of measurement grouping process as new measurement data comes in over time.
Another, second, optimization process embodiment (II) for calibrating accelerometers 1140 on-the-fly takes a number “m” measurements indexed k of the acceleration of gravity-square g2(k) at different postures.
Equation (11) is expressed as a sum of squares for the kth measurement without square root, and is given by equation (24).
g2(k)=Yxx2(fxm(k)−μx)2+Yyy2(fym(k)−μy)2+Yzz2(fzm(k)−μz)2 (24)
Until the calibration is completed, the measured square of the acceleration of gravity g2(k) for any given measurement k will likely be somewhat different from the known value unity (1.00) while the six unknown parameters are being optimized by the procedure described next.
Define the parameter vector p holding the six unknowns (initialization values or current unrefined values) in this process embodiment:
p=[YxxYyyYzzμxμyμz]T (16)
Here, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, equation (24) is linearized by chain rule calculus differentiation to become equation (25). Equation (25) is expressed directly in terms of measured quantities multiplied by their differences Δp for an iterative process embodiment free of division operations by g(k).
Δg2(k)=2[ΔYxxYxx(fxm(k)−μx)2+ΔYyyYyy(fym(k)−μy)2+ΔYzzYzz(fzm(k)−μz)2−ΔμxYxx2(fzm(k)−μx)−ΔμyYyy2(fym(k)−μy)−ΔμzYzz2(fzm(k)−μz)] (25)
Notice that Δg2(k) signifies some amount of change in the measured value of gravity-squared expressed as a linearized product of the difference vector expressing some amount of change in the six unknowns of parameter vector p and multiplied times the six partial derivatives (gradient in equation (25)) of gravity-squared equation (24) as coefficients. Notice that gravity squared g2(k) is treated as an entity per se and not as though some gravity value itself were known as a pre-existing value to multiply by itself to form such square. Moreover, at this point the difference value Δg2(k) of the entity gravity-squared is not determined in value, although its gradient-based linear relation is now established relative to also-undetermined changes in the six unknowns of parameter vector p.
An equivalent linearized form for an iterative process embodiment that uses equation (1A) to intermediately compute components of true accelerations fa for use in equation (17) is expressed as equation (17A):
Δg2(k)=2[ΔYxxfxa(k)2/Yxx+ΔYyyfya(k)2/Yyy+ΔYzzfza(k)2/Yzz−ΔμxYxxfxa(k)−ΔμyYyyfya(k)−ΔμzYzzfza(k)] (25A)
Rewriting the linear relationship of either equation (25) or (25A) in matrix form, with the symbolism Δg2 understood as an (m×1) vector of elements Δg2(k), provides equation (26):
Δg2=2H2Δp (26)
Matrix H2 is the gradient-based relation matrix (m×6) defined by equation (25) or (25A). The six partial derivatives in equation (25) of gravity-squared equation (24) for any given measurement k are respectively equal to twice the corresponding values in the corresponding row k of matrix H2.
Pre-multiplying both sides of equation (26) with a matrix transpose, i.e., (6×m) matrix H2T, delivers equation (26A), which has a 6×6 invertible square matrix product H2TH2 on the right side of the equation (26A):
H2TΔg2=2H2TH2Δp (26A)
where,
Δp=[ΔYxxΔYyyΔYzzΔμxΔμyΔμz]T
Δg2=[Δg2(1) . . . Δg2(k) . . . Δg2(m)]T
Solving equation (26A) by computationally relatively-convenient (6×6) matrix inversion yields equation (27):
Δp=0.5(H2TH2)−1H2TΔg2 (27)
The matrix inverse (H2TH2)−1 will generally not exist unless the number m of measurements equals or exceeds the number of unknowns (e.g., 6) in the parameter change vector Δp. In general, the matrix rank R of the matrix product H2TH2 desirably equals or exceeds the number of unknowns in the parameter change vector Δp so that the determinant of the matrix product H2TH2 is non-zero and the matrix product H2TH2 is invertible in process II.
Still remaining undetermined at this point are both linearly related vectors—the (m×1) column vector Δg2 for the differenced entity gravity-squared and the vector Δp representing changes in the six unknowns of parameter vector p. Their inverted linear relation is now established according to equation (27). To determine Δg2, it is here made to be a negative feedback quantity established as a function of each squared gravity measurement in the iterative process relative to its target value of unity (square of unity is unity). The difference of the entity gravity-squared relative to target value unity (1.00) of gravitational acceleration is g2(k)−1. A positive iteration constant c is applied, and negative feedback is signified by a leading minus-sign (−), as in equation (28):
Δg2=−c(g2(k))=c(1−g2(k))
Equation (28) is substituted into equation (27) to yield equation (29):
Δp=0.5c(H2TH2)−1H2T[1−g2(k)] (29)
Equation (29) determines Δp, in terms of iteration constant c, the inverted linear relation 0.5(H2TH2)−1H2T, and an (m×1) column vector [1−g2 (k)]. Column vector [1−g2(k)] represented algebraically has m elements wherein each kth element is generated by a processor in system 1700 subtracting the kth measurement of gravity-squared g2(k) from unity (1). Equation (29) supports each negative-feedback-driven iteration in an iterative estimation process for updating unknown parameter vector p. If there are fewer measurements m than the number of unknowns (e.g., 6) and more measurements cannot be available or will not be available, then equation (29) can be replaced with equation (39A) described later hereinbelow.
In concept, the iteration constant c approximately represents a proportion of the distance vector from a given point in multi-dimensional mathematical space (e.g. 6-space) to the target point in that space. The iteration constant c suitably is predetermined to have some value in a range 0<c<2. Choosing a value of iteration constant c that is greater than zero and less than or equal to one generally defines motion in the multidimensional space progressively in the direction of the target without overshooting the target. Choosing a value of iteration constant c that is more than one (1.0) and less than two (2.0) generally defines motion in the multidimensional space that overshoots the target but can ultimately converge on the target by successive hunting that backtracks and overshoots decreasingly. Choosing a value of iteration constant c in the narrower range 0.8<c<1.2 is likely to produce convergence of the estimation process in fewer iterations than choosing a value outside that narrower range. A nominal value for iteration constant c is one (1.0) for rapid convergence, although some development trial and error in choosing a value for iteration constant c may show that some reduction in the number of iterations (and consequent computer time and energy) can be obtained by departing from c=1.0 somewhat. In the electronic processing, one suitably combines the product 0.5 c into one pre-stored constant value c′=0.5c for processing, and the corresponding ranges are wide range 0<c′<1, narrower range 0.4<c<0.6, and a nominal value c′=0.5 in process embodiment II. By contrast, in process embodiment I earlier hereinabove the factor 0.5 of process embodiment II is not present and an iteration factor c is suitably provided in equation (20) in process embodiment I in some versions.
Description now returns to give some more detail about the content of (m×6) relation matrix H2. In a first example, note that each kth row of an (m×6) relation matrix H2 is based on the sensor outputs fxm(k) fym(k) fzm(k) of the kth measurement and equation (25). Each kth row of matrix H2 has six numerical values that are numerically generated by an electronic processor programmed with these six expressions that use information from equations (25) and (16):
[Yxx(fxm(k)−μx)2,Yyy(fym(k)−μy)2,Yzz(fzm(k)−μz)2,−Yxx2(fxm(k)−μx),−Yyy2(fym(k)−μy)−Yzz2(fzm(k)−μz)] (30)
In a second example, note that each kth row of (m×6) relation matrix H2 is based instead on equation (1A) applied to compute components of true acceleration fa from the sensor outputs fxm(k) fym(k) fzm(k) of the kth measurement. Each kth row of relation matrix H2 is based on equation (25A) and gets the same six numerical values as in the first example, but which are numerically generated by an electronic processor alternatively programmed with these alternative six expressions that use information from equations (25A) and (16):
[fxa(k)2/Yxx,fya(k)2/Yyy,fxa(k)2/Yzz,−Yxxfxa(k),−Yyyfya(k),−Yzzfza(k)] (30A)
An iterative estimation process embodiment such as one including equations (24)-(29) is programmed for execution on a floating-point or fixed point processor such as in system 1700. Different embodiments are suitably considered by the skilled worker in regard to expected number of iterations involved for convergence of the estimation process, number of clock cycles per iteration, acceptably small processor roundoff errors, processor power and energy dissipation, operability on less expensive fixed point processors with shorter register length, etc. Various iterative processes and sets of processor instructions to accomplish each of them are suitably provided and applied by the skilled worker in practicing various embodiments according to the teachings herein.
For gravity-squared process embodiment II, the various parameters initialization is shown in TABLE 1, same as in process embodiment I. The final estimates of bias errors μx, μy, μz and axes gain reciprocals Yxx, Yyy, Yzz are obtained through multiple iterations. The steps for each iteration are as follows and are further described in connection with
Estimation Process II
1. Initialize parameters p according to TABLE 1.
2. Keep the three axes accelerometer 1140 at any arbitrary posture, keep it stationary and measure the average acceleration on all three axes: [fxm fym fzm]T. Repeat the process “m” number of times with different postures every time to get “m” sets of measurement vectors.
3. Compute the measured value of g2(k) using the current parameter values and equation (24) for each measurement k; k=1 to m
4. Compute 1−g2(k); k=1 to m
(Difference Between Target Value and Measured Value)
5. Compute the matrix H2 using equation (30) where the kth row of H2 is computed from the kth measurement set and the current parameter values (equation (16)).
6. Compute Δp using equation (29).
7. Update the parameter values; p=p+Δp.
8. Compute g2(k) using current parameter values.
9. Compute and test a convergence criterion, such as
or use CC2=ΔpTΔp<ε3 instead as described herein below. If convergence criterion CC is less than Specified Threshold then stop, else loopback to Step 4.
Determining that convergence criterion
less than Specified Threshold (CC1<m ε2) is a reasonable formula since all the measurements g2(k) are similar in concept to one another. Note that the Specified Threshold CC1 for step (8) is expressed for process embodiment II as the product (mε2) of the number of measurements m times a small specified amount epsilon ε2 defining a numerical bound within which the optimizing iterations are to be regarded as having sufficiently approached zero when the estimation process has converged.
An alternative convergence criterion for step (8) is given by CC2=ΔpTΔp<ε3 as Specified Threshold. In other words when the updates to the parameter vector become computationally insignificant, then the iterations are regarded as having converged in an embodiment version that uses convergence criterion CC2. The several elements of parameter vector p differ in their concept as gain parameters and bias parameters, so a small Specified Threshold amount ε3 is specified and used.
The description of
Further in
A succeeding step 3150 updates the parameters p based on the error feedback and the gradient-related values. This operation takes various forms in process embodiments I, II, III and IV described herein.
In process embodiment II, for instance, step 3150 updates the six-dimensional parameters estimate p based on equation (29):
p=p+Δp=p+0.5c(H2TH2)−1H2T[1−g2(k)] (31)
If the matrix product H2TH2 is not invertible due to insufficient rank R<6, operations go to point (D) in
The outer loop has a decision step 3160 that computes a convergence metric, such as CC1 or CC2 hereinabove, and compares it with a threshold to determine whether the outer loop is converged. For instance, convergence test CC1 involves the sum of squares of computed differences for gravity-squared:
Inequality (32) expresses the convergence criterion that the parameters p should be such that the sum of squares of differences of computed gravity-squared relative to unity over all the m measurements should be small so that all or almost all the measurements do a good job of measuring the gravitational acceleration components. The convergence test expressed in another way determines a mean of the squares of the departures of g2(k) from unity according to inequality (32A):
If decision step 3160 detects that the outer loop is not converged (No), as indicated by the convergence test not being met, then operations loop back to step 3120 and perform another iteration based on the latest updated parameters p. When the outer loop is converged (Yes) at step 3160, operations proceed to a step 3170 that outputs recalibrated accelerometer 1140 parameters p and uses them in a navigation application in system operations whence RETURN 3180 is reached. It should be emphasized that the run-time navigation application is executed in general in the presence of varying accelerations that depart from the acceleration of gravity itself, which is desirable and satisfactory. The accelerometer 1140 desirably measures the acceleration as the acceleration actually varies over time for purposes of supporting the run-time navigation application. The measurements of acceleration for the navigation application are rendered more accurate because of the previously-performed recalibration of the accelerometer parameters in the presence of gravity acceleration itself. In general, the embodiment II is computationally more efficient, as it avoids functions like square-root etc. However, the convergence from embodiment II is expected to be inferior from embodiment I.
Description next turns to a third optimization process embodiment (III) for calibrating accelerometers on-the-fly, which applies measurement matrices for a gradient and a matrix of second partial derivatives to form a parameter change vector Δp for updating parameter estimate p.
An optimization function based on the gravity equation has a minimum in 6-dimensional space due to the mathematical form of the optimization function and the gravity equation. FIGS. 6A/6C depict process embodiment III at the level of the flow illustration, and the computational procedures are varied in process embodiment III in some ways in a first process form III-A relative to process embodiment II and in a second process form III-B relative to process embodiment I detailed hereinabove. The orientation of each of the postures does not need to be known.
Equation (24) is repeated for clarity here.
g2(k)=Yxx2(fzm(k)−μx)2+Yyy2(fym(k)−μy)2+Yzz2(fzm(k)−μz)2 (24)
The measured square of the acceleration of gravity g2(k) for any given measurement k is computed for
that has its minimum when the parameters are such that applying equation (24) to the measurement set produces gravity-squared values very near or at the desired value unity, i.e., when g2(k)˜=1. The optimization function summand F(k) is a function of the parameter vector p holding the six unknowns in this process embodiment III, and equation (16) is also repeated for clarity:
p=[YxxYyyYzzμxμyμz]T (16)
Here again, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, in process embodiment III, a gradient descent or Newton-Raphson process is included. Conceptually, note that the matrix HT multiplication equation (18A) for process I and H2T equation (26A) for process II each represent a summation relationship between the numerous m measurements data and one parameter vector update estimate Δp. In process embodiment III, the approach posits that this one parameter vector update estimate Δp should be such as to make the gradient vanish. That is, for the measurements collectively, the summation of the gradients ∇F(k) should be canceled out by the matrix product of the summation of the matrices M(k) of second partial derivatives with respect to the parameters of the optimization summand function F(k), matrix multiplied by this one parameter vector update estimate Δp:
Because Δp does not depend on measurement index k, equation (34.2) is also expressed as follows:
Next, solve for Δp:
For the electronic computations, the process III-A operates using equation (39) later below, evolved from equation (34.4) for the iteration(s). Execute process III-A in the same iterative manner as process II earlier herein above. The gradient ∇F(k) for process III-A is a column vector of first partial derivatives of optimization function F(k) and is given for the kth measurement by partial differentiating equation (33) to obtain equation (35). A convenient approach to set up the equation (35) partial-differentiates by the chain rule—derivative of F(k) in equation (33) with respect to g2 itself (not g) multiplied times gradient of g2 itself using g2 equation (24) with respect to the parameters p:
∇F(k)=−4H2T(k)(1−g2(k)) (35)
Notice that the factor (1−g2(k)) is a scalar in equation (35) and arises in differentiating squared difference represented by optimization function F(k). Scalar factor (1−g2(k)) relates to error feedback step 3130. Column vector H2T(k) arises from the calculus chain rule that further proceeds to calculus-differentiate g2(k) of equations (35) and (24). The factor “4” (2×2) arises because the chain rule encounters and differentiates two squares in succession. Column vector H2T(k) is the transpose of the kth row of the relation matrix H2 already given in expression (30) and repeated here for clarity:
[Yxx(fxm(k)−μx)2,Yyy(fym(k)−μy)2,Yzz(fzm(k)−μz)2,−Yxx2(fxm(k)−μx),−Yyy2(fym(k)−μy),−Yzz2(fzm(k)−μz)] (30)
The matrix M(k) of second partial derivatives of the optimization function F(k) is derived by partial differentiation of equation (35) gradient ∇F(k) of the optimization function. To obtain matrix M(k) of second partial derivatives, it is convenient to write down by inspection of equations (24) and (21):
∇g2(k)/2=H2T(k)=gHT(k)=g(k)∇g(k) (36)
The matrix M(k) of second partial derivatives of F(k) that results is given by equation (37):
M(k)=8∇g2(k)/2∇g2(k)/2T−4[∇2g2(k)/2](1−g2(k)) (37)
In the first term of equation (37), a matrix ∇g2(k)/2∇g2(k)/2T is formed by pre-multiplying the row expressed by (30), by its own transpose. The double-del symbolism in the second term of equation (37) represents the following matrix in equation (38):
Now combine equations (34.4), (35), (36), (37) and insert an iteration constant c (e.g., 1.0 or in any range discussed earlier hereinabove) to yield equation (39):
Equation (39) can be compared with process embodiment II equation (27). Notice that the matrix H2TH2 of equation (27) to be inverted is adjusted in equation (39) by the adjustment term based on summation over measurements of the moderately-sparse matrix of equation (38) times Δg2(k):
This adjustment term adds proportionately few computations and may reduce the number of iterations needed to converge the loop tested by step 3160.
The various parameters initialization is shown in TABLE 1 for initial calibration. When calibration is being updated, initialization values instead are suitably the most recent values for the calibrated parameters. The final estimates of bias errors μx, μy, μt and axes gain reciprocals Yxx, Yyy, Yzz are obtained through multiple iterations, if needed, for each measurement and then averaging the parameter estimates. Using most recent calibrated parameters as a starting point, and/or using the adjustment term can reduce or eliminate multiple iterations.
Description now turns to a process embodiment III-B that is related to process embodiment I. Equation (36) hereinabove relates the gradient of that function of gravity g that is gravity itself in process embodiment I to the gradient of the function g2, i.e., of gravity-squared. A process III-B variant of process embodiment I starts with another optimization function
and then is structured in a manner analogous to embodiment III-A equations herein above, except with “I” suffixes to the equations, as follows. Apply gradient descent or Newton-Raphson. Write the gradient-descent equation (34.4-I) and the gradient of F1(k) and a double-del matrix M1(k), i.e. ∇∇F1(k) of second partial derivatives, paralleling the development from equations (34.4) through (39):
Note in obtaining equation (37-I) that
Equation (39-I) for Process Embodiment III-B can be compared with process embodiment 1 equation (20).
Execute process III-B by analogy with the steps of Estimation Process I earlier enumerated earlier hereinabove. (Note that the expression (1/g(k)) is dimensionless since the “1” is in gravity acceleration units, same units as gravity measurement g(k).) The dimensional analysis (physical units analysis) of equations (39) and (39-I) is given by: (param)=[(grav/param)2(grav/grav)−((grav2/param2)/grav)(grav)]−1(grav/param)(grav). The expression “grav” represents gravitational acceleration in m/sec2 and “param” represents the units of any given one of the parameters.
The iteration constant c is experimentally adjusted for fastest convergence, preferably convergence on the first or second iteration. Inspection of the different equation forms (20), (29), (39), and (39-I) suggests that the fastest-convergence value for iteration constant c may vary somewhat from process embodiment to embodiment. Indeed, because the iteration(s) occur in a multi-dimensional mathematical space, there are equally-multiple constants cii that can be configured and used to support each process embodiment taught herein. The iterations may somewhat hunt or spiral toward the minimum of optimization function (or 1) where the gradient vanishes in the multi-dimensional mathematical space. Furthermore, iteration constant c is in some embodiments replaced with a diagonal matrix c having as many possibly-different independently-configured constant elements cii down its main diagonal as there unknowns (e.g., 6) in parameter update vector Δp. Each of the diagonal elements cii is chosen with a value approximately unity (1), or in a likely range 0.8<cii<1.2 or substantially in the range 0<cii<2. This use of such constant elements cii recognizes that experimentation may show that iterations can be reduced in number on average by adjusting these constant elements cii independently.
In
Notice that
A succeeding input step 3330 automatically monitors sensors X, Y, Z from the 3-axes accelerometer 1140 to determine when a new set of stable measurements is available, whereupon the new set of measurements fm(k)=[fxm(k) fym(k) fzm(k)]T is recorded along with the concurrent environmental variables. Then a further preliminary gating process has steps 3340 and 3350 to respectively compute a function and test of measured gravitational acceleration such as (1−g2(k))2<ε4, or a range check |(1−g2(k))|<1+ε6, or a range check on (1−g(k)), or otherwise. In the step 3350, if the test passes, then the new measurement does not add significant new information for purposes of obtaining the already-determined parameters p, and so operations go to RETURN 3395. In the step 3350, if the test fails, then operations proceed through point (B) of
In
Operations execute a step 3520 to produce newly determined parameters p′, such as by combining the latest parameters with the now-culled revolving set of already-determined parameters from step 3510. Any estimation process as described elsewhere herein is suitably executed based on the now-culled revolving set from step 3510 to produce newly determined parameters p′. The newly determined parameters p′ become the starting point for later re-calibration iterations in place of the initial values in TABLE 1 when the process embodiment of
A further step 3530 generates and tests a metric comparing the updated parameters p′ to the recently-determined parameters p of step 3320. For example, the metric and test suitably involves a distance metric such as
(p′−p)T(p′−p)<ε7 (40)
In the step 3530, if the test passes, then the new measurement does not change the already-determined parameters p much, and so operations go to RETURN 3535. In the step 3530, if the test fails, then operations proceed to a further decision step 3540 to determine whether the parameter change metric (p′−p)T(p′−p)>d indicates that the new measured parameters have one or more elements that are such substantial outliers that the measurement fm(k) is not credible, as indicated by the metric exceeding a predetermined scalar distance d. If so, operations restore the culled measurement set to its original state and pass through a point C to step 3330 of
It should be evident from the description of
Description turns to a fourth optimization process embodiment (IV) for calibrating accelerometers on-the-fly including cross-axes sensitivities and also takes a number “m” measurements indexed k of the squared acceleration of gravity g2(k) at different postures. FIGS. 6A/6C depict process embodiment IV at the level of the flow illustration, although the computational procedures are varied in process embodiment IV in some ways relative to process embodiments I or IK, detailed hereinabove to take account of the cross axes sensitivities. The orientation of each of the postures does not need to be known.
A sensitivity matrix designated S1 is written out in full with cross-axes gain terms:
Next the sensitivity matrix S1 is divided into the matrix product of the diagonal matrix S of equation (12) and a matrix of ratios of cross axes terms to their main diagonal sensitivity values in equation (12):
Inspection of the above matrix of ratios in light of the physical symmetry of an accelerometer indicates that matrix of ratios is symmetric. The cross axes ratios can each be interpreted to first-order as (small) direction cosine cos(90°−δi) of an almost-90-degree angle. The direction cosine substantially equals its respective small departure angle δi from perfect perpendicularity measured in radian measure from each sensor toward another sensor with respect to which a given main sensitivity value pertains. Symmetry exists because the physical angle between two given sensors does not depend which sensor is thought of first. Accordingly, three departure angles are defined as follows.
Departure angle δ1 is the angle by which the Y sensor departs from being perpendicular to the X sensor.
δ1Sxy/Sxx=Syx/Syy (42.1)
Departure angle δ2 is the angle by which the Z sensor departs from being perpendicular to the Y sensor.
δ2=Syz/Syy=Szy/Szz (42.2)
Departure angle δ3 is the angle by which the Z sensor departs from being perpendicular to the X sensor.
δ3=Sxz/Sxx=Szx/Szz (42.3)
Next, the inverse of the sensitivity matrix is obtained in terms of diagonal matrix Y of equation (13) and the matrix of those ratios found in equations (41) and (42.1), (42.2), (42.3), which is now designated bold-delta δ:
Y1=S1−1=(δS)−1=Yδ−1 (43)
With the cross-axes departure angles assumed small, the inverse of the matrix of ratios simply has a minus sign on the departure angles:
Gravity equation (11) is revised using equation (43) to take account of the cross axis angles as follows.
(fm−μ)T(Yδ−1)T(Yδ−1)(fm−μ)=g2 (45)
Equation (45) in algebraic form (compare to equation (15)) is written:
Equation (45) in effect uses a sum of squares of the different corrected sensor outputs to generate a gravity-squared value for each measurement and equation (45) for gravity takes the square root. For some embodiments, this constitutes a sufficient approximation. Some other embodiments recognize that because the sensors are not perpendicular to one another, the sum of squares of even the true acceleration components measured by each of the sensors departs somewhat from the acceleration being experienced by the platform. Accordingly, equation (45A) can be adjusted in any suitable manner, such as by applying factors (1−δ12) and (1−δ22−δ32) for squares of (small) direction cosines, and written:
Process embodiment IV also establishes an optimization function, such as:
The optimization summand function F1(k) this time is a function of a conveniently low-dimensional parameter vector p1 holding the three departure angles as three unknowns in an angle-only process embodiment designated IV-A, and equation (16) is revised to a 3-vector:
p1=[δ1δ2δ3]T (46-A)
A more involved approach to process embodiment IV instead defines parameter vector p2 nine parameters including the axes gains, biases, and three departure angles as unknowns in a process embodiment designated IV-B, and equation (16) is instead revised to a 9-vector
p2=[YxxYyyYzzμxμyμzδ1δ2δ3]T (46-B)
Here again, parameter determination does not call for demandingly-precise test orientations. Instead, in process embodiment IV, (either IV-A or IV-B) an iterative process according to embodiments I or IK is applied. For instance, a gradient descent process is applied using iterations wherein the change of parameters equal to minus the inverse of the matrix M1 of second partial derivatives of the optimization function F1(k) multiplied by the gradient of the optimization function F1(k), as stated by equation (47):
The gradient here is again a column vector of first partial derivatives of optimization function F1(k) now using gravity g(k) of equation (45B), the partial derivatives with respect to the parameters of equation (46A) or (46B) depending on embodiment. The gradient is given for the kth measurement by partial differentiating optimization function F1 of equation (33-I) with respect to the parameters of either equation (46A) or (46B) to obtain equation (48) in terms of a gradient-related row H3(k) of fully-written-out algebraic expressions involving the three departure angles δi:
∇F1(k)=−2H3T(k)(1−g(k))/g(k) (48)
Column vector H3T(k) is the transpose of the kth row of a relation matrix H3 and H3T(k)/g(k) is substituted for H in process I. Matrix M1 of second partial derivatives of the optimization function F1(k) is derived by partial differentiation of fully-written-out gradient ∇F1(k) equation (48) with respect to the parameters of either equation (46A) or (46B) for the optimization function if applying process III-B.
Estimation Process IV-A
0. Execute an estimation process such as I or IK to obtain good estimates of bias errors μx, μy, μz and axes gain reciprocals Yxx, Yyy, Yzz.
1. Initialize three departure angles δi parameters p1=[0 0 0] or according to most recent calibrated departure angle parameters δi if available.
2. Use the Step 0 data for measured average acceleration on all three axes:
[fxmfymfzm]T.
3. Execute an estimation process such as I or IK to obtain good estimates of departure angles δ1 δ2 δ3.
4. Generate the gain matrix Y1 including cross axes gains according to equation (44).
Process IV-A generates a set of updated accelerometer calibration parameters by desirably executing sub processes (e.g., step 0 and steps 1-3) to generate different subsets in succession of the accelerometer parameters.
Estimation Process IV-B1. Initialize the nine parameters p2=[1, 1, 1, 0, 0, 0, 0, 0, 0] or according to most recent calibrated parameters if available.
2. Use the data for measured average acceleration on all three axes:
[fxmfymfzm]T
3. Execute an estimation process such as I or IK to obtain good estimates of bias errors μx, μy, μz and axes gain reciprocals Yxx, Yyy, Yzz and departure angles δ1 δ2 δ3.
4. Generate the gain matrix Y1 including cross axes gains according to equation (44).
Process IV-B generates a set of updated accelerometer parameters together, and iterations allow interactions between the parameters to be more fully accounted for in getting good values for them.
Description now turns to a multi-mode recalibration embodiment of
In
In
Calibration step 3710 beneficially supplies accurate gain parameter estimates Yxx, Yyy, Yzz and bias parameter estimates μx, μy, μz by any of the improved processes described hereinabove. Applying the correct bias and gain parameters to generate a computed true acceleration Y*(fm−μ) delivers a good approximation to the actual true acceleration fa=[fxa fya fza]T that the accelerometer 1140 is actually experiencing in the navigation application. It is important to correct the bias and gain errors in actual accelerometer sensor outputs fxm(k), fym(k) fzm(k), to prevent a rapid buildup of velocity measurement error and distance measurement error in the navigation application. Such rapid buildup can occur because velocity is the time-integral of acceleration and because distance is the time-integral of velocity.
Accurate parameter estimates of the bias errors and gain errors of a given accelerometer 1140 help to define the state initialization for a position engine 3720 that combines GPS position input and 3-axis accelerometer (INS) actual sensor outputs fxm(k), fym(k), fzm(k). A concept of Dead Reckoning is motivated by a process for combining information that adds a most-recent blended position xblend and velocity vblend to twice-integrated corrected acceleration according to equation (49.1). It is particularly useful in scenarios where GPS visibility is limited.
In equation (49.1), the double-integral performs definite integration twice of the computed actual acceleration with respect to time t, starting with the time tgps of a most-recent blended vector position measurement xgps and most-recent vector velocity measurement vgps. The measured accelerometer sensor inputs fm are corrected by a processor in
A most recent velocity input vgps is added to integrated corrected acceleration according to equation (49.2) to obtain blended velocity vblend(t):
For greater position accuracy, and to remove the effects of statistical error in various measurements, multiple GPS vector position measurement xgps over occasional times and/or multiple computed actual acceleration measurements over independently-occasional time in some embodiments are instead combined using a Kalman filter for position engine 3720. Kalman filter processing of time sequence data need not be tediously described here. The point for the purposes of the present description is that a well-defined state initialization with gain parameter estimates Yxx, Yyy, Yzz and bias parameter estimates μx, μy, μz from step 3710 facilitates quick convergence or settling of a Kalman filter for position engine 3720 such as in Inertial Navigation INS applications. In this way, position engine 3720 usefully supplies a blended position output for display or further analysis and use by the navigation application 3170 (2524).
In
In
Step 4350 tests operations of the accelerometer 1140 and other circuits by confirming rapid and accurate accelerometer parameter estimation and measurement corrections, and operations of the integrated circuit(s) and system in actual application. SoC (system on chip) performance and power consumption with processes from any of
In step 4350, verification and test operations are applied pertaining to real-time and non-real-time operations in navigation applications such as location-based applications, position sensing, velocity sensing, directional heading applications, etc. Other test operations involve power management, various real-time scenarios, system stability and performance, satisfactory operation of mobile video display for continuity of content, phone, e-mails/data service, web browsing, voice over packet, content player for continuity of content, camera/imaging, audio/video synchronization, and other such operation that is apparent to the human user and can be evaluated by system use. Also, various security attack scenarios are applied.
Step 4360 adjusts supporting parameters of the accelerometer 1140 circuitry, the accelerometer calibration software, and the system for faster calibration and navigation application execution, lower power/energy dissipation, and maintained or enhanced QoS (quality of service). Supporting parameters include enable/disable register bits, parameter registers bit lengths, iteration constants c or cii, convergence metric epsilons, measured-gravity screening range, data outlier distance d,
Various embodiments are used with one or more processors that perform electronic processes on signals representing the accelerometer data and generate processor signals representing recalibrated parameters and corrected acceleration vectors. Processors perform signal processing according to instructions and by actual electronic processes that represent or correspond to the various matrix operations disclosed herein. Memory circuits hold physical representations of instructions and parameters. In various embodiments, the accelerometer 1140 is a physically compact device including 1) a set of tri-axes MEMS accelerometer sensors, 2) the accelerometer sensors combined with a nonvolatile memory holding calibration software and/or parameters as described herein, 3) the accelerometer sensors combined with a microprocessor for the accelerometer 1140 as well as nonvolatile memory holding the calibration software and/or parameters, 4) e-compass 1150 and/or, Gyro 1170 combined with any of the other embodiments and further having tilt compensation software and parameters, 5) position sensing (e.g., GPS) unit combined with then any other embodiments and further having GPS software and parameters, and/or 5) a high-performance applications processor SoC integrated circuit for supporting plural applications, and having either integrated therein or coupled thereto any of the other embodiments and/or holding any of the software and/or parameters, or 6) other suitable assembly.
In
Because of the electronic operations representing matrix operations described earlier hereinabove, a processor with one or more fast multiply-accumulate units provides desirably high performance in some embodiments. Each processor can have a pipeline for high performance and selected from the group consisting of 1) reduced instruction set computing (RISC), 2) digital signal processing (DSP), 3) complex instruction set computing (CISC), 4) superscalar, 5) skewed pipelines, 6) in-order, 7) out-of-order, 8) very long instruction word (VLIW), 9) single instruction multiple data (SIMD), 10) multiple instruction multiple data (MIMD), 11) multiple-core using any one or more of the foregoing, and 12) microcontroller pipelines, control peripherals, and other micro-control blocks using any one or more of the foregoing.
Such integrated circuits with processors are depicted in various example forms in
In
In
ASPECTS (See Notes paragraph at end of this Aspects section.)
1A. The electronic circuit claimed in claim 1 further comprising at least part of an electronic compass situated and coupled to said electronic processor on a same single chip.
1B. The electronic circuit claimed in claim 1 further comprising at least part of a gyro situated and coupled to said electronic processor on a same single chip.
7A. The information storage medium claimed in claim 7 further comprising a second set of instructions to generate at least one distinct accelerometer calibration parameter.
7B. The information storage medium claimed in claim 7 wherein the instructions include instructions to analyze the accelerometer data for acceptability.
7C. The information storage medium claimed in claim 7 wherein the instructions include instructions to generate prompting transducer control signals.
7D. The information storage medium claimed in claim 7 wherein the medium includes an integrated circuit with a nonvolatile memory.
10A. The process claimed in claim 10 further comprising separately generating at least one additional signal representing a distinct accelerometer calibration parameter.
10B. The process claimed in claim 10 further comprising processing of signals representing the multi-axes accelerometer data for acceptability beforehand.
10C. The process claimed in claim 10 further comprising producing prompting transducer control signals.
10D. The process claimed in claim 10 further comprising electronically blending the signals representing multi-axes accelerometer data, the signals representing accelerometer calibration parameters, and additional signals representing satellite positioning decoder data.
10E. The process claimed in claim 10 further comprising electronically executing a navigation application using the signals representing accelerometer calibration parameters and run-time signals representing accelerometer data.
16A. The system claimed in claim 16 wherein said accelerometer sensors are mounted on and least three different axes.
16B. The system claimed in claim 16 wherein said electronic processor is also operable to cause said transducer to emit a distinct second user-perceptible prompt signifying that the accelerometer signals representing accelerometer data resulting from at least one of the freely-establishable orientations are satisfactory.
16C. The system claimed in claim 16 further comprising a manual input coupled to said electronic processor for user-initiation of accelerometer calibration.
16D. The system claimed in claim 16 further comprising a nonvolatile storage coupled to said electronic processor and holding a software application responsive to the signals representing the calibration parameters.
Notes: Aspects are paragraphs which might be offered as claims in patent prosecution. The above dependently-written Aspects have leading digits and internal dependency designations to indicate the claims or aspects to which they pertain. Aspects having no internal dependency designations have leading digits and alphanumerics to indicate the position in the ordering of claims at which they might be situated if offered as claims in prosecution.
Processing circuitry comprehends digital, analog and mixed signal (digital/analog) integrated circuits, ASIC circuits, PALs, PLAs, decoders, memories, and programmable and nonprogrammable processors, microcontrollers and other circuitry. Internal and external couplings and connections can be ohmic, capacitive, inductive, photonic, and direct or indirect via intervening circuits or otherwise as desirable. Numerical values in the description are illustrative. “Physical representations” herein includes electrical voltages or currents, electrically-, magnetically- or optically-detectable physical alterations, and otherwise detectable physical or electrical alterations or programming. Process diagrams herein are representative of flow diagrams for operations of any embodiments whether of hardware, software, or firmware, and processes of manufacture thereof. Flow diagrams and block diagrams are each interpretable as representing structure and/or process. While this invention has been described with reference to illustrative embodiments, this description is not to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention may be made. The terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description and/or the claims to denote non-exhaustive inclusion in a manner similar to the term “comprising”. The appended claims and their equivalents cover any such embodiments, modifications, and embodiments as fall within the scope of the invention.
Claims
1. An electronic circuit comprising:
- accelerometer sensors mounted on different axes;
- memory circuitry; and
- an electronic processor coupled to said accelerometer sensors and to said memory circuitry, said electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors from signals representing data resulting from said accelerometer sensors in an imprecise orientation of said accelerometer sensors.
2. The electronic circuit claimed in claim 1 wherein said memory circuitry holds physical representations of instructions executable by said electronic processor to generate the signals representing the calibration parameter through an electronic process representing gradient-related matrix multiplication.
3. The electronic circuit claimed in claim 1 wherein said electronic processor has multiply-accumulate circuitry and is operable to perform an electronic process representing gradient-related matrix multiplication.
4. The electronic circuit claimed in claim 1 further comprising a satellite positioning decoder situated and coupled to said electronic processor on a same single chip.
5. The electronic circuit claimed in claim 1 wherein at least one of the accelerometer sensors is situated and coupled on a same single chip to said electronic processor.
6. The electronic circuit claimed in claim 1 further comprising an environmental sensor coupled to said electronic processor.
7. An information storage medium holding a set of physical representations of instructions executable by an electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations.
8. The information storage medium claimed in claim 7 wherein the instructions include instructions to generate the parameters by gradient-related matrix multiplication.
9. The information storage medium claimed in claim 7 wherein the instructions include instructions for performing a recursive mean square minimization process to generate the accelerometer calibration parameters.
10. A process of accelerometer calibration, the process comprising generating signals representing accelerometer calibration parameters from signals representing multi-axes accelerometer data from different imprecise accelerometer orientations.
11. The process claimed in claim 10 wherein the generating includes generating the signals representing parameters through an electronic process representing gradient-related matrix multiplication.
12. The process claimed in claim 11 wherein the electronic process representing gradient related matrix multiplication includes a gradient of a function of gravitational acceleration with respect to the calibration parameters.
13. The process claimed in claim 10 further comprising executing a first mode to issue a prompt signal for reorientation and a second mode to occasionally acquire signals representing unprompted accelerometer data and automatically generate signals representing updated calibration parameters.
14. The process claimed in claim 10 wherein the generating includes performing an electronic process representing a recursive mean square minimization to generate the signals representing accelerometer calibration parameters.
15. The process claimed in claim 10 further comprising electronically utilizing signals representing environmental sensor data to determine when to perform the generating.
16. A system for measuring acceleration, comprising:
- a portable device having accelerometer sensors mounted on different axes and operable to supply accelerometer signals representing accelerometer data;
- a transducer associated with the portable device and operable to emit a user-perceptible prompt; and
- an electronic processor coupled to said accelerometer sensors and to said transducer, said electronic processor operable to cause said transducer to emit the user-perceptible prompt, and said electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors in response to the accelerometer signals in different freely-establishable orientations of said portable device.
17. The system claimed in claim 16 wherein said signals representing calibration parameters include signals representing bias parameters and axes gain parameters.
18. The system claimed in claim 16 wherein said electronic processor is operable to perform an electronic process representing error feedback-minimization to generate the signals representing calibration parameters for the accelerometer sensors from the accelerometer signals.
19. The system claimed in claim 16 wherein said electronic processor is operable to perform a gradient-related generation of the signals representing calibration parameters for the accelerometer sensors from the accelerometer signals.
20. The system claimed in claim 16 further comprising a timer circuit coupled to said processor and wherein said electronic processor has an additional mode independent of said transducer and responsive at least in part to said timer circuit to occasionally acquire signals representing accelerometer data and automatically generate updated signals representing calibration parameters.
21. The system claimed in claim 16 wherein said processor is operable to ascertain when the signals representing accelerometer data are sufficiently stable in determining whether the signals representing accelerometer data are acceptable to generate calibration parameters.
22. The system claimed in claim 16 wherein said processor is operable to ascertain when the signals representing accelerometer data substantially accord with gravitational acceleration in determining whether the signals representing accelerometer data are acceptable to generate the signals representing calibration parameters.
23. The system claimed in claim 16 further comprising an environmental sensor coupled to said electronic processor, said electronic processor responsive to said environmental sensor for initiation of accelerometer calibration.
24. The system claimed in claim 16 further comprising a satellite positioning decoder coupled to said electronic processor wherein said processor is operable as an electronic position engine to blend signals representing information from said satellite positioning decoder and the signals representing accelerometer data.
25. The system claimed in claim 16 further comprising an electronic compass coupled to said electronic processor wherein said electronic processor is responsive to said accelerometer sensors and to the calibration parameters for tilt compensation of said electronic compass.
26. A process of manufacture comprising attaching to a printed wiring board an electronic processor and an accelerometer and a flash memory holding a set of physical representations of instructions executable by the electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations.
Type: Application
Filed: Mar 5, 2009
Publication Date: Oct 15, 2009
Applicant: TEXAS INSTRUMENTS INCORPORATED (Dallas, TX)
Inventors: Goutam Dutta (Bangalore), Reetesh Mukul (Bangalore), Hemanth M. Srikantaiah (Bangalore), Venkatesh B A (Bangalore)
Application Number: 12/398,775
International Classification: G01P 21/00 (20060101); G01S 1/00 (20060101); G06F 19/00 (20060101); G01P 15/00 (20060101);