Module HOUND.Contact.Estimator
HOUND.Contact.Estimator
Legacy Kalman implementation
| HOUND.Contact.Estimator.accuracyScore (err) | Fuzzy logic score |
| HOUND.Contact.Estimator.Kalman.posFilter () | Kalman Filter implementation for position |
| HOUND.Contact.Estimator.Kalman.AzFilter (maxError) | Kalman Filter implementation for Azimuth |
| HOUND.Contact.Estimator.Kalman.AzElFilter () | Kalman Filter implementation for position. |
Pseudo-linear Kalman filter
| HOUND.Contact.Estimator.UPLKF | UB-PLKF (Unbiased Pseudo-Linear Kalman Filter) Implementation of algorithem described in https://www.mdpi.com/2072-4292/13/15/2915 |
| HOUND.Contact.Estimator.UPLKF:create (p0, v0, timestamp, initialPosError, isMobile) | Create PLKF instance |
| HOUND.Contact.Estimator.UPLKF:getEstimatedPos (state) | get current estimated position in DCS point from a Kalman state |
| HOUND.Contact.Estimator.UPLKF:getUncertainty ([confidence]) | Get uncertainty ellipse from covariance matrix P Extracts position covariance (upper-left 2x2 of P) and computes ellipse parameters |
| HOUND.Contact.Estimator.UPLKF.normalizeAz (azimuth) | normalize azimuth to East aligned counterclockwise |
| HOUND.Contact.Estimator.UPLKF.bearingToAzimuth (bearing) | Convert bearing to DCS azimuth |
| HOUND.Contact.Estimator.UPLKF:updateMarker () | update debug marker draw a debug marker from current self.state |
| HOUND.Contact.Estimator.UPLKF:getF (deltaT) | create F matrix |
| HOUND.Contact.Estimator.UPLKF:getQ (deltaT) | create the Q matrix |
| HOUND.Contact.Estimator.UPLKF:predictStep (X, P, timestep, Q) | Kalman prediction step for provided state |
| HOUND.Contact.Estimator.UPLKF:predict (timestamp) | Perform a prediction for the filter and update state |
| HOUND.Contact.Estimator.UPLKF:update (p0, z, timestamp, z_err) | perform update of state with mesurment |
Legacy Kalman implementation
- HOUND.Contact.Estimator.accuracyScore (err)
-
Fuzzy logic score
Parameters:
- err
- HOUND.Contact.Estimator.Kalman.posFilter ()
-
Kalman Filter implementation for position
Returns:
-
Kalman filter instance
- HOUND.Contact.Estimator.Kalman.AzFilter (maxError)
-
Kalman Filter implementation for Azimuth
Parameters:
- maxError maximum expected angular error (~2σ bound) in radians
Returns:
-
Kalman filter instance
- HOUND.Contact.Estimator.Kalman.AzElFilter ()
-
Kalman Filter implementation for position.
Returns:
-
Kalman filter instance
Pseudo-linear Kalman filter
- HOUND.Contact.Estimator.UPLKF
- UB-PLKF (Unbiased Pseudo-Linear Kalman Filter) Implementation of algorithem described in https://www.mdpi.com/2072-4292/13/15/2915
- HOUND.Contact.Estimator.UPLKF:create (p0, v0, timestamp, initialPosError, isMobile)
-
Create PLKF instance
Parameters:
- p0 Initial position (DCS point)
- v0 optional table Initial velocity (x,z)
- timestamp optional number Initial time
- initialPosError optional number Uncertainty of position measurement
- isMobile optional boolean Is the platform mobile?
- HOUND.Contact.Estimator.UPLKF:getEstimatedPos (state)
-
get current estimated position in DCS point from a Kalman state
Parameters:
- state optional table from which position will be extracted. defaults self.state.
Returns:
-
DCS point.
- HOUND.Contact.Estimator.UPLKF:getUncertainty ([confidence])
-
Get uncertainty ellipse from covariance matrix P
Extracts position covariance (upper-left 2x2 of P) and computes ellipse parameters
Parameters:
- confidence Confidence level multiplier (default 2.45 for ~95% confidence) (optional)
Returns:
-
table with major, minor, theta, az, r (same format as calculateEllipse)
- HOUND.Contact.Estimator.UPLKF.normalizeAz (azimuth)
-
normalize azimuth to East aligned counterclockwise
Parameters:
- azimuth number in radians (0-2Pi)
Returns:
-
angle in radian (-pi to pi) east aligned counterclockwise rotation
- HOUND.Contact.Estimator.UPLKF.bearingToAzimuth (bearing)
-
Convert bearing to DCS azimuth
Parameters:
- bearing number in radians (clockwise from East)
Returns:
-
azimuth in radians (clockwise from North)
- HOUND.Contact.Estimator.UPLKF:updateMarker ()
- update debug marker draw a debug marker from current self.state
- HOUND.Contact.Estimator.UPLKF:getF (deltaT)
-
create F matrix
Parameters:
- deltaT
Returns:
-
F matrix
- HOUND.Contact.Estimator.UPLKF:getQ (deltaT)
-
create the Q matrix
Parameters:
- deltaT optional number time from last mesurement. default is 10 seconds
Returns:
-
Q matrix
Process noise represents target motion uncertainty (acceleration), NOT measurement noise
For stationary radars: very low (q_a ~ 0.01 m/s²)
For mobile targets: moderate (q_a ~ 1 m/s² for slowly maneuvering)
- HOUND.Contact.Estimator.UPLKF:predictStep (X, P, timestep, Q)
-
Kalman prediction step for provided state
Parameters:
- X table state matrix for prediction
- P table state covariance matrix
- timestep number (in seconds)
- Q optional table process nose matrix. will be generated with generic settings if not provided
Returns:
- x_hat the predicted state matrix
- P_hat the predicted state covariance matrix
- HOUND.Contact.Estimator.UPLKF:predict (timestamp)
-
Perform a prediction for the filter and update state
Parameters:
- timestamp optional number DCS AbsTime timestamp
- HOUND.Contact.Estimator.UPLKF:update (p0, z, timestamp, z_err)
-
perform update of state with mesurment
Parameters:
- p0 table Position of platform (DCS point)
- z number current mesurment
- timestamp number time of mesurment
- z_err number maximum error in mesurment (radians)