目录

moon-kalman

moon-kalman 是面向 MoonBit 的状态空间、卡尔曼滤波和传感器融合库,参加的是 2026 年 8 月官方 MoonBit 黑客松验收项目。

MoonBit check and test

能力范围

核心滤波器已经是可运行实现,不是接口存根:

  • Kalman1D:标量预测、控制输入、缺失观测、NIS 门限、批处理和自适应过程噪声。
  • KalmanND:稠密矩阵状态空间模型、Joseph 协方差更新、部分观测、NIS 门限、控制矩阵、检查点和恢复。
  • EKF / UKF:非线性状态转移、雅可比或 sigma 点、缺失观测、门限和诊断统计。
  • 线性代数:矩阵运算、LU/部分选主元求解、逆、Cholesky、QR、最小二乘、特征值和条件数估计。
  • 传感器工程:多传感器融合、异常值降权、数据质量审计、时间同步、校准、健康监控、有限轨迹缓存和运行时遥测。
  • 估计后处理:RTS 全平滑、固定时滞平滑、信号处理、误差/一致性指标、模型选择、估计器集成和确定性回放。

所有可变数组和矩阵的公开访问器都会返回副本;输入维度、非有限数、奇异创新协方差和缺失观测都有明确结果,不通过异常退出掩盖错误。

最小示例

let filter = @kalman.Kalman1D::new(0.0, 1.0, 0.02, 0.1)
filter.set_gate_threshold(9.210340371976184)
filter.predict_without_control()
let result = filter.update_if_valid(1.0)
println("result=\{result}, state=\{filter.state()}, variance=\{filter.uncertainty()}")

可直接运行仓库中的示例:

moon run examples/sensor_fusion

验证与基准

当前测试套件包含 120 个测试,覆盖矩阵边界、奇异/退化协方差、空输入、维度错误、非有限输入、门限拒绝、丢包、回放、运行时健康状态、轨迹和传感器运行时。生产 .mbt 源码规模超过 8,000 行,测试代码另行统计并持续扩充。

发布构建基准入口:

moon run --target native --release benchmarks

基准使用确定性输入并打印校验和,完整三次运行记录见 benchmarks/RESULTS.md。基准不是理论峰值,而是在 Windows、AMD Ryzen 7 5800H、MoonBit stable 0.1.20260814 上实测的本地结果。

CI 与发布

.github/workflows/test.yml 在 Ubuntu、macOS 和 Windows 上安装官方 stable 工具链,执行:

moon version --all
moon update
moon check --target all --deny-warn
moon build --target all --deny-warn
moon test --target all --deny-warn
moon fmt && git diff --exit-code
moon info && git diff --exit-code

另有 native 覆盖率测试和手动触发的 Mooncakes 发布 workflow。发布不把 token 写入仓库,CI 仅从 GitHub Actions secret 读取 MOONCAKES_TOKEN

项目完成情况和逐项验收证据见 AUGUST_HACKATHON_ACCEPTANCE.md

关于

MoonBit 状态空间与卡尔曼滤波库。实现一维和多维 Kalman Filter,包含传感器融合示例,并预留了非线性滤波(EKF/UKF)和异常诊断扩展。

200.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号