function
Estimation.FusionHorizon.unpackOpticalFlow
Expand one optical-flow queue row into connector fields
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | row | Real | [OpticalFlowMeasurementLength] | |
| output | timestamp_s | Real | | |
| output | integratedLineOfSight_rad | Real | [2] | |
| output | integratedLineOfSightCovariance_rad2 | Real | [2, 2] | |
| output | integratedGyroscopeBodyFlu_rad | Real | [3] | |
| output | integratedGyroscopeCovariance_rad2 | Real | [3, 3] | |
| output | integrationTime_s | Real | | |
| output | groundDistance_m | Real | | |
| output | groundDistanceVariance_m2 | Real | | |
| output | quality | Real | |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
function unpackOpticalFlow
"Expand one optical-flow queue row into connector fields"
input Real row[OpticalFlowMeasurementLength];
output Real timestamp_s;
output Real integratedLineOfSight_rad[2];
output Real integratedLineOfSightCovariance_rad2[2, 2];
output Real integratedGyroscopeBodyFlu_rad[3];
output Real integratedGyroscopeCovariance_rad2[3, 3];
output Real integrationTime_s;
output Real groundDistance_m;
output Real groundDistanceVariance_m2;
output Real quality;
algorithm
timestamp_s := row[1];
integratedLineOfSight_rad := row[2:3];
integratedLineOfSightCovariance_rad2 :=
[row[4], row[5];
row[6], row[7]];
integratedGyroscopeBodyFlu_rad := row[8:10];
integratedGyroscopeCovariance_rad2 :=
[row[11], row[12], row[13];
row[14], row[15], row[16];
row[17], row[18], row[19]];
integrationTime_s := row[20];
groundDistance_m := row[21];
groundDistanceVariance_m2 := row[22];
quality := row[23];
end unpackOpticalFlow;