Пример #1
0
 /**
  * sets segment current orientation using TRIAD algorithm
  *
  * @param sensor sensor of corresponding sensor
  */
 public void setSegmentOrientationTRIAD(Sensor sensor) {
   float[][] rotMat =
       SensorDataProcessing.getRotationTRIAD(sensor.getAccNorm(), sensor.getMagNorm());
   // rotate each segment
   for (int i = 0; i < 4; i++) {
     SensorDataProcessing.multiplyMatrix(rotMat, initialCross[i], cross[i]);
   }
 }
Пример #2
0
  public static void compansateCentersForTilt(
      Vector<Vector<Segment>> refferenceStateInitial,
      Vector<Vector<Segment>> refferenceState,
      float[][] Rreference,
      float[][] Rcurent) {
    float[][] R = SensorDataProcessing.multMatMatT(Rcurent, Rreference);

    // SensorDataProcessing.transpose(R);
    for (int i = 0; i < refferenceState.size(); i++) {
      for (int j = 0; j < refferenceState.get(0).size(); j++) {

        SensorDataProcessing.multiplyMatrix(
            R, refferenceStateInitial.get(i).get(j).center, refferenceState.get(i).get(j).center);
      }
    }
  }
Пример #3
0
  public static void compansateCentersForTilt(
      Segment[][] refferenceStateInitial,
      Segment[][] refferenceState,
      float[][] Rreference,
      float[][] Rcurent) {
    float[][] R = SensorDataProcessing.multMatMatT(Rcurent, Rreference);

    // SensorDataProcessing.transpose(R);
    for (int i = 0; i < refferenceState.length; i++) {
      for (int j = 0; j < refferenceState[0].length; j++) {

        SensorDataProcessing.multiplyMatrix(
            R, refferenceStateInitial[i][j].center, refferenceState[i][j].center);
      }
    }
  }