kinetics-observer.hpp
Go to the documentation of this file.
1 
12 #ifndef KINETICSOBSERVER_HPP
13 #define KINETICSOBSERVER_HPP
14 
15 #include <set>
16 
17 #include <boost/utility.hpp>
18 
19 #include <state-observation/api.h>
27 
28 namespace stateObservation
29 {
30 
33 
39 
41 class STATE_OBSERVATION_DLLAPI KineticsObserver : protected DynamicalSystemFunctorBase, protected StateVectorArithmetics
42 {
43 public:
47 
48  // ////////////////////////////////////////////////////////////
50  // ///////////////////////////////////////////////////////////
52 
59  KineticsObserver(unsigned maxContacts = 4, unsigned maxNumberOfIMU = 1);
60 
63  virtual ~KineticsObserver();
64 
66 
67  // ////////////////////////////////////////////////////////////
71  // ///////////////////////////////////////////////////////////
72 
74 
78  double getSamplingTime() const;
79 
82  void setSamplingTime(double);
83 
91  void setWithUnmodeledWrench(bool b = true);
92 
99  void setWithAccelerationEstimation(bool b = true);
100 
104  bool getWithAccelerationEstimation() const;
105 
110  void setWithGyroBias(bool b = true);
111 
115  void setMass(double);
116 
120  double getMass() const;
121 
125  const IndexedMatrix3 & getInertiaMatrix() const;
126 
130  const IndexedMatrix3 & getInertiaMatrixDot() const;
131 
135  const IndexedVector3 & getAngularMomentum() const;
136 
140  const IndexedVector3 & getAngularMomentumDot() const;
141 
145  const IndexedVector3 & getCenterOfMass() const;
146 
150  const IndexedVector3 & getCenterOfMassDot() const;
151 
155  const IndexedVector3 & getCenterOfMassDotDot() const;
156 
160  Vector6 getAdditionalWrench() const;
161 
163 
164  // ///////////////////////////////////////////////////////////
169 
171 
188  Index setIMU(const Vector3 & accelero,
189  const Vector3 & gyrometer,
190  const Kinematics & userImuKinematics,
191  Index num = -1);
192 
200  Index setIMU(const Vector3 & accelero,
201  const Vector3 & gyrometer,
202  const Matrix3 & acceleroCov,
203  const Matrix3 & gyroCov,
204  const Kinematics & userImuKinematics,
205  Index num = -1);
206 
212  void setIMUDefaultCovarianceMatrix(const Matrix3 & acceleroCov, const Matrix3 & gyroCov);
213 
220  void setAbsolutePoseSensor(const Kinematics & measurement);
221 
227  void setAbsolutePoseSensor(const Kinematics & measurement, const Matrix6 & CovarianceMatrix);
228 
231  void setAbsolutePoseSensorDefaultCovarianceMatrix(const Matrix6 & covMat);
232 
237  void setAbsoluteOriSensor(const Orientation & measurement);
238 
244  void setAbsoluteOriSensor(const Orientation & measurement, const Matrix3 & CovarianceMatrix);
245 
248  void setAbsoluteOriSensorDefaultCovarianceMatrix(const Matrix3 & covMat);
249 
251 
252  // ///////////////////////////////////////////////////////////
257  // ///////////////////////////////////////////////////////////
259 
283  Index addContact(const Kinematics & pose,
284  const Matrix12 & initialCovarianceMatrix,
285  const Matrix12 & processCovarianceMatrix,
286  Index contactNumber = -1,
287  const Matrix3 & linearStiffness = Matrix3::Constant(-1),
288  const Matrix3 & linearDamping = Matrix3::Constant(-1),
289  const Matrix3 & angularStiffness = Matrix3::Constant(-1),
290  const Matrix3 & angularDamping = Matrix3::Constant(-1));
291 
307  Index addContact(const Kinematics & pose,
308  Index contactNumber = -1,
309  const Matrix3 & linearStiffness = Matrix3::Constant(-1),
310  const Matrix3 & linearDamping = Matrix3::Constant(-1),
311  const Matrix3 & angularStiffness = Matrix3::Constant(-1),
312  const Matrix3 & angularDamping = Matrix3::Constant(-1));
313 
317  void removeContact(Index contactnbr);
318 
320  void clearContacts();
321 
325  Index getNumberOfSetContacts() const;
326 
330  std::vector<Index> getListOfContacts() const;
331 
333 
334  // ///////////////////////////////////////////////////////////
341  // //////////////////////////////////////////////////////////
343 
349  void updateContactWithNoSensor(const Kinematics & localKine, unsigned contactNumber);
350 
355  void updateContactWithWrenchSensor(const Vector6 & wrenchMeasurement,
356  const Kinematics & localKine,
357  unsigned contactNumber);
358 
364  void updateContactWithWrenchSensor(const Vector6 & wrenchMeasurement,
365  const Matrix6 & wrenchCovMatrix,
366  const Kinematics & localKine,
367  unsigned contactNumber);
368 
372  void setContactWrenchSensorDefaultCovarianceMatrix(const Matrix6 & wrenchSensorCovMat);
373 
375 
376  // /////////////////////////////////////////////
380 
387  void setCenterOfMass(const Vector3 & com, const Vector3 & com_dot, const Vector3 & com_dot_dot);
388 
394  void setCenterOfMass(const Vector3 & com, const Vector3 & com_dot);
395 
400  void setCenterOfMass(const Vector3 & com);
401 
406  void setCoMInertiaMatrix(const Matrix3 & I, const Matrix3 & I_dot);
407 
413  void setCoMInertiaMatrix(const Matrix3 & I);
414 
420  void setCoMInertiaMatrix(const Vector6 & I, const Vector6 & I_dot);
421 
427  void setCoMInertiaMatrix(const Vector6 & I);
428 
433  void setCoMAngularMomentum(const Vector3 & sigma, const Vector3 & sigma_dot);
434 
439  void setCoMAngularMomentum(const Vector3 & sigma);
440 
447  void setAdditionalWrench(const Vector3 & force, const Vector3 & torque);
448 
450 
451  // ///////////////////////////////////////////////////////////
455 
458  void updateMeasurements();
459 
466  const Vector & update();
467 
470 
474  void convertWrenchFromUserToCentroid(const Vector3 & forceUserFrame,
475  const Vector3 & momentUserFrame,
476  Vector3 & forceCentroidFrame,
477  Vector3 & momentCentroidFrame);
478 
486  LocalKinematics getLocalCentroidKinematics() const;
487 
494  Kinematics getGlobalCentroidKinematics() const;
495 
501  LocalKinematics estimateAccelerations();
502 
507  LocalKinematics getLocalKinematicsOf(const Kinematics & userBodyKine);
508 
514  Kinematics getGlobalKinematicsOf(const Kinematics & userBodyKin) const;
515 
518 
524  Vector6 getContactWrench(Index contactNbr) const;
525 
534  Kinematics getContactPosition(Index contactNbr) const;
535 
541  Vector6 getUnmodeledWrench() const;
543 
547  // /////////////////////////////////////////////////////////
548 
556  void setWorldCentroidStateKinematics(const LocalKinematics & localKine,
557  bool resetContactWrenches = true,
558  bool resetCovariance = true);
559 
566  void setWorldCentroidStateKinematics(const Kinematics & kine, bool resetCovariance = true);
567 
575  void setStateContact(Index index,
576  Kinematics worldContactRestPose,
577  const Vector6 & wrench,
578  bool resetCovariance = true);
579 
580  // TODO
581  // void setVelocityGuess(const Kinematics)
582 
589  void setGyroBias(const Vector3 &, unsigned numberOfIMU = 1, bool resetCovariance = true);
590 
597  void setStateUnmodeledWrench(const Vector6 &, bool resetCovariance = true);
598 
600 
601  // /////////////////////////////////////////////////////////////
604  // /////////////////////////////////////////////////////////////
606 
609  void resetSensorsDefaultCovMats();
610 
612  void resetInputs();
614 
615  // /////////////////////////////////////////////////////////////
617  // /////////////////////////////////////////////////////////////
619 
621  void setKinematicsInitCovarianceDefault(const Matrix &);
623  void setKinematicsInitCovarianceDefault(const Matrix3 & P_pos,
624  const Matrix3 & P_ori,
625  const Matrix3 & P_linVel,
626  const Matrix3 & P_angVel);
627 
629  void setGyroBiasInitCovarianceDefault(const Matrix3 & covMat);
630 
634  void setUnmodeledWrenchInitCovMatDefault(const Matrix6 & initCovMat);
635 
639  void setContactInitCovMatDefault(const Matrix12 & contactCovMat);
640 
642  void setKinematicsStateCovariance(const Matrix &);
643 
648  void setGyroBiasStateCovariance(const Matrix3 & covMat, unsigned imuNumber);
649 
653  void setUnmodeledWrenchStateCovMat(const Matrix6 & newCovMat);
654 
659  void setContactStateCovMat(Index contactNbr, const Matrix12 & contactCovMat);
660 
662  void setKinematicsProcessCovarianceDefault(const Matrix12 &);
663 
665  void setKinematicsProcessCovarianceDefault(const Matrix3 & P_pos,
666  const Matrix3 & P_ori,
667  const Matrix3 & P_linVel,
668  const Matrix3 & P_angVel);
669 
671  void setGyroBiasProcessCovarianceDefault(const Matrix3 & covMat);
672 
674  void setUnmodeledWrenchProcessCovarianceDefault(const Matrix6 & covMat);
675 
677  void setContactProcessCovarianceDefault(const Matrix12 & covMat);
678 
680  void setKinematicsProcessCovariance(const Matrix12 &);
681 
686  void setGyroBiasProcessCovariance(const Matrix3 & covMat, unsigned imuNumber);
687 
691  void setUnmodeledWrenchProcessCovMat(const Matrix6 & processCovMat);
692 
697  void setContactProcessCovMat(Index contactNbr, const Matrix12 & contactCovMat);
698 
700  void resetStateCovarianceMat();
701  void resetStateKinematicsCovMat();
702  void resetStateGyroBiasCovMat(Index i);
703  void resetStateUnmodeledWrenchCovMat();
704  void resetStateContactsCovMat();
705  void resetStateContactCovMat(Index contactNbr);
706 
707  void resetProcessCovarianceMat();
708  void resetProcessKinematicsCovMat();
709  void resetProcessGyroBiasCovMat(Index i);
710  void resetProcessUnmodeledWrenchCovMat();
711  void resetProcessContactsCovMat();
712  void resetProcessContactCovMat(Index contactNbr);
714 
715  // /////////////////////////////////////////////////////////////
721  // /////////////////////////////////////////////////////////////
722 
726 
731  Index getStateSize() const;
732 
737  Index getStateTangentSize() const;
738 
742  Index getMeasurementSize() const;
743 
747  Matrix getStateCovarianceMat() const;
748 
753  void setStateCovarianceMat(const Matrix & P);
754 
758  void setProcessNoiseCovarianceMat(const Matrix & Q);
759 
763 
767  const Vector & getCurrentStateVector() const;
768 
773  TimeIndex getStateVectorTimeIndex() const;
774 
777  void setInitWorldCentroidStateVector(const Vector & initStateVector);
778 
784  void setStateVector(const Vector & newvalue, bool resetCovariance = true);
785 
789  Vector getMeasurementVector();
790 
794 
798  inline Index kineIndex() const;
799 
803  inline Index posIndex() const;
804 
808  inline Index oriIndex() const;
809 
813  inline Index linVelIndex() const;
814 
818  inline Index angVelIndex() const;
819 
823  inline Index gyroBiasIndex(Index IMUNumber) const;
824 
828  inline Index unmodeledWrenchIndex() const;
829 
833  inline Index unmodeledForceIndex() const;
834 
838  inline Index unmodeledTorqueIndex() const;
839 
843  inline Index contactsIndex() const;
844 
849  inline Index contactIndex(Index contactNbr) const;
850 
855  inline Index contactKineIndex(Index contactNbr) const;
856 
861  inline Index contactPosIndex(Index contactNbr) const;
862 
867  inline Index contactOriIndex(Index contactNbr) const;
868 
873  inline Index contactForceIndex(Index contactNbr) const;
874 
879  inline Index contactTorqueIndex(Index contactNbr) const;
880 
885  inline Index contactWrenchIndex(Index contactNbr) const;
886 
887  // ///////////////////////////////////////////////////////////
890 
894  inline Index kineIndexTangent() const;
895 
899  inline Index posIndexTangent() const;
900 
904  inline Index oriIndexTangent() const;
905 
909  inline Index linVelIndexTangent() const;
910 
914  inline Index angVelIndexTangent() const;
915 
919  inline Index gyroBiasIndexTangent(Index IMUNumber) const;
920 
924  inline Index unmodeledWrenchIndexTangent() const;
925 
929  inline Index unmodeledForceIndexTangent() const;
930 
934  inline Index unmodeledTorqueIndexTangent() const;
935 
939  inline Index contactsIndexTangent() const;
940 
945  inline Index contactIndexTangent(Index contactNbr) const;
946 
951  inline Index contactKineIndexTangent(Index contactNbr) const;
952 
957  inline Index contactPosIndexTangent(Index contactNbr) const;
958 
963  inline Index contactOriIndexTangent(Index contactNbr) const;
964 
969  inline Index contactForceIndexTangent(Index contactNbr) const;
970 
975  inline Index contactTorqueIndexTangent(Index contactNbr) const;
976 
981  inline Index contactWrenchIndexTangent(Index contactNbr) const;
982 
984 
985  // /////////////////////////////////////////////////////////////
987  // /////////////////////////////////////////////////////////////
989 
991  const ExtendedKalmanFilter & getEKF() const;
992 
995  ExtendedKalmanFilter & getEKF();
997 
998 protected:
999  struct Sensor
1000  {
1001  Sensor(Index signalSize) : measIndex(-1), measIndexTangent(-1), size(signalSize), time(0) {}
1002  ~Sensor() {}
1007 
1008  inline Vector extractFromVector(const Vector & v)
1009  {
1010  return v.segment(size, measIndex);
1011  }
1012  };
1013 
1014  struct IMU : public Sensor
1015  {
1016  ~IMU() {}
1017  IMU() : Sensor(sizeIMUSignal) {}
1018 
1019  Kinematics userImuKinematics; // the kinematics of the IMU in the user's frame
1020  LocalKinematics centroidImuKinematics; // the kinematics of the IMU in the IMU's frame
1024 
1027 
1028  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
1029  };
1030 
1031  typedef std::vector<IMU, Eigen::aligned_allocator<IMU>> VectorIMU;
1032  typedef VectorIMU::iterator VectorIMUIterator;
1033  typedef VectorIMU::const_iterator VectorIMUConstIterator;
1034 
1035  struct Contact : public Sensor
1036  {
1037  Contact() : Sensor(sizeWrench), isSet(false), withRealSensor(false), stateIndex(-1), stateIndexTangent(-1)
1038  {
1039  worldRestPose.angVel = worldRestPose.linVel = Vector3::Zero();
1040  }
1042 
1044  Kinematics worldRestPose; // the rest pose of the contact in the world frame
1045 
1048 
1053 
1058 
1060 
1061  bool isSet;
1065 
1066  static const Kinematics::Flags::Byte contactKineFlags =
1067  Kinematics::Flags::position | Kinematics::Flags::orientation | Kinematics::Flags::linVel
1068  | Kinematics::Flags::angVel;
1069 
1070  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
1071  };
1072 
1073  typedef std::vector<Contact, Eigen::aligned_allocator<Contact>> VectorContact;
1074  typedef VectorContact::iterator VectorContactIterator;
1075  typedef VectorContact::const_iterator VectorContactConstIterator;
1076 
1077  struct AbsolutePoseSensor : public Sensor
1078  {
1079  AbsolutePoseSensor() : Sensor(sizePose) {}
1080 
1082  static const Kinematics::Flags::Byte poseFlags = Kinematics::Flags::position | Kinematics::Flags::orientation;
1084  };
1085 
1086  struct AbsoluteOriSensor : public Sensor
1087  {
1088  AbsoluteOriSensor() : Sensor(sizePose) {}
1089 
1092  };
1093 
1094 protected:
1102  virtual Vector stateDynamics(const Vector & x, const Vector & u, TimeIndex k);
1103 
1110  virtual Vector measureDynamics(const Vector & x, const Vector & u, TimeIndex k);
1111 
1116  void addUnmodeledAndContactWrench_(const Vector & centroidStateVector, Vector3 & force, Vector3 & torque);
1117 
1122  void addUnmodeledWrench_(const Vector & centroidStateVector, Vector3 & force, Vector3 & torque);
1123 
1132  void addContactWrench_(const Kinematics & centroidContactKine,
1133  const Vector3 & centroidContactForce,
1134  const Vector3 & centroidContactTorque,
1135  Vector3 & totalCentroidForce,
1136  Vector3 & totalCentroidTorque);
1137 
1148 
1149  void computeLocalAccelerations_(LocalKinematics & localStateKine,
1150  const Vector3 & totalForceLocal,
1151  const Vector3 & totalMomentLocal,
1152  Vector3 & linAcc,
1153  Vector3 & angAcc);
1154 
1161  void computeContactForce_(VectorContactIterator i,
1162  LocalKinematics & worldCentroidStateKinematics,
1163  Kinematics & worldRestContactPose,
1164  Vector3 & contactForce,
1165  Vector3 & contactTorque);
1166 
1173  void computeContactForces_(LocalKinematics & worldCentroidStateKinematics,
1174  Vector3 & contactForce,
1175  Vector3 & contactTorque);
1176 
1178  virtual void setProcessNoise(NoiseBase *);
1179 
1181  virtual void resetProcessNoise();
1183  virtual NoiseBase * getProcessNoise() const;
1184 
1186  virtual void setMeasurementNoise(NoiseBase *);
1188  virtual void resetMeasurementNoise();
1190  virtual NoiseBase * getMeasurementNoise() const;
1191 
1193  virtual Index getInputSize() const;
1194 
1195 public:
1199  Vector6 getCentroidContactWrench(Index numContact) const;
1200 
1204  Kinematics getCentroidContactInputPose(Index numContact) const;
1205 
1209  Kinematics getWorldContactPoseFromCentroid(Index numContact) const;
1210 
1213  Kinematics getContactStateRestKinematics(Index numContact) const;
1214 
1217  Kinematics getUserContactInputPose(Index numContact) const;
1218 
1223  Index getIMUMeasIndexByNum(Index num) const;
1224 
1225  Index getContactMeasIndexByNum(Index num) const;
1226 
1227  bool getContactIsSetByNum(Index num) const;
1228 
1232 
1234 
1240  inline Vector stateSum(const Vector & stateVector, const Vector & tangentVector);
1241 
1245  virtual void stateSum(const Vector & stateVector, const Vector & tangentVector, Vector & sum);
1246 
1253  inline Vector stateDifference(const Vector & stateVector1, const Vector & stateVector2);
1254 
1258  virtual void stateDifference(const Vector & stateVector1, const Vector & stateVector2, Vector & difference);
1259 
1267  virtual void measurementDifference(const Vector & measureVector1, const Vector & measureVector2, Vector & difference);
1268 
1272  virtual void useFiniteDifferencesJacobians(bool b = true);
1273 
1277  virtual void setFiniteDifferenceStep(const Vector & dx);
1278 
1279  virtual Matrix computeAMatrix();
1280 
1281  virtual Matrix computeCMatrix();
1282 
1284  void computeLocalAccelerations(const Vector & x, Vector & acceleration);
1285 
1288  friend int testAccelerationsJacobians(KineticsObserver & ko,
1289  int errcode,
1290  double relativeErrorThreshold,
1291  double threshold); // declared out of namespace state-observation
1292 
1296  friend int testAnalyticalAJacobianVsFD(KineticsObserver & ko,
1297  int errcode,
1298  double relativeErrorThreshold,
1299  double threshold); // declared out of namespace state-observation
1300 
1301  friend int testAnalyticalCJacobianVsFD(KineticsObserver & ko,
1302  int errcode,
1303  double relativeErrorThreshold,
1304  double threshold); // declared out of namespace state-observation
1305 
1308  friend int testOrientationsJacobians(KineticsObserver & ko,
1309  int errcode,
1310  double relativeErrorThreshold,
1311  double threshold); // declared out of namespace state-observation
1313 
1314 protected:
1315  void stateNaNCorrection_();
1316 
1319  void updateLocalKineAndContacts_();
1320 
1322  void updateGlobalKine_();
1323 
1324 protected:
1325  unsigned maxContacts_;
1326  unsigned maxImuNumber_;
1327 
1332 
1337 
1341 
1344 
1347 
1348  Vector3 initTotalCentroidForce_; // Initial total force used in the state prediction
1349  Vector3 initTotalCentroidTorque_; // Initial total torque used in the state prediction
1350 
1353 
1359 
1360  IndexedVector3 com_, comd_, comdd_;
1363 
1364  TimeIndex k_est_; // time index of the last estimation
1365  TimeIndex k_data_; // time index of the current measurements
1366 
1367  double mass_;
1368 
1369  double dt_;
1370 
1373 
1376 
1380  void startNewIteration_();
1381 
1388 
1389  void convertUserToCentroidFrame_(const Kinematics & userKine, Kinematics & centroidKine, TimeIndex k_data);
1390 
1395 
1396  Kinematics convertUserToCentroidFrame_(const Kinematics & userKine, TimeIndex k_data);
1397 
1399 
1400  inline Index gyroBiasIndex(VectorIMUConstIterator i) const;
1401  inline Index gyroBiasIndexTangent(VectorIMUConstIterator i) const;
1402 
1403  inline Index contactIndex(VectorContactConstIterator i) const;
1404  inline Index contactKineIndex(VectorContactConstIterator i) const;
1405  inline Index contactPosIndex(VectorContactConstIterator i) const;
1406  inline Index contactOriIndex(VectorContactConstIterator i) const;
1407  inline Index contactForceIndex(VectorContactConstIterator i) const;
1408  inline Index contactTorqueIndex(VectorContactConstIterator i) const;
1409  inline Index contactWrenchIndex(VectorContactConstIterator i) const;
1410 
1412  inline Index contactIndexTangent(VectorContactConstIterator i) const;
1413  inline Index contactKineIndexTangent(VectorContactConstIterator i) const;
1414  inline Index contactPosIndexTangent(VectorContactConstIterator i) const;
1415  inline Index contactOriIndexTangent(VectorContactConstIterator i) const;
1416  inline Index contactForceIndexTangent(VectorContactConstIterator i) const;
1417  inline Index contactTorqueIndexTangent(VectorContactConstIterator i) const;
1418  inline Index contactWrenchIndexTangent(VectorContactConstIterator i) const;
1419 
1420 public:
1421  inline static constexpr Index sizeAcceleroSignal = 3;
1422  inline static constexpr Index sizeGyroSignal = 3;
1423  inline static constexpr Index sizeIMUSignal = sizeAcceleroSignal + sizeGyroSignal;
1424 
1425  inline static constexpr Index sizePos = 3;
1426  inline static constexpr Index sizePosTangent = 3;
1427  inline static constexpr Index sizeOri = 4;
1428  inline static constexpr Index sizeOriTangent = 3;
1429  inline static constexpr Index sizeLinVel = sizePos;
1430  inline static constexpr Index sizeLinVelTangent = sizeLinVel;
1431  inline static constexpr Index sizeLinAccTangent = sizeLinVelTangent;
1432  inline static constexpr Index sizeAngVel = sizeOriTangent;
1433  inline static constexpr Index sizeAngVelTangent = sizeAngVel;
1434  inline static constexpr Index sizeGyroBias = sizeGyroSignal;
1435  inline static constexpr Index sizeGyroBiasTangent = sizeGyroBias;
1436 
1437  inline static constexpr Index sizeForce = 3;
1438  inline static constexpr Index sizeForceTangent = sizeForce;
1439  inline static constexpr Index sizeTorque = 3;
1440  inline static constexpr Index sizeTorqueTangent = sizeTorque;
1441 
1442  inline static constexpr Index sizeWrench = sizeForce + sizeTorque;
1443 
1444  inline static constexpr Index sizeStateKine = sizePos + sizeOri + sizeLinVel + sizeAngVel;
1445  inline static constexpr Index sizeStateBase = sizeStateKine + sizeForce + sizeTorque;
1446  inline static constexpr Index sizeStateKineTangent = sizePos + sizeOriTangent + sizeLinVel + sizeAngVel;
1447  inline static constexpr Index sizeStateTangentBase = sizeStateKineTangent + sizeForce + sizeTorque;
1448 
1449  inline static constexpr Index sizePose = sizePos + sizeOri;
1450  inline static constexpr Index sizePoseTangent = sizePos + sizeOriTangent;
1451 
1452  inline static constexpr Index sizeContactKine = sizePose;
1453  inline static constexpr Index sizeContactKineTangent = sizePoseTangent;
1454 
1455  inline static constexpr Index sizeContact = sizeContactKine + sizeWrench;
1456  inline static constexpr Index sizeContactTangent = sizeContactKineTangent + sizeWrench;
1457 
1458  inline static constexpr Kinematics::Flags::Byte flagsStateKine =
1459  Kinematics::Flags::position | Kinematics::Flags::orientation | Kinematics::Flags::linVel
1460  | Kinematics::Flags::angVel;
1461 
1462  inline static constexpr Kinematics::Flags::Byte flagsContactKine =
1463  Kinematics::Flags::position | Kinematics::Flags::orientation;
1464 
1465  inline static constexpr Kinematics::Flags::Byte flagsPoseKine =
1466  Kinematics::Flags::position | Kinematics::Flags::orientation;
1467 
1468  inline static constexpr Kinematics::Flags::Byte flagsPosKine = Kinematics::Flags::position;
1469 
1470  inline static constexpr Kinematics::Flags::Byte flagsIMUKine =
1471  Kinematics::Flags::position | Kinematics::Flags::orientation | Kinematics::Flags::linVel
1472  | Kinematics::Flags::angVel | Kinematics::Flags::linAcc | Kinematics::Flags::angAcc;
1473 
1475  static const double defaultMass;
1476 
1477  static const double statePoseInitVarianceDefault;
1478  static const double stateOriInitVarianceDefault;
1479  static const double stateLinVelInitVarianceDefault;
1480  static const double stateAngVelInitVarianceDefault;
1481  static const double gyroBiasInitVarianceDefault;
1483  static const double contactForceInitVarianceDefault;
1485 
1486  static const double statePoseProcessVarianceDefault;
1487  static const double stateOriProcessVarianceDefault;
1490  static const double gyroBiasProcessVarianceDefault;
1496 
1497  static const double acceleroVarianceDefault;
1498  static const double gyroVarianceDefault;
1499  static const double forceSensorVarianceDefault;
1500  static const double torqueSensorVarianceDefault;
1501  static const double positionSensorVarianceDefault;
1503 
1504  static const double linearStiffnessDefault;
1505  static const double angularStiffnessDefault;
1506  static const double linearDampingDefault;
1507  static const double angularDampingDefault;
1508 
1510 
1511  bool nanDetected_ = false;
1512  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
1513 
1514 protected:
1520 
1527 
1535 
1547 
1550 
1552  static const double defaultdx;
1553 
1555  struct Opt
1556  {
1557  Opt() : locKine(locKine1), ori(locKine.orientation), ori1(locKine1.orientation), ori2(locKine2.orientation) {}
1558 
1564  } opt_;
1565 
1566 private:
1567  Index setIMU(const Vector3 & accelero,
1568  const Vector3 & gyrometer,
1569  const Kinematics & userImuKinematics,
1570  Index num,
1571  const Matrix3 * acceleroCov,
1572  const Matrix3 * gyroCov);
1573 };
1574 
1575 #include <state-observation/dynamics-estimators/kinetics-observer.hxx>
1576 
1577 } // namespace stateObservation
1578 
1579 #endif
stateObservation::Vector
Eigen::VectorXd Vector
Dynamic sized scalar vector.
Definition: definitions.hpp:76
stateObservation::KineticsObserver::ekf_
stateObservation::ExtendedKalmanFilter ekf_
Definition: kinetics-observer.hpp:1354
stateObservation::KineticsObserver::gyroVarianceDefault
static const double gyroVarianceDefault
Definition: kinetics-observer.hpp:1498
stateObservation::KineticsObserver::worldCentroidStateVectorDx_
Vector worldCentroidStateVectorDx_
Definition: kinetics-observer.hpp:1339
stateObservation::KineticsObserver::Opt::Opt
Opt()
Definition: kinetics-observer.hpp:1557
accelerometer-gyrometer.hpp
Implements the accelerometer-gyrometer inertial measuremen.
stateObservation::KineticsObserver::sigmad_
IndexedVector3 sigmad_
Definition: kinetics-observer.hpp:1361
stateObservation::KineticsObserver::contactOrientationProcessCovMat_
Matrix3 contactOrientationProcessCovMat_
Definition: kinetics-observer.hpp:1543
stateObservation::KineticsObserver::Contact::userContactKine
Kinematics userContactKine
Describes the measured wrench (forces + torques) at the contact in the sensor's frame.
Definition: kinetics-observer.hpp:1050
stateObservation::KineticsObserver::withAccelerationEstimation_
bool withAccelerationEstimation_
Definition: kinetics-observer.hpp:1358
stateObservation::KineticsObserver::Opt::locKine2
LocalKinematics locKine2
Definition: kinetics-observer.hpp:1559
stateObservation::KineticsObserver::AbsoluteOriSensor
Definition: kinetics-observer.hpp:1086
stateObservation::KineticsObserver::stateLinVelProcessCovMat_
Matrix3 stateLinVelProcessCovMat_
Definition: kinetics-observer.hpp:1538
stateObservation::KineticsObserver::contactPositionProcessCovMat_
Matrix3 contactPositionProcessCovMat_
Definition: kinetics-observer.hpp:1542
stateObservation::KineticsObserver::angularStiffnessDefault
static const double angularStiffnessDefault
Definition: kinetics-observer.hpp:1505
stateObservation::KineticsObserver::Sensor::~Sensor
~Sensor()
Definition: kinetics-observer.hpp:1002
stateObservation::KineticsObserver::stateAngVelProcessCovMat_
Matrix3 stateAngVelProcessCovMat_
Definition: kinetics-observer.hpp:1539
stateObservation::KineticsObserver::contactTorqueInitVarianceDefault
static const double contactTorqueInitVarianceDefault
Definition: kinetics-observer.hpp:1484
stateObservation::KineticsObserver::Sensor::size
Index size
Definition: kinetics-observer.hpp:1005
stateObservation::KineticsObserver::absOriSensorCovMatDefault_
Matrix3 absOriSensorCovMatDefault_
Definition: kinetics-observer.hpp:1526
stateObservation::KineticsObserver::AbsoluteOriSensor::covMatrix
CheckedMatrix3 covMatrix
Definition: kinetics-observer.hpp:1091
stateObservation::KineticsObserver::imuSensors_
VectorIMU imuSensors_
Definition: kinetics-observer.hpp:1331
stateObservation::KineticsObserver::Sensor::time
TimeIndex time
Definition: kinetics-observer.hpp:1006
stateObservation::KineticsObserver::stateAngVelInitVarianceDefault
static const double stateAngVelInitVarianceDefault
Definition: kinetics-observer.hpp:1480
stateObservation::KineticsObserver::Contact::linearStiffness
Matrix3 linearStiffness
measurement covariance matrix of the wrench sensor attached to the contact.
Definition: kinetics-observer.hpp:1054
stateObservation::KineticsObserver::angularStiffnessMatDefault_
Matrix3 angularStiffnessMatDefault_
Definition: kinetics-observer.hpp:1517
stateObservation::KineticsObserver::stateOriProcessCovMat_
Matrix3 stateOriProcessCovMat_
Definition: kinetics-observer.hpp:1537
stateObservation::KineticsObserver::angularDampingMatDefault_
Matrix3 angularDampingMatDefault_
Definition: kinetics-observer.hpp:1519
stateObservation::KineticsObserver::unmodeledWrenchInitVarianceDefault
static const double unmodeledWrenchInitVarianceDefault
Definition: kinetics-observer.hpp:1482
stateObservation::Matrix6
Eigen::Matrix< double, 6, 6 > Matrix6
6x6 Scalar Matrix
Definition: definitions.hpp:121
stateObservation::KineticsObserver::defaultMass
static const double defaultMass
Definition: kinetics-observer.hpp:1475
stateObservation::KineticsObserver::defaultdx
static const double defaultdx
default derivation steps
Definition: kinetics-observer.hpp:1552
stateObservation::KineticsObserver::Sensor::measIndexTangent
Index measIndexTangent
Definition: kinetics-observer.hpp:1004
stateObservation::KineticsObserver::VectorIMU
std::vector< IMU, Eigen::aligned_allocator< IMU > > VectorIMU
Definition: kinetics-observer.hpp:1031
stateObservation::KineticsObserver::linearStiffnessMatDefault_
Matrix3 linearStiffnessMatDefault_
Default Stiffness and damping.
Definition: kinetics-observer.hpp:1516
stateObservation::StateVectorArithmetics
This class is used to customize the way the difference between measurements, the state update functio...
Definition: state-vector-arithmetics.hpp:27
stateObservation::KineticsObserver::orientationSensorVarianceDefault
static const double orientationSensorVarianceDefault
Definition: kinetics-observer.hpp:1502
stateObservation::DynamicalSystemFunctorBase
This is the base class of any functor that describes the dynamics of the state and the measurement....
Definition: dynamical-system-functor-base.hpp:32
noise-base.hpp
stateObservation::KineticsObserver::measurementCovMatrix_
Matrix measurementCovMatrix_
Definition: kinetics-observer.hpp:1352
stateObservation::KineticsObserver::oldWorldCentroidStateVector_
Vector oldWorldCentroidStateVector_
Definition: kinetics-observer.hpp:1340
stateObservation::KineticsObserver::VectorIMUConstIterator
VectorIMU::const_iterator VectorIMUConstIterator
Definition: kinetics-observer.hpp:1033
stateObservation::KineticsObserver::contactProcessCovMatDefault_
Matrix12 contactProcessCovMatDefault_
Definition: kinetics-observer.hpp:1546
stateObservation::KineticsObserver::finiteDifferencesJacobians_
bool finiteDifferencesJacobians_
Definition: kinetics-observer.hpp:1355
stateObservation::ExtendedKalmanFilter
Definition: extended-kalman-filter.hpp:42
stateObservation::KineticsObserver::stateOriInitVarianceDefault
static const double stateOriInitVarianceDefault
Definition: kinetics-observer.hpp:1478
stateObservation::KineticsObserver::Contact::worldRestPose
Kinematics worldRestPose
State ///.
Definition: kinetics-observer.hpp:1044
state-vector-arithmetics.hpp
stateObservation::KineticsObserver::positionSensorVarianceDefault
static const double positionSensorVarianceDefault
Definition: kinetics-observer.hpp:1501
stateObservation::KineticsObserver::Kinematics
kine::Kinematics Kinematics
Definition: kinetics-observer.hpp:44
stateObservation::KineticsObserver::Sensor
Definition: kinetics-observer.hpp:999
dynamical-system-functor-base.hpp
stateObservation::KineticsObserver::Contact::isSet
bool isSet
angular damping associated to the contact, used in the visco-elastic model
Definition: kinetics-observer.hpp:1061
stateObservation::KineticsObserver::maxImuNumber_
unsigned maxImuNumber_
Definition: kinetics-observer.hpp:1326
stateObservation::KineticsObserver::additionalTorque_
Vector3 additionalTorque_
Definition: kinetics-observer.hpp:1346
stateObservation::KineticsObserver::AbsolutePoseSensor
Definition: kinetics-observer.hpp:1077
stateObservation::KineticsObserver::stateAngVelProcessVarianceDefault
static const double stateAngVelProcessVarianceDefault
Definition: kinetics-observer.hpp:1489
stateObservation::KineticsObserver::contactWrenchSensorCovMatDefault_
Matrix6 contactWrenchSensorCovMatDefault_
Definition: kinetics-observer.hpp:1524
stateObservation::KineticsObserver::withUnmodeledWrench_
bool withUnmodeledWrench_
Definition: kinetics-observer.hpp:1357
stateObservation::KineticsObserver::dt_
double dt_
Definition: kinetics-observer.hpp:1369
stateObservation::KineticsObserver::Opt::ori2
Orientation & ori2
Definition: kinetics-observer.hpp:1563
stateObservation::NoiseBase
Definition: noise-base.hpp:28
stateObservation::KineticsObserver::AbsoluteOriSensor::ori
Orientation ori
Definition: kinetics-observer.hpp:1090
stateObservation::KineticsObserver::stateKinematicsInitCovMat_
Matrix12 stateKinematicsInitCovMat_
Definition: kinetics-observer.hpp:1548
stateObservation::KineticsObserver::Contact::linearDamping
Matrix3 linearDamping
linear stiffness associated to the contact, used in the visco-elastic model
Definition: kinetics-observer.hpp:1055
stateObservation::KineticsObserver::statePosProcessCovMat_
Matrix3 statePosProcessCovMat_
Definition: kinetics-observer.hpp:1536
stateObservation::KineticsObserver::Contact::angularDamping
Matrix3 angularDamping
angular stiffness associated to the contact, used in the visco-elastic model
Definition: kinetics-observer.hpp:1057
stateObservation::kine::Kinematics
Class facilitating the manipulation of the kinematics of a frame within another and the associated op...
Definition: rigid-body-kinematics.hpp:584
stateObservation::KineticsObserver::withGyroBias_
bool withGyroBias_
Definition: kinetics-observer.hpp:1356
stateObservation::KineticsObserver::statePoseProcessVarianceDefault
static const double statePoseProcessVarianceDefault
Definition: kinetics-observer.hpp:1486
stateObservation::KineticsObserver::IMU::acceleroGyro
Vector6 acceleroGyro
Definition: kinetics-observer.hpp:1021
stateObservation::KineticsObserver::Opt
a structure to optimize computations
Definition: kinetics-observer.hpp:1555
stateObservation::KineticsObserver::LocalKinematics
kine::LocalKinematics LocalKinematics
Definition: kinetics-observer.hpp:45
stateObservation::KineticsObserver::comdd_
IndexedVector3 comdd_
Definition: kinetics-observer.hpp:1360
stateObservation::KineticsObserver::measurementTangentSize_
Index measurementTangentSize_
Definition: kinetics-observer.hpp:1336
rigid-body-kinematics.hpp
Implements integrators for the kinematics, in terms or rotations and translations.
stateObservation::KineticsObserver::VectorContactIterator
VectorContact::iterator VectorContactIterator
Definition: kinetics-observer.hpp:1074
stateObservation::KineticsObserver::Contact
Definition: kinetics-observer.hpp:1035
stateObservation::Matrix
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Definition: definitions.hpp:100
stateObservation::KineticsObserver
This observer estimates the kinematics, the external forces, the bias on the gyrometers measurements,...
Definition: kinetics-observer.hpp:41
stateObservation::KineticsObserver::stateSize_
Index stateSize_
Definition: kinetics-observer.hpp:1333
stateObservation::KineticsObserver::stateKinematicsProcessCovMat_
Matrix12 stateKinematicsProcessCovMat_
Definition: kinetics-observer.hpp:1549
stateObservation::KineticsObserver::gyroBiasInitCovMat_
Matrix3 gyroBiasInitCovMat_
Definition: kinetics-observer.hpp:1532
stateObservation::KineticsObserver::gyroBiasProcessCovMat_
Matrix3 gyroBiasProcessCovMat_
Definition: kinetics-observer.hpp:1540
stateObservation::KineticsObserver::contactForceInitVarianceDefault
static const double contactForceInitVarianceDefault
Definition: kinetics-observer.hpp:1483
stateObservation::KineticsObserver::Sensor::measIndex
Index measIndex
Definition: kinetics-observer.hpp:1003
stateObservation::KineticsObserver::measurementNoise_
NoiseBase * measurementNoise_
Definition: kinetics-observer.hpp:1372
stateObservation::KineticsObserver::absPoseSensor_
AbsolutePoseSensor absPoseSensor_
Definition: kinetics-observer.hpp:1328
stateObservation::KineticsObserver::initTotalCentroidTorque_
Vector3 initTotalCentroidTorque_
Definition: kinetics-observer.hpp:1349
stateObservation::KineticsObserver::currentIMUSensorNumber_
Index currentIMUSensorNumber_
Definition: kinetics-observer.hpp:1375
stateObservation::KineticsObserver::stateAngVelInitCovMat_
Matrix3 stateAngVelInitCovMat_
Definition: kinetics-observer.hpp:1531
stateObservation::KineticsObserver::stateOriInitCovMat_
Matrix3 stateOriInitCovMat_
Definition: kinetics-observer.hpp:1529
stateObservation::TimeIndex
long int TimeIndex
Definition: definitions.hpp:139
stateObservation::KineticsObserver::linearDampingDefault
static const double linearDampingDefault
Definition: kinetics-observer.hpp:1506
stateObservation::KineticsObserver::Orientation
kine::Orientation Orientation
Definition: kinetics-observer.hpp:46
stateObservation::kine::LocalKinematics
Class facilitating the manipulation of the local kinematics of a frame within another and the associa...
Definition: rigid-body-kinematics.hpp:677
stateObservation::KineticsObserver::stateOriProcessVarianceDefault
static const double stateOriProcessVarianceDefault
Definition: kinetics-observer.hpp:1487
stateObservation::KineticsObserver::maxContacts_
unsigned maxContacts_
Definition: kinetics-observer.hpp:1325
stateObservation::KineticsObserver::Contact::stateIndexTangent
Index stateIndexTangent
Definition: kinetics-observer.hpp:1064
stateObservation::Matrix3
Eigen::Matrix3d Matrix3
3x3 Scalar Matrix
Definition: definitions.hpp:109
stateObservation::KineticsObserver::numberOfContactRealSensors_
Index numberOfContactRealSensors_
Definition: kinetics-observer.hpp:1374
stateObservation::KineticsObserver::statePosInitCovMat_
Matrix3 statePosInitCovMat_
Definition: kinetics-observer.hpp:1528
stateObservation::KineticsObserver::gyroBiasProcessVarianceDefault
static const double gyroBiasProcessVarianceDefault
Definition: kinetics-observer.hpp:1490
stateObservation::KineticsObserver::Contact::withRealSensor
bool withRealSensor
Definition: kinetics-observer.hpp:1062
stateObservation::KineticsObserver::IMU::covMatrixAccelero
Matrix3 covMatrixAccelero
Definition: kinetics-observer.hpp:1022
stateObservation::KineticsObserver::Contact::stateIndex
Index stateIndex
Definition: kinetics-observer.hpp:1063
stateObservation::Vector6
Eigen::Matrix< double, 6, 1 > Vector6
6D vector
Definition: definitions.hpp:97
stateObservation::Index
Eigen::Index Index
Definition: definitions.hpp:138
stateObservation::KineticsObserver::contactForceProcessVarianceDefault
static const double contactForceProcessVarianceDefault
Definition: kinetics-observer.hpp:1494
stateObservation::KineticsObserver::unmodeledWrenchProcessVarianceDefault
static const double unmodeledWrenchProcessVarianceDefault
Definition: kinetics-observer.hpp:1491
stateObservation::KineticsObserver::measurementSize_
Index measurementSize_
Definition: kinetics-observer.hpp:1335
stateObservation::KineticsObserver::Contact::Contact
Contact()
Definition: kinetics-observer.hpp:1037
stateObservation::KineticsObserver::forceSensorVarianceDefault
static const double forceSensorVarianceDefault
Definition: kinetics-observer.hpp:1499
definitions.hpp
Definitions of types and some structures.
stateObservation::KineticsObserver::Contact::angularStiffness
Matrix3 angularStiffness
linear damping associated to the contact, used in the visco-elastic model
Definition: kinetics-observer.hpp:1056
stateObservation::KineticsObserver::VectorContact
std::vector< Contact, Eigen::aligned_allocator< Contact > > VectorContact
Definition: kinetics-observer.hpp:1073
stateObservation::KineticsObserver::unmodeledWrenchProcessCovMat_
Matrix6 unmodeledWrenchProcessCovMat_
Definition: kinetics-observer.hpp:1541
stateObservation::KineticsObserver::contactForceProcessCovMat_
Matrix3 contactForceProcessCovMat_
Definition: kinetics-observer.hpp:1544
stateObservation::KineticsObserver::angularDampingDefault
static const double angularDampingDefault
Definition: kinetics-observer.hpp:1507
stateObservation::KineticsObserver::IMU::userImuKinematics
Kinematics userImuKinematics
Definition: kinetics-observer.hpp:1019
stateObservation::KineticsObserver::gyroBiasInitVarianceDefault
static const double gyroBiasInitVarianceDefault
Definition: kinetics-observer.hpp:1481
stateObservation::KineticsObserver::acceleroVarianceDefault
static const double acceleroVarianceDefault
Definition: kinetics-observer.hpp:1497
stateObservation::KineticsObserver::worldCentroidStateVector_
Vector worldCentroidStateVector_
Definition: kinetics-observer.hpp:1338
stateObservation::KineticsObserver::VectorIMUIterator
VectorIMU::iterator VectorIMUIterator
Definition: kinetics-observer.hpp:1032
stateObservation::KineticsObserver::acceleroCovMatDefault_
Matrix3 acceleroCovMatDefault_
Definition: kinetics-observer.hpp:1522
stateObservation::CheckedItem< Matrix6, false, false, true, true, CheckNaN >
stateObservation::KineticsObserver::Contact::centroidContactKine
Kinematics centroidContactKine
Describes the kinematics of the contact point in the centroid's frame.
Definition: kinetics-observer.hpp:1051
stateObservation::KineticsObserver::contacts_
VectorContact contacts_
Definition: kinetics-observer.hpp:1330
stateObservation::KineticsObserver::AbsolutePoseSensor::AbsolutePoseSensor
AbsolutePoseSensor()
Definition: kinetics-observer.hpp:1079
stateObservation::KineticsObserver::measurementVector_
Vector measurementVector_
Definition: kinetics-observer.hpp:1351
stateObservation::KineticsObserver::IMU::covMatrixGyro
Matrix3 covMatrixGyro
Definition: kinetics-observer.hpp:1023
stateObservation::KineticsObserver::VectorContactConstIterator
VectorContact::const_iterator VectorContactConstIterator
Definition: kinetics-observer.hpp:1075
stateObservation::KineticsObserver::Sensor::extractFromVector
Vector extractFromVector(const Vector &v)
Definition: kinetics-observer.hpp:1008
stateObservation::KineticsObserver::gyroCovMatDefault_
Matrix3 gyroCovMatDefault_
Definition: kinetics-observer.hpp:1523
stateObservation::KineticsObserver::Opt::ori
Orientation & ori
Definition: kinetics-observer.hpp:1561
stateObservation::kine::Orientation
Definition: rigid-body-kinematics.hpp:354
stateObservation::KineticsObserver::linearStiffnessDefault
static const double linearStiffnessDefault
Definition: kinetics-observer.hpp:1504
stateObservation::KineticsObserver::absOriSensor_
AbsoluteOriSensor absOriSensor_
Definition: kinetics-observer.hpp:1329
stateObservation::KineticsObserver::absPoseSensorCovMatDefault_
Matrix6 absPoseSensorCovMatDefault_
Definition: kinetics-observer.hpp:1525
stateObservation::Matrix12
Eigen::Matrix< double, 12, 12 > Matrix12
12x12 scalar Matrix
Definition: definitions.hpp:124
stateObservation::KineticsObserver::k_est_
TimeIndex k_est_
Definition: kinetics-observer.hpp:1364
stateObservation::KineticsObserver::contactOrientationProcessVarianceDefault
static const double contactOrientationProcessVarianceDefault
Definition: kinetics-observer.hpp:1493
stateObservation::KineticsObserver::statePoseInitVarianceDefault
static const double statePoseInitVarianceDefault
Definition: kinetics-observer.hpp:1477
stateObservation::KineticsObserver::processNoise_
NoiseBase * processNoise_
Definition: kinetics-observer.hpp:1371
stateObservation::KineticsObserver::worldCentroidKinematics_
Kinematics worldCentroidKinematics_
Definition: kinetics-observer.hpp:1343
stateObservation::KineticsObserver::contactInitCovMatDefault_
Matrix12 contactInitCovMatDefault_
Definition: kinetics-observer.hpp:1534
stateObservation::KineticsObserver::contactTorqueProcessVarianceDefault
static const double contactTorqueProcessVarianceDefault
Definition: kinetics-observer.hpp:1495
stateObservation::KineticsObserver::IMU::stateIndexTangent
Index stateIndexTangent
Definition: kinetics-observer.hpp:1026
extended-kalman-filter.hpp
stateObservation::KineticsObserver::IMU::~IMU
~IMU()
Definition: kinetics-observer.hpp:1016
stateObservation::KineticsObserver::AbsolutePoseSensor::pose
Kinematics pose
Definition: kinetics-observer.hpp:1081
stateObservation::KineticsObserver::stateLinVelInitVarianceDefault
static const double stateLinVelInitVarianceDefault
Definition: kinetics-observer.hpp:1479
stateObservation::KineticsObserver::worldCentroidStateKinematics_
LocalKinematics worldCentroidStateKinematics_
Definition: kinetics-observer.hpp:1342
stateObservation::KineticsObserver::initTotalCentroidForce_
Vector3 initTotalCentroidForce_
Definition: kinetics-observer.hpp:1348
stateObservation::Vector3
Eigen::Vector3d Vector3
3D vector
Definition: definitions.hpp:85
stateObservation::KineticsObserver::contactTorqueProcessCovMat_
Matrix3 contactTorqueProcessCovMat_
Definition: kinetics-observer.hpp:1545
stateObservation::KineticsObserver::Sensor::Sensor
Sensor(Index signalSize)
Definition: kinetics-observer.hpp:1001
stateObservation::KineticsObserver::IMU::stateIndex
Index stateIndex
Definition: kinetics-observer.hpp:1025
stateObservation::KineticsObserver::AbsolutePoseSensor::covMatrix
CheckedMatrix6 covMatrix
Definition: kinetics-observer.hpp:1083
stateObservation::KineticsObserver::unmodeledWrenchInitCovMat_
Matrix6 unmodeledWrenchInitCovMat_
Definition: kinetics-observer.hpp:1533
stateObservation::IndexedMatrixT< Matrix3 >
stateObservation::KineticsObserver::mass_
double mass_
Definition: kinetics-observer.hpp:1367
stateObservation
Definition: bidim-elastic-inv-pendulum-dyn-sys.hpp:20
stateObservation::KineticsObserver::k_data_
TimeIndex k_data_
Definition: kinetics-observer.hpp:1365
stateObservation::KineticsObserver::stateLinVelProcessVarianceDefault
static const double stateLinVelProcessVarianceDefault
Definition: kinetics-observer.hpp:1488
stateObservation::KineticsObserver::linearDampingMatDefault_
Matrix3 linearDampingMatDefault_
Definition: kinetics-observer.hpp:1518
stateObservation::KineticsObserver::contactPositionProcessVarianceDefault
static const double contactPositionProcessVarianceDefault
Definition: kinetics-observer.hpp:1492
stateObservation::KineticsObserver::Opt::locKine
LocalKinematics & locKine
Definition: kinetics-observer.hpp:1560
stateObservation::KineticsObserver::stateTangentSize_
Index stateTangentSize_
Definition: kinetics-observer.hpp:1334
stateObservation::KineticsObserver::IMU
Definition: kinetics-observer.hpp:1014
stateObservation::KineticsObserver::torqueSensorVarianceDefault
static const double torqueSensorVarianceDefault
Definition: kinetics-observer.hpp:1500
stateObservation::KineticsObserver::AbsoluteOriSensor::AbsoluteOriSensor
AbsoluteOriSensor()
Definition: kinetics-observer.hpp:1088
stateObservation::KineticsObserver::stateLinVelInitCovMat_
Matrix3 stateLinVelInitCovMat_
Definition: kinetics-observer.hpp:1530
stateObservation::KineticsObserver::Contact::wrenchMeasurement
Vector6 wrenchMeasurement
Measurements ///.
Definition: kinetics-observer.hpp:1047
stateObservation::KineticsObserver::Id_
IndexedMatrix3 Id_
Definition: kinetics-observer.hpp:1362
stateObservation::KineticsObserver::IMU::centroidImuKinematics
LocalKinematics centroidImuKinematics
Definition: kinetics-observer.hpp:1020
stateObservation::KineticsObserver::Opt::ori1
Orientation & ori1
Definition: kinetics-observer.hpp:1562
stateObservation::KineticsObserver::additionalForce_
Vector3 additionalForce_
Definition: kinetics-observer.hpp:1345
stateObservation::KineticsObserver::Contact::sensorCovMatrix
CheckedMatrix6 sensorCovMatrix
Describes the kinematics of the contact point in the centroid's frame.
Definition: kinetics-observer.hpp:1052
stateObservation::KineticsObserver::Contact::~Contact
~Contact()
Definition: kinetics-observer.hpp:1041
stateObservation::KineticsObserver::IMU::IMU
IMU()
Definition: kinetics-observer.hpp:1017