Including Tracking Data in an Estimation Process

Top  Previous  Next

You can define tracking data sources to be used in an estimation process through the object editors or through FreeFlyer script. The process is the same, regardless of the type of estimator being used.

 

 

Including Tracking Data through the Object Editors


When working with a BatchLeastSquaresOD, KalmanFilterOD, SquareRootInformationFilterOD, or UnscentedKalmanFilterOD object that has been created in the Object Browser, you can use its object editor to define the tracking data files that will be included in the estimation process. Edit the OD object by double-clicking it, and then proceed to the Observation Sources page (shown in the image below). From this page, you can add any of the file types supported natively by FreeFlyer. Each file type has different configuration options; the yellow text box on the right side of the screen will tell you whether your current configuration is valid.

 

Observation Sources page of the UnscentedKalmanFilterOD Object Editor

Observation Sources page of the UnscentedKalmanFilterOD Object Editor

 

Configuration options for each file include:

 

Setting the source and target objects (observing objects and objects being observed) for the observations in the file.

Setting the Sensor to use to model an antenna offset from the origin of the Spacecraft body coordinate system (BCS) for a GPS Receiver, Transponder, or TDRS Transponder (optional).

Setting the flags to indicate what measurement data should be used.

Setting other options to indicate whether additional corrections should be applied to the data.

 

If multiple GroundStations are provided as observers, FreeFlyer will automatically assign appropriate receiving and transmitting antennas from the list provided based on their ID when processing data from a tracking data file, allowing for processing of "2-way" or "3-way" observations. See Simulating 3-way Observations for more information.

 

Including Tracking Data through FreeFlyer Script


When working with a BatchLeastSquaresOD, KalmanFilterOD, SquareRootInformationFilterOD, or UnscentedKalmanFilterOD object that has been created in FreeFlyer script, you will need to create additional objects in script representing the tracking data files that will be used. For each of these files, you will need to set the source and target objects, as well as the data and corrections to use. Once the file objects have been created, you can include them in an estimation process using the RegisterTrackingDataFile method.

 

// Create and set up Filter

KalmanFilterOD KalmanFilterOD1;

KalmanFilterOD1.AddObjectToProcess(EstimatedSC);

 

//  ----or----

 

// Create and set up a Batch

BatchLeastSquaresOD BatchLeastSquaresOD1;

BatchLeastSquaresOD1.AddObjectToProcess(EstimatedSC);

 

 

// Create and set up observation file

FFGroundObservationFile FFGroundObservationFile1;

 

FFGroundObservationFile1.Filename = "..\_Support_Files\FFGroundObservationSampleData.txt";

FFGroundObservationFile1.SetObservedSpacecraft(EstimatedSC);

FFGroundObservationFile1.AddObservationSource(Canberra);

FFGroundObservationFile1.AddObservationSource(Goldstone);

FFGroundObservationFile1.AddObservationSource(Madrid);

 

FFGroundObservationFile1.UseRange          = 1;

FFGroundObservationFile1.UseRangeRate      = 1;

FFGroundObservationFile1.UseAzimuth        = 1;

FFGroundObservationFile1.UseElevation      = 1;

FFGroundObservationFile1.UseRightAscension = 1;

FFGroundObservationFile1.UseDeclination    = 1;

 

FFGroundObservationFile1.UseIonosphericCorrection  = 1;

FFGroundObservationFile1.UseLightTimeCorrection    = 1;

FFGroundObservationFile1.UseTroposphericCorrection = 1;

 

FFGroundObservationFile1.UseMeasurementWeighting = 1;

 

 

// Add the observation file to the Kalman Filter

KalmanFilterOD1.RegisterTrackingDataFile(FFGroundObservationFile1);

 

//  ----or----

 

// Add the observation file to the Batch

BatchLeastSquaresOD1.RegisterTrackingDataFile(FFGroundObservationFile1);

 

// Initialize the BatchLeastSquaresOD object's Observations array with the observations within FFGroundObservationFile1

BatchLeastSquaresOD1.LoadObservationData(); 

 

Each file type has different configuration options, including some optional settings. The example below shows how to specify an observed Transponder or Transponder/Sensor pair in addition to setting the observed Spacecraft. If a Sensor is specified, the Sensor's X, Y, and Z position properties will be used to model an offset from the origin of the Spacecraft body coordinate system (BCS) when modeling measurements. This is particularly relevant for Spacecraft with rapidly changing attitudes, such as spinning Spacecraft.

 

FFGroundObservationFile FFGroundObservationFile1;

 

// Set the observed Spacecraft (required)

FFGroundObservationFile1.SetObservedSpacecraft(EstimatedSC);

 

// Set an observed Transponder (optional)

FFGroundObservationFile1.SetObservedTransponder(EstimatedSC.Transponders[0]);

 

// -- OR -- Set an observed Transponder and an attached Sensor (optional)

EstimatedSC.Transponders[0].Attach(EstimatedSC.Sensors[0]);

FFGroundObservationFile1.SetObservedTransponder(EstimatedSC.Transponders[0], EstimatedSC.Sensors[0]);