Skip to content

endpang/GoDrive

Repository files navigation

GoDrive - 电机诊断工具

基于开源电机驱动器调试诊断工具,支持 MT Protocol v3.2 协议。

版本固件

v1.0

V2.0 (TO DO LIST) 预计 4月中上旬发布

  • 1,支持Odrive CAN协议
  • 2,支持多轴控制
  • 3,支持手机云控制(飞书控制,web控制)
  • 4,AI自然语言控制.

功能演示

六步诊断流程演示

六步诊断流程演示

📺 点击上方链接或访问: https://b23.tv/Px1fEf6

功能特性

核心功能:六步诊断流程

点击 【Go】 按钮一键完成电机诊断:

步骤 名称 说明
1 通讯检测 验证串口连接和协议响应
2 零位校准 检查编码器校准状态
3 参数获取 读取电机电气参数
4 开环测试 强制矢量转动测试
5 闭环运动 位置模式定位测试
6 功能测试 播放测试曲子验证高频响应

高级功能面板

  • 零位校准 - 显示电气零位偏移、编码器方向、极对数
  • 参数识别 - 显示电机电阻、电感、磁链等电气参数
  • 极对数调试 - 显示极对数信息和计算公式

技术栈

  • 语言: Python 3.10+
  • GUI: PyQt6
  • 通信: pyserial
  • 协议: MT Protocol v3.2 (RS485)

快速开始

# 安装依赖
pip install -r requirements.txt

# 运行程序
cd src
python main.py

项目结构

GoDrive/
├── src/
│   ├── main.py                 # 程序入口
│   ├── core/
│   │   ├── protocol.py         # MT Protocol v3.2 实现
│   │   └── serial_worker.py    # 串口通信线程
│   └── ui/
│       ├── main_window.py      # 主窗口
│       └── widgets/
│           ├── step_widget.py      # 单步状态组件
│           ├── go_panel.py         # Go诊断面板
│           ├── calibration_panel.py    # 零位校准面板
│           ├── param_identify_panel.py # 参数识别面板
│           └── pp_debug_panel.py       # 极对数面板
├── requirements.txt
└── README.md

已知 Bug

🔴 Bug 1: 进度条显示不正确

  • 描述: 六步测试全部成功结束,进度条显示 5/6,应为 6/6
  • 位置: src/ui/widgets/go_panel.py
  • 原因: 最后一步(第6步)成功时,状态机未正确更新进度

🔴 Bug 2: 诊断数据未同步到其他页面

  • 描述: Go诊断完成后,切换到【零位校准】【参数识别】标签页,数据为空
  • 位置: src/ui/main_window.py
  • 原因: 诊断流程获取的数据没有同步更新到各面板

🔴 Bug 3: 连接自动断开

  • 描述: 连接一段时间后会自动断开
  • 位置: src/core/serial_worker.py
  • 原因: SerialWorker 超时检测机制(2秒未收到数据则断开),但诊断流程不是持续请求数据的

未来计划

Phase 3 - Bug修复 (进行中)

  • 修复进度条显示问题
  • 修复数据同步问题
  • 修复连接自动断开问题

Phase 4 - 新功能开发

功能 1: 电机基本控制面板

  • 模式选择:位置/速度/电流模式
  • 目标值设置和发送
  • 实时显示反馈值
  • 紧急停止按钮

功能 2: MIT 控制模式

  • 支持 MIT 控制协议
  • 参数:position, velocity, kp, kd, torque
  • 混合控制模式界面

功能 3: 打包发布

  • PyInstaller 打包为 exe
  • 安装程序制作
  • 自动更新机制

Phase 5 - 优化增强

  • 波形显示功能
  • 多设备同时连接
  • 数据记录和导出
  • 故障诊断知识库

协议支持

MT Protocol v3.2 命令

命令 代码 功能
GET_STATE 0x20 获取状态
GET_CALIBRATION 0x25 获取校准数据
GET_MOTOR_PARAMS 0x43 获取电机参数
SET_CUR 0x12 设置电流
SET_POS 0x10 设置位置
PLAY_SONG 0x26 播放曲子

开发团队

蟠桃 微信:endpang Email: endler@qq.com

许可证

Apache-2.0 license

About

开源机器人关节电机测试工具.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors