Go lang implementations of the Kalman Filter and its variantes, along with examples in statistical orbit determination.
estimateChan := make(chan(Estimate), 1)
go processEstimates(estimateChan)
kf := New[KalmanFilter](...) // e.g. NewVanilla(...)
for k, measurement := range measurements {
newEstimate, err := kf.Update(measurement, controlVectors[k])
if err != nil {
processError(err)
continue
}
estimateChan <- newEstimate
}
close(estimateChan)
// Should add a usage of sync.