Exemplo n.º 1
0
void booz_sensors_model_mag_init( double time ) {

  bsm.mag = v_get(AXIS_NB);
  bsm.mag->ve[AXIS_X] = 0.;
  bsm.mag->ve[AXIS_Y] = 0.;
  bsm.mag->ve[AXIS_Z] = 0.;
  //  bsm.mag_resolution = BSM_MAG_RESOLUTION;

  bsm.mag_imu_to_sensor = m_get(AXIS_NB, AXIS_NB);
  VEC* tmp_eulers = v_get(AXIS_NB);
  tmp_eulers->ve[EULER_PHI]   = BSM_MAG_IMU_TO_SENSOR_PHI;
  tmp_eulers->ve[EULER_THETA] = BSM_MAG_IMU_TO_SENSOR_THETA;
  tmp_eulers->ve[EULER_PSI]   = BSM_MAG_IMU_TO_SENSOR_PSI;
  dcm_of_eulers (tmp_eulers, bsm.mag_imu_to_sensor );

  bsm.mag_sensitivity = m_get(AXIS_NB, AXIS_NB);
  m_zero(bsm.mag_sensitivity);
  bsm.mag_sensitivity->me[AXIS_X][AXIS_X] = BSM_MAG_SENSITIVITY_XX;
  bsm.mag_sensitivity->me[AXIS_Y][AXIS_Y] = BSM_MAG_SENSITIVITY_YY;
  bsm.mag_sensitivity->me[AXIS_Z][AXIS_Z] = BSM_MAG_SENSITIVITY_ZZ;

  bsm.mag_neutral = v_get(AXIS_NB);
  bsm.mag_neutral->ve[AXIS_X] = BSM_MAG_NEUTRAL_X;
  bsm.mag_neutral->ve[AXIS_Y] = BSM_MAG_NEUTRAL_Y;
  bsm.mag_neutral->ve[AXIS_Z] = BSM_MAG_NEUTRAL_Z;

  bsm.mag_noise_std_dev = v_get(AXIS_NB);
  bsm.mag_noise_std_dev->ve[AXIS_X] = BSM_MAG_NOISE_STD_DEV_X;
  bsm.mag_noise_std_dev->ve[AXIS_Y] = BSM_MAG_NOISE_STD_DEV_Y;
  bsm.mag_noise_std_dev->ve[AXIS_Z] = BSM_MAG_NOISE_STD_DEV_Z;

  bsm.mag_next_update = time;
  bsm.mag_available = FALSE;

}
Exemplo n.º 2
0
void booz_sensors_model_init(double time) {
 
  VEC* tmp_eulers = v_get(AXIS_NB);
  tmp_eulers->ve[EULER_PHI]   = BSM_BODY_TO_IMU_PHI;
  tmp_eulers->ve[EULER_THETA] = BSM_BODY_TO_IMU_THETA;
  tmp_eulers->ve[EULER_PSI]   = BSM_BODY_TO_IMU_PSI;
  bsm.body_to_imu = m_get(AXIS_NB, AXIS_NB);
  dcm_of_eulers (tmp_eulers, bsm.body_to_imu );

  booz_sensors_model_accel_init(time);
  booz_sensors_model_gyro_init(time);
  booz_sensors_model_mag_init(time);
  booz_sensors_model_rangemeter_init(time);
  booz_sensors_model_baro_init(time);
  booz_sensors_model_gps_init(time);

}