@@ -170,43 +170,16 @@ void InertialAttitudeUkf::readStarTrackerData(){
170
170
* @return void
171
171
* */
172
172
void InertialAttitudeUkf::readGyroData (){
173
- int smallestFutureIndex = 0 ;
174
- int numberOfValidGyroMeasurements = 0 ;
175
- double firstFutureTime = -1 ;
176
- double meanMeasurementTime = 0 ;
177
- AccDataMsgPayload gyrBuffer = this ->accelDataMsg ();
178
- for (int index = 0 ; index < MAX_ACC_BUF_PKT; index ++) {
179
- double gyroMeasuredTime = gyrBuffer.accPkts [index ].measTime *NANO2SEC;
180
- if (gyroMeasuredTime > this ->previousFilterTimeTag ) {
181
- if (gyroMeasuredTime < firstFutureTime || firstFutureTime<0 ){
182
- smallestFutureIndex = index ;
183
- firstFutureTime = gyroMeasuredTime;
184
- }
185
- meanMeasurementTime += gyroMeasuredTime;
186
- numberOfValidGyroMeasurements += 1 ;
187
- }
188
- }
189
- auto lowPass = LowPassFilter ();
190
- lowPass.setFilterCutoff (this ->cutOffFrequency );
191
- lowPass.setFilterStep (this ->hStep );
192
- if (numberOfValidGyroMeasurements > 0 ){
193
- meanMeasurementTime /= numberOfValidGyroMeasurements;
194
- /* ! - Loop through buffer for all future measurements since the previous time to filter omega_BN_B*/
195
- for (int index = 0 ; index < MAX_ACC_BUF_PKT; index ++) {
196
- int shiftedIndex = (index + smallestFutureIndex) % MAX_ACC_BUF_PKT;
197
- auto omega_BN_B = Eigen::Map<Eigen::Vector3d>(gyrBuffer.accPkts [shiftedIndex].gyro_B );
198
- /* ! - Apply low-pass filter to gyro measurements to get smoothed body rate*/
199
- lowPass.processMeasurement (omega_BN_B);
200
- }
201
-
173
+ IMUSensorMsgPayload gyroBuffer = this ->imuSensorDataInMsg ();
174
+ if (gyroBuffer.timeTag *NANO2SEC > this ->previousFilterTimeTag ) {
202
175
auto gyroMeasurement = MeasurementModel ();
203
176
gyroMeasurement.setMeasurementName (" gyro" );
204
- gyroMeasurement.setTimeTag (meanMeasurementTime );
177
+ gyroMeasurement.setTimeTag (gyroBuffer. timeTag );
205
178
gyroMeasurement.setValidity (true );
206
179
207
180
gyroMeasurement.setMeasurementNoise (
208
- this ->measNoiseScaling * this ->gyroNoise /std::sqrt (numberOfValidGyroMeasurements));
209
- gyroMeasurement.setObservation (lowPass. getCurrentState ( ));
181
+ this ->measNoiseScaling * this ->gyroNoise /std::sqrt (gyroBuffer. numberOfValidGyroMeasurements ));
182
+ gyroMeasurement.setObservation (cArray2EigenVector3d (gyroBuffer. AngVelPlatform ));
210
183
gyroMeasurement.setMeasurementModel (MeasurementModel::velocityStates);
211
184
this ->measurements [this ->measurementIndex ] = gyroMeasurement;
212
185
this ->measurementIndex += 1 ;
0 commit comments