function
SLAM.Localization.RGBDLocalizationCatalog.FrameBound
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 | proposed | Estimator | | |
| input | measurement | RGBDKeyframes.Frame | | |
| input | imageEpoch | Integer | | |
| input | imageTime | Real | | |
| input | observationAccepted | Real | | |
| input | captureAccepted | Real | | |
| input | frameAccepted | Boolean | | |
| output | frameBound | Boolean | |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
function FrameBound
input State previous; input Estimator proposed; input RGBDKeyframes.Frame measurement;
input Integer imageEpoch; input Real imageTime;
input Real observationAccepted; input Real captureAccepted; input Boolean frameAccepted;
output Boolean frameBound;
algorithm
frameBound := frameAccepted and measurement.generation == previous.generation
and measurement.id == previous.catalog.nextId and measurement.epoch == imageEpoch
and SLAMExactRealEqual(measurement.imageTime,imageTime)
and measurement.vocabularyVersion == previous.catalog.vocabularyVersion
and (SLAMExactRealEqual(observationAccepted,1.0) or SLAMExactRealEqual(captureAccepted,1.0));
if frameBound then
for axis in 1:dimension loop
frameBound := frameBound and SLAMExactRealEqual(measurement.bodyPosition[axis],proposed.position[axis]);
for column in 1:dimension loop
frameBound := frameBound and SLAMExactRealEqual(measurement.bodyRotation[axis,column],proposed.rotation[axis,column]);
end for;
end for;
for row in 1:referenceDimension loop
for column in 1:referenceDimension loop
frameBound := frameBound and SLAMExactRealEqual(measurement.poseCovariance[row,column],
proposed.covariance[RGBDLocalizationFrame.poseIndices[row],RGBDLocalizationFrame.poseIndices[column]]);
end for;
end for;
end if;
end FrameBound;