CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

model

Tests.AidingHorizonRefusals.Arm

One buffer, driven, with nothing asserted

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
parametersamplePeriodReal= 0.00125
parameterfusionPeriod_sReal= 0.01
parameterfusionHorizon_sReal= 0.02
parametermaximumResidualAge_sReal= fusionPeriod_s
parametermaximumSourceDelay_sReal= 0.0
parameterhorizonJitterMargin_sReal= 0.0

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

model Arm "One buffer, driven, with nothing asserted"
    parameter Real samplePeriod = 0.00125;
    parameter Real fusionPeriod_s = 0.01;
    parameter Real fusionHorizon_s = 0.02;
    parameter Real maximumResidualAge_s = fusionPeriod_s;
    parameter Real maximumSourceDelay_s = 0.0;
    parameter Real horizonJitterMargin_s = 0.0;
    Real elapsed_s(start = 0.0, fixed = true);
    Estimation.FusionHorizon.AidingBuffer buffer(
      samplePeriod=samplePeriod,
      fusionPeriod_s=fusionPeriod_s,
      fusionHorizon_s=fusionHorizon_s,
      maximumResidualAge_s=maximumResidualAge_s,
      maximumSourceDelay_s=maximumSourceDelay_s,
      horizonJitterMargin_s=horizonJitterMargin_s);
  equation
    der(elapsed_s) = 1.0;
    buffer.reset = false;
    buffer.horizonValid = false;
    buffer.horizonEpoch_s = 0.0;
    buffer.horizonReleased = false;
    buffer.mocap.valid = false;
    buffer.mocap.fresh = false;
    buffer.mocap.timestamp_s = time;
    buffer.mocap.positionWorldEnu_m = zeros(3);
    buffer.mocap.quaternionWorldBody = {1.0, 0.0, 0.0, 0.0};
    buffer.mocap.positionCovarianceWorld_m2 = identity(3);
    buffer.mocap.attitudeCovarianceBody_rad2 = identity(3);
    buffer.gps.valid = false;
    buffer.gps.fresh = false;
    buffer.gps.positionValid = false;
    buffer.gps.velocityValid = false;
    buffer.gps.timestamp_s = time;
    buffer.gps.geodetic_deg_m = zeros(3);
    buffer.gps.positionWorldEnu_m = zeros(3);
    buffer.gps.velocityWorldEnu_m_s = zeros(3);
    buffer.gps.positionCovarianceWorld_m2 = identity(3);
    buffer.gps.velocityCovarianceWorld_m2_s2 = identity(3);
    buffer.magnetometer.valid = false;
    buffer.magnetometer.fresh = false;
    buffer.magnetometer.timestamp_s = time;
    buffer.magnetometer.magneticFieldBodyFlu_T = zeros(3);
    buffer.magnetometer.covarianceBody_T2 = identity(3);
    buffer.barometer.valid = false;
    buffer.barometer.fresh = false;
    buffer.barometer.timestamp_s = time;
    buffer.barometer.altitudeWorldEnu_m = 0.0;
    buffer.barometer.variance_m2 = 1.0;
    buffer.opticalFlow.valid = false;
    buffer.opticalFlow.fresh = false;
    buffer.opticalFlow.timestamp_s = time;
    buffer.opticalFlow.integratedLineOfSight_rad = zeros(2);
    buffer.opticalFlow.integratedLineOfSightCovariance_rad2 = identity(2);
    buffer.opticalFlow.integratedGyroscopeBodyFlu_rad = zeros(3);
    buffer.opticalFlow.integratedGyroscopeCovariance_rad2 = identity(3);
    buffer.opticalFlow.integrationTime_s = 0.01;
    buffer.opticalFlow.groundDistance_m = 1.0;
    buffer.opticalFlow.groundDistanceVariance_m2 = 0.01;
    buffer.opticalFlow.quality = 1.0;
  end Arm;