function
Estimation.StrapdownINS.ESKF.TickUpdates.OpticalFlowTick
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | previous | State | | |
| input | tuning | Tuning | | |
| input | gravityWorldEnu_m_s2 | Real | [3] | |
| input | imuTime | Real | | |
| input | angularVelocity | Real | [3] | |
| input | specificForce | Real | [3] | |
| input | requested | Boolean | | |
| input | opticalFlow | Avionics.OpticalFlowSample | | |
| output | next | State | | |
| output | accepted | Boolean | | |
| output | outcome | Integer | | |
| output | nis | Real | |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
function OpticalFlowTick
input State previous;
input Tuning tuning;
input Real gravityWorldEnu_m_s2[3];
input Real imuTime;
input Real angularVelocity[3];
input Real specificForce[3];
input Boolean requested;
input Avionics.OpticalFlowSample opticalFlow;
output State next;
output Boolean accepted;
output Integer outcome;
output Real nis;
algorithm
accepted := false; outcome := CorrectionNotAttempted; nis := 0.0;
if requested then
(next, accepted, outcome, nis) := correctOpticalFlow(previous, opticalFlow,
tuning.innovationGate, imuTime-opticalFlow.timestamp_s,
angularVelocity, specificForce, gravityWorldEnu_m_s2,
tuning.maximumAidingDelay_s, tuning.minimumOpticalFlowQuality,
tuning.minimumOpticalFlowGroundDistance_m, tuning.useSemiDirectBias);
else
next := copyState(previous);
end if;
end OpticalFlowTick;