Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMU显示器

一款用于显示惯性测量单元(IMU)传感器数据并检测车辆危险驾驶行为的桌面应用程序。

功能特性

数据采集与显示

  • 支持 TCP 和串口两种连接方式
  • 实时显示三轴加速度(m/s²)
  • 实时显示三轴角速度(°/s)
  • 实时显示温度(°C)
  • 使用 OxyPlot 绘制实时曲线图

姿态滤波

  • 互补滤波器 (Complementary Filter)
  • 卡尔曼滤波器 (Kalman Filter)
  • 重力一致性验证器,用于判断传感器数据可信度

危险行为检测

  • 急加速检测
  • 急刹车检测
  • 急转弯检测
  • 碰撞检测
  • 翻车检测(基于 Roll/Pitch 角度)

其他功能

  • 传感器自动校准
  • 报警时自动截图
  • 报警时播放语音提示
  • 消息历史记录查看
  • 丰富的配置选项

技术栈

  • .NET 8 + WPF
  • OxyPlot.Wpf 2.2.0 - 图表绘制
  • System.IO.Ports 10.0.1 - 串口通信
  • System.Drawing.Common 10.0.1 - 截图处理

数据协议

期望接收以 T 开头的文本行,格式如下:

T<时间戳(毫秒)>,<加速度X>,<加速度Y>,<加速度Z>,<角速度X>,<角速度Y>,<角速度Z>,<温度>

示例:

T1234567890,0.01,0.02,9.81,0.1,0.2,0.3,25.5

项目结构

IMU显示器/
├── MainWindow.xaml(.cs)      # 主窗口
├── SettingsWindow.xaml(.cs)  # 设置窗口
├── AboutWindow.xaml(.cs)     # 关于窗口
├── InfoListWindow.xaml(.cs)  # 消息历史窗口
├── KalmanAttitudeFilter.cs   # 卡尔曼滤波器
├── ComplementaryFilter.cs    # 互补滤波器
├── GravityValidator.cs        # 重力验证器
├── SensorCalibrator.cs       # 传感器校准器
├── VehicleDangerDetector.cs  # 危险行为检测器
├── SettingsModel.cs           # 配置模型
├── SoundManager.cs            # 声音管理器
├── ToBitmapTool.cs            # 截图工具
└── IFilter.cs                # 滤波器接口

编译与运行

# 恢复依赖
dotnet restore

# 编译
dotnet build

# 运行
dotnet run

或直接在 Visual Studio / Rider 中打开 IMU显示器.sln 文件运行。

配置说明

程序启动时自动读取 settings.xml 配置文件,可通过设置窗口修改:

  • 连接设置: TCP/串口参数
  • 图表设置: 时间跨度、刷新率等
  • 滤波器设置: 互补滤波器 Alpha、卡尔曼滤波器参数
  • 检测器设置: 危险行为检测阈值
  • 其他设置: 语音提示、报警截图等

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages