HCDF Extension: IMU Stability Parameters

org.cognipilot.imu-stability v1.0


Why This Is an Extension (Not Core)

The core HCDF sensor model already represents the quantities commonly needed for sensor simulation and basic integration:

Additional stability and calibration quantities can matter when an application must model inertial error growth in detail. Bias instability and random-walk coefficients may be estimated from Allan-deviation analysis. Scale-factor error, cross-axis sensitivity, g-sensitivity, and temperature sensitivity are separate calibration or environmental characteristics. They are useful in applications such as:

Systems with frequent external aiding may estimate or constrain bias often enough that these detailed parameters are less important. Other systems use them directly to tune stochastic error models. Keeping the optional vocabulary in an extension lets each application choose the fidelity it needs without changing the core sensor model.


How to Use the Extension

The <extension> element on a <comp> allows vendor-specific or domain-specific data using a reverse-DNS domain identifier. An aerospace team can add IMU stability data without modifying the HCDF core schema:

<comp name="ins-nav-unit" role="sensor">
  <description>Tactical-grade INS for GPS-denied navigation</description>

  <port name="spi0">
    <capabilities>
      <purpose value="communication"/>
      <carrier value="electrical"/>
      <rate min="15000000" max="15000000" nominal="15000000" unit="bit/s"/>
    </capabilities>
  </port>

  <sensor name="tactical_imu" update-rate="400">
    <inertial type="accel_gyro">
      <driver name="adis16465-2"/>

      <accel>
        <range unit="g">10</range>
        <resolution unit="ug">0.25</resolution>
        <odr unit="Hz">2000</odr>
        <bandwidth unit="Hz">500</bandwidth>
        <fifo depth="512" watermark="5"/>
        <noise type="gaussian">
          <stddev>0.000023</stddev>
          <bias-mean>0.004</bias-mean>
          <bias-stddev>0.001</bias-stddev>
        </noise>
      </accel>

      <gyro>
        <range unit="dps">500</range>
        <resolution unit="dps">0.00625</resolution>
        <odr unit="Hz">2000</odr>
        <bandwidth unit="Hz">500</bandwidth>
        <fifo depth="512" watermark="5"/>
        <noise type="gaussian">
          <stddev>0.0035</stddev>
          <bias-mean>0.02</bias-mean>
          <bias-stddev>0.005</bias-stddev>
        </noise>
      </gyro>
    </inertial>
  </sensor>

  <!-- IMU stability extension: Allan variance and environmental sensitivity -->
  <extension domain="org.cognipilot.imu-stability" version="1.0">
    <imu-stability sensor="tactical_imu">
      <!-- From Allan variance analysis -->
      <accel-bias-stability unit="ug">3.6</accel-bias-stability>
      <gyro-bias-stability unit="deg/hr">2.0</gyro-bias-stability>

      <!-- Scale factor error (proportional measurement error) -->
      <accel-scale-factor-error unit="ppm">1500</accel-scale-factor-error>
      <gyro-scale-factor-error unit="ppm">100</gyro-scale-factor-error>

      <!-- Cross-axis sensitivity (leakage between axes) -->
      <cross-axis-sensitivity unit="percent">0.5</cross-axis-sensitivity>

      <!-- Gyro sensitivity to linear acceleration (vibration rectification) -->
      <gyro-g-sensitivity unit="deg/s/g">0.005</gyro-g-sensitivity>

      <!-- Angular random walk (noise density from Allan variance) -->
      <gyro-arw unit="deg/sqrt(hr)">0.16</gyro-arw>
      <accel-vrw unit="m/s/sqrt(hr)">0.012</accel-vrw>

      <!-- Temperature sensitivity -->
      <gyro-temp-sensitivity unit="deg/s/degC">0.005</gyro-temp-sensitivity>
      <accel-temp-sensitivity unit="mg/degC">0.1</accel-temp-sensitivity>
      <operating-temp unit="degC" min="-40" max="105"/>

      <!-- Allan variance test conditions -->
      <allan-test>
        <duration unit="hr">4</duration>
        <temperature unit="degC">25</temperature>
        <vibration>none</vibration>
      </allan-test>
    </imu-stability>
  </extension>

</comp>

How Tooling Uses This

A navigation or validation tool can:

  1. Check if the extension exists: Does comp have extension domain="org.cognipilot.imu-stability"?
  2. Extract stability parameters for filter tuning:
    • gyro-bias-stability can inform a bias-state error model when the estimator uses that interpretation
    • gyro-arw can be compared with the core measurement-noise model after accounting for sample rate and units
    • gyro-g-sensitivity → determines if vibration isolation is needed (if g-sensitivity x expected vibration g > acceptable drift rate)
  3. Predict dead-reckoning performance:
    • Under a deliberately simplified constant acceleration-bias-only model, position error is approximately 0.5 × acceleration bias × time squared.
    • At 3.6 ug, that isolated term is about 6.4 m after 10 minutes. At 1000 ug, it is about 1.8 km.
    • Those figures are not navigation-performance guarantees. Attitude error, gravity coupling, calibration, estimator design, motion, and external aiding all affect the result.
  4. Validate operating environment:
    • operating-temp vs expected environment
    • gyro-g-sensitivity vs expected vibration profile of the robot base

Why Extension and Not Core

ReasonDetail
Specialized scope Systems with frequent external aiding may need less detailed inertial error characterization
Requires lab testing Measured stability parameters depend on test duration, sampling, temperature, vibration, and analysis method
Domain-specific Most relevant to high-integrity or long-duration inertial navigation, but available to any application that needs it
Estimator-dependent Some estimators identify bias online; others also use characterized parameters to set process and measurement models
Datasheet values vary Allan variance is temperature and environment dependent, so a single number is misleading

Extension Schema Convention


Other Extension Ideas

The same pattern works for any domain-specific sensor data:

Extension DomainUse Case
org.cognipilot.imu-stability Tactical IMU Allan variance
org.cognipilot.camera-calibration Extrinsic calibration results, reprojection error
org.cognipilot.lidar-multipath Multi-path rejection parameters for structured environments
com.vendor.radar-cfar Radar CFAR detection threshold tuning
org.ros.sensor-msgs ROS message type mapping for each sensor

The core HCDF schema stays clean and focused. Domain expertise lives in versioned extensions that agents can optionally understand.