| | |
| | | |
| | | 为了在 STM32H7 上验证运动控制算法,同时避免真实割草环境带来的风险,`python/hitl` 子目录负责实现电脑仿真 ↔ STM32H7 的闭环调试工具。核心目标: |
| | | |
| | | - **传感器仿真**:Python 端以 GPS 模块真实协议输出 `$GPFMI`(10 Hz)和 `$GPIMU`(100 Hz)数据,通过串口 2 输入到 STM32H7。 |
| | | - **传感器仿真**:Python 端以 IM23A 二进制协议输出 `fmin`(10 Hz)和 `fmim`(100 Hz)数据,通过串口 2 输入到 STM32H7。 |
| | | - **控制闭环**:STM32H7 在接收到仿真传感器数据后执行原有控制算法,并依照 `PythonLink` 协议(前进、转向两个量)通过串口 2 回传给 Python,驱动仿真器更新车辆状态。 |
| | | - **日志采集**:STM32H7 通过串口 5(921600 bps)输出调试日志,Python 端实时解析与保存,为实车调试提供参考。 |
| | | |
| | |
| | | |
| | | | 功能 | STM32H7 串口 | 方向 | 协议/内容 | 频率 | |
| | | | --- | --- | --- | --- | --- | |
| | | | 传感器仿真输入 | UART2 (RX) | Python → STM32 | `$GPFMI`, `$GPIMU` | 10 Hz / 100 Hz | |
| | | | 传感器仿真输入 | UART2 (RX) | Python → STM32 | IM23A `fmin` / `fmim` 二进制帧 | 10 Hz / 100 Hz | |
| | | | 控制输出回传 | UART2 (TX) | STM32 → Python | `PythonLink` 控制帧(前进/转向) | ≈ 控制频率 | |
| | | | 调试日志 | UART5 (TX) | STM32 → Python | 纯文本或协议日志 | 实时,921600 bps | |
| | | |
| | |
| | | flowchart LR |
| | | subgraph PC仿真端 |
| | | Sim[仿真器\n状态积分] |
| | | GPFMI[GPFMI帧生成\n10 Hz] |
| | | GPIMU[GPIMU帧生成\n100 Hz] |
| | | NAVFrame[IM23A fmin 帧生成\n10 Hz] |
| | | IMUFrame[IM23A fmim 帧生成\n100 Hz] |
| | | CtrlRx[PythonLink控制帧接收] |
| | | LogSink[串口5日志解析/保存] |
| | | end |
| | |
| | | UART5["UART5\n(921600) 日志输出"] |
| | | end |
| | | |
| | | Sim --> GPFMI --> |UART2 TX| UART2 |
| | | Sim --> GPIMU --> |UART2 TX| UART2 |
| | | Sim --> NAVFrame --> |UART2 TX| UART2 |
| | | Sim --> IMUFrame --> |UART2 TX| UART2 |
| | | UART2 --> CtrlAlgo |
| | | CtrlAlgo --> |前进/转向控制帧| UART2 --> CtrlRx --> Sim |
| | | CtrlAlgo --> |运行日志| UART5 --> |串口5 RX| LogSink |
| | |
| | | |
| | | ## 后续实现要点 |
| | | |
| | | 1. **协议复用**:严格复用现有 GPS `$GPFMI`/`$GPIMU` 输出格式与 `PythonLink` 控制帧,保证实车与仿真间可无缝切换。 |
| | | 1. **协议复用**:严格复用 IM23A `fmin`/`fmim` 输出格式与 `PythonLink` 控制帧,保证实车与仿真间可无缝切换。 |
| | | 2. **时间同步**:仿真器内部需维护 UTC 时间戳(Week/ToW 与 `hhmmss.ss`),让 STM32H7 逻辑保持一致。 |
| | | 3. **高频任务划分**:建议使用独立线程/异步任务分别发送 10 Hz 与 100 Hz 数据帧,并对控制回传、日志接收进行非阻塞处理。 |
| | | 4. **仿真模型**:后续可扩展为读取规划路径,利用 ENU 坐标系进行运动学积分,并把结果映射回经纬度/惯导量。 |