页面详解


SimPage

路由: /

模拟器主页面,用于数据采集与模型推理测试。

布局结构

┌─────────────────────────────────────────────────────────────┐
│                      SimPage                                │
├───────────────────────────────┬─────────────────────────────┤
│                               │       RightPanel             │
│        TopDownView            │  ┌─────────────────────┐    │
│       (俯视画布)              │  │   FirstPersonView   │    │
│                               │  │   (第一视角)          │    │
│   [小车站 + 障碍物 + 地图]    │  └─────────────────────┘    │
│                               │  ┌─────────────────────┐    │
│                               │  │    LogConsole       │    │
│                               │  │   (日志控制台)       │    │
├───────────────────────────────┴─────────────────────────────┤
│                   TrainingControl + InferenceControl         │
└─────────────────────────────────────────────────────────────┘

核心功能

  1. 键盘控制: WASD/方向键控制小车运动
  2. 数据采集: 录制驾驶演示数据
  3. 训练控制: 启动/停止模型训练
  4. 推理测试: 加载模型进行模拟推理
  5. 实时日志: 显示后端运行日志

Socket.IO 事件

事件名方向说明
actionemit发送动作指令
car_state_updatelisten接收小车状态更新
collect_dataemit发送采集数据
training_progresslisten接收训练进度
act_infer_resultlisten接收推理结果

RealPage

路由: /real

真实小车控制页面,用于连接和控制物理机器人。

布局结构

┌─────────────────────────────────────────────────────────────┐
│                      RealPage                                │
├─────────────────────────────────┬─────────────────────────────┤
│                                 │        RealRightPanel       │
│       RealCameraView            │  ┌─────────────────────┐    │
│      (浏览器摄像头)              │  │     Car IP 配置      │    │
│                                 │  │   连接状态显示        │    │
│                                 │  │   电机状态显示        │    │
├─────────────────────────────────┴─────────────────────────────┤
│                      控制面板                                  │
│     [连接] [前进] [后退] [左转] [右转] [停止]                   │
└─────────────────────────────────────────────────────────────┘

核心功能

  1. 摄像头访问: 使用浏览器 API 获取小车摄像头画面
  2. IP 配置: 设置小车 IP 地址
  3. 电机控制: HTTP 请求控制小车电机
  4. 状态监控: 显示心跳和电机状态

API 通信

真实小车通过 HTTP API 直接通信:

// 发送心跳
carHeartbeat(carIP)

// 获取电机状态
motorStatusAt(carIP)

// 直接控制电机
motorDirect(carIP, leftVel, rightVel)

// 小车整体控制
carControl(carIP, action)