1 /*
2 * Copyright (C) 2020 Alberto Irurueta Carro (alberto@irurueta.com)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package com.irurueta.navigation.inertial.calibration.accelerometer;
17
18 import com.irurueta.algebra.Matrix;
19 import com.irurueta.navigation.LockedException;
20 import com.irurueta.navigation.inertial.calibration.StandardDeviationBodyKinematics;
21 import com.irurueta.units.Acceleration;
22
23 import java.util.Collection;
24
25 /**
26 * Estimates accelerometer biases, cross couplings and scaling factors.
27 * This calibrator uses Levenberg-Marquardt to find a minimum least squared error
28 * solution.
29 * <p>
30 * To use this calibrator at least 10 measurements taken at a single position where
31 * gravity norm is known must be taken at 10 different unknown orientations and zero
32 * velocity when common z-axis is assumed, otherwise at least 13 measurements are required.
33 * <p>
34 * Measured specific force is assumed to follow the model shown below:
35 * <pre>
36 * fmeas = ba + (I + Ma) * ftrue + w
37 * </pre>
38 * Where:
39 * - fmeas is the measured specific force. This is a 3x1 vector.
40 * - ba is accelerometer bias. Ideally, on a perfect accelerometer, this should be a
41 * 3x1 zero vector.
42 * - I is the 3x3 identity matrix.
43 * - Ma is the 3x3 matrix containing cross-couplings and scaling factors. Ideally, on
44 * a perfect accelerometer, this should be a 3x3 zero matrix.
45 * - ftrue is ground-truth specific force.
46 * - w is measurement noise.
47 */
48 public class KnownGravityNormAccelerometerCalibrator extends
49 BaseGravityNormAccelerometerCalibrator<KnownGravityNormAccelerometerCalibrator,
50 KnownGravityNormAccelerometerCalibratorListener> {
51
52 /**
53 * Constructor.
54 */
55 public KnownGravityNormAccelerometerCalibrator() {
56 super();
57 }
58
59 /**
60 * Constructor.
61 *
62 * @param listener listener to handle events raised by this calibrator.
63 */
64 public KnownGravityNormAccelerometerCalibrator(final KnownGravityNormAccelerometerCalibratorListener listener) {
65 super(listener);
66 }
67
68 /**
69 * Constructor.
70 *
71 * @param measurements collection of body kinematics measurements with standard
72 * deviations taken at the same position with zero velocity
73 * and unknown different orientations.
74 */
75 public KnownGravityNormAccelerometerCalibrator(final Collection<StandardDeviationBodyKinematics> measurements) {
76 super(measurements);
77 }
78
79 /**
80 * Constructor.
81 *
82 * @param measurements collection of body kinematics measurements with standard
83 * deviations taken at the same position with zero velocity
84 * and unknown different orientations.
85 * @param listener listener to handle events raised by this calibrator.
86 */
87 public KnownGravityNormAccelerometerCalibrator(
88 final Collection<StandardDeviationBodyKinematics> measurements,
89 final KnownGravityNormAccelerometerCalibratorListener listener) {
90 super(measurements, listener);
91 }
92
93 /**
94 * Constructor.
95 *
96 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
97 * accelerometer and gyroscope.
98 */
99 public KnownGravityNormAccelerometerCalibrator(final boolean commonAxisUsed) {
100 super(commonAxisUsed);
101 }
102
103 /**
104 * Constructor.
105 *
106 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
107 * accelerometer and gyroscope.
108 * @param listener listener to handle events raised by this calibrator.
109 */
110 public KnownGravityNormAccelerometerCalibrator(
111 final boolean commonAxisUsed, final KnownGravityNormAccelerometerCalibratorListener listener) {
112 super(commonAxisUsed, listener);
113 }
114
115 /**
116 * Constructor.
117 *
118 * @param measurements collection of body kinematics measurements with standard
119 * deviations taken at the same position with zero velocity
120 * and unknown different orientations.
121 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
122 * accelerometer and gyroscope.
123 */
124 public KnownGravityNormAccelerometerCalibrator(
125 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed) {
126 super(measurements, commonAxisUsed);
127 }
128
129 /**
130 * Constructor.
131 *
132 * @param measurements collection of body kinematics measurements with standard
133 * deviations taken at the same position with zero velocity
134 * and unknown different orientations.
135 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
136 * accelerometer and gyroscope.
137 * @param listener listener to handle events raised by this calibrator.
138 */
139 public KnownGravityNormAccelerometerCalibrator(
140 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
141 final KnownGravityNormAccelerometerCalibratorListener listener) {
142 super(measurements, commonAxisUsed, listener);
143 }
144
145 /**
146 * Constructor.
147 *
148 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
149 * to find a solution. This is expressed in meters per squared
150 * second (m/s^2).
151 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
152 * to find a solution. This is expressed in meters per squared
153 * second (m/s^2).
154 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
155 * to find a solution. This is expressed in meters per squared
156 * second (m/s^2).
157 */
158 public KnownGravityNormAccelerometerCalibrator(
159 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
160 super(initialBiasX, initialBiasY, initialBiasZ);
161 }
162
163 /**
164 * Constructor.
165 *
166 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
167 * to find a solution. This is expressed in meters per squared
168 * second (m/s^2).
169 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
170 * to find a solution. This is expressed in meters per squared
171 * second (m/s^2).
172 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
173 * to find a solution. This is expressed in meters per squared
174 * second (m/s^2).
175 * @param listener listener to handle events raised by this calibrator.
176 */
177 public KnownGravityNormAccelerometerCalibrator(
178 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
179 final KnownGravityNormAccelerometerCalibratorListener listener) {
180 super(initialBiasX, initialBiasY, initialBiasZ, listener);
181 }
182
183 /**
184 * Constructor.
185 *
186 * @param measurements collection of body kinematics measurements with standard
187 * deviations taken at the same position with zero velocity
188 * and unknown different orientations.
189 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
190 * to find a solution. This is expressed in meters per squared
191 * second (m/s^2).
192 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
193 * to find a solution. This is expressed in meters per squared
194 * second (m/s^2).
195 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
196 * to find a solution. This is expressed in meters per squared
197 * second (m/s^2).
198 */
199 public KnownGravityNormAccelerometerCalibrator(
200 final Collection<StandardDeviationBodyKinematics> measurements,
201 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
202 super(measurements, initialBiasX, initialBiasY, initialBiasZ);
203 }
204
205 /**
206 * Constructor.
207 *
208 * @param measurements collection of body kinematics measurements with standard
209 * deviations taken at the same position with zero velocity
210 * and unknown different orientations.
211 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
212 * to find a solution. This is expressed in meters per squared
213 * second (m/s^2).
214 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
215 * to find a solution. This is expressed in meters per squared
216 * second (m/s^2).
217 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
218 * to find a solution. This is expressed in meters per squared
219 * second (m/s^2).
220 * @param listener listener to handle events raised by this calibrator.
221 */
222 public KnownGravityNormAccelerometerCalibrator(
223 final Collection<StandardDeviationBodyKinematics> measurements,
224 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
225 final KnownGravityNormAccelerometerCalibratorListener listener) {
226 super(measurements, initialBiasX, initialBiasY, initialBiasZ, listener);
227 }
228
229 /**
230 * Constructor.
231 *
232 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
233 * accelerometer and gyroscope.
234 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
235 * to find a solution. This is expressed in meters per squared
236 * second (m/s^2).
237 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
238 * to find a solution. This is expressed in meters per squared
239 * second (m/s^2).
240 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
241 * to find a solution. This is expressed in meters per squared
242 * second (m/s^2).
243 */
244 public KnownGravityNormAccelerometerCalibrator(
245 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
246 final double initialBiasZ) {
247 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
248 }
249
250 /**
251 * Constructor.
252 *
253 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
254 * accelerometer and gyroscope.
255 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
256 * to find a solution. This is expressed in meters per squared
257 * second (m/s^2).
258 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
259 * to find a solution. This is expressed in meters per squared
260 * second (m/s^2).
261 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
262 * to find a solution. This is expressed in meters per squared
263 * second (m/s^2).
264 * @param listener listener to handle events raised by this calibrator.
265 */
266 public KnownGravityNormAccelerometerCalibrator(
267 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
268 final double initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
269 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
270 }
271
272 /**
273 * Constructor.
274 *
275 * @param measurements collection of body kinematics measurements with standard
276 * deviations taken at the same position with zero velocity
277 * and unknown different orientations.
278 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
279 * accelerometer and gyroscope.
280 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
281 * to find a solution. This is expressed in meters per squared
282 * second (m/s^2).
283 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
284 * to find a solution. This is expressed in meters per squared
285 * second (m/s^2).
286 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
287 * to find a solution. This is expressed in meters per squared
288 * second (m/s^2).
289 */
290 public KnownGravityNormAccelerometerCalibrator(
291 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
292 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
293 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
294 }
295
296 /**
297 * Constructor.
298 *
299 * @param measurements collection of body kinematics measurements with standard
300 * deviations taken at the same position with zero velocity
301 * and unknown different orientations.
302 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
303 * accelerometer and gyroscope.
304 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
305 * to find a solution. This is expressed in meters per squared
306 * second (m/s^2).
307 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
308 * to find a solution. This is expressed in meters per squared
309 * second (m/s^2).
310 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
311 * to find a solution. This is expressed in meters per squared
312 * second (m/s^2).
313 * @param listener listener to handle events raised by this calibrator.
314 */
315 public KnownGravityNormAccelerometerCalibrator(
316 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
317 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
318 final KnownGravityNormAccelerometerCalibratorListener listener) {
319 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
320 }
321
322 /**
323 * Constructor.
324 *
325 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
326 * to find a solution.
327 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
328 * to find a solution.
329 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
330 * to find a solution.
331 */
332 public KnownGravityNormAccelerometerCalibrator(
333 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ) {
334 super(initialBiasX, initialBiasY, initialBiasZ);
335 }
336
337 /**
338 * Constructor.
339 *
340 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
341 * to find a solution.
342 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
343 * to find a solution.
344 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
345 * to find a solution.
346 * @param listener listener to handle events raised by this calibrator.
347 */
348 public KnownGravityNormAccelerometerCalibrator(
349 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
350 final KnownGravityNormAccelerometerCalibratorListener listener) {
351 super(initialBiasX, initialBiasY, initialBiasZ, listener);
352 }
353
354 /**
355 * Constructor.
356 *
357 * @param measurements collection of body kinematics measurements with standard
358 * deviations taken at the same position with zero velocity
359 * and unknown different orientations.
360 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
361 * to find a solution.
362 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
363 * to find a solution.
364 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
365 * to find a solution.
366 */
367 public KnownGravityNormAccelerometerCalibrator(
368 final Collection<StandardDeviationBodyKinematics> measurements,
369 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ) {
370 super(measurements, initialBiasX, initialBiasY, initialBiasZ);
371 }
372
373 /**
374 * Constructor.
375 *
376 * @param measurements collection of body kinematics measurements with standard
377 * deviations taken at the same position with zero velocity
378 * and unknown different orientations.
379 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
380 * to find a solution.
381 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
382 * to find a solution.
383 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
384 * to find a solution.
385 * @param listener listener to handle events raised by this calibrator.
386 */
387 public KnownGravityNormAccelerometerCalibrator(
388 final Collection<StandardDeviationBodyKinematics> measurements,
389 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
390 final KnownGravityNormAccelerometerCalibratorListener listener) {
391 super(measurements, initialBiasX, initialBiasY, initialBiasZ, listener);
392 }
393
394 /**
395 * Constructor.
396 *
397 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
398 * accelerometer and gyroscope.
399 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
400 * to find a solution.
401 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
402 * to find a solution.
403 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
404 * to find a solution.
405 */
406 public KnownGravityNormAccelerometerCalibrator(
407 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
408 final Acceleration initialBiasZ) {
409 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
410 }
411
412 /**
413 * Constructor.
414 *
415 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
416 * accelerometer and gyroscope.
417 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
418 * to find a solution.
419 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
420 * to find a solution.
421 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
422 * to find a solution.
423 * @param listener listener to handle events raised by this calibrator.
424 */
425 public KnownGravityNormAccelerometerCalibrator(
426 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
427 final Acceleration initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
428 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
429 }
430
431 /**
432 * Constructor.
433 *
434 * @param measurements collection of body kinematics measurements with standard
435 * deviations taken at the same position with zero velocity
436 * and unknown different orientations.
437 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
438 * accelerometer and gyroscope.
439 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
440 * to find a solution.
441 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
442 * to find a solution.
443 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
444 * to find a solution.
445 */
446 public KnownGravityNormAccelerometerCalibrator(
447 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
448 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ) {
449 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
450 }
451
452 /**
453 * Constructor.
454 *
455 * @param measurements collection of body kinematics measurements with standard
456 * deviations taken at the same position with zero velocity
457 * and unknown different orientations.
458 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
459 * accelerometer and gyroscope.
460 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
461 * to find a solution.
462 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
463 * to find a solution.
464 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
465 * to find a solution.
466 * @param listener listener to handle events raised by this calibrator.
467 */
468 public KnownGravityNormAccelerometerCalibrator(
469 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
470 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
471 final KnownGravityNormAccelerometerCalibratorListener listener) {
472 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
473 }
474
475 /**
476 * Constructor.
477 *
478 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
479 * to find a solution. This is expressed in meters per squared
480 * second (m/s^2).
481 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
482 * to find a solution. This is expressed in meters per squared
483 * second (m/s^2).
484 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
485 * to find a solution. This is expressed in meters per squared
486 * second (m/s^2).
487 * @param initialSx initial x scaling factor.
488 * @param initialSy initial y scaling factor.
489 * @param initialSz initial z scaling factor.
490 */
491 public KnownGravityNormAccelerometerCalibrator(
492 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
493 final double initialSx, final double initialSy, final double initialSz) {
494 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
495 }
496
497 /**
498 * Constructor.
499 *
500 * @param measurements collection of body kinematics measurements with standard
501 * deviations taken at the same position with zero velocity
502 * and unknown different orientations.
503 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
504 * to find a solution. This is expressed in meters per squared
505 * second (m/s^2).
506 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
507 * to find a solution. This is expressed in meters per squared
508 * second (m/s^2).
509 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
510 * to find a solution. This is expressed in meters per squared
511 * second (m/s^2).
512 * @param initialSx initial x scaling factor.
513 * @param initialSy initial y scaling factor.
514 * @param initialSz initial z scaling factor.
515 */
516 public KnownGravityNormAccelerometerCalibrator(
517 final Collection<StandardDeviationBodyKinematics> measurements, final double initialBiasX,
518 final double initialBiasY, final double initialBiasZ, final double initialSx, final double initialSy,
519 final double initialSz) {
520 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
521 }
522
523 /**
524 * Constructor.
525 *
526 * @param measurements collection of body kinematics measurements with standard
527 * deviations taken at the same position with zero velocity
528 * and unknown different orientations.
529 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
530 * to find a solution. This is expressed in meters per squared
531 * second (m/s^2).
532 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
533 * to find a solution. This is expressed in meters per squared
534 * second (m/s^2).
535 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
536 * to find a solution. This is expressed in meters per squared
537 * second (m/s^2).
538 * @param initialSx initial x scaling factor.
539 * @param initialSy initial y scaling factor.
540 * @param initialSz initial z scaling factor.
541 * @param listener listener to handle events raised by this calibrator.
542 */
543 public KnownGravityNormAccelerometerCalibrator(
544 final Collection<StandardDeviationBodyKinematics> measurements, final double initialBiasX,
545 final double initialBiasY, final double initialBiasZ, final double initialSx, final double initialSy,
546 final double initialSz, final KnownGravityNormAccelerometerCalibratorListener listener) {
547 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
548 }
549
550 /**
551 * Constructor.
552 *
553 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
554 * accelerometer and gyroscope.
555 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
556 * to find a solution. This is expressed in meters per squared
557 * second (m/s^2).
558 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
559 * to find a solution. This is expressed in meters per squared
560 * second (m/s^2).
561 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
562 * to find a solution. This is expressed in meters per squared
563 * second (m/s^2).
564 * @param initialSx initial x scaling factor.
565 * @param initialSy initial y scaling factor.
566 * @param initialSz initial z scaling factor.
567 */
568 public KnownGravityNormAccelerometerCalibrator(
569 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
570 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
571 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
572 }
573
574 /**
575 * Constructor.
576 *
577 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
578 * accelerometer and gyroscope.
579 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
580 * to find a solution. This is expressed in meters per squared
581 * second (m/s^2).
582 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
583 * to find a solution. This is expressed in meters per squared
584 * second (m/s^2).
585 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
586 * to find a solution. This is expressed in meters per squared
587 * second (m/s^2).
588 * @param initialSx initial x scaling factor.
589 * @param initialSy initial y scaling factor.
590 * @param initialSz initial z scaling factor.
591 * @param listener listener to handle events raised by this calibrator.
592 */
593 public KnownGravityNormAccelerometerCalibrator(
594 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
595 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
596 final KnownGravityNormAccelerometerCalibratorListener listener) {
597 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
598 }
599
600 /**
601 * Constructor.
602 *
603 * @param measurements collection of body kinematics measurements with standard
604 * deviations taken at the same position with zero velocity
605 * and unknown different orientations.
606 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
607 * accelerometer and gyroscope.
608 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
609 * to find a solution. This is expressed in meters per squared
610 * second (m/s^2).
611 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
612 * to find a solution. This is expressed in meters per squared
613 * second (m/s^2).
614 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
615 * to find a solution. This is expressed in meters per squared
616 * second (m/s^2).
617 * @param initialSx initial x scaling factor.
618 * @param initialSy initial y scaling factor.
619 * @param initialSz initial z scaling factor.
620 */
621 public KnownGravityNormAccelerometerCalibrator(
622 final Collection<StandardDeviationBodyKinematics> measurements,
623 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
624 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
625 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
626 }
627
628 /**
629 * Constructor.
630 *
631 * @param measurements collection of body kinematics measurements with standard
632 * deviations taken at the same position with zero velocity
633 * and unknown different orientations.
634 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
635 * accelerometer and gyroscope.
636 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
637 * to find a solution. This is expressed in meters per squared
638 * second (m/s^2).
639 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
640 * to find a solution. This is expressed in meters per squared
641 * second (m/s^2).
642 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
643 * to find a solution. This is expressed in meters per squared
644 * second (m/s^2).
645 * @param initialSx initial x scaling factor.
646 * @param initialSy initial y scaling factor.
647 * @param initialSz initial z scaling factor.
648 * @param listener listener to handle events raised by this calibrator.
649 */
650 public KnownGravityNormAccelerometerCalibrator(
651 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
652 final double initialBiasX, final double initialBiasY, final double initialBiasZ, final double initialSx,
653 final double initialSy, final double initialSz,
654 final KnownGravityNormAccelerometerCalibratorListener listener) {
655 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
656 listener);
657 }
658
659 /**
660 * Constructor.
661 *
662 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
663 * to find a solution.
664 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
665 * to find a solution.
666 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
667 * to find a solution.
668 * @param initialSx initial x scaling factor.
669 * @param initialSy initial y scaling factor.
670 * @param initialSz initial z scaling factor.
671 */
672 public KnownGravityNormAccelerometerCalibrator(
673 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
674 final double initialSx, final double initialSy, final double initialSz) {
675 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
676 }
677
678 /**
679 * Constructor.
680 *
681 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
682 * to find a solution.
683 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
684 * to find a solution.
685 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
686 * to find a solution.
687 * @param initialSx initial x scaling factor.
688 * @param initialSy initial y scaling factor.
689 * @param initialSz initial z scaling factor.
690 * @param listener listener to handle events raised by this calibrator.
691 */
692 public KnownGravityNormAccelerometerCalibrator(
693 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
694 final double initialSx, final double initialSy, final double initialSz,
695 final KnownGravityNormAccelerometerCalibratorListener listener) {
696 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
697 }
698
699 /**
700 * Constructor.
701 *
702 * @param measurements collection of body kinematics measurements with standard
703 * deviations taken at the same position with zero velocity
704 * and unknown different orientations.
705 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
706 * to find a solution.
707 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
708 * to find a solution.
709 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
710 * to find a solution.
711 * @param initialSx initial x scaling factor.
712 * @param initialSy initial y scaling factor.
713 * @param initialSz initial z scaling factor.
714 */
715 public KnownGravityNormAccelerometerCalibrator(
716 final Collection<StandardDeviationBodyKinematics> measurements,
717 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
718 final double initialSx, final double initialSy, final double initialSz) {
719 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
720 }
721
722 /**
723 * Constructor.
724 *
725 * @param measurements collection of body kinematics measurements with standard
726 * deviations taken at the same position with zero velocity
727 * and unknown different orientations.
728 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
729 * to find a solution.
730 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
731 * to find a solution.
732 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
733 * to find a solution.
734 * @param initialSx initial x scaling factor.
735 * @param initialSy initial y scaling factor.
736 * @param initialSz initial z scaling factor.
737 * @param listener listener to handle events raised by this calibrator.
738 */
739 public KnownGravityNormAccelerometerCalibrator(
740 final Collection<StandardDeviationBodyKinematics> measurements,
741 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
742 final double initialSx, final double initialSy, final double initialSz,
743 final KnownGravityNormAccelerometerCalibratorListener listener) {
744 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
745 }
746
747 /**
748 * Constructor.
749 *
750 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
751 * accelerometer and gyroscope.
752 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
753 * to find a solution.
754 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
755 * to find a solution.
756 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
757 * to find a solution.
758 * @param initialSx initial x scaling factor.
759 * @param initialSy initial y scaling factor.
760 * @param initialSz initial z scaling factor.
761 */
762 public KnownGravityNormAccelerometerCalibrator(
763 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
764 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
765 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
766 }
767
768 /**
769 * Constructor.
770 *
771 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
772 * accelerometer and gyroscope.
773 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
774 * to find a solution.
775 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
776 * to find a solution.
777 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
778 * to find a solution.
779 * @param initialSx initial x scaling factor.
780 * @param initialSy initial y scaling factor.
781 * @param initialSz initial z scaling factor.
782 * @param listener listener to handle events raised by this calibrator.
783 */
784 public KnownGravityNormAccelerometerCalibrator(
785 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
786 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
787 final KnownGravityNormAccelerometerCalibratorListener listener) {
788 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
789 }
790
791 /**
792 * Constructor.
793 *
794 * @param measurements collection of body kinematics measurements with standard
795 * deviations taken at the same position with zero velocity
796 * and unknown different orientations.
797 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
798 * accelerometer and gyroscope.
799 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
800 * to find a solution.
801 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
802 * to find a solution.
803 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
804 * to find a solution.
805 * @param initialSx initial x scaling factor.
806 * @param initialSy initial y scaling factor.
807 * @param initialSz initial z scaling factor.
808 */
809 public KnownGravityNormAccelerometerCalibrator(
810 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
811 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
812 final double initialSx, final double initialSy, final double initialSz) {
813 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
814 }
815
816 /**
817 * Constructor.
818 *
819 * @param measurements collection of body kinematics measurements with standard
820 * deviations taken at the same position with zero velocity
821 * and unknown different orientations.
822 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
823 * accelerometer and gyroscope.
824 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
825 * to find a solution.
826 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
827 * to find a solution.
828 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
829 * to find a solution.
830 * @param initialSx initial x scaling factor.
831 * @param initialSy initial y scaling factor.
832 * @param initialSz initial z scaling factor.
833 * @param listener listener to handle events raised by this calibrator.
834 */
835 public KnownGravityNormAccelerometerCalibrator(
836 final Collection<StandardDeviationBodyKinematics> measurements,
837 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
838 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
839 final KnownGravityNormAccelerometerCalibratorListener listener) {
840 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
841 listener);
842 }
843
844 /**
845 * Constructor.
846 *
847 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
848 * to find a solution. This is expressed in meters per squared
849 * second (m/s^2).
850 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
851 * to find a solution. This is expressed in meters per squared
852 * second (m/s^2).
853 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
854 * to find a solution. This is expressed in meters per squared
855 * second (m/s^2).
856 * @param initialSx initial x scaling factor.
857 * @param initialSy initial y scaling factor.
858 * @param initialSz initial z scaling factor.
859 * @param initialMxy initial x-y cross coupling error.
860 * @param initialMxz initial x-z cross coupling error.
861 * @param initialMyx initial y-x cross coupling error.
862 * @param initialMyz initial y-z cross coupling error.
863 * @param initialMzx initial z-x cross coupling error.
864 * @param initialMzy initial z-y cross coupling error.
865 */
866 public KnownGravityNormAccelerometerCalibrator(
867 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
868 final double initialSx, final double initialSy, final double initialSz,
869 final double initialMxy, final double initialMxz, final double initialMyx,
870 final double initialMyz, final double initialMzx, final double initialMzy) {
871 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
872 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
873 }
874
875 /**
876 * Constructor.
877 *
878 * @param measurements collection of body kinematics measurements with standard
879 * deviations taken at the same position with zero velocity
880 * and unknown different orientations.
881 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
882 * to find a solution. This is expressed in meters per squared
883 * second (m/s^2).
884 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
885 * to find a solution. This is expressed in meters per squared
886 * second (m/s^2).
887 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
888 * to find a solution. This is expressed in meters per squared
889 * second (m/s^2).
890 * @param initialSx initial x scaling factor.
891 * @param initialSy initial y scaling factor.
892 * @param initialSz initial z scaling factor.
893 * @param initialMxy initial x-y cross coupling error.
894 * @param initialMxz initial x-z cross coupling error.
895 * @param initialMyx initial y-x cross coupling error.
896 * @param initialMyz initial y-z cross coupling error.
897 * @param initialMzx initial z-x cross coupling error.
898 * @param initialMzy initial z-y cross coupling error.
899 */
900 public KnownGravityNormAccelerometerCalibrator(
901 final Collection<StandardDeviationBodyKinematics> measurements,
902 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
903 final double initialSx, final double initialSy, final double initialSz,
904 final double initialMxy, final double initialMxz, final double initialMyx,
905 final double initialMyz, final double initialMzx, final double initialMzy) {
906 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
907 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
908 }
909
910 /**
911 * Constructor.
912 *
913 * @param measurements collection of body kinematics measurements with standard
914 * deviations taken at the same position with zero velocity
915 * and unknown different orientations.
916 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
917 * to find a solution. This is expressed in meters per squared
918 * second (m/s^2).
919 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
920 * to find a solution. This is expressed in meters per squared
921 * second (m/s^2).
922 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
923 * to find a solution. This is expressed in meters per squared
924 * second (m/s^2).
925 * @param initialSx initial x scaling factor.
926 * @param initialSy initial y scaling factor.
927 * @param initialSz initial z scaling factor.
928 * @param initialMxy initial x-y cross coupling error.
929 * @param initialMxz initial x-z cross coupling error.
930 * @param initialMyx initial y-x cross coupling error.
931 * @param initialMyz initial y-z cross coupling error.
932 * @param initialMzx initial z-x cross coupling error.
933 * @param initialMzy initial z-y cross coupling error.
934 * @param listener listener to handle events raised by this calibrator.
935 */
936 public KnownGravityNormAccelerometerCalibrator(
937 final Collection<StandardDeviationBodyKinematics> measurements,
938 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
939 final double initialSx, final double initialSy, final double initialSz,
940 final double initialMxy, final double initialMxz, final double initialMyx,
941 final double initialMyz, final double initialMzx, final double initialMzy,
942 final KnownGravityNormAccelerometerCalibratorListener listener) {
943 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
944 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
945 }
946
947 /**
948 * Constructor.
949 *
950 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
951 * accelerometer and gyroscope.
952 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
953 * to find a solution. This is expressed in meters per squared
954 * second (m/s^2).
955 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
956 * to find a solution. This is expressed in meters per squared
957 * second (m/s^2).
958 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
959 * to find a solution. This is expressed in meters per squared
960 * second (m/s^2).
961 * @param initialSx initial x scaling factor.
962 * @param initialSy initial y scaling factor.
963 * @param initialSz initial z scaling factor.
964 * @param initialMxy initial x-y cross coupling error.
965 * @param initialMxz initial x-z cross coupling error.
966 * @param initialMyx initial y-x cross coupling error.
967 * @param initialMyz initial y-z cross coupling error.
968 * @param initialMzx initial z-x cross coupling error.
969 * @param initialMzy initial z-y cross coupling error.
970 */
971 public KnownGravityNormAccelerometerCalibrator(
972 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
973 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
974 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
975 final double initialMzx, final double initialMzy) {
976 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
977 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
978 }
979
980 /**
981 * Constructor.
982 *
983 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
984 * accelerometer and gyroscope.
985 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
986 * to find a solution. This is expressed in meters per squared
987 * second (m/s^2).
988 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
989 * to find a solution. This is expressed in meters per squared
990 * second (m/s^2).
991 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
992 * to find a solution. This is expressed in meters per squared
993 * second (m/s^2).
994 * @param initialSx initial x scaling factor.
995 * @param initialSy initial y scaling factor.
996 * @param initialSz initial z scaling factor.
997 * @param initialMxy initial x-y cross coupling error.
998 * @param initialMxz initial x-z cross coupling error.
999 * @param initialMyx initial y-x cross coupling error.
1000 * @param initialMyz initial y-z cross coupling error.
1001 * @param initialMzx initial z-x cross coupling error.
1002 * @param initialMzy initial z-y cross coupling error.
1003 * @param listener listener to handle events raised by this calibrator.
1004 */
1005 public KnownGravityNormAccelerometerCalibrator(
1006 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
1007 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
1008 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
1009 final double initialMzx, final double initialMzy,
1010 final KnownGravityNormAccelerometerCalibratorListener listener) {
1011 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1012 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1013 }
1014
1015 /**
1016 * Constructor.
1017 *
1018 * @param measurements collection of body kinematics measurements with standard
1019 * deviations taken at the same position with zero velocity
1020 * and unknown different orientations.
1021 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1022 * accelerometer and gyroscope.
1023 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1024 * to find a solution. This is expressed in meters per squared
1025 * second (m/s^2).
1026 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1027 * to find a solution. This is expressed in meters per squared
1028 * second (m/s^2).
1029 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1030 * to find a solution. This is expressed in meters per squared
1031 * second (m/s^2).
1032 * @param initialSx initial x scaling factor.
1033 * @param initialSy initial y scaling factor.
1034 * @param initialSz initial z scaling factor.
1035 * @param initialMxy initial x-y cross coupling error.
1036 * @param initialMxz initial x-z cross coupling error.
1037 * @param initialMyx initial y-x cross coupling error.
1038 * @param initialMyz initial y-z cross coupling error.
1039 * @param initialMzx initial z-x cross coupling error.
1040 * @param initialMzy initial z-y cross coupling error.
1041 */
1042 public KnownGravityNormAccelerometerCalibrator(
1043 final Collection<StandardDeviationBodyKinematics> measurements,
1044 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
1045 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
1046 final double initialMxy, final double initialMxz, final double initialMyx,
1047 final double initialMyz, final double initialMzx, final double initialMzy) {
1048 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1049 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
1050 }
1051
1052 /**
1053 * Constructor.
1054 *
1055 * @param measurements collection of body kinematics measurements with standard
1056 * deviations taken at the same position with zero velocity
1057 * and unknown different orientations.
1058 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1059 * accelerometer and gyroscope.
1060 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1061 * to find a solution. This is expressed in meters per squared
1062 * second (m/s^2).
1063 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1064 * to find a solution. This is expressed in meters per squared
1065 * second (m/s^2).
1066 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1067 * to find a solution. This is expressed in meters per squared
1068 * second (m/s^2).
1069 * @param initialSx initial x scaling factor.
1070 * @param initialSy initial y scaling factor.
1071 * @param initialSz initial z scaling factor.
1072 * @param initialMxy initial x-y cross coupling error.
1073 * @param initialMxz initial x-z cross coupling error.
1074 * @param initialMyx initial y-x cross coupling error.
1075 * @param initialMyz initial y-z cross coupling error.
1076 * @param initialMzx initial z-x cross coupling error.
1077 * @param initialMzy initial z-y cross coupling error.
1078 * @param listener listener to handle events raised by this calibrator.
1079 */
1080 public KnownGravityNormAccelerometerCalibrator(
1081 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1082 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
1083 final double initialSx, final double initialSy, final double initialSz,
1084 final double initialMxy, final double initialMxz, final double initialMyx,
1085 final double initialMyz, final double initialMzx, final double initialMzy,
1086 final KnownGravityNormAccelerometerCalibratorListener listener) {
1087 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1088 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1089 }
1090
1091 /**
1092 * Constructor.
1093 *
1094 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1095 * to find a solution.
1096 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1097 * to find a solution.
1098 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1099 * to find a solution.
1100 * @param initialSx initial x scaling factor.
1101 * @param initialSy initial y scaling factor.
1102 * @param initialSz initial z scaling factor.
1103 * @param initialMxy initial x-y cross coupling error.
1104 * @param initialMxz initial x-z cross coupling error.
1105 * @param initialMyx initial y-x cross coupling error.
1106 * @param initialMyz initial y-z cross coupling error.
1107 * @param initialMzx initial z-x cross coupling error.
1108 * @param initialMzy initial z-y cross coupling error.
1109 */
1110 public KnownGravityNormAccelerometerCalibrator(
1111 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1112 final double initialSx, final double initialSy, final double initialSz,
1113 final double initialMxy, final double initialMxz, final double initialMyx,
1114 final double initialMyz, final double initialMzx, final double initialMzy) {
1115 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1116 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
1117 }
1118
1119 /**
1120 * Constructor.
1121 *
1122 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1123 * to find a solution.
1124 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1125 * to find a solution.
1126 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1127 * to find a solution.
1128 * @param initialSx initial x scaling factor.
1129 * @param initialSy initial y scaling factor.
1130 * @param initialSz initial z scaling factor.
1131 * @param initialMxy initial x-y cross coupling error.
1132 * @param initialMxz initial x-z cross coupling error.
1133 * @param initialMyx initial y-x cross coupling error.
1134 * @param initialMyz initial y-z cross coupling error.
1135 * @param initialMzx initial z-x cross coupling error.
1136 * @param initialMzy initial z-y cross coupling error.
1137 * @param listener listener to handle events raised by this calibrator.
1138 */
1139 public KnownGravityNormAccelerometerCalibrator(
1140 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1141 final double initialSx, final double initialSy, final double initialSz,
1142 final double initialMxy, final double initialMxz, final double initialMyx,
1143 final double initialMyz, final double initialMzx, final double initialMzy,
1144 final KnownGravityNormAccelerometerCalibratorListener listener) {
1145 super(initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1146 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1147 }
1148
1149 /**
1150 * Constructor.
1151 *
1152 * @param measurements collection of body kinematics measurements with standard
1153 * deviations taken at the same position with zero velocity
1154 * and unknown different orientations.
1155 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1156 * to find a solution.
1157 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1158 * to find a solution.
1159 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1160 * to find a solution.
1161 * @param initialSx initial x scaling factor.
1162 * @param initialSy initial y scaling factor.
1163 * @param initialSz initial z scaling factor.
1164 * @param initialMxy initial x-y cross coupling error.
1165 * @param initialMxz initial x-z cross coupling error.
1166 * @param initialMyx initial y-x cross coupling error.
1167 * @param initialMyz initial y-z cross coupling error.
1168 * @param initialMzx initial z-x cross coupling error.
1169 * @param initialMzy initial z-y cross coupling error.
1170 */
1171 public KnownGravityNormAccelerometerCalibrator(
1172 final Collection<StandardDeviationBodyKinematics> measurements,
1173 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1174 final double initialSx, final double initialSy, final double initialSz,
1175 final double initialMxy, final double initialMxz, final double initialMyx,
1176 final double initialMyz, final double initialMzx, final double initialMzy) {
1177 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1178 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
1179 }
1180
1181 /**
1182 * Constructor.
1183 *
1184 * @param measurements collection of body kinematics measurements with standard
1185 * deviations taken at the same position with zero velocity
1186 * and unknown different orientations.
1187 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1188 * to find a solution.
1189 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1190 * to find a solution.
1191 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1192 * to find a solution.
1193 * @param initialSx initial x scaling factor.
1194 * @param initialSy initial y scaling factor.
1195 * @param initialSz initial z scaling factor.
1196 * @param initialMxy initial x-y cross coupling error.
1197 * @param initialMxz initial x-z cross coupling error.
1198 * @param initialMyx initial y-x cross coupling error.
1199 * @param initialMyz initial y-z cross coupling error.
1200 * @param initialMzx initial z-x cross coupling error.
1201 * @param initialMzy initial z-y cross coupling error.
1202 * @param listener listener to handle events raised by this calibrator.
1203 */
1204 public KnownGravityNormAccelerometerCalibrator(
1205 final Collection<StandardDeviationBodyKinematics> measurements,
1206 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1207 final double initialSx, final double initialSy, final double initialSz,
1208 final double initialMxy, final double initialMxz, final double initialMyx,
1209 final double initialMyz, final double initialMzx, final double initialMzy,
1210 final KnownGravityNormAccelerometerCalibratorListener listener) {
1211 super(measurements, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1212 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1213 }
1214
1215 /**
1216 * Constructor.
1217 *
1218 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1219 * accelerometer and gyroscope.
1220 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1221 * to find a solution.
1222 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1223 * to find a solution.
1224 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1225 * to find a solution.
1226 * @param initialSx initial x scaling factor.
1227 * @param initialSy initial y scaling factor.
1228 * @param initialSz initial z scaling factor.
1229 * @param initialMxy initial x-y cross coupling error.
1230 * @param initialMxz initial x-z cross coupling error.
1231 * @param initialMyx initial y-x cross coupling error.
1232 * @param initialMyz initial y-z cross coupling error.
1233 * @param initialMzx initial z-x cross coupling error.
1234 * @param initialMzy initial z-y cross coupling error.
1235 */
1236 public KnownGravityNormAccelerometerCalibrator(
1237 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
1238 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
1239 final double initialMxy, final double initialMxz, final double initialMyx,
1240 final double initialMyz, final double initialMzx, final double initialMzy) {
1241 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1242 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
1243 }
1244
1245 /**
1246 * Constructor.
1247 *
1248 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1249 * accelerometer and gyroscope.
1250 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1251 * to find a solution.
1252 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1253 * to find a solution.
1254 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1255 * to find a solution.
1256 * @param initialSx initial x scaling factor.
1257 * @param initialSy initial y scaling factor.
1258 * @param initialSz initial z scaling factor.
1259 * @param initialMxy initial x-y cross coupling error.
1260 * @param initialMxz initial x-z cross coupling error.
1261 * @param initialMyx initial y-x cross coupling error.
1262 * @param initialMyz initial y-z cross coupling error.
1263 * @param initialMzx initial z-x cross coupling error.
1264 * @param initialMzy initial z-y cross coupling error.
1265 * @param listener listener to handle events raised by this calibrator.
1266 */
1267 public KnownGravityNormAccelerometerCalibrator(
1268 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
1269 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
1270 final double initialMxy, final double initialMxz, final double initialMyx,
1271 final double initialMyz, final double initialMzx, final double initialMzy,
1272 final KnownGravityNormAccelerometerCalibratorListener listener) {
1273 super(commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1274 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1275 }
1276
1277 /**
1278 * Constructor.
1279 *
1280 * @param measurements collection of body kinematics measurements with standard
1281 * deviations taken at the same position with zero velocity
1282 * and unknown different orientations.
1283 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1284 * accelerometer and gyroscope.
1285 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1286 * to find a solution.
1287 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1288 * to find a solution.
1289 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1290 * to find a solution.
1291 * @param initialSx initial x scaling factor.
1292 * @param initialSy initial y scaling factor.
1293 * @param initialSz initial z scaling factor.
1294 * @param initialMxy initial x-y cross coupling error.
1295 * @param initialMxz initial x-z cross coupling error.
1296 * @param initialMyx initial y-x cross coupling error.
1297 * @param initialMyz initial y-z cross coupling error.
1298 * @param initialMzx initial z-x cross coupling error.
1299 * @param initialMzy initial z-y cross coupling error.
1300 */
1301 public KnownGravityNormAccelerometerCalibrator(
1302 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1303 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1304 final double initialSx, final double initialSy, final double initialSz,
1305 final double initialMxy, final double initialMxz, final double initialMyx,
1306 final double initialMyz, final double initialMzx, final double initialMzy) {
1307 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1308 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
1309 }
1310
1311 /**
1312 * Constructor.
1313 *
1314 * @param measurements collection of body kinematics measurements with standard
1315 * deviations taken at the same position with zero velocity
1316 * and unknown different orientations.
1317 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1318 * accelerometer and gyroscope.
1319 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1320 * to find a solution.
1321 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1322 * to find a solution.
1323 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1324 * to find a solution.
1325 * @param initialSx initial x scaling factor.
1326 * @param initialSy initial y scaling factor.
1327 * @param initialSz initial z scaling factor.
1328 * @param initialMxy initial x-y cross coupling error.
1329 * @param initialMxz initial x-z cross coupling error.
1330 * @param initialMyx initial y-x cross coupling error.
1331 * @param initialMyz initial y-z cross coupling error.
1332 * @param initialMzx initial z-x cross coupling error.
1333 * @param initialMzy initial z-y cross coupling error.
1334 * @param listener listener to handle events raised by this calibrator.
1335 */
1336 public KnownGravityNormAccelerometerCalibrator(
1337 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1338 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
1339 final double initialSx, final double initialSy, final double initialSz,
1340 final double initialMxy, final double initialMxz, final double initialMyx,
1341 final double initialMyz, final double initialMzx, final double initialMzy,
1342 final KnownGravityNormAccelerometerCalibratorListener listener) {
1343 super(measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
1344 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
1345 }
1346
1347 /**
1348 * Constructor.
1349 *
1350 * @param initialBias initial accelerometer bias to be used to find a solution.
1351 * This must have length 3 and is expressed in meters per
1352 * squared second (m/s^2).
1353 * @throws IllegalArgumentException if provided bias array does not have length 3.
1354 */
1355 public KnownGravityNormAccelerometerCalibrator(final double[] initialBias) {
1356 super(initialBias);
1357 }
1358
1359 /**
1360 * Constructor.
1361 *
1362 * @param initialBias initial accelerometer bias to be used to find a solution.
1363 * This must have length 3 and is expressed in meters per
1364 * squared second (m/s^2).
1365 * @param listener listener to handle events raised by this calibrator.
1366 * @throws IllegalArgumentException if provided bias array does not have length 3.
1367 */
1368 public KnownGravityNormAccelerometerCalibrator(
1369 final double[] initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
1370 super(initialBias, listener);
1371 }
1372
1373 /**
1374 * Constructor.
1375 *
1376 * @param measurements collection of body kinematics measurements with standard
1377 * deviations taken at the same position with zero velocity
1378 * and unknown different orientations.
1379 * @param initialBias initial accelerometer bias to be used to find a solution.
1380 * This must have length 3 and is expressed in meters per
1381 * squared second (m/s^2).
1382 * @throws IllegalArgumentException if provided bias array does not have length 3.
1383 */
1384 public KnownGravityNormAccelerometerCalibrator(
1385 final Collection<StandardDeviationBodyKinematics> measurements, final double[] initialBias) {
1386 super(measurements, initialBias);
1387 }
1388
1389 /**
1390 * Constructor.
1391 *
1392 * @param measurements collection of body kinematics measurements with standard
1393 * deviations taken at the same position with zero velocity
1394 * and unknown different orientations.
1395 * @param initialBias initial accelerometer bias to be used to find a solution.
1396 * This must have length 3 and is expressed in meters per
1397 * squared second (m/s^2).
1398 * @param listener listener to handle events raised by this calibrator.
1399 * @throws IllegalArgumentException if provided bias array does not have length 3.
1400 */
1401 public KnownGravityNormAccelerometerCalibrator(
1402 final Collection<StandardDeviationBodyKinematics> measurements, final double[] initialBias,
1403 final KnownGravityNormAccelerometerCalibratorListener listener) {
1404 super(measurements, initialBias, listener);
1405 }
1406
1407 /**
1408 * Constructor.
1409 *
1410 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1411 * accelerometer and gyroscope.
1412 * @param initialBias initial accelerometer bias to be used to find a solution.
1413 * This must have length 3 and is expressed in meters per
1414 * squared second (m/s^2).
1415 * @throws IllegalArgumentException if provided bias array does not have length 3.
1416 */
1417 public KnownGravityNormAccelerometerCalibrator(final boolean commonAxisUsed, final double[] initialBias) {
1418 super(commonAxisUsed, initialBias);
1419 }
1420
1421 /**
1422 * Constructor.
1423 *
1424 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1425 * accelerometer and gyroscope.
1426 * @param initialBias initial accelerometer bias to be used to find a solution.
1427 * This must have length 3 and is expressed in meters per
1428 * squared second (m/s^2).
1429 * @param listener listener to handle events raised by this calibrator.
1430 * @throws IllegalArgumentException if provided bias array does not have length 3.
1431 */
1432 public KnownGravityNormAccelerometerCalibrator(
1433 final boolean commonAxisUsed, final double[] initialBias,
1434 final KnownGravityNormAccelerometerCalibratorListener listener) {
1435 super(commonAxisUsed, initialBias, listener);
1436 }
1437
1438 /**
1439 * Constructor.
1440 *
1441 * @param measurements collection of body kinematics measurements with standard
1442 * deviations taken at the same position with zero velocity
1443 * and unknown different orientations.
1444 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1445 * accelerometer and gyroscope.
1446 * @param initialBias initial accelerometer bias to be used to find a solution.
1447 * This must have length 3 and is expressed in meters per
1448 * squared second (m/s^2).
1449 * @throws IllegalArgumentException if provided bias array does not have length 3.
1450 */
1451 public KnownGravityNormAccelerometerCalibrator(
1452 final Collection<StandardDeviationBodyKinematics> measurements,
1453 final boolean commonAxisUsed, final double[] initialBias) {
1454 super(measurements, commonAxisUsed, initialBias);
1455 }
1456
1457 /**
1458 * Constructor.
1459 *
1460 * @param measurements collection of body kinematics measurements with standard
1461 * deviations taken at the same position with zero velocity
1462 * and unknown different orientations.
1463 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1464 * accelerometer and gyroscope.
1465 * @param initialBias initial accelerometer bias to be used to find a solution.
1466 * This must have length 3 and is expressed in meters per
1467 * squared second (m/s^2).
1468 * @param listener listener to handle events raised by this calibrator.
1469 * @throws IllegalArgumentException if provided bias array does not have length 3.
1470 */
1471 public KnownGravityNormAccelerometerCalibrator(
1472 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1473 final double[] initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
1474 super(measurements, commonAxisUsed, initialBias, listener);
1475 }
1476
1477 /**
1478 * Constructor.
1479 *
1480 * @param initialBias initial bias to find a solution.
1481 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1482 */
1483 public KnownGravityNormAccelerometerCalibrator(final Matrix initialBias) {
1484 super(initialBias);
1485 }
1486
1487 /**
1488 * Constructor.
1489 *
1490 * @param initialBias initial bias to find a solution.
1491 * @param listener listener to handle events raised by this calibrator.
1492 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1493 */
1494 public KnownGravityNormAccelerometerCalibrator(
1495 final Matrix initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
1496 super(initialBias, listener);
1497 }
1498
1499 /**
1500 * Constructor.
1501 *
1502 * @param measurements collection of body kinematics measurements with standard
1503 * deviations taken at the same position with zero velocity
1504 * and unknown different orientations.
1505 * @param initialBias initial bias to find a solution.
1506 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1507 */
1508 public KnownGravityNormAccelerometerCalibrator(
1509 final Collection<StandardDeviationBodyKinematics> measurements, final Matrix initialBias) {
1510 super(measurements, initialBias);
1511 }
1512
1513 /**
1514 * Constructor.
1515 *
1516 * @param measurements collection of body kinematics measurements with standard
1517 * deviations taken at the same position with zero velocity
1518 * and unknown different orientations.
1519 * @param initialBias initial bias to find a solution.
1520 * @param listener listener to handle events raised by this calibrator.
1521 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1522 */
1523 public KnownGravityNormAccelerometerCalibrator(
1524 final Collection<StandardDeviationBodyKinematics> measurements, final Matrix initialBias,
1525 final KnownGravityNormAccelerometerCalibratorListener listener) {
1526 super(measurements, initialBias, listener);
1527 }
1528
1529 /**
1530 * Constructor.
1531 *
1532 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1533 * accelerometer and gyroscope.
1534 * @param initialBias initial bias to find a solution.
1535 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1536 */
1537 public KnownGravityNormAccelerometerCalibrator(final boolean commonAxisUsed, final Matrix initialBias) {
1538 super(commonAxisUsed, initialBias);
1539 }
1540
1541 /**
1542 * Constructor.
1543 *
1544 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1545 * accelerometer and gyroscope.
1546 * @param initialBias initial bias to find a solution.
1547 * @param listener listener to handle events raised by this calibrator.
1548 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1549 */
1550 public KnownGravityNormAccelerometerCalibrator(
1551 final boolean commonAxisUsed, final Matrix initialBias,
1552 final KnownGravityNormAccelerometerCalibratorListener listener) {
1553 super(commonAxisUsed, initialBias, listener);
1554 }
1555
1556 /**
1557 * Constructor.
1558 *
1559 * @param measurements collection of body kinematics measurements with standard
1560 * deviations taken at the same position with zero velocity
1561 * and unknown different orientations.
1562 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1563 * accelerometer and gyroscope.
1564 * @param initialBias initial bias to find a solution.
1565 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1566 */
1567 public KnownGravityNormAccelerometerCalibrator(
1568 final Collection<StandardDeviationBodyKinematics> measurements,
1569 final boolean commonAxisUsed, final Matrix initialBias) {
1570 super(measurements, commonAxisUsed, initialBias);
1571 }
1572
1573 /**
1574 * Constructor.
1575 *
1576 * @param measurements collection of body kinematics measurements with standard
1577 * deviations taken at the same position with zero velocity
1578 * and unknown different orientations.
1579 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1580 * accelerometer and gyroscope.
1581 * @param initialBias initial bias to find a solution.
1582 * @param listener listener to handle events raised by this calibrator.
1583 * @throws IllegalArgumentException if provided bias matrix is not 3x1.
1584 */
1585 public KnownGravityNormAccelerometerCalibrator(
1586 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1587 final Matrix initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
1588 super(measurements, commonAxisUsed, initialBias, listener);
1589 }
1590
1591 /**
1592 * Constructor.
1593 *
1594 * @param initialBias initial bias to find a solution.
1595 * @param initialMa initial scale factors and cross coupling errors matrix.
1596 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1597 * scaling and coupling error matrix is not 3x3.
1598 */
1599 public KnownGravityNormAccelerometerCalibrator(final Matrix initialBias, final Matrix initialMa) {
1600 super(initialBias, initialMa);
1601 }
1602
1603 /**
1604 * Constructor.
1605 *
1606 * @param initialBias initial bias to find a solution.
1607 * @param initialMa initial scale factors and cross coupling errors matrix.
1608 * @param listener listener to handle events raised by this calibrator.
1609 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1610 * scaling and coupling error matrix is not 3x3.
1611 */
1612 public KnownGravityNormAccelerometerCalibrator(
1613 final Matrix initialBias, final Matrix initialMa,
1614 final KnownGravityNormAccelerometerCalibratorListener listener) {
1615 super(initialBias, initialMa, listener);
1616 }
1617
1618 /**
1619 * Constructor.
1620 *
1621 * @param measurements collection of body kinematics measurements with standard
1622 * deviations taken at the same position with zero velocity
1623 * and unknown different orientations.
1624 * @param initialBias initial bias to find a solution.
1625 * @param initialMa initial scale factors and cross coupling errors matrix.
1626 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1627 * scaling and coupling error matrix is not 3x3.
1628 */
1629 public KnownGravityNormAccelerometerCalibrator(
1630 final Collection<StandardDeviationBodyKinematics> measurements,
1631 final Matrix initialBias, final Matrix initialMa) {
1632 super(measurements, initialBias, initialMa);
1633 }
1634
1635 /**
1636 * Constructor.
1637 *
1638 * @param measurements collection of body kinematics measurements with standard
1639 * deviations taken at the same position with zero velocity
1640 * and unknown different orientations.
1641 * @param initialBias initial bias to find a solution.
1642 * @param initialMa initial scale factors and cross coupling errors matrix.
1643 * @param listener listener to handle events raised by this calibrator.
1644 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1645 * scaling and coupling error matrix is not 3x3.
1646 */
1647 public KnownGravityNormAccelerometerCalibrator(
1648 final Collection<StandardDeviationBodyKinematics> measurements, final Matrix initialBias,
1649 final Matrix initialMa, final KnownGravityNormAccelerometerCalibratorListener listener) {
1650 super(measurements, initialBias, initialMa, listener);
1651 }
1652
1653 /**
1654 * Constructor.
1655 *
1656 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1657 * accelerometer and gyroscope.
1658 * @param initialBias initial bias to find a solution.
1659 * @param initialMa initial scale factors and cross coupling errors matrix.
1660 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1661 * scaling and coupling error matrix is not 3x3.
1662 */
1663 public KnownGravityNormAccelerometerCalibrator(
1664 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa) {
1665 super(commonAxisUsed, initialBias, initialMa);
1666 }
1667
1668 /**
1669 * Constructor.
1670 *
1671 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1672 * accelerometer and gyroscope.
1673 * @param initialBias initial bias to find a solution.
1674 * @param initialMa initial scale factors and cross coupling errors matrix.
1675 * @param listener listener to handle events raised by this calibrator.
1676 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1677 * scaling and coupling error matrix is not 3x3.
1678 */
1679 public KnownGravityNormAccelerometerCalibrator(
1680 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa,
1681 final KnownGravityNormAccelerometerCalibratorListener listener) {
1682 super(commonAxisUsed, initialBias, initialMa, listener);
1683 }
1684
1685 /**
1686 * Constructor.
1687 *
1688 * @param measurements collection of body kinematics measurements with standard
1689 * deviations taken at the same position with zero velocity
1690 * and unknown different orientations.
1691 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1692 * accelerometer and gyroscope.
1693 * @param initialBias initial bias to find a solution.
1694 * @param initialMa initial scale factors and cross coupling errors matrix.
1695 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1696 * scaling and coupling error matrix is not 3x3.
1697 */
1698 public KnownGravityNormAccelerometerCalibrator(
1699 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1700 final Matrix initialBias, final Matrix initialMa) {
1701 super(measurements, commonAxisUsed, initialBias, initialMa);
1702 }
1703
1704 /**
1705 * Constructor.
1706 *
1707 * @param measurements collection of body kinematics measurements with standard
1708 * deviations taken at the same position with zero velocity
1709 * and unknown different orientations.
1710 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1711 * accelerometer and gyroscope.
1712 * @param initialBias initial bias to find a solution.
1713 * @param initialMa initial scale factors and cross coupling errors matrix.
1714 * @param listener listener to handle events raised by this calibrator.
1715 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
1716 * scaling and coupling error matrix is not 3x3.
1717 */
1718 public KnownGravityNormAccelerometerCalibrator(
1719 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed,
1720 final Matrix initialBias, final Matrix initialMa,
1721 final KnownGravityNormAccelerometerCalibratorListener listener) {
1722 super(measurements, commonAxisUsed, initialBias, initialMa, listener);
1723 }
1724
1725 /**
1726 * Constructor.
1727 *
1728 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1729 * squared second (m/s^2).
1730 * @throws IllegalArgumentException if provided gravity norm value is negative.
1731 */
1732 public KnownGravityNormAccelerometerCalibrator(final Double groundTruthGravityNorm) {
1733 super(groundTruthGravityNorm);
1734 }
1735
1736 /**
1737 * Constructor.
1738 *
1739 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1740 * squared second (m/s^2).
1741 * @param listener listener to handle events raised by this calibrator.
1742 * @throws IllegalArgumentException if provided gravity norm value is negative.
1743 */
1744 public KnownGravityNormAccelerometerCalibrator(
1745 final Double groundTruthGravityNorm, final KnownGravityNormAccelerometerCalibratorListener listener) {
1746 super(groundTruthGravityNorm, listener);
1747 }
1748
1749 /**
1750 * Constructor.
1751 *
1752 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1753 * squared second (m/s^2).
1754 * @param measurements collection of body kinematics measurements with standard
1755 * deviations taken at the same position with zero velocity
1756 * and unknown different orientations.
1757 * @throws IllegalArgumentException if provided gravity norm value is negative.
1758 */
1759 public KnownGravityNormAccelerometerCalibrator(
1760 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements) {
1761 super(groundTruthGravityNorm, measurements);
1762 }
1763
1764 /**
1765 * Constructor.
1766 *
1767 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1768 * squared second (m/s^2).
1769 * @param measurements collection of body kinematics measurements with standard
1770 * deviations taken at the same position with zero velocity
1771 * and unknown different orientations.
1772 * @param listener listener to handle events raised by this calibrator.
1773 * @throws IllegalArgumentException if provided gravity norm value is negative.
1774 */
1775 public KnownGravityNormAccelerometerCalibrator(
1776 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
1777 final KnownGravityNormAccelerometerCalibratorListener listener) {
1778 super(groundTruthGravityNorm, measurements, listener);
1779 }
1780
1781 /**
1782 * Constructor.
1783 *
1784 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1785 * squared second (m/s^2).
1786 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1787 * accelerometer and gyroscope.
1788 * @throws IllegalArgumentException if provided gravity norm value is negative.
1789 */
1790 public KnownGravityNormAccelerometerCalibrator(
1791 final Double groundTruthGravityNorm, final boolean commonAxisUsed) {
1792 super(groundTruthGravityNorm, commonAxisUsed);
1793 }
1794
1795 /**
1796 * Constructor.
1797 *
1798 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1799 * squared second (m/s^2).
1800 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1801 * accelerometer and gyroscope.
1802 * @param listener listener to handle events raised by this calibrator.
1803 * @throws IllegalArgumentException if provided gravity norm value is negative.
1804 */
1805 public KnownGravityNormAccelerometerCalibrator(
1806 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
1807 final KnownGravityNormAccelerometerCalibratorListener listener) {
1808 super(groundTruthGravityNorm, commonAxisUsed, listener);
1809 }
1810
1811 /**
1812 * Constructor.
1813 *
1814 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1815 * squared second (m/s^2).
1816 * @param measurements collection of body kinematics measurements with standard
1817 * deviations taken at the same position with zero velocity
1818 * and unknown different orientations.
1819 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1820 * accelerometer and gyroscope.
1821 * @throws IllegalArgumentException if provided gravity norm value is negative.
1822 */
1823 public KnownGravityNormAccelerometerCalibrator(
1824 final Double groundTruthGravityNorm,
1825 final Collection<StandardDeviationBodyKinematics> measurements, final boolean commonAxisUsed) {
1826 super(groundTruthGravityNorm, measurements, commonAxisUsed);
1827 }
1828
1829 /**
1830 * Constructor.
1831 *
1832 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1833 * squared second (m/s^2).
1834 * @param measurements collection of body kinematics measurements with standard
1835 * deviations taken at the same position with zero velocity
1836 * and unknown different orientations.
1837 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1838 * accelerometer and gyroscope.
1839 * @param listener listener to handle events raised by this calibrator.
1840 * @throws IllegalArgumentException if provided gravity norm value is negative.
1841 */
1842 public KnownGravityNormAccelerometerCalibrator(
1843 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
1844 final boolean commonAxisUsed, final KnownGravityNormAccelerometerCalibratorListener listener) {
1845 super(groundTruthGravityNorm, measurements, commonAxisUsed, listener);
1846 }
1847
1848 /**
1849 * Constructor.
1850 *
1851 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1852 * squared second (m/s^2).
1853 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1854 * to find a solution. This is expressed in meters per squared
1855 * second (m/s^2).
1856 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1857 * to find a solution. This is expressed in meters per squared
1858 * second (m/s^2).
1859 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1860 * to find a solution. This is expressed in meters per squared
1861 * second (m/s^2).
1862 * @throws IllegalArgumentException if provided gravity norm value is negative.
1863 */
1864 public KnownGravityNormAccelerometerCalibrator(
1865 final Double groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
1866 final double initialBiasZ) {
1867 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ);
1868 }
1869
1870 /**
1871 * Constructor.
1872 *
1873 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1874 * squared second (m/s^2).
1875 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1876 * to find a solution. This is expressed in meters per squared
1877 * second (m/s^2).
1878 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1879 * to find a solution. This is expressed in meters per squared
1880 * second (m/s^2).
1881 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1882 * to find a solution. This is expressed in meters per squared
1883 * second (m/s^2).
1884 * @param listener listener to handle events raised by this calibrator.
1885 * @throws IllegalArgumentException if provided gravity norm value is negative.
1886 */
1887 public KnownGravityNormAccelerometerCalibrator(
1888 final Double groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
1889 final double initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
1890 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, listener);
1891 }
1892
1893 /**
1894 * Constructor.
1895 *
1896 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1897 * squared second (m/s^2).
1898 * @param measurements collection of body kinematics measurements with standard
1899 * deviations taken at the same position with zero velocity
1900 * and unknown different orientations.
1901 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1902 * to find a solution. This is expressed in meters per squared
1903 * second (m/s^2).
1904 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1905 * to find a solution. This is expressed in meters per squared
1906 * second (m/s^2).
1907 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1908 * to find a solution. This is expressed in meters per squared
1909 * second (m/s^2).
1910 * @throws IllegalArgumentException if provided gravity norm value is negative.
1911 */
1912 public KnownGravityNormAccelerometerCalibrator(
1913 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
1914 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
1915 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ);
1916 }
1917
1918 /**
1919 * Constructor.
1920 *
1921 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1922 * squared second (m/s^2).
1923 * @param measurements collection of body kinematics measurements with standard
1924 * deviations taken at the same position with zero velocity
1925 * and unknown different orientations.
1926 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1927 * to find a solution. This is expressed in meters per squared
1928 * second (m/s^2).
1929 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1930 * to find a solution. This is expressed in meters per squared
1931 * second (m/s^2).
1932 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1933 * to find a solution. This is expressed in meters per squared
1934 * second (m/s^2).
1935 * @param listener listener to handle events raised by this calibrator.
1936 * @throws IllegalArgumentException if provided gravity norm value is negative.
1937 */
1938 public KnownGravityNormAccelerometerCalibrator(
1939 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
1940 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
1941 final KnownGravityNormAccelerometerCalibratorListener listener) {
1942 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ, listener);
1943 }
1944
1945 /**
1946 * Constructor.
1947 *
1948 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1949 * squared second (m/s^2).
1950 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1951 * accelerometer and gyroscope.
1952 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1953 * to find a solution. This is expressed in meters per squared
1954 * second (m/s^2).
1955 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1956 * to find a solution. This is expressed in meters per squared
1957 * second (m/s^2).
1958 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1959 * to find a solution. This is expressed in meters per squared
1960 * second (m/s^2).
1961 * @throws IllegalArgumentException if provided gravity norm value is negative.
1962 */
1963 public KnownGravityNormAccelerometerCalibrator(
1964 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
1965 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
1966 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
1967 }
1968
1969 /**
1970 * Constructor.
1971 *
1972 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1973 * squared second (m/s^2).
1974 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
1975 * accelerometer and gyroscope.
1976 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
1977 * to find a solution. This is expressed in meters per squared
1978 * second (m/s^2).
1979 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
1980 * to find a solution. This is expressed in meters per squared
1981 * second (m/s^2).
1982 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
1983 * to find a solution. This is expressed in meters per squared
1984 * second (m/s^2).
1985 * @param listener listener to handle events raised by this calibrator.
1986 * @throws IllegalArgumentException if provided gravity norm value is negative.
1987 */
1988 public KnownGravityNormAccelerometerCalibrator(
1989 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
1990 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
1991 final KnownGravityNormAccelerometerCalibratorListener listener) {
1992 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
1993 }
1994
1995 /**
1996 * Constructor.
1997 *
1998 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
1999 * squared second (m/s^2).
2000 * @param measurements collection of body kinematics measurements with standard
2001 * deviations taken at the same position with zero velocity
2002 * and unknown different orientations.
2003 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2004 * accelerometer and gyroscope.
2005 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2006 * to find a solution. This is expressed in meters per squared
2007 * second (m/s^2).
2008 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2009 * to find a solution. This is expressed in meters per squared
2010 * second (m/s^2).
2011 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2012 * to find a solution. This is expressed in meters per squared
2013 * second (m/s^2).
2014 * @throws IllegalArgumentException if provided gravity norm value is negative.
2015 */
2016 public KnownGravityNormAccelerometerCalibrator(
2017 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2018 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2019 final double initialBiasZ) {
2020 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
2021 }
2022
2023 /**
2024 * Constructor.
2025 *
2026 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2027 * squared second (m/s^2).
2028 * @param measurements collection of body kinematics measurements with standard
2029 * deviations taken at the same position with zero velocity
2030 * and unknown different orientations.
2031 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2032 * accelerometer and gyroscope.
2033 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2034 * to find a solution. This is expressed in meters per squared
2035 * second (m/s^2).
2036 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2037 * to find a solution. This is expressed in meters per squared
2038 * second (m/s^2).
2039 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2040 * to find a solution. This is expressed in meters per squared
2041 * second (m/s^2).
2042 * @param listener listener to handle events raised by this calibrator.
2043 * @throws IllegalArgumentException if provided gravity norm value is negative.
2044 */
2045 public KnownGravityNormAccelerometerCalibrator(
2046 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2047 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2048 final double initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
2049 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2050 listener);
2051 }
2052
2053 /**
2054 * Constructor.
2055 *
2056 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2057 * squared second (m/s^2).
2058 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2059 * to find a solution.
2060 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2061 * to find a solution.
2062 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2063 * to find a solution.
2064 * @throws IllegalArgumentException if provided gravity norm value is negative.
2065 */
2066 public KnownGravityNormAccelerometerCalibrator(
2067 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2068 final Acceleration initialBiasZ) {
2069 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ);
2070 }
2071
2072 /**
2073 * Constructor.
2074 *
2075 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2076 * squared second (m/s^2).
2077 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2078 * to find a solution.
2079 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2080 * to find a solution.
2081 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2082 * to find a solution.
2083 * @param listener listener to handle events raised by this calibrator.
2084 * @throws IllegalArgumentException if provided gravity norm value is negative.
2085 */
2086 public KnownGravityNormAccelerometerCalibrator(
2087 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2088 final Acceleration initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
2089 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, listener);
2090 }
2091
2092 /**
2093 * Constructor.
2094 *
2095 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2096 * squared second (m/s^2).
2097 * @param measurements collection of body kinematics measurements with standard
2098 * deviations taken at the same position with zero velocity
2099 * and unknown different orientations.
2100 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2101 * to find a solution.
2102 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2103 * to find a solution.
2104 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2105 * to find a solution.
2106 * @throws IllegalArgumentException if provided gravity norm value is negative.
2107 */
2108 public KnownGravityNormAccelerometerCalibrator(
2109 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2110 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ) {
2111 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ);
2112 }
2113
2114 /**
2115 * Constructor.
2116 *
2117 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2118 * squared second (m/s^2).
2119 * @param measurements collection of body kinematics measurements with standard
2120 * deviations taken at the same position with zero velocity
2121 * and unknown different orientations.
2122 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2123 * to find a solution.
2124 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2125 * to find a solution.
2126 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2127 * to find a solution.
2128 * @param listener listener to handle events raised by this calibrator.
2129 * @throws IllegalArgumentException if provided gravity norm value is negative.
2130 */
2131 public KnownGravityNormAccelerometerCalibrator(
2132 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2133 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
2134 final KnownGravityNormAccelerometerCalibratorListener listener) {
2135 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ, listener);
2136 }
2137
2138 /**
2139 * Constructor.
2140 *
2141 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2142 * squared second (m/s^2).
2143 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2144 * accelerometer and gyroscope.
2145 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2146 * to find a solution.
2147 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2148 * to find a solution.
2149 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2150 * to find a solution.
2151 * @throws IllegalArgumentException if provided gravity norm value is negative.
2152 */
2153 public KnownGravityNormAccelerometerCalibrator(
2154 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
2155 final Acceleration initialBiasY, final Acceleration initialBiasZ) {
2156 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
2157 }
2158
2159 /**
2160 * Constructor.
2161 *
2162 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2163 * squared second (m/s^2).
2164 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2165 * accelerometer and gyroscope.
2166 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2167 * to find a solution.
2168 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2169 * to find a solution.
2170 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2171 * to find a solution.
2172 * @param listener listener to handle events raised by this calibrator.
2173 * @throws IllegalArgumentException if provided gravity norm value is negative.
2174 */
2175 public KnownGravityNormAccelerometerCalibrator(
2176 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
2177 final Acceleration initialBiasY, final Acceleration initialBiasZ,
2178 final KnownGravityNormAccelerometerCalibratorListener listener) {
2179 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ, listener);
2180 }
2181
2182 /**
2183 * Constructor.
2184 *
2185 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2186 * squared second (m/s^2).
2187 * @param measurements collection of body kinematics measurements with standard
2188 * deviations taken at the same position with zero velocity
2189 * and unknown different orientations.
2190 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2191 * accelerometer and gyroscope.
2192 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2193 * to find a solution.
2194 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2195 * to find a solution.
2196 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2197 * to find a solution.
2198 * @throws IllegalArgumentException if provided gravity norm value is negative.
2199 */
2200 public KnownGravityNormAccelerometerCalibrator(
2201 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2202 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
2203 final Acceleration initialBiasZ) {
2204 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
2205 }
2206
2207 /**
2208 * Constructor.
2209 *
2210 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2211 * squared second (m/s^2).
2212 * @param measurements collection of body kinematics measurements with standard
2213 * deviations taken at the same position with zero velocity
2214 * and unknown different orientations.
2215 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2216 * accelerometer and gyroscope.
2217 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2218 * to find a solution.
2219 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2220 * to find a solution.
2221 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2222 * to find a solution.
2223 * @param listener listener to handle events raised by this calibrator.
2224 * @throws IllegalArgumentException if provided gravity norm value is negative.
2225 */
2226 public KnownGravityNormAccelerometerCalibrator(
2227 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2228 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
2229 final Acceleration initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
2230 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2231 listener);
2232 }
2233
2234 /**
2235 * Constructor.
2236 *
2237 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2238 * squared second (m/s^2).
2239 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2240 * to find a solution. This is expressed in meters per squared
2241 * second (m/s^2).
2242 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2243 * to find a solution. This is expressed in meters per squared
2244 * second (m/s^2).
2245 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2246 * to find a solution. This is expressed in meters per squared
2247 * second (m/s^2).
2248 * @param initialSx initial x scaling factor.
2249 * @param initialSy initial y scaling factor.
2250 * @param initialSz initial z scaling factor.
2251 * @throws IllegalArgumentException if provided gravity norm value is negative.
2252 */
2253 public KnownGravityNormAccelerometerCalibrator(
2254 final Double groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
2255 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
2256 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
2257 }
2258
2259 /**
2260 * Constructor.
2261 *
2262 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2263 * squared second (m/s^2).
2264 * @param measurements collection of body kinematics measurements with standard
2265 * deviations taken at the same position with zero velocity
2266 * and unknown different orientations.
2267 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2268 * to find a solution. This is expressed in meters per squared
2269 * second (m/s^2).
2270 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2271 * to find a solution. This is expressed in meters per squared
2272 * second (m/s^2).
2273 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2274 * to find a solution. This is expressed in meters per squared
2275 * second (m/s^2).
2276 * @param initialSx initial x scaling factor.
2277 * @param initialSy initial y scaling factor.
2278 * @param initialSz initial z scaling factor.
2279 * @throws IllegalArgumentException if provided gravity norm value is negative.
2280 */
2281 public KnownGravityNormAccelerometerCalibrator(
2282 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2283 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2284 final double initialSx, final double initialSy, final double initialSz) {
2285 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2286 initialSx, initialSy, initialSz);
2287 }
2288
2289 /**
2290 * Constructor.
2291 *
2292 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2293 * squared second (m/s^2).
2294 * @param measurements collection of body kinematics measurements with standard
2295 * deviations taken at the same position with zero velocity
2296 * and unknown different orientations.
2297 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2298 * to find a solution. This is expressed in meters per squared
2299 * second (m/s^2).
2300 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2301 * to find a solution. This is expressed in meters per squared
2302 * second (m/s^2).
2303 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2304 * to find a solution. This is expressed in meters per squared
2305 * second (m/s^2).
2306 * @param initialSx initial x scaling factor.
2307 * @param initialSy initial y scaling factor.
2308 * @param initialSz initial z scaling factor.
2309 * @param listener listener to handle events raised by this calibrator.
2310 * @throws IllegalArgumentException if provided gravity norm value is negative.
2311 */
2312 public KnownGravityNormAccelerometerCalibrator(
2313 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2314 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2315 final double initialSx, final double initialSy, final double initialSz,
2316 final KnownGravityNormAccelerometerCalibratorListener listener) {
2317 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2318 initialSx, initialSy, initialSz, listener);
2319 }
2320
2321 /**
2322 * Constructor.
2323 *
2324 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2325 * squared second (m/s^2).
2326 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2327 * accelerometer and gyroscope.
2328 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2329 * to find a solution. This is expressed in meters per squared
2330 * second (m/s^2).
2331 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2332 * to find a solution. This is expressed in meters per squared
2333 * second (m/s^2).
2334 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2335 * to find a solution. This is expressed in meters per squared
2336 * second (m/s^2).
2337 * @param initialSx initial x scaling factor.
2338 * @param initialSy initial y scaling factor.
2339 * @param initialSz initial z scaling factor.
2340 * @throws IllegalArgumentException if provided gravity norm value is negative.
2341 */
2342 public KnownGravityNormAccelerometerCalibrator(
2343 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
2344 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2345 final double initialSx, final double initialSy, final double initialSz) {
2346 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2347 initialSx, initialSy, initialSz);
2348 }
2349
2350 /**
2351 * Constructor.
2352 *
2353 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2354 * squared second (m/s^2).
2355 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2356 * accelerometer and gyroscope.
2357 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2358 * to find a solution. This is expressed in meters per squared
2359 * second (m/s^2).
2360 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2361 * to find a solution. This is expressed in meters per squared
2362 * second (m/s^2).
2363 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2364 * to find a solution. This is expressed in meters per squared
2365 * second (m/s^2).
2366 * @param initialSx initial x scaling factor.
2367 * @param initialSy initial y scaling factor.
2368 * @param initialSz initial z scaling factor.
2369 * @param listener listener to handle events raised by this calibrator.
2370 * @throws IllegalArgumentException if provided gravity norm value is negative.
2371 */
2372 public KnownGravityNormAccelerometerCalibrator(
2373 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
2374 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2375 final double initialSx, final double initialSy, final double initialSz,
2376 final KnownGravityNormAccelerometerCalibratorListener listener) {
2377 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2378 initialSx, initialSy, initialSz, listener);
2379 }
2380
2381 /**
2382 * Constructor.
2383 *
2384 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2385 * squared second (m/s^2).
2386 * @param measurements collection of body kinematics measurements with standard
2387 * deviations taken at the same position with zero velocity
2388 * and unknown different orientations.
2389 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2390 * accelerometer and gyroscope.
2391 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2392 * to find a solution. This is expressed in meters per squared
2393 * second (m/s^2).
2394 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2395 * to find a solution. This is expressed in meters per squared
2396 * second (m/s^2).
2397 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2398 * to find a solution. This is expressed in meters per squared
2399 * second (m/s^2).
2400 * @param initialSx initial x scaling factor.
2401 * @param initialSy initial y scaling factor.
2402 * @param initialSz initial z scaling factor.
2403 * @throws IllegalArgumentException if provided gravity norm value is negative.
2404 */
2405 public KnownGravityNormAccelerometerCalibrator(
2406 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2407 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2408 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
2409 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2410 initialSx, initialSy, initialSz);
2411 }
2412
2413 /**
2414 * Constructor.
2415 *
2416 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2417 * squared second (m/s^2).
2418 * @param measurements collection of body kinematics measurements with standard
2419 * deviations taken at the same position with zero velocity
2420 * and unknown different orientations.
2421 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2422 * accelerometer and gyroscope.
2423 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2424 * to find a solution. This is expressed in meters per squared
2425 * second (m/s^2).
2426 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2427 * to find a solution. This is expressed in meters per squared
2428 * second (m/s^2).
2429 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2430 * to find a solution. This is expressed in meters per squared
2431 * second (m/s^2).
2432 * @param initialSx initial x scaling factor.
2433 * @param initialSy initial y scaling factor.
2434 * @param initialSz initial z scaling factor.
2435 * @param listener listener to handle events raised by this calibrator.
2436 * @throws IllegalArgumentException if provided gravity norm value is negative.
2437 */
2438 public KnownGravityNormAccelerometerCalibrator(
2439 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2440 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2441 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2442 final KnownGravityNormAccelerometerCalibratorListener listener) {
2443 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2444 initialSx, initialSy, initialSz, listener);
2445 }
2446
2447 /**
2448 * Constructor.
2449 *
2450 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2451 * squared second (m/s^2).
2452 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2453 * to find a solution.
2454 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2455 * to find a solution.
2456 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2457 * to find a solution.
2458 * @param initialSx initial x scaling factor.
2459 * @param initialSy initial y scaling factor.
2460 * @param initialSz initial z scaling factor.
2461 * @throws IllegalArgumentException if provided gravity norm value is negative.
2462 */
2463 public KnownGravityNormAccelerometerCalibrator(
2464 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2465 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
2466 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
2467 }
2468
2469 /**
2470 * Constructor.
2471 *
2472 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2473 * squared second (m/s^2).
2474 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2475 * to find a solution.
2476 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2477 * to find a solution.
2478 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2479 * to find a solution.
2480 * @param initialSx initial x scaling factor.
2481 * @param initialSy initial y scaling factor.
2482 * @param initialSz initial z scaling factor.
2483 * @param listener listener to handle events raised by this calibrator.
2484 * @throws IllegalArgumentException if provided gravity norm value is negative.
2485 */
2486 public KnownGravityNormAccelerometerCalibrator(
2487 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2488 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2489 final KnownGravityNormAccelerometerCalibratorListener listener) {
2490 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
2491 listener);
2492 }
2493
2494 /**
2495 * Constructor.
2496 *
2497 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2498 * squared second (m/s^2).
2499 * @param measurements collection of body kinematics measurements with standard
2500 * deviations taken at the same position with zero velocity
2501 * and unknown different orientations.
2502 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2503 * to find a solution.
2504 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2505 * to find a solution.
2506 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2507 * to find a solution.
2508 * @param initialSx initial x scaling factor.
2509 * @param initialSy initial y scaling factor.
2510 * @param initialSz initial z scaling factor.
2511 * @throws IllegalArgumentException if provided gravity norm value is negative.
2512 */
2513 public KnownGravityNormAccelerometerCalibrator(
2514 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2515 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
2516 final double initialSx, final double initialSy, final double initialSz) {
2517 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2518 initialSx, initialSy, initialSz);
2519 }
2520
2521 /**
2522 * Constructor.
2523 *
2524 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2525 * squared second (m/s^2).
2526 * @param measurements collection of body kinematics measurements with standard
2527 * deviations taken at the same position with zero velocity
2528 * and unknown different orientations.
2529 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2530 * to find a solution.
2531 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2532 * to find a solution.
2533 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2534 * to find a solution.
2535 * @param initialSx initial x scaling factor.
2536 * @param initialSy initial y scaling factor.
2537 * @param initialSz initial z scaling factor.
2538 * @param listener listener to handle events raised by this calibrator.
2539 * @throws IllegalArgumentException if provided gravity norm value is negative.
2540 */
2541 public KnownGravityNormAccelerometerCalibrator(
2542 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2543 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
2544 final double initialSx, final double initialSy, final double initialSz,
2545 final KnownGravityNormAccelerometerCalibratorListener listener) {
2546 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2547 initialSx, initialSy, initialSz, listener);
2548 }
2549
2550 /**
2551 * Constructor.
2552 *
2553 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2554 * squared second (m/s^2).
2555 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2556 * accelerometer and gyroscope.
2557 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2558 * to find a solution.
2559 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2560 * to find a solution.
2561 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2562 * to find a solution.
2563 * @param initialSx initial x scaling factor.
2564 * @param initialSy initial y scaling factor.
2565 * @param initialSz initial z scaling factor.
2566 * @throws IllegalArgumentException if provided gravity norm value is negative.
2567 */
2568 public KnownGravityNormAccelerometerCalibrator(
2569 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
2570 final Acceleration initialBiasY, final Acceleration initialBiasZ,
2571 final double initialSx, final double initialSy, final double initialSz) {
2572 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2573 initialSx, initialSy, initialSz);
2574 }
2575
2576 /**
2577 * Constructor.
2578 *
2579 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2580 * squared second (m/s^2).
2581 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2582 * accelerometer and gyroscope.
2583 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2584 * to find a solution.
2585 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2586 * to find a solution.
2587 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2588 * to find a solution.
2589 * @param initialSx initial x scaling factor.
2590 * @param initialSy initial y scaling factor.
2591 * @param initialSz initial z scaling factor.
2592 * @param listener listener to handle events raised by this calibrator.
2593 * @throws IllegalArgumentException if provided gravity norm value is negative.
2594 */
2595 public KnownGravityNormAccelerometerCalibrator(
2596 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
2597 final Acceleration initialBiasY, final Acceleration initialBiasZ,
2598 final double initialSx, final double initialSy, final double initialSz,
2599 final KnownGravityNormAccelerometerCalibratorListener listener) {
2600 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2601 initialSx, initialSy, initialSz, listener);
2602 }
2603
2604 /**
2605 * Constructor.
2606 *
2607 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2608 * squared second (m/s^2).
2609 * @param measurements collection of body kinematics measurements with standard
2610 * deviations taken at the same position with zero velocity
2611 * and unknown different orientations.
2612 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2613 * accelerometer and gyroscope.
2614 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2615 * to find a solution.
2616 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2617 * to find a solution.
2618 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2619 * to find a solution.
2620 * @param initialSx initial x scaling factor.
2621 * @param initialSy initial y scaling factor.
2622 * @param initialSz initial z scaling factor.
2623 * @throws IllegalArgumentException if provided gravity norm value is negative.
2624 */
2625 public KnownGravityNormAccelerometerCalibrator(
2626 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2627 final boolean commonAxisUsed, final Acceleration initialBiasX,
2628 final Acceleration initialBiasY, final Acceleration initialBiasZ,
2629 final double initialSx, final double initialSy, final double initialSz) {
2630 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2631 initialSx, initialSy, initialSz);
2632 }
2633
2634 /**
2635 * Constructor.
2636 *
2637 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2638 * squared second (m/s^2).
2639 * @param measurements collection of body kinematics measurements with standard
2640 * deviations taken at the same position with zero velocity
2641 * and unknown different orientations.
2642 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2643 * accelerometer and gyroscope.
2644 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2645 * to find a solution.
2646 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2647 * to find a solution.
2648 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2649 * to find a solution.
2650 * @param initialSx initial x scaling factor.
2651 * @param initialSy initial y scaling factor.
2652 * @param initialSz initial z scaling factor.
2653 * @param listener listener to handle events raised by this calibrator.
2654 * @throws IllegalArgumentException if provided gravity norm value is negative.
2655 */
2656 public KnownGravityNormAccelerometerCalibrator(
2657 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2658 final boolean commonAxisUsed, final Acceleration initialBiasX,
2659 final Acceleration initialBiasY, final Acceleration initialBiasZ,
2660 final double initialSx, final double initialSy, final double initialSz,
2661 final KnownGravityNormAccelerometerCalibratorListener listener) {
2662 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2663 initialSx, initialSy, initialSz, listener);
2664 }
2665
2666 /**
2667 * Constructor.
2668 *
2669 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2670 * squared second (m/s^2).
2671 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2672 * to find a solution. This is expressed in meters per squared
2673 * second (m/s^2).
2674 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2675 * to find a solution. This is expressed in meters per squared
2676 * second (m/s^2).
2677 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2678 * to find a solution. This is expressed in meters per squared
2679 * second (m/s^2).
2680 * @param initialSx initial x scaling factor.
2681 * @param initialSy initial y scaling factor.
2682 * @param initialSz initial z scaling factor.
2683 * @param initialMxy initial x-y cross coupling error.
2684 * @param initialMxz initial x-z cross coupling error.
2685 * @param initialMyx initial y-x cross coupling error.
2686 * @param initialMyz initial y-z cross coupling error.
2687 * @param initialMzx initial z-x cross coupling error.
2688 * @param initialMzy initial z-y cross coupling error.
2689 * @throws IllegalArgumentException if provided gravity norm value is negative.
2690 */
2691 public KnownGravityNormAccelerometerCalibrator(
2692 final Double groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
2693 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2694 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
2695 final double initialMzx, final double initialMzy) {
2696 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
2697 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
2698 }
2699
2700 /**
2701 * Constructor.
2702 *
2703 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2704 * squared second (m/s^2).
2705 * @param measurements collection of body kinematics measurements with standard
2706 * deviations taken at the same position with zero velocity
2707 * and unknown different orientations.
2708 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2709 * to find a solution. This is expressed in meters per squared
2710 * second (m/s^2).
2711 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2712 * to find a solution. This is expressed in meters per squared
2713 * second (m/s^2).
2714 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2715 * to find a solution. This is expressed in meters per squared
2716 * second (m/s^2).
2717 * @param initialSx initial x scaling factor.
2718 * @param initialSy initial y scaling factor.
2719 * @param initialSz initial z scaling factor.
2720 * @param initialMxy initial x-y cross coupling error.
2721 * @param initialMxz initial x-z cross coupling error.
2722 * @param initialMyx initial y-x cross coupling error.
2723 * @param initialMyz initial y-z cross coupling error.
2724 * @param initialMzx initial z-x cross coupling error.
2725 * @param initialMzy initial z-y cross coupling error.
2726 * @throws IllegalArgumentException if provided gravity norm value is negative.
2727 */
2728 public KnownGravityNormAccelerometerCalibrator(
2729 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2730 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2731 final double initialSx, final double initialSy, final double initialSz,
2732 final double initialMxy, final double initialMxz, final double initialMyx,
2733 final double initialMyz, final double initialMzx, final double initialMzy) {
2734 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2735 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2736 initialMyz, initialMzx, initialMzy);
2737 }
2738
2739 /**
2740 * Constructor.
2741 *
2742 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2743 * squared second (m/s^2).
2744 * @param measurements collection of body kinematics measurements with standard
2745 * deviations taken at the same position with zero velocity
2746 * and unknown different orientations.
2747 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2748 * to find a solution. This is expressed in meters per squared
2749 * second (m/s^2).
2750 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2751 * to find a solution. This is expressed in meters per squared
2752 * second (m/s^2).
2753 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2754 * to find a solution. This is expressed in meters per squared
2755 * second (m/s^2).
2756 * @param initialSx initial x scaling factor.
2757 * @param initialSy initial y scaling factor.
2758 * @param initialSz initial z scaling factor.
2759 * @param initialMxy initial x-y cross coupling error.
2760 * @param initialMxz initial x-z cross coupling error.
2761 * @param initialMyx initial y-x cross coupling error.
2762 * @param initialMyz initial y-z cross coupling error.
2763 * @param initialMzx initial z-x cross coupling error.
2764 * @param initialMzy initial z-y cross coupling error.
2765 * @param listener listener to handle events raised by this calibrator.
2766 * @throws IllegalArgumentException if provided gravity norm value is negative.
2767 */
2768 public KnownGravityNormAccelerometerCalibrator(
2769 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2770 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2771 final double initialSx, final double initialSy, final double initialSz,
2772 final double initialMxy, final double initialMxz, final double initialMyx,
2773 final double initialMyz, final double initialMzx, final double initialMzy,
2774 final KnownGravityNormAccelerometerCalibratorListener listener) {
2775 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
2776 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2777 initialMyz, initialMzx, initialMzy, listener);
2778 }
2779
2780 /**
2781 * Constructor.
2782 *
2783 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2784 * squared second (m/s^2).
2785 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2786 * accelerometer and gyroscope.
2787 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2788 * to find a solution. This is expressed in meters per squared
2789 * second (m/s^2).
2790 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2791 * to find a solution. This is expressed in meters per squared
2792 * second (m/s^2).
2793 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2794 * to find a solution. This is expressed in meters per squared
2795 * second (m/s^2).
2796 * @param initialSx initial x scaling factor.
2797 * @param initialSy initial y scaling factor.
2798 * @param initialSz initial z scaling factor.
2799 * @param initialMxy initial x-y cross coupling error.
2800 * @param initialMxz initial x-z cross coupling error.
2801 * @param initialMyx initial y-x cross coupling error.
2802 * @param initialMyz initial y-z cross coupling error.
2803 * @param initialMzx initial z-x cross coupling error.
2804 * @param initialMzy initial z-y cross coupling error.
2805 * @throws IllegalArgumentException if provided gravity norm value is negative.
2806 */
2807 public KnownGravityNormAccelerometerCalibrator(
2808 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
2809 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2810 final double initialSx, final double initialSy, final double initialSz,
2811 final double initialMxy, final double initialMxz, final double initialMyx,
2812 final double initialMyz, final double initialMzx, final double initialMzy) {
2813 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2814 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2815 initialMyz, initialMzx, initialMzy);
2816 }
2817
2818 /**
2819 * Constructor.
2820 *
2821 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2822 * squared second (m/s^2).
2823 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2824 * accelerometer and gyroscope.
2825 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2826 * to find a solution. This is expressed in meters per squared
2827 * second (m/s^2).
2828 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2829 * to find a solution. This is expressed in meters per squared
2830 * second (m/s^2).
2831 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2832 * to find a solution. This is expressed in meters per squared
2833 * second (m/s^2).
2834 * @param initialSx initial x scaling factor.
2835 * @param initialSy initial y scaling factor.
2836 * @param initialSz initial z scaling factor.
2837 * @param initialMxy initial x-y cross coupling error.
2838 * @param initialMxz initial x-z cross coupling error.
2839 * @param initialMyx initial y-x cross coupling error.
2840 * @param initialMyz initial y-z cross coupling error.
2841 * @param initialMzx initial z-x cross coupling error.
2842 * @param initialMzy initial z-y cross coupling error.
2843 * @param listener listener to handle events raised by this calibrator.
2844 * @throws IllegalArgumentException if provided gravity norm value is negative.
2845 */
2846 public KnownGravityNormAccelerometerCalibrator(
2847 final Double groundTruthGravityNorm, final boolean commonAxisUsed,
2848 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
2849 final double initialSx, final double initialSy, final double initialSz,
2850 final double initialMxy, final double initialMxz, final double initialMyx,
2851 final double initialMyz, final double initialMzx, final double initialMzy,
2852 final KnownGravityNormAccelerometerCalibratorListener listener) {
2853 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2854 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2855 initialMyz, initialMzx, initialMzy, listener);
2856 }
2857
2858 /**
2859 * Constructor.
2860 *
2861 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2862 * squared second (m/s^2).
2863 * @param measurements collection of body kinematics measurements with standard
2864 * deviations taken at the same position with zero velocity
2865 * and unknown different orientations.
2866 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2867 * accelerometer and gyroscope.
2868 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2869 * to find a solution. This is expressed in meters per squared
2870 * second (m/s^2).
2871 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2872 * to find a solution. This is expressed in meters per squared
2873 * second (m/s^2).
2874 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2875 * to find a solution. This is expressed in meters per squared
2876 * second (m/s^2).
2877 * @param initialSx initial x scaling factor.
2878 * @param initialSy initial y scaling factor.
2879 * @param initialSz initial z scaling factor.
2880 * @param initialMxy initial x-y cross coupling error.
2881 * @param initialMxz initial x-z cross coupling error.
2882 * @param initialMyx initial y-x cross coupling error.
2883 * @param initialMyz initial y-z cross coupling error.
2884 * @param initialMzx initial z-x cross coupling error.
2885 * @param initialMzy initial z-y cross coupling error.
2886 * @throws IllegalArgumentException if provided gravity norm value is negative.
2887 */
2888 public KnownGravityNormAccelerometerCalibrator(
2889 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2890 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2891 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2892 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
2893 final double initialMzx, final double initialMzy) {
2894 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2895 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2896 initialMyz, initialMzx, initialMzy);
2897 }
2898
2899 /**
2900 * Constructor.
2901 *
2902 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2903 * squared second (m/s^2).
2904 * @param measurements collection of body kinematics measurements with standard
2905 * deviations taken at the same position with zero velocity
2906 * and unknown different orientations.
2907 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
2908 * accelerometer and gyroscope.
2909 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2910 * to find a solution. This is expressed in meters per squared
2911 * second (m/s^2).
2912 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2913 * to find a solution. This is expressed in meters per squared
2914 * second (m/s^2).
2915 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2916 * to find a solution. This is expressed in meters per squared
2917 * second (m/s^2).
2918 * @param initialSx initial x scaling factor.
2919 * @param initialSy initial y scaling factor.
2920 * @param initialSz initial z scaling factor.
2921 * @param initialMxy initial x-y cross coupling error.
2922 * @param initialMxz initial x-z cross coupling error.
2923 * @param initialMyx initial y-x cross coupling error.
2924 * @param initialMyz initial y-z cross coupling error.
2925 * @param initialMzx initial z-x cross coupling error.
2926 * @param initialMzy initial z-y cross coupling error.
2927 * @param listener listener to handle events raised by this calibrator.
2928 * @throws IllegalArgumentException if provided gravity norm value is negative.
2929 */
2930 public KnownGravityNormAccelerometerCalibrator(
2931 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
2932 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
2933 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2934 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
2935 final double initialMzx, final double initialMzy,
2936 final KnownGravityNormAccelerometerCalibratorListener listener) {
2937 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
2938 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
2939 initialMyz, initialMzx, initialMzy, listener);
2940 }
2941
2942 /**
2943 * Constructor.
2944 *
2945 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2946 * squared second (m/s^2).
2947 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2948 * to find a solution.
2949 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2950 * to find a solution.
2951 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2952 * to find a solution.
2953 * @param initialSx initial x scaling factor.
2954 * @param initialSy initial y scaling factor.
2955 * @param initialSz initial z scaling factor.
2956 * @param initialMxy initial x-y cross coupling error.
2957 * @param initialMxz initial x-z cross coupling error.
2958 * @param initialMyx initial y-x cross coupling error.
2959 * @param initialMyz initial y-z cross coupling error.
2960 * @param initialMzx initial z-x cross coupling error.
2961 * @param initialMzy initial z-y cross coupling error.
2962 * @throws IllegalArgumentException if provided gravity norm value is negative.
2963 */
2964 public KnownGravityNormAccelerometerCalibrator(
2965 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2966 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2967 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
2968 final double initialMzx, final double initialMzy) {
2969 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
2970 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
2971 }
2972
2973 /**
2974 * Constructor.
2975 *
2976 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
2977 * squared second (m/s^2).
2978 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
2979 * to find a solution.
2980 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
2981 * to find a solution.
2982 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
2983 * to find a solution.
2984 * @param initialSx initial x scaling factor.
2985 * @param initialSy initial y scaling factor.
2986 * @param initialSz initial z scaling factor.
2987 * @param initialMxy initial x-y cross coupling error.
2988 * @param initialMxz initial x-z cross coupling error.
2989 * @param initialMyx initial y-x cross coupling error.
2990 * @param initialMyz initial y-z cross coupling error.
2991 * @param initialMzx initial z-x cross coupling error.
2992 * @param initialMzy initial z-y cross coupling error.
2993 * @param listener listener to handle events raised by this calibrator.
2994 * @throws IllegalArgumentException if provided gravity norm value is negative.
2995 */
2996 public KnownGravityNormAccelerometerCalibrator(
2997 final Double groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
2998 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
2999 final double initialMxy, final double initialMxz, final double initialMyx, final double initialMyz,
3000 final double initialMzx, final double initialMzy,
3001 final KnownGravityNormAccelerometerCalibratorListener listener) {
3002 super(groundTruthGravityNorm, initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
3003 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
3004 }
3005
3006 /**
3007 * Constructor.
3008 *
3009 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3010 * squared second (m/s^2).
3011 * @param measurements collection of body kinematics measurements with standard
3012 * deviations taken at the same position with zero velocity
3013 * and unknown different orientations.
3014 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3015 * to find a solution.
3016 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3017 * to find a solution.
3018 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3019 * to find a solution.
3020 * @param initialSx initial x scaling factor.
3021 * @param initialSy initial y scaling factor.
3022 * @param initialSz initial z scaling factor.
3023 * @param initialMxy initial x-y cross coupling error.
3024 * @param initialMxz initial x-z cross coupling error.
3025 * @param initialMyx initial y-x cross coupling error.
3026 * @param initialMyz initial y-z cross coupling error.
3027 * @param initialMzx initial z-x cross coupling error.
3028 * @param initialMzy initial z-y cross coupling error.
3029 * @throws IllegalArgumentException if provided gravity norm value is negative.
3030 */
3031 public KnownGravityNormAccelerometerCalibrator(
3032 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3033 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
3034 final double initialSx, final double initialSy, final double initialSz, final double initialMxy,
3035 final double initialMxz, final double initialMyx, final double initialMyz, final double initialMzx,
3036 final double initialMzy) {
3037 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
3038 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3039 initialMyz, initialMzx, initialMzy);
3040 }
3041
3042 /**
3043 * Constructor.
3044 *
3045 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3046 * squared second (m/s^2).
3047 * @param measurements collection of body kinematics measurements with standard
3048 * deviations taken at the same position with zero velocity
3049 * and unknown different orientations.
3050 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3051 * to find a solution.
3052 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3053 * to find a solution.
3054 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3055 * to find a solution.
3056 * @param initialSx initial x scaling factor.
3057 * @param initialSy initial y scaling factor.
3058 * @param initialSz initial z scaling factor.
3059 * @param initialMxy initial x-y cross coupling error.
3060 * @param initialMxz initial x-z cross coupling error.
3061 * @param initialMyx initial y-x cross coupling error.
3062 * @param initialMyz initial y-z cross coupling error.
3063 * @param initialMzx initial z-x cross coupling error.
3064 * @param initialMzy initial z-y cross coupling error.
3065 * @param listener listener to handle events raised by this calibrator.
3066 * @throws IllegalArgumentException if provided gravity norm value is negative.
3067 */
3068 public KnownGravityNormAccelerometerCalibrator(
3069 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3070 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
3071 final double initialSx, final double initialSy, final double initialSz,
3072 final double initialMxy, final double initialMxz, final double initialMyx,
3073 final double initialMyz, final double initialMzx, final double initialMzy,
3074 final KnownGravityNormAccelerometerCalibratorListener listener) {
3075 super(groundTruthGravityNorm, measurements, initialBiasX, initialBiasY, initialBiasZ,
3076 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3077 initialMyz, initialMzx, initialMzy, listener);
3078 }
3079
3080 /**
3081 * Constructor.
3082 *
3083 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3084 * squared second (m/s^2).
3085 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3086 * accelerometer and gyroscope.
3087 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3088 * to find a solution.
3089 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3090 * to find a solution.
3091 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3092 * to find a solution.
3093 * @param initialSx initial x scaling factor.
3094 * @param initialSy initial y scaling factor.
3095 * @param initialSz initial z scaling factor.
3096 * @param initialMxy initial x-y cross coupling error.
3097 * @param initialMxz initial x-z cross coupling error.
3098 * @param initialMyx initial y-x cross coupling error.
3099 * @param initialMyz initial y-z cross coupling error.
3100 * @param initialMzx initial z-x cross coupling error.
3101 * @param initialMzy initial z-y cross coupling error.
3102 * @throws IllegalArgumentException if provided gravity norm value is negative.
3103 */
3104 public KnownGravityNormAccelerometerCalibrator(
3105 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
3106 final Acceleration initialBiasY, final Acceleration initialBiasZ,
3107 final double initialSx, final double initialSy, final double initialSz,
3108 final double initialMxy, final double initialMxz, final double initialMyx,
3109 final double initialMyz, final double initialMzx, final double initialMzy) {
3110 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
3111 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3112 initialMyz, initialMzx, initialMzy);
3113 }
3114
3115 /**
3116 * Constructor.
3117 *
3118 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3119 * squared second (m/s^2).
3120 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3121 * accelerometer and gyroscope.
3122 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3123 * to find a solution.
3124 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3125 * to find a solution.
3126 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3127 * to find a solution.
3128 * @param initialSx initial x scaling factor.
3129 * @param initialSy initial y scaling factor.
3130 * @param initialSz initial z scaling factor.
3131 * @param initialMxy initial x-y cross coupling error.
3132 * @param initialMxz initial x-z cross coupling error.
3133 * @param initialMyx initial y-x cross coupling error.
3134 * @param initialMyz initial y-z cross coupling error.
3135 * @param initialMzx initial z-x cross coupling error.
3136 * @param initialMzy initial z-y cross coupling error.
3137 * @param listener listener to handle events raised by this calibrator.
3138 * @throws IllegalArgumentException if provided gravity norm value is negative.
3139 */
3140 public KnownGravityNormAccelerometerCalibrator(
3141 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
3142 final Acceleration initialBiasY, final Acceleration initialBiasZ,
3143 final double initialSx, final double initialSy, final double initialSz,
3144 final double initialMxy, final double initialMxz, final double initialMyx,
3145 final double initialMyz, final double initialMzx, final double initialMzy,
3146 final KnownGravityNormAccelerometerCalibratorListener listener) {
3147 super(groundTruthGravityNorm, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
3148 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3149 initialMyz, initialMzx, initialMzy, listener);
3150 }
3151
3152 /**
3153 * Constructor.
3154 *
3155 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3156 * squared second (m/s^2).
3157 * @param measurements collection of body kinematics measurements with standard
3158 * deviations taken at the same position with zero velocity
3159 * and unknown different orientations.
3160 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3161 * accelerometer and gyroscope.
3162 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3163 * to find a solution.
3164 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3165 * to find a solution.
3166 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3167 * to find a solution.
3168 * @param initialSx initial x scaling factor.
3169 * @param initialSy initial y scaling factor.
3170 * @param initialSz initial z scaling factor.
3171 * @param initialMxy initial x-y cross coupling error.
3172 * @param initialMxz initial x-z cross coupling error.
3173 * @param initialMyx initial y-x cross coupling error.
3174 * @param initialMyz initial y-z cross coupling error.
3175 * @param initialMzx initial z-x cross coupling error.
3176 * @param initialMzy initial z-y cross coupling error.
3177 * @throws IllegalArgumentException if provided gravity norm value is negative.
3178 */
3179 public KnownGravityNormAccelerometerCalibrator(
3180 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3181 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
3182 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
3183 final double initialMxy, final double initialMxz, final double initialMyx,
3184 final double initialMyz, final double initialMzx, final double initialMzy) {
3185 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
3186 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3187 initialMyz, initialMzx, initialMzy);
3188 }
3189
3190 /**
3191 * Constructor.
3192 *
3193 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3194 * squared second (m/s^2).
3195 * @param measurements collection of body kinematics measurements with standard
3196 * deviations taken at the same position with zero velocity
3197 * and unknown different orientations.
3198 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3199 * accelerometer and gyroscope.
3200 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3201 * to find a solution.
3202 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3203 * to find a solution.
3204 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3205 * to find a solution.
3206 * @param initialSx initial x scaling factor.
3207 * @param initialSy initial y scaling factor.
3208 * @param initialSz initial z scaling factor.
3209 * @param initialMxy initial x-y cross coupling error.
3210 * @param initialMxz initial x-z cross coupling error.
3211 * @param initialMyx initial y-x cross coupling error.
3212 * @param initialMyz initial y-z cross coupling error.
3213 * @param initialMzx initial z-x cross coupling error.
3214 * @param initialMzy initial z-y cross coupling error.
3215 * @param listener listener to handle events raised by this calibrator.
3216 * @throws IllegalArgumentException if provided gravity norm value is negative.
3217 */
3218 public KnownGravityNormAccelerometerCalibrator(
3219 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3220 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
3221 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
3222 final double initialMxy, final double initialMxz, final double initialMyx,
3223 final double initialMyz, final double initialMzx, final double initialMzy,
3224 final KnownGravityNormAccelerometerCalibratorListener listener) {
3225 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
3226 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
3227 initialMyz, initialMzx, initialMzy, listener);
3228 }
3229
3230 /**
3231 * Constructor.
3232 *
3233 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3234 * squared second (m/s^2).
3235 * @param initialBias initial accelerometer bias to be used to find a solution.
3236 * This must have length 3 and is expressed in meters per
3237 * squared second (m/s^2).
3238 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3239 * if provided gravity norm value is negative.
3240 */
3241 public KnownGravityNormAccelerometerCalibrator(final Double groundTruthGravityNorm, final double[] initialBias) {
3242 super(groundTruthGravityNorm, initialBias);
3243 }
3244
3245 /**
3246 * Constructor.
3247 *
3248 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3249 * squared second (m/s^2).
3250 * @param initialBias initial accelerometer bias to be used to find a solution.
3251 * This must have length 3 and is expressed in meters per
3252 * squared second (m/s^2).
3253 * @param listener listener to handle events raised by this calibrator.
3254 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3255 * if provided gravity norm value is negative.
3256 */
3257 public KnownGravityNormAccelerometerCalibrator(
3258 final Double groundTruthGravityNorm, final double[] initialBias,
3259 final KnownGravityNormAccelerometerCalibratorListener listener) {
3260 super(groundTruthGravityNorm, initialBias, listener);
3261 }
3262
3263 /**
3264 * Constructor.
3265 *
3266 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3267 * squared second (m/s^2).
3268 * @param measurements collection of body kinematics measurements with standard
3269 * deviations taken at the same position with zero velocity
3270 * and unknown different orientations.
3271 * @param initialBias initial accelerometer bias to be used to find a solution.
3272 * This must have length 3 and is expressed in meters per
3273 * squared second (m/s^2).
3274 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3275 * if provided gravity norm value is negative.
3276 */
3277 public KnownGravityNormAccelerometerCalibrator(
3278 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3279 final double[] initialBias) {
3280 super(groundTruthGravityNorm, measurements, initialBias);
3281 }
3282
3283 /**
3284 * Constructor.
3285 *
3286 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3287 * squared second (m/s^2).
3288 * @param measurements collection of body kinematics measurements with standard
3289 * deviations taken at the same position with zero velocity
3290 * and unknown different orientations.
3291 * @param initialBias initial accelerometer bias to be used to find a solution.
3292 * This must have length 3 and is expressed in meters per
3293 * squared second (m/s^2).
3294 * @param listener listener to handle events raised by this calibrator.
3295 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3296 * if provided gravity norm value is negative.
3297 */
3298 public KnownGravityNormAccelerometerCalibrator(
3299 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3300 final double[] initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
3301 super(groundTruthGravityNorm, measurements, initialBias, listener);
3302 }
3303
3304 /**
3305 * Constructor.
3306 *
3307 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3308 * squared second (m/s^2).
3309 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3310 * accelerometer and gyroscope.
3311 * @param initialBias initial accelerometer bias to be used to find a solution.
3312 * This must have length 3 and is expressed in meters per
3313 * squared second (m/s^2).
3314 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3315 * if provided gravity norm value is negative.
3316 */
3317 public KnownGravityNormAccelerometerCalibrator(
3318 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final double[] initialBias) {
3319 super(groundTruthGravityNorm, commonAxisUsed, initialBias);
3320 }
3321
3322 /**
3323 * Constructor.
3324 *
3325 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3326 * squared second (m/s^2).
3327 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3328 * accelerometer and gyroscope.
3329 * @param initialBias initial accelerometer bias to be used to find a solution.
3330 * This must have length 3 and is expressed in meters per
3331 * squared second (m/s^2).
3332 * @param listener listener to handle events raised by this calibrator.
3333 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3334 * if provided gravity norm value is negative.
3335 */
3336 public KnownGravityNormAccelerometerCalibrator(
3337 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final double[] initialBias,
3338 final KnownGravityNormAccelerometerCalibratorListener listener) {
3339 super(groundTruthGravityNorm, commonAxisUsed, initialBias, listener);
3340 }
3341
3342 /**
3343 * Constructor.
3344 *
3345 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3346 * squared second (m/s^2).
3347 * @param measurements collection of body kinematics measurements with standard
3348 * deviations taken at the same position with zero velocity
3349 * and unknown different orientations.
3350 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3351 * accelerometer and gyroscope.
3352 * @param initialBias initial accelerometer bias to be used to find a solution.
3353 * This must have length 3 and is expressed in meters per
3354 * squared second (m/s^2).
3355 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3356 * if provided gravity norm value is negative.
3357 */
3358 public KnownGravityNormAccelerometerCalibrator(
3359 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3360 final boolean commonAxisUsed, final double[] initialBias) {
3361 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias);
3362 }
3363
3364 /**
3365 * Constructor.
3366 *
3367 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3368 * squared second (m/s^2).
3369 * @param measurements collection of body kinematics measurements with standard
3370 * deviations taken at the same position with zero velocity
3371 * and unknown different orientations.
3372 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3373 * accelerometer and gyroscope.
3374 * @param initialBias initial accelerometer bias to be used to find a solution.
3375 * This must have length 3 and is expressed in meters per
3376 * squared second (m/s^2).
3377 * @param listener listener to handle events raised by this calibrator.
3378 * @throws IllegalArgumentException if provided bias array does not have length 3 or
3379 * if provided gravity norm value is negative.
3380 */
3381 public KnownGravityNormAccelerometerCalibrator(
3382 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3383 final boolean commonAxisUsed, final double[] initialBias,
3384 final KnownGravityNormAccelerometerCalibratorListener listener) {
3385 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias, listener);
3386 }
3387
3388 /**
3389 * Constructor.
3390 *
3391 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3392 * squared second (m/s^2).
3393 * @param initialBias initial bias to find a solution.
3394 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3395 * if provided gravity norm value is negative.
3396 */
3397 public KnownGravityNormAccelerometerCalibrator(final Double groundTruthGravityNorm, final Matrix initialBias) {
3398 super(groundTruthGravityNorm, initialBias);
3399 }
3400
3401 /**
3402 * Constructor.
3403 *
3404 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3405 * squared second (m/s^2).
3406 * @param initialBias initial bias to find a solution.
3407 * @param listener listener to handle events raised by this calibrator.
3408 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3409 * if provided gravity norm value is negative.
3410 */
3411 public KnownGravityNormAccelerometerCalibrator(
3412 final Double groundTruthGravityNorm, final Matrix initialBias,
3413 final KnownGravityNormAccelerometerCalibratorListener listener) {
3414 super(groundTruthGravityNorm, initialBias, listener);
3415 }
3416
3417 /**
3418 * Constructor.
3419 *
3420 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3421 * squared second (m/s^2).
3422 * @param measurements collection of body kinematics measurements with standard
3423 * deviations taken at the same position with zero velocity
3424 * and unknown different orientations.
3425 * @param initialBias initial bias to find a solution.
3426 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3427 * if provided gravity norm value is negative.
3428 */
3429 public KnownGravityNormAccelerometerCalibrator(
3430 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3431 final Matrix initialBias) {
3432 super(groundTruthGravityNorm, measurements, initialBias);
3433 }
3434
3435 /**
3436 * Constructor.
3437 *
3438 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3439 * squared second (m/s^2).
3440 * @param measurements collection of body kinematics measurements with standard
3441 * deviations taken at the same position with zero velocity
3442 * and unknown different orientations.
3443 * @param initialBias initial bias to find a solution.
3444 * @param listener listener to handle events raised by this calibrator.
3445 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3446 * if provided gravity norm value is negative.
3447 */
3448 public KnownGravityNormAccelerometerCalibrator(
3449 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3450 final Matrix initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
3451 super(groundTruthGravityNorm, measurements, initialBias, listener);
3452 }
3453
3454 /**
3455 * Constructor.
3456 *
3457 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3458 * squared second (m/s^2).
3459 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3460 * accelerometer and gyroscope.
3461 * @param initialBias initial bias to find a solution.
3462 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3463 * if provided gravity norm value is negative.
3464 */
3465 public KnownGravityNormAccelerometerCalibrator(
3466 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias) {
3467 super(groundTruthGravityNorm, commonAxisUsed, initialBias);
3468 }
3469
3470 /**
3471 * Constructor.
3472 *
3473 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3474 * squared second (m/s^2).
3475 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3476 * accelerometer and gyroscope.
3477 * @param initialBias initial bias to find a solution.
3478 * @param listener listener to handle events raised by this calibrator.
3479 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3480 * if provided gravity norm value is negative.
3481 */
3482 public KnownGravityNormAccelerometerCalibrator(
3483 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
3484 final KnownGravityNormAccelerometerCalibratorListener listener) {
3485 super(groundTruthGravityNorm, commonAxisUsed, initialBias, listener);
3486 }
3487
3488 /**
3489 * Constructor.
3490 *
3491 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3492 * squared second (m/s^2).
3493 * @param measurements collection of body kinematics measurements with standard
3494 * deviations taken at the same position with zero velocity
3495 * and unknown different orientations.
3496 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3497 * accelerometer and gyroscope.
3498 * @param initialBias initial bias to find a solution.
3499 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3500 * if provided gravity norm value is negative.
3501 */
3502 public KnownGravityNormAccelerometerCalibrator(
3503 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3504 final boolean commonAxisUsed, final Matrix initialBias) {
3505 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias);
3506 }
3507
3508 /**
3509 * Constructor.
3510 *
3511 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3512 * squared second (m/s^2).
3513 * @param measurements collection of body kinematics measurements with standard
3514 * deviations taken at the same position with zero velocity
3515 * and unknown different orientations.
3516 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3517 * accelerometer and gyroscope.
3518 * @param initialBias initial bias to find a solution.
3519 * @param listener listener to handle events raised by this calibrator.
3520 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
3521 * if provided gravity norm value is negative.
3522 */
3523 public KnownGravityNormAccelerometerCalibrator(
3524 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3525 final boolean commonAxisUsed, final Matrix initialBias,
3526 final KnownGravityNormAccelerometerCalibratorListener listener) {
3527 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias, listener);
3528 }
3529
3530 /**
3531 * Constructor.
3532 *
3533 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3534 * squared second (m/s^2).
3535 * @param initialBias initial bias to find a solution.
3536 * @param initialMa initial scale factors and cross coupling errors matrix.
3537 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3538 * scaling and coupling error matrix is not 3x3 or
3539 * if provided gravity norm value is negative.
3540 */
3541 public KnownGravityNormAccelerometerCalibrator(
3542 final Double groundTruthGravityNorm, final Matrix initialBias, final Matrix initialMa) {
3543 super(groundTruthGravityNorm, initialBias, initialMa);
3544 }
3545
3546 /**
3547 * Constructor.
3548 *
3549 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3550 * squared second (m/s^2).
3551 * @param initialBias initial bias to find a solution.
3552 * @param initialMa initial scale factors and cross coupling errors matrix.
3553 * @param listener listener to handle events raised by this calibrator.
3554 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3555 * scaling and coupling error matrix is not 3x3 or
3556 * if provided gravity norm value is negative.
3557 */
3558 public KnownGravityNormAccelerometerCalibrator(
3559 final Double groundTruthGravityNorm, final Matrix initialBias, final Matrix initialMa,
3560 final KnownGravityNormAccelerometerCalibratorListener listener) {
3561 super(groundTruthGravityNorm, initialBias, initialMa, listener);
3562 }
3563
3564 /**
3565 * Constructor.
3566 *
3567 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3568 * squared second (m/s^2).
3569 * @param measurements collection of body kinematics measurements with standard
3570 * deviations taken at the same position with zero velocity
3571 * and unknown different orientations.
3572 * @param initialBias initial bias to find a solution.
3573 * @param initialMa initial scale factors and cross coupling errors matrix.
3574 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3575 * scaling and coupling error matrix is not 3x3 or
3576 * if provided gravity norm value is negative.
3577 */
3578 public KnownGravityNormAccelerometerCalibrator(
3579 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3580 final Matrix initialBias, final Matrix initialMa) {
3581 super(groundTruthGravityNorm, measurements, initialBias, initialMa);
3582 }
3583
3584 /**
3585 * Constructor.
3586 *
3587 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3588 * squared second (m/s^2).
3589 * @param measurements collection of body kinematics measurements with standard
3590 * deviations taken at the same position with zero velocity
3591 * and unknown different orientations.
3592 * @param initialBias initial bias to find a solution.
3593 * @param initialMa initial scale factors and cross coupling errors matrix.
3594 * @param listener listener to handle events raised by this calibrator.
3595 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3596 * scaling and coupling error matrix is not 3x3 or
3597 * if provided gravity norm value is negative.
3598 */
3599 public KnownGravityNormAccelerometerCalibrator(
3600 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3601 final Matrix initialBias, final Matrix initialMa,
3602 final KnownGravityNormAccelerometerCalibratorListener listener) {
3603 super(groundTruthGravityNorm, measurements, initialBias, initialMa, listener);
3604 }
3605
3606 /**
3607 * Constructor.
3608 *
3609 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3610 * squared second (m/s^2).
3611 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3612 * accelerometer and gyroscope.
3613 * @param initialBias initial bias to find a solution.
3614 * @param initialMa initial scale factors and cross coupling errors matrix.
3615 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3616 * scaling and coupling error matrix is not 3x3 or
3617 * if provided gravity norm value is negative.
3618 */
3619 public KnownGravityNormAccelerometerCalibrator(
3620 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
3621 final Matrix initialMa) {
3622 super(groundTruthGravityNorm, commonAxisUsed, initialBias, initialMa);
3623 }
3624
3625 /**
3626 * Constructor.
3627 *
3628 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3629 * squared second (m/s^2).
3630 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3631 * accelerometer and gyroscope.
3632 * @param initialBias initial bias to find a solution.
3633 * @param initialMa initial scale factors and cross coupling errors matrix.
3634 * @param listener listener to handle events raised by this calibrator.
3635 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3636 * scaling and coupling error matrix is not 3x3 or
3637 * if provided gravity norm value is negative.
3638 */
3639 public KnownGravityNormAccelerometerCalibrator(
3640 final Double groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
3641 final Matrix initialMa, final KnownGravityNormAccelerometerCalibratorListener listener) {
3642 super(groundTruthGravityNorm, commonAxisUsed, initialBias, initialMa, listener);
3643 }
3644
3645 /**
3646 * Constructor.
3647 *
3648 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3649 * squared second (m/s^2).
3650 * @param measurements collection of body kinematics measurements with standard
3651 * deviations taken at the same position with zero velocity
3652 * and unknown different orientations.
3653 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3654 * accelerometer and gyroscope.
3655 * @param initialBias initial bias to find a solution.
3656 * @param initialMa initial scale factors and cross coupling errors matrix.
3657 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3658 * scaling and coupling error matrix is not 3x3 or
3659 * if provided gravity norm value is negative.
3660 */
3661 public KnownGravityNormAccelerometerCalibrator(
3662 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3663 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa) {
3664 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias, initialMa);
3665 }
3666
3667 /**
3668 * Constructor.
3669 *
3670 * @param groundTruthGravityNorm ground truth gravity norm expressed in meters per
3671 * squared second (m/s^2).
3672 * @param measurements collection of body kinematics measurements with standard
3673 * deviations taken at the same position with zero velocity
3674 * and unknown different orientations.
3675 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3676 * accelerometer and gyroscope.
3677 * @param initialBias initial bias to find a solution.
3678 * @param initialMa initial scale factors and cross coupling errors matrix.
3679 * @param listener listener to handle events raised by this calibrator.
3680 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
3681 * scaling and coupling error matrix is not 3x3 or
3682 * if provided gravity norm value is negative.
3683 */
3684 public KnownGravityNormAccelerometerCalibrator(
3685 final Double groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3686 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa,
3687 final KnownGravityNormAccelerometerCalibratorListener listener) {
3688 super(groundTruthGravityNorm, measurements, commonAxisUsed, initialBias, initialMa, listener);
3689 }
3690
3691 /**
3692 * Constructor.
3693 *
3694 * @param groundTruthGravityNorm ground truth gravity norm.
3695 * @throws IllegalArgumentException if provided gravity norm value is negative.
3696 */
3697 public KnownGravityNormAccelerometerCalibrator(final Acceleration groundTruthGravityNorm) {
3698 this(convertAcceleration(groundTruthGravityNorm));
3699 }
3700
3701 /**
3702 * Constructor.
3703 *
3704 * @param groundTruthGravityNorm ground truth gravity norm.
3705 * @param listener listener to handle events raised by this calibrator.
3706 * @throws IllegalArgumentException if provided gravity norm value is negative.
3707 */
3708 public KnownGravityNormAccelerometerCalibrator(
3709 final Acceleration groundTruthGravityNorm, final KnownGravityNormAccelerometerCalibratorListener listener) {
3710 this(convertAcceleration(groundTruthGravityNorm), listener);
3711 }
3712
3713 /**
3714 * Constructor.
3715 *
3716 * @param groundTruthGravityNorm ground truth gravity norm.
3717 * @param measurements collection of body kinematics measurements with standard
3718 * deviations taken at the same position with zero velocity
3719 * and unknown different orientations.
3720 * @throws IllegalArgumentException if provided gravity norm value is negative.
3721 */
3722 public KnownGravityNormAccelerometerCalibrator(
3723 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements) {
3724 this(convertAcceleration(groundTruthGravityNorm), measurements);
3725 }
3726
3727 /**
3728 * Constructor.
3729 *
3730 * @param groundTruthGravityNorm ground truth gravity norm.
3731 * @param measurements collection of body kinematics measurements with standard
3732 * deviations taken at the same position with zero velocity
3733 * and unknown different orientations.
3734 * @param listener listener to handle events raised by this calibrator.
3735 * @throws IllegalArgumentException if provided gravity norm value is negative.
3736 */
3737 public KnownGravityNormAccelerometerCalibrator(
3738 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3739 final KnownGravityNormAccelerometerCalibratorListener listener) {
3740 this(convertAcceleration(groundTruthGravityNorm), measurements, listener);
3741 }
3742
3743 /**
3744 * Constructor.
3745 *
3746 * @param groundTruthGravityNorm ground truth gravity norm.
3747 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3748 * accelerometer and gyroscope.
3749 * @throws IllegalArgumentException if provided gravity norm value is negative.
3750 */
3751 public KnownGravityNormAccelerometerCalibrator(
3752 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed) {
3753 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed);
3754 }
3755
3756 /**
3757 * Constructor.
3758 *
3759 * @param groundTruthGravityNorm ground truth gravity norm.
3760 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3761 * accelerometer and gyroscope.
3762 * @param listener listener to handle events raised by this calibrator.
3763 * @throws IllegalArgumentException if provided gravity norm value is negative.
3764 */
3765 public KnownGravityNormAccelerometerCalibrator(
3766 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
3767 final KnownGravityNormAccelerometerCalibratorListener listener) {
3768 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, listener);
3769 }
3770
3771 /**
3772 * Constructor.
3773 *
3774 * @param groundTruthGravityNorm ground truth gravity norm.
3775 * @param measurements collection of body kinematics measurements with standard
3776 * deviations taken at the same position with zero velocity
3777 * and unknown different orientations.
3778 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3779 * accelerometer and gyroscope.
3780 * @throws IllegalArgumentException if provided gravity norm value is negative.
3781 */
3782 public KnownGravityNormAccelerometerCalibrator(
3783 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3784 final boolean commonAxisUsed) {
3785 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed);
3786 }
3787
3788 /**
3789 * Constructor.
3790 *
3791 * @param groundTruthGravityNorm ground truth gravity norm.
3792 * @param measurements collection of body kinematics measurements with standard
3793 * deviations taken at the same position with zero velocity
3794 * and unknown different orientations.
3795 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3796 * accelerometer and gyroscope.
3797 * @param listener listener to handle events raised by this calibrator.
3798 * @throws IllegalArgumentException if provided gravity norm value is negative.
3799 */
3800 public KnownGravityNormAccelerometerCalibrator(
3801 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3802 final boolean commonAxisUsed, final KnownGravityNormAccelerometerCalibratorListener listener) {
3803 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, listener);
3804 }
3805
3806 /**
3807 * Constructor.
3808 *
3809 * @param groundTruthGravityNorm ground truth gravity norm.
3810 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3811 * to find a solution. This is expressed in meters per squared
3812 * second (m/s^2).
3813 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3814 * to find a solution. This is expressed in meters per squared
3815 * second (m/s^2).
3816 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3817 * to find a solution. This is expressed in meters per squared
3818 * second (m/s^2).
3819 * @throws IllegalArgumentException if provided gravity norm value is negative.
3820 */
3821 public KnownGravityNormAccelerometerCalibrator(
3822 final Acceleration groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
3823 final double initialBiasZ) {
3824 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ);
3825 }
3826
3827 /**
3828 * Constructor.
3829 *
3830 * @param groundTruthGravityNorm ground truth gravity norm.
3831 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3832 * to find a solution. This is expressed in meters per squared
3833 * second (m/s^2).
3834 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3835 * to find a solution. This is expressed in meters per squared
3836 * second (m/s^2).
3837 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3838 * to find a solution. This is expressed in meters per squared
3839 * second (m/s^2).
3840 * @param listener listener to handle events raised by this calibrator.
3841 * @throws IllegalArgumentException if provided gravity norm value is negative.
3842 */
3843 public KnownGravityNormAccelerometerCalibrator(
3844 final Acceleration groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
3845 final double initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
3846 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ, listener);
3847 }
3848
3849 /**
3850 * Constructor.
3851 *
3852 * @param groundTruthGravityNorm ground truth gravity norm.
3853 * @param measurements collection of body kinematics measurements with standard
3854 * deviations taken at the same position with zero velocity
3855 * and unknown different orientations.
3856 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3857 * to find a solution. This is expressed in meters per squared
3858 * second (m/s^2).
3859 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3860 * to find a solution. This is expressed in meters per squared
3861 * second (m/s^2).
3862 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3863 * to find a solution. This is expressed in meters per squared
3864 * second (m/s^2).
3865 * @throws IllegalArgumentException if provided gravity norm value is negative.
3866 */
3867 public KnownGravityNormAccelerometerCalibrator(
3868 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3869 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
3870 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ);
3871 }
3872
3873 /**
3874 * Constructor.
3875 *
3876 * @param groundTruthGravityNorm ground truth gravity norm.
3877 * @param measurements collection of body kinematics measurements with standard
3878 * deviations taken at the same position with zero velocity
3879 * and unknown different orientations.
3880 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3881 * to find a solution. This is expressed in meters per squared
3882 * second (m/s^2).
3883 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3884 * to find a solution. This is expressed in meters per squared
3885 * second (m/s^2).
3886 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3887 * to find a solution. This is expressed in meters per squared
3888 * second (m/s^2).
3889 * @param listener listener to handle events raised by this calibrator.
3890 * @throws IllegalArgumentException if provided gravity norm value is negative.
3891 */
3892 public KnownGravityNormAccelerometerCalibrator(
3893 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3894 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
3895 final KnownGravityNormAccelerometerCalibratorListener listener) {
3896 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
3897 listener);
3898 }
3899
3900 /**
3901 * Constructor.
3902 *
3903 * @param groundTruthGravityNorm ground truth gravity norm.
3904 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3905 * accelerometer and gyroscope.
3906 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3907 * to find a solution. This is expressed in meters per squared
3908 * second (m/s^2).
3909 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3910 * to find a solution. This is expressed in meters per squared
3911 * second (m/s^2).
3912 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3913 * to find a solution. This is expressed in meters per squared
3914 * second (m/s^2).
3915 * @throws IllegalArgumentException if provided gravity norm value is negative.
3916 */
3917 public KnownGravityNormAccelerometerCalibrator(
3918 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
3919 final double initialBiasX, final double initialBiasY, final double initialBiasZ) {
3920 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
3921 }
3922
3923 /**
3924 * Constructor.
3925 *
3926 * @param groundTruthGravityNorm ground truth gravity norm.
3927 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3928 * accelerometer and gyroscope.
3929 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3930 * to find a solution. This is expressed in meters per squared
3931 * second (m/s^2).
3932 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3933 * to find a solution. This is expressed in meters per squared
3934 * second (m/s^2).
3935 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3936 * to find a solution. This is expressed in meters per squared
3937 * second (m/s^2).
3938 * @param listener listener to handle events raised by this calibrator.
3939 * @throws IllegalArgumentException if provided gravity norm value is negative.
3940 */
3941 public KnownGravityNormAccelerometerCalibrator(
3942 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
3943 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
3944 final KnownGravityNormAccelerometerCalibratorListener listener) {
3945 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed,
3946 initialBiasX, initialBiasY, initialBiasZ, listener);
3947 }
3948
3949 /**
3950 * Constructor.
3951 *
3952 * @param groundTruthGravityNorm ground truth gravity norm.
3953 * @param measurements collection of body kinematics measurements with standard
3954 * deviations taken at the same position with zero velocity
3955 * and unknown different orientations.
3956 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3957 * accelerometer and gyroscope.
3958 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3959 * to find a solution. This is expressed in meters per squared
3960 * second (m/s^2).
3961 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3962 * to find a solution. This is expressed in meters per squared
3963 * second (m/s^2).
3964 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3965 * to find a solution. This is expressed in meters per squared
3966 * second (m/s^2).
3967 * @throws IllegalArgumentException if provided gravity norm value is negative.
3968 */
3969 public KnownGravityNormAccelerometerCalibrator(
3970 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
3971 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
3972 final double initialBiasZ) {
3973 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
3974 initialBiasX, initialBiasY, initialBiasZ);
3975 }
3976
3977 /**
3978 * Constructor.
3979 *
3980 * @param groundTruthGravityNorm ground truth gravity norm.
3981 * @param measurements collection of body kinematics measurements with standard
3982 * deviations taken at the same position with zero velocity
3983 * and unknown different orientations.
3984 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
3985 * accelerometer and gyroscope.
3986 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
3987 * to find a solution. This is expressed in meters per squared
3988 * second (m/s^2).
3989 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
3990 * to find a solution. This is expressed in meters per squared
3991 * second (m/s^2).
3992 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
3993 * to find a solution. This is expressed in meters per squared
3994 * second (m/s^2).
3995 * @param listener listener to handle events raised by this calibrator.
3996 * @throws IllegalArgumentException if provided gravity norm value is negative.
3997 */
3998 public KnownGravityNormAccelerometerCalibrator(
3999 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4000 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
4001 final double initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
4002 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4003 initialBiasX, initialBiasY, initialBiasZ, listener);
4004 }
4005
4006 /**
4007 * Constructor.
4008 *
4009 * @param groundTruthGravityNorm ground truth gravity norm.
4010 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4011 * to find a solution.
4012 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4013 * to find a solution.
4014 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4015 * to find a solution.
4016 * @throws IllegalArgumentException if provided gravity norm value is negative.
4017 */
4018 public KnownGravityNormAccelerometerCalibrator(
4019 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX,
4020 final Acceleration initialBiasY, final Acceleration initialBiasZ) {
4021 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ);
4022 }
4023
4024 /**
4025 * Constructor.
4026 *
4027 * @param groundTruthGravityNorm ground truth gravity norm.
4028 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4029 * to find a solution.
4030 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4031 * to find a solution.
4032 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4033 * to find a solution.
4034 * @param listener listener to handle events raised by this calibrator.
4035 * @throws IllegalArgumentException if provided gravity norm value is negative.
4036 */
4037 public KnownGravityNormAccelerometerCalibrator(
4038 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX,
4039 final Acceleration initialBiasY, final Acceleration initialBiasZ,
4040 final KnownGravityNormAccelerometerCalibratorListener listener) {
4041 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ, listener);
4042 }
4043
4044 /**
4045 * Constructor.
4046 *
4047 * @param groundTruthGravityNorm ground truth gravity norm.
4048 * @param measurements collection of body kinematics measurements with standard
4049 * deviations taken at the same position with zero velocity
4050 * and unknown different orientations.
4051 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4052 * to find a solution.
4053 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4054 * to find a solution.
4055 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4056 * to find a solution.
4057 * @throws IllegalArgumentException if provided gravity norm value is negative.
4058 */
4059 public KnownGravityNormAccelerometerCalibrator(
4060 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4061 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ) {
4062 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ);
4063 }
4064
4065 /**
4066 * Constructor.
4067 *
4068 * @param groundTruthGravityNorm ground truth gravity norm.
4069 * @param measurements collection of body kinematics measurements with standard
4070 * deviations taken at the same position with zero velocity
4071 * and unknown different orientations.
4072 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4073 * to find a solution.
4074 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4075 * to find a solution.
4076 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4077 * to find a solution.
4078 * @param listener listener to handle events raised by this calibrator.
4079 * @throws IllegalArgumentException if provided gravity norm value is negative.
4080 */
4081 public KnownGravityNormAccelerometerCalibrator(
4082 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4083 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
4084 final KnownGravityNormAccelerometerCalibratorListener listener) {
4085 this(convertAcceleration(groundTruthGravityNorm), measurements,
4086 initialBiasX, initialBiasY, initialBiasZ, listener);
4087 }
4088
4089 /**
4090 * Constructor.
4091 *
4092 * @param groundTruthGravityNorm ground truth gravity norm.
4093 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4094 * accelerometer and gyroscope.
4095 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4096 * to find a solution.
4097 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4098 * to find a solution.
4099 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4100 * to find a solution.
4101 * @throws IllegalArgumentException if provided gravity norm value is negative.
4102 */
4103 public KnownGravityNormAccelerometerCalibrator(
4104 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
4105 final Acceleration initialBiasY, final Acceleration initialBiasZ) {
4106 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ);
4107 }
4108
4109 /**
4110 * Constructor.
4111 *
4112 * @param groundTruthGravityNorm ground truth gravity norm.
4113 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4114 * accelerometer and gyroscope.
4115 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4116 * to find a solution.
4117 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4118 * to find a solution.
4119 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4120 * to find a solution.
4121 * @param listener listener to handle events raised by this calibrator.
4122 * @throws IllegalArgumentException if provided gravity norm value is negative.
4123 */
4124 public KnownGravityNormAccelerometerCalibrator(
4125 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
4126 final Acceleration initialBiasY, final Acceleration initialBiasZ,
4127 final KnownGravityNormAccelerometerCalibratorListener listener) {
4128 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed,
4129 initialBiasX, initialBiasY, initialBiasZ, listener);
4130 }
4131
4132 /**
4133 * Constructor.
4134 *
4135 * @param groundTruthGravityNorm ground truth gravity norm.
4136 * @param measurements collection of body kinematics measurements with standard
4137 * deviations taken at the same position with zero velocity
4138 * and unknown different orientations.
4139 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4140 * accelerometer and gyroscope.
4141 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4142 * to find a solution.
4143 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4144 * to find a solution.
4145 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4146 * to find a solution.
4147 * @throws IllegalArgumentException if provided gravity norm value is negative.
4148 */
4149 public KnownGravityNormAccelerometerCalibrator(
4150 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4151 final boolean commonAxisUsed, final Acceleration initialBiasX,
4152 final Acceleration initialBiasY, final Acceleration initialBiasZ) {
4153 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4154 initialBiasX, initialBiasY, initialBiasZ);
4155 }
4156
4157 /**
4158 * Constructor.
4159 *
4160 * @param groundTruthGravityNorm ground truth gravity norm.
4161 * @param measurements collection of body kinematics measurements with standard
4162 * deviations taken at the same position with zero velocity
4163 * and unknown different orientations.
4164 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4165 * accelerometer and gyroscope.
4166 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4167 * to find a solution.
4168 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4169 * to find a solution.
4170 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4171 * to find a solution.
4172 * @param listener listener to handle events raised by this calibrator.
4173 * @throws IllegalArgumentException if provided gravity norm value is negative.
4174 */
4175 public KnownGravityNormAccelerometerCalibrator(
4176 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4177 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
4178 final Acceleration initialBiasZ, final KnownGravityNormAccelerometerCalibratorListener listener) {
4179 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4180 initialBiasX, initialBiasY, initialBiasZ, listener);
4181 }
4182
4183 /**
4184 * Constructor.
4185 *
4186 * @param groundTruthGravityNorm ground truth gravity norm.
4187 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4188 * to find a solution. This is expressed in meters per squared
4189 * second (m/s^2).
4190 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4191 * to find a solution. This is expressed in meters per squared
4192 * second (m/s^2).
4193 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4194 * to find a solution. This is expressed in meters per squared
4195 * second (m/s^2).
4196 * @param initialSx initial x scaling factor.
4197 * @param initialSy initial y scaling factor.
4198 * @param initialSz initial z scaling factor.
4199 * @throws IllegalArgumentException if provided gravity norm value is negative.
4200 */
4201 public KnownGravityNormAccelerometerCalibrator(
4202 final Acceleration groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
4203 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
4204 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4205 initialSx, initialSy, initialSz);
4206 }
4207
4208 /**
4209 * Constructor.
4210 *
4211 * @param groundTruthGravityNorm ground truth gravity norm.
4212 * @param measurements collection of body kinematics measurements with standard
4213 * deviations taken at the same position with zero velocity
4214 * and unknown different orientations.
4215 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4216 * to find a solution. This is expressed in meters per squared
4217 * second (m/s^2).
4218 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4219 * to find a solution. This is expressed in meters per squared
4220 * second (m/s^2).
4221 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4222 * to find a solution. This is expressed in meters per squared
4223 * second (m/s^2).
4224 * @param initialSx initial x scaling factor.
4225 * @param initialSy initial y scaling factor.
4226 * @param initialSz initial z scaling factor.
4227 * @throws IllegalArgumentException if provided gravity norm value is negative.
4228 */
4229 public KnownGravityNormAccelerometerCalibrator(
4230 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4231 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4232 final double initialSx, final double initialSy, final double initialSz) {
4233 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4234 initialSx, initialSy, initialSz);
4235 }
4236
4237 /**
4238 * Constructor.
4239 *
4240 * @param groundTruthGravityNorm ground truth gravity norm.
4241 * @param measurements collection of body kinematics measurements with standard
4242 * deviations taken at the same position with zero velocity
4243 * and unknown different orientations.
4244 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4245 * to find a solution. This is expressed in meters per squared
4246 * second (m/s^2).
4247 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4248 * to find a solution. This is expressed in meters per squared
4249 * second (m/s^2).
4250 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4251 * to find a solution. This is expressed in meters per squared
4252 * second (m/s^2).
4253 * @param initialSx initial x scaling factor.
4254 * @param initialSy initial y scaling factor.
4255 * @param initialSz initial z scaling factor.
4256 * @param listener listener to handle events raised by this calibrator.
4257 * @throws IllegalArgumentException if provided gravity norm value is negative.
4258 */
4259 public KnownGravityNormAccelerometerCalibrator(
4260 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4261 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4262 final double initialSx, final double initialSy, final double initialSz,
4263 final KnownGravityNormAccelerometerCalibratorListener listener) {
4264 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4265 initialSx, initialSy, initialSz, listener);
4266 }
4267
4268 /**
4269 * Constructor.
4270 *
4271 * @param groundTruthGravityNorm ground truth gravity norm.
4272 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4273 * accelerometer and gyroscope.
4274 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4275 * to find a solution. This is expressed in meters per squared
4276 * second (m/s^2).
4277 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4278 * to find a solution. This is expressed in meters per squared
4279 * second (m/s^2).
4280 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4281 * to find a solution. This is expressed in meters per squared
4282 * second (m/s^2).
4283 * @param initialSx initial x scaling factor.
4284 * @param initialSy initial y scaling factor.
4285 * @param initialSz initial z scaling factor.
4286 * @throws IllegalArgumentException if provided gravity norm value is negative.
4287 */
4288 public KnownGravityNormAccelerometerCalibrator(
4289 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
4290 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4291 final double initialSx, final double initialSy, final double initialSz) {
4292 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
4293 initialSx, initialSy, initialSz);
4294 }
4295
4296 /**
4297 * Constructor.
4298 *
4299 * @param groundTruthGravityNorm ground truth gravity norm.
4300 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4301 * accelerometer and gyroscope.
4302 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4303 * to find a solution. This is expressed in meters per squared
4304 * second (m/s^2).
4305 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4306 * to find a solution. This is expressed in meters per squared
4307 * second (m/s^2).
4308 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4309 * to find a solution. This is expressed in meters per squared
4310 * second (m/s^2).
4311 * @param initialSx initial x scaling factor.
4312 * @param initialSy initial y scaling factor.
4313 * @param initialSz initial z scaling factor.
4314 * @param listener listener to handle events raised by this calibrator.
4315 * @throws IllegalArgumentException if provided gravity norm value is negative.
4316 */
4317 public KnownGravityNormAccelerometerCalibrator(
4318 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
4319 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4320 final double initialSx, final double initialSy, final double initialSz,
4321 final KnownGravityNormAccelerometerCalibratorListener listener) {
4322 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
4323 initialSx, initialSy, initialSz, listener);
4324 }
4325
4326 /**
4327 * Constructor.
4328 *
4329 * @param groundTruthGravityNorm ground truth gravity norm.
4330 * @param measurements collection of body kinematics measurements with standard
4331 * deviations taken at the same position with zero velocity
4332 * and unknown different orientations.
4333 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4334 * accelerometer and gyroscope.
4335 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4336 * to find a solution. This is expressed in meters per squared
4337 * second (m/s^2).
4338 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4339 * to find a solution. This is expressed in meters per squared
4340 * second (m/s^2).
4341 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4342 * to find a solution. This is expressed in meters per squared
4343 * second (m/s^2).
4344 * @param initialSx initial x scaling factor.
4345 * @param initialSy initial y scaling factor.
4346 * @param initialSz initial z scaling factor.
4347 * @throws IllegalArgumentException if provided gravity norm value is negative.
4348 */
4349 public KnownGravityNormAccelerometerCalibrator(
4350 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4351 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
4352 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
4353 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4354 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
4355 }
4356
4357 /**
4358 * Constructor.
4359 *
4360 * @param groundTruthGravityNorm ground truth gravity norm.
4361 * @param measurements collection of body kinematics measurements with standard
4362 * deviations taken at the same position with zero velocity
4363 * and unknown different orientations.
4364 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4365 * accelerometer and gyroscope.
4366 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4367 * to find a solution. This is expressed in meters per squared
4368 * second (m/s^2).
4369 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4370 * to find a solution. This is expressed in meters per squared
4371 * second (m/s^2).
4372 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4373 * to find a solution. This is expressed in meters per squared
4374 * second (m/s^2).
4375 * @param initialSx initial x scaling factor.
4376 * @param initialSy initial y scaling factor.
4377 * @param initialSz initial z scaling factor.
4378 * @param listener listener to handle events raised by this calibrator.
4379 * @throws IllegalArgumentException if provided gravity norm value is negative.
4380 */
4381 public KnownGravityNormAccelerometerCalibrator(
4382 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4383 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
4384 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4385 final KnownGravityNormAccelerometerCalibratorListener listener) {
4386 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4387 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
4388 }
4389
4390 /**
4391 * Constructor.
4392 *
4393 * @param groundTruthGravityNorm ground truth gravity norm.
4394 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4395 * to find a solution.
4396 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4397 * to find a solution.
4398 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4399 * to find a solution.
4400 * @param initialSx initial x scaling factor.
4401 * @param initialSy initial y scaling factor.
4402 * @param initialSz initial z scaling factor.
4403 * @throws IllegalArgumentException if provided gravity norm value is negative.
4404 */
4405 public KnownGravityNormAccelerometerCalibrator(
4406 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX,
4407 final Acceleration initialBiasY, final Acceleration initialBiasZ, final double initialSx,
4408 final double initialSy, final double initialSz) {
4409 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4410 initialSx, initialSy, initialSz);
4411 }
4412
4413 /**
4414 * Constructor.
4415 *
4416 * @param groundTruthGravityNorm ground truth gravity norm.
4417 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4418 * to find a solution.
4419 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4420 * to find a solution.
4421 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4422 * to find a solution.
4423 * @param initialSx initial x scaling factor.
4424 * @param initialSy initial y scaling factor.
4425 * @param initialSz initial z scaling factor.
4426 * @param listener listener to handle events raised by this calibrator.
4427 * @throws IllegalArgumentException if provided gravity norm value is negative.
4428 */
4429 public KnownGravityNormAccelerometerCalibrator(
4430 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
4431 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4432 final KnownGravityNormAccelerometerCalibratorListener listener) {
4433 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4434 initialSx, initialSy, initialSz, listener);
4435 }
4436
4437 /**
4438 * Constructor.
4439 *
4440 * @param groundTruthGravityNorm ground truth gravity norm.
4441 * @param measurements collection of body kinematics measurements with standard
4442 * deviations taken at the same position with zero velocity
4443 * and unknown different orientations.
4444 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4445 * to find a solution.
4446 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4447 * to find a solution.
4448 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4449 * to find a solution.
4450 * @param initialSx initial x scaling factor.
4451 * @param initialSy initial y scaling factor.
4452 * @param initialSz initial z scaling factor.
4453 * @throws IllegalArgumentException if provided gravity norm value is negative.
4454 */
4455 public KnownGravityNormAccelerometerCalibrator(
4456 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4457 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
4458 final double initialSx, final double initialSy, final double initialSz) {
4459 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4460 initialSx, initialSy, initialSz);
4461 }
4462
4463 /**
4464 * Constructor.
4465 *
4466 * @param groundTruthGravityNorm ground truth gravity norm.
4467 * @param measurements collection of body kinematics measurements with standard
4468 * deviations taken at the same position with zero velocity
4469 * and unknown different orientations.
4470 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4471 * to find a solution.
4472 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4473 * to find a solution.
4474 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4475 * to find a solution.
4476 * @param initialSx initial x scaling factor.
4477 * @param initialSy initial y scaling factor.
4478 * @param initialSz initial z scaling factor.
4479 * @param listener listener to handle events raised by this calibrator.
4480 * @throws IllegalArgumentException if provided gravity norm value is negative.
4481 */
4482 public KnownGravityNormAccelerometerCalibrator(
4483 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4484 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
4485 final double initialSx, final double initialSy, final double initialSz,
4486 final KnownGravityNormAccelerometerCalibratorListener listener) {
4487 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4488 initialSx, initialSy, initialSz, listener);
4489 }
4490
4491 /**
4492 * Constructor.
4493 *
4494 * @param groundTruthGravityNorm ground truth gravity norm.
4495 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4496 * accelerometer and gyroscope.
4497 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4498 * to find a solution.
4499 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4500 * to find a solution.
4501 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4502 * to find a solution.
4503 * @param initialSx initial x scaling factor.
4504 * @param initialSy initial y scaling factor.
4505 * @param initialSz initial z scaling factor.
4506 * @throws IllegalArgumentException if provided gravity norm value is negative.
4507 */
4508 public KnownGravityNormAccelerometerCalibrator(
4509 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
4510 final Acceleration initialBiasY, final Acceleration initialBiasZ,
4511 final double initialSx, final double initialSy, final double initialSz) {
4512 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
4513 initialSx, initialSy, initialSz);
4514 }
4515
4516 /**
4517 * Constructor.
4518 *
4519 * @param groundTruthGravityNorm ground truth gravity norm.
4520 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4521 * accelerometer and gyroscope.
4522 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4523 * to find a solution.
4524 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4525 * to find a solution.
4526 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4527 * to find a solution.
4528 * @param initialSx initial x scaling factor.
4529 * @param initialSy initial y scaling factor.
4530 * @param initialSz initial z scaling factor.
4531 * @param listener listener to handle events raised by this calibrator.
4532 * @throws IllegalArgumentException if provided gravity norm value is negative.
4533 */
4534 public KnownGravityNormAccelerometerCalibrator(
4535 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
4536 final Acceleration initialBiasY, final Acceleration initialBiasZ,
4537 final double initialSx, final double initialSy, final double initialSz,
4538 final KnownGravityNormAccelerometerCalibratorListener listener) {
4539 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed,
4540 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
4541 }
4542
4543 /**
4544 * Constructor.
4545 *
4546 * @param groundTruthGravityNorm ground truth gravity norm.
4547 * @param measurements collection of body kinematics measurements with standard
4548 * deviations taken at the same position with zero velocity
4549 * and unknown different orientations.
4550 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4551 * accelerometer and gyroscope.
4552 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4553 * to find a solution.
4554 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4555 * to find a solution.
4556 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4557 * to find a solution.
4558 * @param initialSx initial x scaling factor.
4559 * @param initialSy initial y scaling factor.
4560 * @param initialSz initial z scaling factor.
4561 * @throws IllegalArgumentException if provided gravity norm value is negative.
4562 */
4563 public KnownGravityNormAccelerometerCalibrator(
4564 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4565 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
4566 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz) {
4567 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4568 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz);
4569 }
4570
4571 /**
4572 * Constructor.
4573 *
4574 * @param groundTruthGravityNorm ground truth gravity norm.
4575 * @param measurements collection of body kinematics measurements with standard
4576 * deviations taken at the same position with zero velocity
4577 * and unknown different orientations.
4578 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4579 * accelerometer and gyroscope.
4580 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4581 * to find a solution.
4582 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4583 * to find a solution.
4584 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4585 * to find a solution.
4586 * @param initialSx initial x scaling factor.
4587 * @param initialSy initial y scaling factor.
4588 * @param initialSz initial z scaling factor.
4589 * @param listener listener to handle events raised by this calibrator.
4590 * @throws IllegalArgumentException if provided gravity norm value is negative.
4591 */
4592 public KnownGravityNormAccelerometerCalibrator(
4593 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4594 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
4595 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4596 final KnownGravityNormAccelerometerCalibratorListener listener) {
4597 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4598 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz, listener);
4599 }
4600
4601 /**
4602 * Constructor.
4603 *
4604 * @param groundTruthGravityNorm ground truth gravity norm.
4605 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4606 * to find a solution. This is expressed in meters per squared
4607 * second (m/s^2).
4608 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4609 * to find a solution. This is expressed in meters per squared
4610 * second (m/s^2).
4611 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4612 * to find a solution. This is expressed in meters per squared
4613 * second (m/s^2).
4614 * @param initialSx initial x scaling factor.
4615 * @param initialSy initial y scaling factor.
4616 * @param initialSz initial z scaling factor.
4617 * @param initialMxy initial x-y cross coupling error.
4618 * @param initialMxz initial x-z cross coupling error.
4619 * @param initialMyx initial y-x cross coupling error.
4620 * @param initialMyz initial y-z cross coupling error.
4621 * @param initialMzx initial z-x cross coupling error.
4622 * @param initialMzy initial z-y cross coupling error.
4623 * @throws IllegalArgumentException if provided gravity norm value is negative.
4624 */
4625 public KnownGravityNormAccelerometerCalibrator(
4626 final Acceleration groundTruthGravityNorm, final double initialBiasX, final double initialBiasY,
4627 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4628 final double initialMxy, final double initialMxz, final double initialMyx,
4629 final double initialMyz, final double initialMzx, final double initialMzy) {
4630 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4631 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4632 initialMyz, initialMzx, initialMzy);
4633 }
4634
4635 /**
4636 * Constructor.
4637 *
4638 * @param groundTruthGravityNorm ground truth gravity norm.
4639 * @param measurements collection of body kinematics measurements with standard
4640 * deviations taken at the same position with zero velocity
4641 * and unknown different orientations.
4642 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4643 * to find a solution. This is expressed in meters per squared
4644 * second (m/s^2).
4645 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4646 * to find a solution. This is expressed in meters per squared
4647 * second (m/s^2).
4648 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4649 * to find a solution. This is expressed in meters per squared
4650 * second (m/s^2).
4651 * @param initialSx initial x scaling factor.
4652 * @param initialSy initial y scaling factor.
4653 * @param initialSz initial z scaling factor.
4654 * @param initialMxy initial x-y cross coupling error.
4655 * @param initialMxz initial x-z cross coupling error.
4656 * @param initialMyx initial y-x cross coupling error.
4657 * @param initialMyz initial y-z cross coupling error.
4658 * @param initialMzx initial z-x cross coupling error.
4659 * @param initialMzy initial z-y cross coupling error.
4660 * @throws IllegalArgumentException if provided gravity norm value is negative.
4661 */
4662 public KnownGravityNormAccelerometerCalibrator(
4663 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4664 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4665 final double initialSx, final double initialSy, final double initialSz,
4666 final double initialMxy, final double initialMxz, final double initialMyx,
4667 final double initialMyz, final double initialMzx, final double initialMzy) {
4668 this(convertAcceleration(groundTruthGravityNorm), measurements,
4669 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
4670 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
4671 }
4672
4673 /**
4674 * Constructor.
4675 *
4676 * @param groundTruthGravityNorm ground truth gravity norm.
4677 * @param measurements collection of body kinematics measurements with standard
4678 * deviations taken at the same position with zero velocity
4679 * and unknown different orientations.
4680 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4681 * to find a solution. This is expressed in meters per squared
4682 * second (m/s^2).
4683 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4684 * to find a solution. This is expressed in meters per squared
4685 * second (m/s^2).
4686 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4687 * to find a solution. This is expressed in meters per squared
4688 * second (m/s^2).
4689 * @param initialSx initial x scaling factor.
4690 * @param initialSy initial y scaling factor.
4691 * @param initialSz initial z scaling factor.
4692 * @param initialMxy initial x-y cross coupling error.
4693 * @param initialMxz initial x-z cross coupling error.
4694 * @param initialMyx initial y-x cross coupling error.
4695 * @param initialMyz initial y-z cross coupling error.
4696 * @param initialMzx initial z-x cross coupling error.
4697 * @param initialMzy initial z-y cross coupling error.
4698 * @param listener listener to handle events raised by this calibrator.
4699 * @throws IllegalArgumentException if provided gravity norm value is negative.
4700 */
4701 public KnownGravityNormAccelerometerCalibrator(
4702 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4703 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4704 final double initialSx, final double initialSy, final double initialSz,
4705 final double initialMxy, final double initialMxz, final double initialMyx,
4706 final double initialMyz, final double initialMzx, final double initialMzy,
4707 final KnownGravityNormAccelerometerCalibratorListener listener) {
4708 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4709 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4710 initialMyz, initialMzx, initialMzy, listener);
4711 }
4712
4713 /**
4714 * Constructor.
4715 *
4716 * @param groundTruthGravityNorm ground truth gravity norm.
4717 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4718 * accelerometer and gyroscope.
4719 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4720 * to find a solution. This is expressed in meters per squared
4721 * second (m/s^2).
4722 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4723 * to find a solution. This is expressed in meters per squared
4724 * second (m/s^2).
4725 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4726 * to find a solution. This is expressed in meters per squared
4727 * second (m/s^2).
4728 * @param initialSx initial x scaling factor.
4729 * @param initialSy initial y scaling factor.
4730 * @param initialSz initial z scaling factor.
4731 * @param initialMxy initial x-y cross coupling error.
4732 * @param initialMxz initial x-z cross coupling error.
4733 * @param initialMyx initial y-x cross coupling error.
4734 * @param initialMyz initial y-z cross coupling error.
4735 * @param initialMzx initial z-x cross coupling error.
4736 * @param initialMzy initial z-y cross coupling error.
4737 * @throws IllegalArgumentException if provided gravity norm value is negative.
4738 */
4739 public KnownGravityNormAccelerometerCalibrator(
4740 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
4741 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4742 final double initialSx, final double initialSy, final double initialSz,
4743 final double initialMxy, final double initialMxz, final double initialMyx,
4744 final double initialMyz, final double initialMzx, final double initialMzy) {
4745 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
4746 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4747 initialMyz, initialMzx, initialMzy);
4748 }
4749
4750 /**
4751 * Constructor.
4752 *
4753 * @param groundTruthGravityNorm ground truth gravity norm.
4754 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4755 * accelerometer and gyroscope.
4756 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4757 * to find a solution. This is expressed in meters per squared
4758 * second (m/s^2).
4759 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4760 * to find a solution. This is expressed in meters per squared
4761 * second (m/s^2).
4762 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4763 * to find a solution. This is expressed in meters per squared
4764 * second (m/s^2).
4765 * @param initialSx initial x scaling factor.
4766 * @param initialSy initial y scaling factor.
4767 * @param initialSz initial z scaling factor.
4768 * @param initialMxy initial x-y cross coupling error.
4769 * @param initialMxz initial x-z cross coupling error.
4770 * @param initialMyx initial y-x cross coupling error.
4771 * @param initialMyz initial y-z cross coupling error.
4772 * @param initialMzx initial z-x cross coupling error.
4773 * @param initialMzy initial z-y cross coupling error.
4774 * @param listener listener to handle events raised by this calibrator.
4775 * @throws IllegalArgumentException if provided gravity norm value is negative.
4776 */
4777 public KnownGravityNormAccelerometerCalibrator(
4778 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed,
4779 final double initialBiasX, final double initialBiasY, final double initialBiasZ,
4780 final double initialSx, final double initialSy, final double initialSz,
4781 final double initialMxy, final double initialMxz, final double initialMyx,
4782 final double initialMyz, final double initialMzx, final double initialMzy,
4783 final KnownGravityNormAccelerometerCalibratorListener listener) {
4784 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
4785 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4786 initialMyz, initialMzx, initialMzy, listener);
4787 }
4788
4789 /**
4790 * Constructor.
4791 *
4792 * @param groundTruthGravityNorm ground truth gravity norm.
4793 * @param measurements collection of body kinematics measurements with standard
4794 * deviations taken at the same position with zero velocity
4795 * and unknown different orientations.
4796 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4797 * accelerometer and gyroscope.
4798 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4799 * to find a solution. This is expressed in meters per squared
4800 * second (m/s^2).
4801 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4802 * to find a solution. This is expressed in meters per squared
4803 * second (m/s^2).
4804 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4805 * to find a solution. This is expressed in meters per squared
4806 * second (m/s^2).
4807 * @param initialSx initial x scaling factor.
4808 * @param initialSy initial y scaling factor.
4809 * @param initialSz initial z scaling factor.
4810 * @param initialMxy initial x-y cross coupling error.
4811 * @param initialMxz initial x-z cross coupling error.
4812 * @param initialMyx initial y-x cross coupling error.
4813 * @param initialMyz initial y-z cross coupling error.
4814 * @param initialMzx initial z-x cross coupling error.
4815 * @param initialMzy initial z-y cross coupling error.
4816 * @throws IllegalArgumentException if provided gravity norm value is negative.
4817 */
4818 public KnownGravityNormAccelerometerCalibrator(
4819 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4820 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
4821 final double initialBiasZ, final double initialSx, final double initialSy,
4822 final double initialSz, final double initialMxy, final double initialMxz,
4823 final double initialMyx, final double initialMyz, final double initialMzx, final double initialMzy) {
4824 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4825 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
4826 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
4827 }
4828
4829 /**
4830 * Constructor.
4831 *
4832 * @param groundTruthGravityNorm ground truth gravity norm.
4833 * @param measurements collection of body kinematics measurements with standard
4834 * deviations taken at the same position with zero velocity
4835 * and unknown different orientations.
4836 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
4837 * accelerometer and gyroscope.
4838 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4839 * to find a solution. This is expressed in meters per squared
4840 * second (m/s^2).
4841 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4842 * to find a solution. This is expressed in meters per squared
4843 * second (m/s^2).
4844 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4845 * to find a solution. This is expressed in meters per squared
4846 * second (m/s^2).
4847 * @param initialSx initial x scaling factor.
4848 * @param initialSy initial y scaling factor.
4849 * @param initialSz initial z scaling factor.
4850 * @param initialMxy initial x-y cross coupling error.
4851 * @param initialMxz initial x-z cross coupling error.
4852 * @param initialMyx initial y-x cross coupling error.
4853 * @param initialMyz initial y-z cross coupling error.
4854 * @param initialMzx initial z-x cross coupling error.
4855 * @param initialMzy initial z-y cross coupling error.
4856 * @param listener listener to handle events raised by this calibrator.
4857 * @throws IllegalArgumentException if provided gravity norm value is negative.
4858 */
4859 public KnownGravityNormAccelerometerCalibrator(
4860 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4861 final boolean commonAxisUsed, final double initialBiasX, final double initialBiasY,
4862 final double initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4863 final double initialMxy, final double initialMxz, final double initialMyx,
4864 final double initialMyz, final double initialMzx, final double initialMzy,
4865 final KnownGravityNormAccelerometerCalibratorListener listener) {
4866 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
4867 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
4868 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
4869 }
4870
4871 /**
4872 * Constructor.
4873 *
4874 * @param groundTruthGravityNorm ground truth gravity norm.
4875 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4876 * to find a solution.
4877 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4878 * to find a solution.
4879 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4880 * to find a solution.
4881 * @param initialSx initial x scaling factor.
4882 * @param initialSy initial y scaling factor.
4883 * @param initialSz initial z scaling factor.
4884 * @param initialMxy initial x-y cross coupling error.
4885 * @param initialMxz initial x-z cross coupling error.
4886 * @param initialMyx initial y-x cross coupling error.
4887 * @param initialMyz initial y-z cross coupling error.
4888 * @param initialMzx initial z-x cross coupling error.
4889 * @param initialMzy initial z-y cross coupling error.
4890 * @throws IllegalArgumentException if provided gravity norm value is negative.
4891 */
4892 public KnownGravityNormAccelerometerCalibrator(
4893 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
4894 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4895 final double initialMxy, final double initialMxz, final double initialMyx,
4896 final double initialMyz, final double initialMzx, final double initialMzy) {
4897 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4898 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4899 initialMyz, initialMzx, initialMzy);
4900 }
4901
4902 /**
4903 * Constructor.
4904 *
4905 * @param groundTruthGravityNorm ground truth gravity norm.
4906 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4907 * to find a solution.
4908 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4909 * to find a solution.
4910 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4911 * to find a solution.
4912 * @param initialSx initial x scaling factor.
4913 * @param initialSy initial y scaling factor.
4914 * @param initialSz initial z scaling factor.
4915 * @param initialMxy initial x-y cross coupling error.
4916 * @param initialMxz initial x-z cross coupling error.
4917 * @param initialMyx initial y-x cross coupling error.
4918 * @param initialMyz initial y-z cross coupling error.
4919 * @param initialMzx initial z-x cross coupling error.
4920 * @param initialMzy initial z-y cross coupling error.
4921 * @param listener listener to handle events raised by this calibrator.
4922 * @throws IllegalArgumentException if provided gravity norm value is negative.
4923 */
4924 public KnownGravityNormAccelerometerCalibrator(
4925 final Acceleration groundTruthGravityNorm, final Acceleration initialBiasX, final Acceleration initialBiasY,
4926 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4927 final double initialMxy, final double initialMxz, final double initialMyx,
4928 final double initialMyz, final double initialMzx, final double initialMzy,
4929 final KnownGravityNormAccelerometerCalibratorListener listener) {
4930 this(convertAcceleration(groundTruthGravityNorm), initialBiasX, initialBiasY, initialBiasZ,
4931 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4932 initialMyz, initialMzx, initialMzy, listener);
4933 }
4934
4935 /**
4936 * Constructor.
4937 *
4938 * @param groundTruthGravityNorm ground truth gravity norm.
4939 * @param measurements collection of body kinematics measurements with standard
4940 * deviations taken at the same position with zero velocity
4941 * and unknown different orientations.
4942 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4943 * to find a solution.
4944 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4945 * to find a solution.
4946 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4947 * to find a solution.
4948 * @param initialSx initial x scaling factor.
4949 * @param initialSy initial y scaling factor.
4950 * @param initialSz initial z scaling factor.
4951 * @param initialMxy initial x-y cross coupling error.
4952 * @param initialMxz initial x-z cross coupling error.
4953 * @param initialMyx initial y-x cross coupling error.
4954 * @param initialMyz initial y-z cross coupling error.
4955 * @param initialMzx initial z-x cross coupling error.
4956 * @param initialMzy initial z-y cross coupling error.
4957 * @throws IllegalArgumentException if provided gravity norm value is negative.
4958 */
4959 public KnownGravityNormAccelerometerCalibrator(
4960 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4961 final Acceleration initialBiasX, final Acceleration initialBiasY,
4962 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
4963 final double initialMxy, final double initialMxz, final double initialMyx,
4964 final double initialMyz, final double initialMzx, final double initialMzy) {
4965 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBiasX, initialBiasY, initialBiasZ,
4966 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
4967 initialMyz, initialMzx, initialMzy);
4968 }
4969
4970 /**
4971 * Constructor.
4972 *
4973 * @param groundTruthGravityNorm ground truth gravity norm.
4974 * @param measurements collection of body kinematics measurements with standard
4975 * deviations taken at the same position with zero velocity
4976 * and unknown different orientations.
4977 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
4978 * to find a solution.
4979 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
4980 * to find a solution.
4981 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
4982 * to find a solution.
4983 * @param initialSx initial x scaling factor.
4984 * @param initialSy initial y scaling factor.
4985 * @param initialSz initial z scaling factor.
4986 * @param initialMxy initial x-y cross coupling error.
4987 * @param initialMxz initial x-z cross coupling error.
4988 * @param initialMyx initial y-x cross coupling error.
4989 * @param initialMyz initial y-z cross coupling error.
4990 * @param initialMzx initial z-x cross coupling error.
4991 * @param initialMzy initial z-y cross coupling error.
4992 * @param listener listener to handle events raised by this calibrator.
4993 * @throws IllegalArgumentException if provided gravity norm value is negative.
4994 */
4995 public KnownGravityNormAccelerometerCalibrator(
4996 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
4997 final Acceleration initialBiasX, final Acceleration initialBiasY, final Acceleration initialBiasZ,
4998 final double initialSx, final double initialSy, final double initialSz,
4999 final double initialMxy, final double initialMxz, final double initialMyx,
5000 final double initialMyz, final double initialMzx, final double initialMzy,
5001 final KnownGravityNormAccelerometerCalibratorListener listener) {
5002 this(convertAcceleration(groundTruthGravityNorm), measurements,
5003 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
5004 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
5005 }
5006
5007 /**
5008 * Constructor.
5009 *
5010 * @param groundTruthGravityNorm ground truth gravity norm.
5011 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5012 * accelerometer and gyroscope.
5013 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
5014 * to find a solution.
5015 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
5016 * to find a solution.
5017 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
5018 * to find a solution.
5019 * @param initialSx initial x scaling factor.
5020 * @param initialSy initial y scaling factor.
5021 * @param initialSz initial z scaling factor.
5022 * @param initialMxy initial x-y cross coupling error.
5023 * @param initialMxz initial x-z cross coupling error.
5024 * @param initialMyx initial y-x cross coupling error.
5025 * @param initialMyz initial y-z cross coupling error.
5026 * @param initialMzx initial z-x cross coupling error.
5027 * @param initialMzy initial z-y cross coupling error.
5028 * @throws IllegalArgumentException if provided gravity norm value is negative.
5029 */
5030 public KnownGravityNormAccelerometerCalibrator(
5031 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
5032 final Acceleration initialBiasY, final Acceleration initialBiasZ,
5033 final double initialSx, final double initialSy, final double initialSz,
5034 final double initialMxy, final double initialMxz, final double initialMyx,
5035 final double initialMyz, final double initialMzx, final double initialMzy) {
5036 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
5037 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
5038 initialMyz, initialMzx, initialMzy);
5039 }
5040
5041 /**
5042 * Constructor.
5043 *
5044 * @param groundTruthGravityNorm ground truth gravity norm.
5045 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5046 * accelerometer and gyroscope.
5047 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
5048 * to find a solution.
5049 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
5050 * to find a solution.
5051 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
5052 * to find a solution.
5053 * @param initialSx initial x scaling factor.
5054 * @param initialSy initial y scaling factor.
5055 * @param initialSz initial z scaling factor.
5056 * @param initialMxy initial x-y cross coupling error.
5057 * @param initialMxz initial x-z cross coupling error.
5058 * @param initialMyx initial y-x cross coupling error.
5059 * @param initialMyz initial y-z cross coupling error.
5060 * @param initialMzx initial z-x cross coupling error.
5061 * @param initialMzy initial z-y cross coupling error.
5062 * @param listener listener to handle events raised by this calibrator.
5063 * @throws IllegalArgumentException if provided gravity norm value is negative.
5064 */
5065 public KnownGravityNormAccelerometerCalibrator(
5066 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Acceleration initialBiasX,
5067 final Acceleration initialBiasY, final Acceleration initialBiasZ,
5068 final double initialSx, final double initialSy, final double initialSz,
5069 final double initialMxy, final double initialMxz, final double initialMyx,
5070 final double initialMyz, final double initialMzx, final double initialMzy,
5071 final KnownGravityNormAccelerometerCalibratorListener listener) {
5072 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBiasX, initialBiasY, initialBiasZ,
5073 initialSx, initialSy, initialSz, initialMxy, initialMxz, initialMyx,
5074 initialMyz, initialMzx, initialMzy, listener);
5075 }
5076
5077 /**
5078 * Constructor.
5079 *
5080 * @param groundTruthGravityNorm ground truth gravity norm.
5081 * @param measurements collection of body kinematics measurements with standard
5082 * deviations taken at the same position with zero velocity
5083 * and unknown different orientations.
5084 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5085 * accelerometer and gyroscope.
5086 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
5087 * to find a solution.
5088 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
5089 * to find a solution.
5090 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
5091 * to find a solution.
5092 * @param initialSx initial x scaling factor.
5093 * @param initialSy initial y scaling factor.
5094 * @param initialSz initial z scaling factor.
5095 * @param initialMxy initial x-y cross coupling error.
5096 * @param initialMxz initial x-z cross coupling error.
5097 * @param initialMyx initial y-x cross coupling error.
5098 * @param initialMyz initial y-z cross coupling error.
5099 * @param initialMzx initial z-x cross coupling error.
5100 * @param initialMzy initial z-y cross coupling error.
5101 * @throws IllegalArgumentException if provided gravity norm value is negative.
5102 */
5103 public KnownGravityNormAccelerometerCalibrator(
5104 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5105 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
5106 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
5107 final double initialMxy, final double initialMxz, final double initialMyx,
5108 final double initialMyz, final double initialMzx, final double initialMzy) {
5109 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
5110 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
5111 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy);
5112 }
5113
5114 /**
5115 * Constructor.
5116 *
5117 * @param groundTruthGravityNorm ground truth gravity norm.
5118 * @param measurements collection of body kinematics measurements with standard
5119 * deviations taken at the same position with zero velocity
5120 * and unknown different orientations.
5121 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5122 * accelerometer and gyroscope.
5123 * @param initialBiasX initial x-coordinate of accelerometer bias to be used
5124 * to find a solution.
5125 * @param initialBiasY initial y-coordinate of accelerometer bias to be used
5126 * to find a solution.
5127 * @param initialBiasZ initial z-coordinate of accelerometer bias to be used
5128 * to find a solution.
5129 * @param initialSx initial x scaling factor.
5130 * @param initialSy initial y scaling factor.
5131 * @param initialSz initial z scaling factor.
5132 * @param initialMxy initial x-y cross coupling error.
5133 * @param initialMxz initial x-z cross coupling error.
5134 * @param initialMyx initial y-x cross coupling error.
5135 * @param initialMyz initial y-z cross coupling error.
5136 * @param initialMzx initial z-x cross coupling error.
5137 * @param initialMzy initial z-y cross coupling error.
5138 * @param listener listener to handle events raised by this calibrator.
5139 * @throws IllegalArgumentException if provided gravity norm value is negative.
5140 */
5141 public KnownGravityNormAccelerometerCalibrator(
5142 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5143 final boolean commonAxisUsed, final Acceleration initialBiasX, final Acceleration initialBiasY,
5144 final Acceleration initialBiasZ, final double initialSx, final double initialSy, final double initialSz,
5145 final double initialMxy, final double initialMxz, final double initialMyx,
5146 final double initialMyz, final double initialMzx, final double initialMzy,
5147 final KnownGravityNormAccelerometerCalibratorListener listener) {
5148 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed,
5149 initialBiasX, initialBiasY, initialBiasZ, initialSx, initialSy, initialSz,
5150 initialMxy, initialMxz, initialMyx, initialMyz, initialMzx, initialMzy, listener);
5151 }
5152
5153 /**
5154 * Constructor.
5155 *
5156 * @param groundTruthGravityNorm ground truth gravity norm.
5157 * @param initialBias initial accelerometer bias to be used to find a solution.
5158 * This must have length 3 and is expressed in meters per
5159 * squared second (m/s^2).
5160 * @throws IllegalArgumentException if provided bias array does not have length 3.
5161 */
5162 public KnownGravityNormAccelerometerCalibrator(
5163 final Acceleration groundTruthGravityNorm, final double[] initialBias) {
5164 this(convertAcceleration(groundTruthGravityNorm), initialBias);
5165 }
5166
5167 /**
5168 * Constructor.
5169 *
5170 * @param groundTruthGravityNorm ground truth gravity norm.
5171 * @param initialBias initial accelerometer bias to be used to find a solution.
5172 * This must have length 3 and is expressed in meters per
5173 * squared second (m/s^2).
5174 * @param listener listener to handle events raised by this calibrator.
5175 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5176 * if provided gravity norm value is negative.
5177 */
5178 public KnownGravityNormAccelerometerCalibrator(
5179 final Acceleration groundTruthGravityNorm, final double[] initialBias,
5180 final KnownGravityNormAccelerometerCalibratorListener listener) {
5181 this(convertAcceleration(groundTruthGravityNorm), initialBias, listener);
5182 }
5183
5184 /**
5185 * Constructor.
5186 *
5187 * @param groundTruthGravityNorm ground truth gravity norm.
5188 * @param measurements collection of body kinematics measurements with standard
5189 * deviations taken at the same position with zero velocity
5190 * and unknown different orientations.
5191 * @param initialBias initial accelerometer bias to be used to find a solution.
5192 * This must have length 3 and is expressed in meters per
5193 * squared second (m/s^2).
5194 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5195 * if provided gravity norm value is negative.
5196 */
5197 public KnownGravityNormAccelerometerCalibrator(
5198 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5199 final double[] initialBias) {
5200 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias);
5201 }
5202
5203 /**
5204 * Constructor.
5205 *
5206 * @param groundTruthGravityNorm ground truth gravity norm.
5207 * @param measurements collection of body kinematics measurements with standard
5208 * deviations taken at the same position with zero velocity
5209 * and unknown different orientations.
5210 * @param initialBias initial accelerometer bias to be used to find a solution.
5211 * This must have length 3 and is expressed in meters per
5212 * squared second (m/s^2).
5213 * @param listener listener to handle events raised by this calibrator.
5214 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5215 * if provided gravity norm value is negative.
5216 */
5217 public KnownGravityNormAccelerometerCalibrator(
5218 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5219 final double[] initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
5220 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias, listener);
5221 }
5222
5223 /**
5224 * Constructor.
5225 *
5226 * @param groundTruthGravityNorm ground truth gravity norm.
5227 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5228 * accelerometer and gyroscope.
5229 * @param initialBias initial accelerometer bias to be used to find a solution.
5230 * This must have length 3 and is expressed in meters per
5231 * squared second (m/s^2).
5232 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5233 * if provided gravity norm value is negative.
5234 */
5235 public KnownGravityNormAccelerometerCalibrator(
5236 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final double[] initialBias) {
5237 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias);
5238 }
5239
5240 /**
5241 * Constructor.
5242 *
5243 * @param groundTruthGravityNorm ground truth gravity norm.
5244 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5245 * accelerometer and gyroscope.
5246 * @param initialBias initial accelerometer bias to be used to find a solution.
5247 * This must have length 3 and is expressed in meters per
5248 * squared second (m/s^2).
5249 * @param listener listener to handle events raised by this calibrator.
5250 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5251 * if provided gravity norm value is negative.
5252 */
5253 public KnownGravityNormAccelerometerCalibrator(
5254 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final double[] initialBias,
5255 final KnownGravityNormAccelerometerCalibratorListener listener) {
5256 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias, listener);
5257 }
5258
5259 /**
5260 * Constructor.
5261 *
5262 * @param groundTruthGravityNorm ground truth gravity norm.
5263 * @param measurements collection of body kinematics measurements with standard
5264 * deviations taken at the same position with zero velocity
5265 * and unknown different orientations.
5266 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5267 * accelerometer and gyroscope.
5268 * @param initialBias initial accelerometer bias to be used to find a solution.
5269 * This must have length 3 and is expressed in meters per
5270 * squared second (m/s^2).
5271 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5272 * if provided gravity norm value is negative.
5273 */
5274 public KnownGravityNormAccelerometerCalibrator(
5275 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5276 final boolean commonAxisUsed, final double[] initialBias) {
5277 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias);
5278 }
5279
5280 /**
5281 * Constructor.
5282 *
5283 * @param groundTruthGravityNorm ground truth gravity norm.
5284 * @param measurements collection of body kinematics measurements with standard
5285 * deviations taken at the same position with zero velocity
5286 * and unknown different orientations.
5287 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5288 * accelerometer and gyroscope.
5289 * @param initialBias initial accelerometer bias to be used to find a solution.
5290 * This must have length 3 and is expressed in meters per
5291 * squared second (m/s^2).
5292 * @param listener listener to handle events raised by this calibrator.
5293 * @throws IllegalArgumentException if provided bias array does not have length 3 or
5294 * if provided gravity norm value is negative.
5295 */
5296 public KnownGravityNormAccelerometerCalibrator(
5297 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5298 final boolean commonAxisUsed, final double[] initialBias,
5299 final KnownGravityNormAccelerometerCalibratorListener listener) {
5300 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias, listener);
5301 }
5302
5303 /**
5304 * Constructor.
5305 *
5306 * @param groundTruthGravityNorm ground truth gravity norm.
5307 * @param initialBias initial bias to find a solution.
5308 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5309 * if provided gravity norm value is negative.
5310 */
5311 public KnownGravityNormAccelerometerCalibrator(
5312 final Acceleration groundTruthGravityNorm, final Matrix initialBias) {
5313 this(convertAcceleration(groundTruthGravityNorm), initialBias);
5314 }
5315
5316 /**
5317 * Constructor.
5318 *
5319 * @param groundTruthGravityNorm ground truth gravity norm.
5320 * @param initialBias initial bias to find a solution.
5321 * @param listener listener to handle events raised by this calibrator.
5322 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5323 * if provided gravity norm value is negative.
5324 */
5325 public KnownGravityNormAccelerometerCalibrator(
5326 final Acceleration groundTruthGravityNorm, final Matrix initialBias,
5327 final KnownGravityNormAccelerometerCalibratorListener listener) {
5328 this(convertAcceleration(groundTruthGravityNorm), initialBias, listener);
5329 }
5330
5331 /**
5332 * Constructor.
5333 *
5334 * @param groundTruthGravityNorm ground truth gravity norm.
5335 * @param measurements collection of body kinematics measurements with standard
5336 * deviations taken at the same position with zero velocity
5337 * and unknown different orientations.
5338 * @param initialBias initial bias to find a solution.
5339 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5340 * if provided gravity norm value is negative.
5341 */
5342 public KnownGravityNormAccelerometerCalibrator(
5343 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5344 final Matrix initialBias) {
5345 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias);
5346 }
5347
5348 /**
5349 * Constructor.
5350 *
5351 * @param groundTruthGravityNorm ground truth gravity norm.
5352 * @param measurements collection of body kinematics measurements with standard
5353 * deviations taken at the same position with zero velocity
5354 * and unknown different orientations.
5355 * @param initialBias initial bias to find a solution.
5356 * @param listener listener to handle events raised by this calibrator.
5357 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5358 * if provided gravity norm value is negative.
5359 */
5360 public KnownGravityNormAccelerometerCalibrator(
5361 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5362 final Matrix initialBias, final KnownGravityNormAccelerometerCalibratorListener listener) {
5363 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias, listener);
5364 }
5365
5366 /**
5367 * Constructor.
5368 *
5369 * @param groundTruthGravityNorm ground truth gravity norm.
5370 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5371 * accelerometer and gyroscope.
5372 * @param initialBias initial bias to find a solution.
5373 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5374 * if provided gravity norm value is negative.
5375 */
5376 public KnownGravityNormAccelerometerCalibrator(
5377 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias) {
5378 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias);
5379 }
5380
5381 /**
5382 * Constructor.
5383 *
5384 * @param groundTruthGravityNorm ground truth gravity norm.
5385 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5386 * accelerometer and gyroscope.
5387 * @param initialBias initial bias to find a solution.
5388 * @param listener listener to handle events raised by this calibrator.
5389 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5390 * if provided gravity norm value is negative.
5391 */
5392 public KnownGravityNormAccelerometerCalibrator(
5393 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
5394 final KnownGravityNormAccelerometerCalibratorListener listener) {
5395 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias, listener);
5396 }
5397
5398 /**
5399 * Constructor.
5400 *
5401 * @param groundTruthGravityNorm ground truth gravity norm.
5402 * @param measurements collection of body kinematics measurements with standard
5403 * deviations taken at the same position with zero velocity
5404 * and unknown different orientations.
5405 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5406 * accelerometer and gyroscope.
5407 * @param initialBias initial bias to find a solution.
5408 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5409 * if provided gravity norm value is negative.
5410 */
5411 public KnownGravityNormAccelerometerCalibrator(
5412 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5413 final boolean commonAxisUsed, final Matrix initialBias) {
5414 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias);
5415 }
5416
5417 /**
5418 * Constructor.
5419 *
5420 * @param groundTruthGravityNorm ground truth gravity norm.
5421 * @param measurements collection of body kinematics measurements with standard
5422 * deviations taken at the same position with zero velocity
5423 * and unknown different orientations.
5424 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5425 * accelerometer and gyroscope.
5426 * @param initialBias initial bias to find a solution.
5427 * @param listener listener to handle events raised by this calibrator.
5428 * @throws IllegalArgumentException if provided bias matrix is not 3x1 or
5429 * if provided gravity norm value is negative.
5430 */
5431 public KnownGravityNormAccelerometerCalibrator(
5432 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5433 final boolean commonAxisUsed, final Matrix initialBias,
5434 final KnownGravityNormAccelerometerCalibratorListener listener) {
5435 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias, listener);
5436 }
5437
5438 /**
5439 * Constructor.
5440 *
5441 * @param groundTruthGravityNorm ground truth gravity norm.
5442 * @param initialBias initial bias to find a solution.
5443 * @param initialMa initial scale factors and cross coupling errors matrix.
5444 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5445 * scaling and coupling error matrix is not 3x3 or
5446 * if provided gravity norm value is negative.
5447 */
5448 public KnownGravityNormAccelerometerCalibrator(
5449 final Acceleration groundTruthGravityNorm, final Matrix initialBias, final Matrix initialMa) {
5450 this(convertAcceleration(groundTruthGravityNorm), initialBias, initialMa);
5451 }
5452
5453 /**
5454 * Constructor.
5455 *
5456 * @param groundTruthGravityNorm ground truth gravity norm.
5457 * @param initialBias initial bias to find a solution.
5458 * @param initialMa initial scale factors and cross coupling errors matrix.
5459 * @param listener listener to handle events raised by this calibrator.
5460 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5461 * scaling and coupling error matrix is not 3x3 or
5462 * if provided gravity norm value is negative.
5463 */
5464 public KnownGravityNormAccelerometerCalibrator(
5465 final Acceleration groundTruthGravityNorm, final Matrix initialBias, final Matrix initialMa,
5466 final KnownGravityNormAccelerometerCalibratorListener listener) {
5467 this(convertAcceleration(groundTruthGravityNorm), initialBias, initialMa, listener);
5468 }
5469
5470 /**
5471 * Constructor.
5472 *
5473 * @param groundTruthGravityNorm ground truth gravity norm.
5474 * @param measurements collection of body kinematics measurements with standard
5475 * deviations taken at the same position with zero velocity
5476 * and unknown different orientations.
5477 * @param initialBias initial bias to find a solution.
5478 * @param initialMa initial scale factors and cross coupling errors matrix.
5479 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5480 * scaling and coupling error matrix is not 3x3 or
5481 * if provided gravity norm value is negative.
5482 */
5483 public KnownGravityNormAccelerometerCalibrator(
5484 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5485 final Matrix initialBias, final Matrix initialMa) {
5486 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias, initialMa);
5487 }
5488
5489 /**
5490 * Constructor.
5491 *
5492 * @param groundTruthGravityNorm ground truth gravity norm.
5493 * @param measurements collection of body kinematics measurements with standard
5494 * deviations taken at the same position with zero velocity
5495 * and unknown different orientations.
5496 * @param initialBias initial bias to find a solution.
5497 * @param initialMa initial scale factors and cross coupling errors matrix.
5498 * @param listener listener to handle events raised by this calibrator.
5499 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5500 * scaling and coupling error matrix is not 3x3 or
5501 * if provided gravity norm value is negative.
5502 */
5503 public KnownGravityNormAccelerometerCalibrator(
5504 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5505 final Matrix initialBias, final Matrix initialMa,
5506 final KnownGravityNormAccelerometerCalibratorListener listener) {
5507 this(convertAcceleration(groundTruthGravityNorm), measurements, initialBias, initialMa, listener);
5508 }
5509
5510 /**
5511 * Constructor.
5512 *
5513 * @param groundTruthGravityNorm ground truth gravity norm.
5514 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5515 * accelerometer and gyroscope.
5516 * @param initialBias initial bias to find a solution.
5517 * @param initialMa initial scale factors and cross coupling errors matrix.
5518 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5519 * scaling and coupling error matrix is not 3x3 or
5520 * if provided gravity norm value is negative.
5521 */
5522 public KnownGravityNormAccelerometerCalibrator(
5523 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
5524 final Matrix initialMa) {
5525 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias, initialMa);
5526 }
5527
5528 /**
5529 * Constructor.
5530 *
5531 * @param groundTruthGravityNorm ground truth gravity norm.
5532 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5533 * accelerometer and gyroscope.
5534 * @param initialBias initial bias to find a solution.
5535 * @param initialMa initial scale factors and cross coupling errors matrix.
5536 * @param listener listener to handle events raised by this calibrator.
5537 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5538 * scaling and coupling error matrix is not 3x3 or
5539 * if provided gravity norm value is negative.
5540 */
5541 public KnownGravityNormAccelerometerCalibrator(
5542 final Acceleration groundTruthGravityNorm, final boolean commonAxisUsed, final Matrix initialBias,
5543 final Matrix initialMa, final KnownGravityNormAccelerometerCalibratorListener listener) {
5544 this(convertAcceleration(groundTruthGravityNorm), commonAxisUsed, initialBias, initialMa, listener);
5545 }
5546
5547 /**
5548 * Constructor.
5549 *
5550 * @param groundTruthGravityNorm ground truth gravity norm.
5551 * @param measurements collection of body kinematics measurements with standard
5552 * deviations taken at the same position with zero velocity
5553 * and unknown different orientations.
5554 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5555 * accelerometer and gyroscope.
5556 * @param initialBias initial bias to find a solution.
5557 * @param initialMa initial scale factors and cross coupling errors matrix.
5558 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5559 * scaling and coupling error matrix is not 3x3 or
5560 * if provided gravity norm value is negative.
5561 */
5562 public KnownGravityNormAccelerometerCalibrator(
5563 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5564 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa) {
5565 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias, initialMa);
5566 }
5567
5568 /**
5569 * Constructor.
5570 *
5571 * @param groundTruthGravityNorm ground truth gravity norm.
5572 * @param measurements collection of body kinematics measurements with standard
5573 * deviations taken at the same position with zero velocity
5574 * and unknown different orientations.
5575 * @param commonAxisUsed indicates whether z-axis is assumed to be common for
5576 * accelerometer and gyroscope.
5577 * @param initialBias initial bias to find a solution.
5578 * @param initialMa initial scale factors and cross coupling errors matrix.
5579 * @param listener listener to handle events raised by this calibrator.
5580 * @throws IllegalArgumentException if either provided bias matrix is not 3x1 or
5581 * scaling and coupling error matrix is not 3x3 or
5582 * if provided gravity norm value is negative.
5583 */
5584 public KnownGravityNormAccelerometerCalibrator(
5585 final Acceleration groundTruthGravityNorm, final Collection<StandardDeviationBodyKinematics> measurements,
5586 final boolean commonAxisUsed, final Matrix initialBias, final Matrix initialMa,
5587 final KnownGravityNormAccelerometerCalibratorListener listener) {
5588 this(convertAcceleration(groundTruthGravityNorm), measurements, commonAxisUsed, initialBias, initialMa,
5589 listener);
5590 }
5591
5592 /**
5593 * Sets ground truth gravity norm to be expected at location where
5594 * measurements have been made, expressed in meters per squared second
5595 * (m/s^2).
5596 *
5597 * @param groundTruthGravityNorm ground truth gravity norm or
5598 * null if undefined.
5599 * @throws IllegalArgumentException if provided value is negative.
5600 * @throws LockedException if calibrator is currently running.
5601 */
5602 public void setGroundTruthGravityNorm(final Double groundTruthGravityNorm) throws LockedException {
5603 if (isRunning()) {
5604 throw new LockedException();
5605 }
5606 internalSetGroundTruthGravityNorm(groundTruthGravityNorm);
5607 }
5608
5609 /**
5610 * Sets ground truth gravity norm to be expected at location where
5611 * measurements have been made.
5612 *
5613 * @param groundTruthGravityNorm ground truth gravity norm or null
5614 * if undefined.
5615 * @throws IllegalArgumentException if provided value is negative.
5616 * @throws LockedException if calibrator is currently running.
5617 */
5618 public void setGroundTruthGravityNorm(final Acceleration groundTruthGravityNorm) throws LockedException {
5619 setGroundTruthGravityNorm(groundTruthGravityNorm != null ? convertAcceleration(groundTruthGravityNorm) : null);
5620 }
5621 }