Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Gyro Allan Variance

ASecurity

Use when you must characterize gyroscope noise for ADCS sensor selection: compute the overlapping Allan deviation AD(tau) over a correlation-time grid from a rate sample time series with cumulative sums, fit the log-log noise slope, categorize the noise process from the slope band (white noise or angle random walk at about -1/2, rate random walk at about +1/2, quantization at about -1, bias instability as a flat floor), and extract the angle random walk coefficient in deg/sqrt(h). Produces th...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythongoaws

Works with

claude code

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill gyro-allan-variance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gyro Allan Variance?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Gyro Allan Variance
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-gyro-allan-variance/badge)](https://www.skillsdirectory.com/skills/ashfordeou-gyro-allan-variance)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: gyro-allan-variance
description: "Use when you must characterize gyroscope noise for ADCS sensor selection: compute the overlapping Allan deviation AD(tau) over a correlation-time grid from a rate sample time series with cumulative sums, fit the log-log noise slope, categorize the noise process from the slope band (white noise or angle random walk at about -1/2, rate random walk at about +1/2, quantization at about -1, bias instability as a flat floor), and extract the angle random walk coefficient in deg/sqrt(h). Produces the Allan deviation curve, the noise classification, the fitted slope and the ARW coefficient that gate gyro selection. Trigger: gyro Allan deviation, allan deviation, angle random walk, rate random walk, bias instability, gyro noise model, noise slope, gyroscope rate noise, ARW coefficient, deg per root hour."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: ecss
    reference-only: true
gated: false
domain: space-systems
pack: adcs
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: space-systems
  subdomain: adcs
  tags: [gyro-allan-variance, allan-deviation, angle-random-walk, rate-random-walk, bias-instability, gyro-noise-model]
  version: 0.1.0
  author: Aero Agent Skills
---

# Gyro Allan Variance (space-systems/adcs/gyro-allan-variance)

Use when you must characterize gyroscope noise for ADCS sensor selection:
turning a rate sample time series into the overlapping Allan deviation
curve and reading the noise process off its log-log slope. This leaf
implements the time-domain Allan method in pure Python, stdlib only, and
pairs with space-systems/adcs/attitude-determination-quest for the
attitude side of the sensor suite; gnc-autonomy/estimation-filtering/
complementary-filter consumes gyro noise specs in gyro/vector fusion, so
the ARW coefficient produced here is the metrology layer beneath any
gyro-using estimation leaf.

## Domain quick reference

- Overlapping Allan deviation at cluster time tau = m * tau0, N rate
  samples spaced tau0 seconds apart:

      AD(tau) = sqrt( 1 / (2 (N - 2m)) * sum_{k=0}^{N-2m-1}
                ( mean(samples[k+m : k+2m]) - mean(samples[k : k+m]) )^2 )

  Implemented with cumulative sums S[i] = sum of samples[:i], so each
  cluster mean is (S[b] - S[a]) / m and the estimator stays stable on
  long series.
- White rate noise: AD(tau) = sigma * sqrt(tau0 / tau), a straight line
  of slope -1/2 on a log-log plot. The tau = 1 s deviation equals the
  rate standard deviation sigma.
- Angle random walk coefficient in deg/sqrt(h): ARW = AD(1 s) * 57.2958
  * sqrt(3600 * tau0). With tau0 = 1 s the scale is 3437.748, so
  sigma = 2.0e-5 rad/s gives about 0.0688 deg/sqrt(h), a high-grade
  MEMS/RLG band.
- Noise classes from the log-log slope: about -1/2 angle random walk,
  about +1/2 rate random walk, about -1 quantization noise, flat (near
  zero slope) bias instability.
- classify_noise bands: slope <= -0.85 quantization-noise; [-0.75,
  -0.25] angle-random-walk; [0.25, 0.75] rate-random-walk; |slope| <
  0.15 bias-instability; otherwise mixed.
- Units are SI: rate samples in rad/s, tau in s, AD in rad/s. ECSS
  frames the ADCS context; the relations above are standard engineering
  methodology, summary-only.

## Workflow

1. Load the gyro rate time series (rad/s) and its sample period tau0 in
   seconds.
2. Choose the correlation-time grid: integer multiples of tau0, with the
   largest cluster m = tau / tau0 at most (N - 1) / 2.
3. Compute the Allan deviation curve with allan_deviation(rate_samples,
   tau0_s, taus); it returns AD values in rad/s in the order of taus.
4. Fit the noise slope: log(AD) against log(tau) with noise_slope, then
   categorize with classify_noise (angle-random-walk, rate-random-walk,
   quantization-noise, bias-instability, or mixed).
5. Read off the angle random walk coefficient: angle_random_walk(ad_at_
   tau1, tau0_s) scales AD at tau = 1 s into deg/sqrt(h).
6. For the full picture in one call, gyro_noise_summary(rate_samples,
   tau0_s, taus) returns the dict {taus, allan_deviations, fitted_slope,
   noise_class, arw_deg_per_sqrt_h, ad_at_1s}.
7. Confirm the deterministic checks with the contract test
   scripts/test_gyro_allan_variance.py.

## Worked example

Seeded white rate noise: sigma = 2.0e-5 rad/s, tau0 = 1 s, N = 65536
samples, generated with random.Random(20260904) via the Box-Muller
transform (module inputs only; the module itself draws no randomness).
Real module outputs on that fixture:

- AD(1 s) = 2.0009e-5 rad/s, ratio 1.0005 to sigma (theory 1.0000).
- Decay: AD(4 s) / AD(1 s) = 0.5009, matching the 1/sqrt(tau) law
  (theory 0.5000).
- AD(256 s) = 1.2680e-6 rad/s, ratio 1.0144 to sigma / sqrt(256)
  (theory 1.2500e-6).
- Fitted slope over the dyadic grid tau = 2..256 s: -0.4977 (theory
  -0.5); classify_noise(-0.4977) = "angle-random-walk".
- Angle random walk: angle_random_walk(2.0009e-5, 1.0) = 0.0688
  deg/sqrt(h), the metrology number a gyro datasheet quotes.
- Integrated white noise (rate random walk, cumulative sum of the same
  fixture): fitted slope +0.5006 (theory +0.5), categorized
  "rate-random-walk".
- gyro_noise_summary on the white fixture returns noise_class
  "angle-random-walk", fitted_slope -0.4977, ad_at_1s 2.0009e-5 and
  arw_deg_per_sqrt_h 0.0688.


## Pitfalls

- Asking for an invalid cluster time: a tau below tau0, a tau that is
  not a whole multiple of tau0, or a cluster longer than (N - 1) / 2
  samples raises ValueError - the Allan deviation is only defined on
  the grid of integer multiples up to half the series.
- Running on too few samples: allan_deviation needs at least 3 rate
  samples, and short series give noisy high-tau points that drag the
  fitted slope off its theory value.
- Reading the noise class off too short a tau range: the -0.5 slope of
  angle random walk only shows over a wide dyadic grid (the worked
  example fits tau = 2..256 s); a few points near tau0 classify
  wrongly.
- Confusing the process signatures: white rate noise slopes -1/2
  (angle random walk), its integral slopes +1/2 (rate random walk),
  quantization slopes -1, and bias instability is the flat floor -
  classify against the documented bands, not by eye.
- Scaling ARW with the wrong tau0: angle_random_walk converts the
  AD at tau = 1 s using tau0_s; a mismatched sample period corrupts
  the deg/sqrt(h) coefficient a datasheet would quote.
- Injecting randomness into the module: the logic draws no RNG (the
  worked example seeds its fixture outside the module), so identical
  inputs must give byte-identical outputs run to run.
## Verification

- allan_deviation raises ValueError for fewer than 3 samples, tau0 <= 0,
  a tau below tau0, a tau that is not a whole multiple of tau0, and a
  cluster longer than (N - 1) / 2 samples.
- noise_slope raises ValueError on empty or mismatched lists, fewer than
  two points, and a zero-variance log-tau grid.
- angle_random_walk raises ValueError on non-positive AD or tau0.
- The white-noise closed form AD(tau) = sigma sqrt(tau0 / tau) is
  checked inside the contract test with ratio bands [0.97, 1.03] from
  tau = 1 s up to 256 s, and the integrated fixture must fit a slope in
  [0.45, 0.55].
- Module determinism: identical inputs give identical outputs; the
  seeded fixture is reproducible run-to-run.

## Related leaves

- space-systems/adcs/attitude-determination-quest: determination
  sibling; the QUEST attitude from vector observations is the consumer
  of a gyro-specified pointing budget.
- gnc-autonomy/estimation-filtering/complementary-filter: consumer of
  gyro noise specs in gyro/vector fusion, where the ARW coefficient
  weights the gyro channel.
- gnc-autonomy/navigation/inertial-navigation: INS error propagation
  boundary; that leaf propagates given drift and bias, this leaf
  characterizes sensor noise, metrology vs propagation.
- cross-cutting/numerics/power-spectral-density: frequency-domain
  boundary; PSD estimation with the Welch periodogram, not the
  time-domain Allan method.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_gyro_allan_variance.py

The 34 tests cover the overlapping Allan deviation against the
white-noise closed form, the seeded fixture anchors (AD(1 s), AD(256 s),
fitted slope -0.4977, ARW 0.0688 deg/sqrt(h)), the rate random walk
slope, classification band boundaries, ARW scaling with tau0, summary
dict keys and consistency, module determinism, and ValueError rejection
of every non-physical input.

## Compliance

- Standards referenced, not reproduced: ECSS is the adcs convention id
  in standards-map.yaml; the Allan deviation relations above are
  standard engineering methodology, summary-only.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →