Skip to content

l2ktech/kalman

 
 

Repository files navigation

🎓 控制算法学习平台

在线交互式算法演示平台 - 让算法学习变得可视化、可交互、易理解

一个专注于控制算法、机器人算法和具身智能的在线学习平台。通过实时可视化和交互式操作,让复杂的算法变得触手可及。


✨ 特性

  • 🎯 实时可视化 - 所有算法都有实时动画演示
  • 🎮 交互式控制 - 可调节参数,立即看到效果
  • 📚 详细说明 - 通俗易懂的中文解释,普通人也能看懂
  • 🎨 现代化界面 - 渐变设计,响应式布局,支持移动端
  • 🔬 实践导向 - 边测试边学习,从实践中理解理论

📊 已实现的算法

1️⃣ 卡尔曼滤波器 (Kalman Filter)

用途: 噪声过滤、状态估计

功能:

  • 实时 2D 轨迹追踪演示
  • 可视化噪声数据和过滤结果
  • 可调节噪声强度、预测步数等参数
  • 支持多种运动模式(鼠标、方形路径、随机路径等)

应用场景:

  • GPS 定位优化
  • 自动驾驶传感器融合
  • 手机陀螺仪数据处理
  • 目标追踪系统

2️⃣ PID 控制器 (PID Controller)

用途: 闭环控制、系统稳定

功能:

  • 机械臂角度控制演示
  • 实时可视化 P、I、D 三个分量的作用
  • 可调节 Kp、Ki、Kd 参数
  • 干扰测试和快速预设
  • 动力学模型模拟(惯性、摩擦)

应用场景:

  • 工业机器人控制
  • 无人机姿态稳定
  • 汽车巡航控制
  • 温度/压力控制系统

🚀 快速开始

在线体验

直接访问 https://www.l2k.tech/

本地开发

# 克隆仓库
git clone https://github.com/q442333521/kalman.git
cd kalman

# 安装依赖
npm install

# 启动开发服务器
npm run serve

# 访问 http://localhost:8080

构建部署

# 构建生产版本
NODE_OPTIONS=--openssl-legacy-provider npm run build

# 部署到 GitHub Pages
npm run deploy

📁 项目结构

kalman/
├── public/               # 静态资源
│   ├── index.html       # HTML 模板
│   ├── CNAME            # 自定义域名配置
│   └── sylvester.js     # 矩阵数学库
├── src/
│   ├── App.vue          # 主应用
│   ├── main.js          # 入口文件
│   ├── router/          # 路由配置
│   │   └── index.js
│   ├── components/      # 组件
│   │   ├── NavBar.vue   # 导航栏
│   │   └── Kalman.vue   # 卡尔曼组件(旧)
│   └── views/           # 页面视图
│       ├── KalmanView.vue   # 卡尔曼滤波器页面
│       └── PIDView.vue      # PID 控制器页面
├── package.json
└── vue.config.js        # Vue CLI 配置

🛠️ 技术栈


📝 开发计划 (TODO)

🔥 近期计划

  • 机械臂运动学 (Robotic Arm Kinematics)

    • 正运动学 (Forward Kinematics) 可视化
    • 逆运动学 (Inverse Kinematics) 求解演示
    • 多关节机械臂交互式控制
    • 工作空间可达性分析
  • 路径规划算法 (Path Planning)

    • A* 寻路算法可视化
    • RRT (Rapidly-exploring Random Tree)
    • 势场法 (Artificial Potential Field)
    • Dijkstra 算法对比

🎯 中期规划

  • 轨迹规划 (Trajectory Planning)

    • 五次多项式轨迹
    • 梯形速度曲线
    • S 型加减速曲线
    • B 样条曲线
  • 控制算法进阶

    • MPC (模型预测控制)
    • LQR (线性二次调节器)
    • 滑模控制 (Sliding Mode Control)
    • 自适应控制
  • 传感器融合

    • 扩展卡尔曼滤波 (EKF)
    • 粒子滤波 (Particle Filter)
    • 互补滤波器
    • 多传感器数据融合

🚀 长期愿景

  • 具身智能 (Embodied AI)

    • VLA (Vision-Language-Action) 模型演示
    • 视觉-语言理解交互
    • 动作策略可视化
    • 端到端学习演示
  • 强化学习

    • Q-Learning 可视化
    • DQN 训练过程
    • Policy Gradient 演示
    • 机械臂抓取学习
  • 计算机视觉

    • 目标检测实时演示
    • 视觉伺服控制
    • SLAM 可视化
    • 深度估计
  • 动力学仿真

    • 刚体动力学
    • 碰撞检测
    • 物理引擎集成
    • 多体系统仿真

🎨 功能优化

  • 添加更多语言支持(英文、日文等)
  • 性能优化和代码分割
  • 添加算法性能对比模块
  • 用户自定义参数保存功能
  • 导出仿真数据和图表
  • 添加教学视频和文档
  • 社区贡献算法模块

🎯 设计理念

为什么创建这个平台?

传统的算法学习往往停留在理论层面,公式和代码让很多人望而却步。这个平台的目标是:

  1. 可视化优先 - 所见即所得,直观理解算法原理
  2. 交互式学习 - 动手调参数,从实践中学习
  3. 通俗易懂 - 用生活化的比喻解释复杂概念
  4. 实用导向 - 展示真实应用场景和案例

适合谁使用?

  • 📚 学生 - 学习控制理论、机器人学、具身智能
  • 👨‍🏫 教师 - 教学演示和课堂互动
  • 🔬 研究人员 - 快速验证算法思路
  • 💼 工程师 - 理解算法原理和调参技巧
  • 🤔 好奇者 - 对算法和机器人感兴趣的任何人

🤝 贡献指南

欢迎贡献新的算法演示!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/NewAlgorithm)
  3. src/views/ 创建新的算法页面
  4. src/router/index.js 添加路由
  5. 提交更改 (git commit -m 'Add NewAlgorithm demo')
  6. 推送到分支 (git push origin feature/NewAlgorithm)
  7. 创建 Pull Request

贡献建议

  • 代码规范: 遵循 ESLint 配置
  • 中文优先: 界面和说明使用中文
  • 详细注释: 关键算法添加注释
  • 性能考虑: 确保动画流畅(60 FPS)
  • 响应式设计: 支持移动端访问

📄 许可证

MIT License - 详见 LICENSE 文件


🙏 致谢

原始项目

本项目基于 avivace/kalman 扩展开发

参考资料

卡尔曼滤波器:

PID 控制:

具身智能:


📮 联系方式


让算法学习变得简单有趣 🚀
从卡尔曼滤波到具身智能,一站式学习平台

立即体验反馈建议参与贡献

About

Interactive and real time 2D simulation of the Kalman Filter in use to reduce statistical input noise.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Vue 97.9%
  • JavaScript 1.4%
  • HTML 0.7%