Simplify fleet curve configuration

This commit is contained in:
2026-07-07 20:44:43 +08:00
parent 0d44fb8fde
commit 381ae3de76
7 changed files with 27 additions and 38 deletions
+2 -2
View File
@@ -127,7 +127,7 @@ lock (MultiVehicleFleet)
编队间距配置变更时,实际控制点半径仍固定 510mm,补偿/转向几何与 `TestCarSyncDistance` 不一致,调参困难。
**建议修复**
统一使用 `syncDistance / 2f` 或配置项 `MultiVehicleControlRadius`,删除 magic number 510。
统一使用 `syncDistance / 2f`,删除 magic number 510。
---
@@ -203,7 +203,7 @@ lock (MultiVehicleFleet)
- **B**`MultiVehicleSendMotion` 回调写入 `MultiVehicleAutoCmdTime`;主车自动分支按 `MultiVehicleAutoCmdTimeoutMs`(0=auto) 判定命令新鲜度,超时清零速度/idealPos 并关闭 `AutoEnabled`,避免末速度滑行。
- **C**:新增本地 `_multiVehicleFleetSeen` 存活时刻表,register/notify 收到即刷新;主车 Tick `PruneStaleFleetMembers()``MultiVehicleMemberTtlMs`(0=auto) 剔除掉线成员,`fleetReady`(数量==总数) 因此蕴含全员新鲜。
- **D**:回调不再丢弃 `idealPos/idealAngle`,写入 `MultiVehicleAutoIdeal*` 并经 notify(`HasIdeal/IdealX/Y/Th`) 广播;自动模式下以理想车队中心作为各车 layout 前馈目标(`MultiVehicleAutoUseIdealCenter`,默认开)。
- **E**新增 `MultiVehicleControlRadius`(0=syncDistance/2)`ControlPointRadius``SendMotion(localControlRadius)` 统一取该值,删除硬编码 510。
- **E**`ControlPointRadius``SendMotion(localControlRadius)` 统一取 `syncDistance / 2f`,删除硬编码 510。
- **F**notify 改为 POST + JSON body(取代 GET query 串);新增单调递增 `Seq`,从车丢弃乱序旧包(含主车重启回退识别)。
- **G**:新增 `FleetCenterSnapshot` 不可变快照 + `volatile` 引用,`PublishFleetCenter` 整体赋值,控制器线程 `GetFleetCenterSnapshot()` 只读完整快照,消除 torn read。
- **H**:自动模式新增 `MultiVehicleAutoRequireFleetCenter`(默认开) 门控——无有效车队中心(定位丢失)时强制停车,补上纯 SLAM 模式安全网;手动模式不受限。