From 95c0b19a26b7c60d78d4a604c12ee25bf9863702 Mon Sep 17 00:00:00 2001 From: shenyuxiang Date: Mon, 24 Aug 2026 18:39:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=8A=B6=E6=80=81=E4=BC=B0?= =?UTF-8?q?=E8=AE=A1=E3=80=81=E8=BD=A6=E9=98=9F=E5=8D=8F=E8=B0=83=E4=B8=8E?= =?UTF-8?q?=E8=88=B5=E8=BD=AE=E8=BE=A8=E8=AF=86=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MedullaAdapter/DiverCartDefinition.cs | 44 +- MedullaAdapter/MCURoutine.cs | 181 ++++- MedullaAdapter/MotorRoutine.cs | 95 ++- MedullaAdapter/WheelSpeedDiagnosticLogger.cs | 275 +++++++- .../build/Medulla/plugins/CommonUsage.dll | Bin 144384 -> 144384 bytes .../build/Medulla/plugins/MedullaAdapter.dll | Bin 77312 -> 84992 bytes .../build/Medulla/plugins/MedullaAdapter.pdb | Bin 36968 -> 38636 bytes MultiWheelC.Tests/FleetControllerTests.cs | 91 ++- MultiWheelC.Tests/FleetCoordinatorTests.cs | 654 ++++++++++++++++++ MultiWheelC.Tests/FleetLayoutCaptureTests.cs | 268 +++++++ .../FleetMemberCommandCorrectorTests.cs | 302 ++++++++ .../FleetPreparationCoordinatorTests.cs | 310 +++++++++ MultiWheelC.Tests/FleetStateEstimatorTests.cs | 430 ++++++++++++ MultiWheelC.Tests/Program.cs | 5 + .../PilotConfig.ParkingControl.cs | 6 + MultiWheelC/Fleet/FleetController.cs | 26 +- MultiWheelC/Fleet/FleetCoordinator.cs | 510 +++++++++++++- MultiWheelC/Fleet/FleetLayoutCapture.cs | 181 +++++ MultiWheelC/Fleet/FleetMemberAgent.cs | 457 +++++++++++- .../Fleet/FleetMemberCommandCorrector.cs | 433 ++++++++++++ .../Fleet/FleetPreparationCoordinator.cs | 372 ++++++++++ MultiWheelC/Fleet/FleetSafetySupervisor.cs | 1 - MultiWheelC/Fleet/FleetStateEstimator.cs | 580 +++++++++++++++- .../DetourVehicleStateProvider.cs | 385 ++++++++++- .../ParkingVehicleStateProviderFactory.cs | 5 +- MultiWheelC/build/Clumsy/CommonUsage.dll | Bin 144384 -> 144384 bytes MultiWheelC/build/Clumsy/MultiWheelC.dll | Bin 182272 -> 215040 bytes MultiWheelC/build/Clumsy/MultiWheelC.pdb | Bin 74988 -> 89748 bytes detour-information-checklist.md | 388 +++++++++++ docs/architecture.md | 32 +- docs/decisions.md | 17 +- docs/interfaces.md | 14 +- docs/progress.md | 16 +- output/C/CommonUsage.dll | Bin 144384 -> 144384 bytes output/C/MultiWheelC.dll | Bin 182272 -> 215040 bytes output/C/MultiWheelC.pdb | Bin 74988 -> 89748 bytes output/M/CommonUsage.dll | Bin 144384 -> 144384 bytes output/M/MedullaAdapter.dll | Bin 77312 -> 84992 bytes output/M/MedullaAdapter.pdb | Bin 36968 -> 38636 bytes ref/CommonUsage.dll | Bin 144384 -> 144384 bytes 40 files changed, 5983 insertions(+), 95 deletions(-) create mode 100644 MultiWheelC.Tests/FleetCoordinatorTests.cs create mode 100644 MultiWheelC.Tests/FleetLayoutCaptureTests.cs create mode 100644 MultiWheelC.Tests/FleetMemberCommandCorrectorTests.cs create mode 100644 MultiWheelC.Tests/FleetPreparationCoordinatorTests.cs create mode 100644 MultiWheelC.Tests/FleetStateEstimatorTests.cs create mode 100644 MultiWheelC/Fleet/FleetLayoutCapture.cs create mode 100644 MultiWheelC/Fleet/FleetMemberCommandCorrector.cs create mode 100644 MultiWheelC/Fleet/FleetPreparationCoordinator.cs delete mode 100644 MultiWheelC/Fleet/FleetSafetySupervisor.cs create mode 100644 detour-information-checklist.md diff --git a/MedullaAdapter/DiverCartDefinition.cs b/MedullaAdapter/DiverCartDefinition.cs index d8e3847..55b7556 100644 --- a/MedullaAdapter/DiverCartDefinition.cs +++ b/MedullaAdapter/DiverCartDefinition.cs @@ -66,7 +66,8 @@ namespace MedullaAdapter #region 初始参数 [AsInitParam(desc = "差速转舵目标角速度前馈增益")] - public float DiffSteerRateFeedforwardGain = 0.9f; + // public float DiffSteerRateFeedforwardGain = 0.9f; + public float DiffSteerRateFeedforwardGain = 0f; [AsInitParam(desc = "差速舵轮左右轮间距,单位mm")] public float DiffSteerWheelDistanceMillimeters = 85f; @@ -124,6 +125,47 @@ namespace MedullaAdapter public bool WheelSpeedDiagnosticEnabled; [IOObjectMonitor(desc = "轮速诊断记录状态")] public string WheelSpeedDiagnosticStatus = "未启动"; + + // M层辨识日志:以下字段只保存控制和反馈事件的单调时钟快照, + // 不参与底盘控制、限幅或模式切换。 + internal long DiffSteerControlTimestamp; + internal long DiffSteerControlSequence; + internal long WheelCommandTimestamp; + internal long WheelCommandSequence; + internal float SentSpeedLFL; + internal float SentSpeedLFR; + internal float SentSpeedLRL; + internal float SentSpeedLRR; + internal float SentSpeedRFL; + internal float SentSpeedRFR; + internal float SentSpeedRRL; + internal float SentSpeedRRR; + internal bool WheelCommandLimitedLFL; + internal bool WheelCommandLimitedLFR; + internal bool WheelCommandLimitedLRL; + internal bool WheelCommandLimitedLRR; + internal bool WheelCommandLimitedRFL; + internal bool WheelCommandLimitedRFR; + internal bool WheelCommandLimitedRRL; + internal bool WheelCommandLimitedRRR; + internal bool WheelCommandSuppressed; + internal float DiffSteerTargetRateLeftFrontDegreesPerSecond; + internal float DiffSteerTargetRateLeftRearDegreesPerSecond; + internal float DiffSteerTargetRateRightFrontDegreesPerSecond; + internal float DiffSteerTargetRateRightRearDegreesPerSecond; + internal float DiffSteerFeedforwardDeltaTimeMilliseconds; + internal bool DiffSteerFeedforwardLimitedLeftFront; + internal bool DiffSteerFeedforwardLimitedLeftRear; + internal bool DiffSteerFeedforwardLimitedRightFront; + internal bool DiffSteerFeedforwardLimitedRightRear; + internal long ActualThLeftFrontTimestamp; + internal long ActualThLeftFrontSequence; + internal long ActualThLeftRearTimestamp; + internal long ActualThLeftRearSequence; + internal long ActualThRightFrontTimestamp; + internal long ActualThRightFrontSequence; + internal long ActualThRightRearTimestamp; + internal long ActualThRightRearSequence; [IOObjectMonitor(desc = "左前左驱动器远程帧701")] public byte LFLRemoteCode = 0; [IOObjectMonitor(desc = "左前右驱动器远程帧702")] public byte LFRRemoteCode = 0; [IOObjectMonitor(desc = "右前左驱动器远程帧703")] public byte RFLRemoteCode = 0; diff --git a/MedullaAdapter/MCURoutine.cs b/MedullaAdapter/MCURoutine.cs index e75ffb6..64dca68 100644 --- a/MedullaAdapter/MCURoutine.cs +++ b/MedullaAdapter/MCURoutine.cs @@ -4,7 +4,9 @@ using FundamentalLib; using MCUSerialBridgeCLR; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; +using System.Threading; namespace MedullaAdapter { @@ -51,6 +53,19 @@ namespace MedullaAdapter { return BitConverter.ToInt32(payload, offset) * 1875f / 512f / 10000f; } + + /// + /// 保存异步CAN反馈的本机单调接收时刻和递增序号,仅供辨识日志使用。 + /// + private static void MarkFeedbackReceived( + ref long timestamp, + ref long sequence) + { + Interlocked.Exchange( + ref timestamp, + Stopwatch.GetTimestamp()); + Interlocked.Increment(ref sequence); + } // M层硬件主循环:交换IO、发送轮组指令并更新车辆反馈状态。 public override void Operation(int iteration) { @@ -394,6 +409,44 @@ namespace MedullaAdapter var sendLArm = BitConverter.GetBytes((int)Math.Round(v9 * 512f * 10000f / 1875f)); var sendRArm = BitConverter.GetBytes((int)Math.Round(v10 * 512f * 10000f / 1875f)); + var wheelCommandSuppressed = + cart.AlarmLevel == 2 || + cart.WaitStart || + cart.PreparaStart || + _driversDisabled; + var speedLimit = Math.Max(0f, cart.SendThresSpeed); + + cart.SentSpeedLFL = wheelCommandSuppressed ? 0f : lfl; + cart.SentSpeedLFR = wheelCommandSuppressed ? 0f : lfr; + cart.SentSpeedLRL = wheelCommandSuppressed ? 0f : lrl; + cart.SentSpeedLRR = wheelCommandSuppressed ? 0f : lrr; + cart.SentSpeedRFL = wheelCommandSuppressed ? 0f : rfl; + cart.SentSpeedRFR = wheelCommandSuppressed ? 0f : rfr; + cart.SentSpeedRRL = wheelCommandSuppressed ? 0f : rrl; + cart.SentSpeedRRR = wheelCommandSuppressed ? 0f : rrr; + cart.WheelCommandLimitedLFL = + Math.Abs(cart.SpeedLFL) > speedLimit; + cart.WheelCommandLimitedLFR = + Math.Abs(cart.SpeedLFR) > speedLimit; + cart.WheelCommandLimitedLRL = + Math.Abs(cart.SpeedLRL) > speedLimit; + cart.WheelCommandLimitedLRR = + Math.Abs(cart.SpeedLRR) > speedLimit; + cart.WheelCommandLimitedRFL = + Math.Abs(cart.SpeedRFL) > speedLimit; + cart.WheelCommandLimitedRFR = + Math.Abs(cart.SpeedRFR) > speedLimit; + cart.WheelCommandLimitedRRL = + Math.Abs(cart.SpeedRRL) > speedLimit; + cart.WheelCommandLimitedRRR = + Math.Abs(cart.SpeedRRR) > speedLimit; + cart.WheelCommandSuppressed = wheelCommandSuppressed; + Interlocked.Exchange( + ref cart.WheelCommandTimestamp, + Stopwatch.GetTimestamp()); + Interlocked.Increment( + ref cart.WheelCommandSequence); + if (iteration % 2 == 0) { //SendNodeGuardRequests(SendCan); @@ -685,13 +738,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedLeftFrontLeft = speed; + cart.LFLActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x281, "LFL", rpm, - speed); - cart.LFLActualPos = ConvertR2MM(BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x282] = (msg) => { @@ -700,13 +758,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = -ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + -BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedLeftFrontRight = speed; + cart.LFRActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x282, "LFR", rpm, - speed); - cart.LFRActualPos = ConvertR2MM(-BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x283] = (msg) => { @@ -715,13 +778,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedRightFrontLeft = speed; + cart.RFLActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x283, "RFL", rpm, - speed); - cart.RFLActualPos = ConvertR2MM(BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x284] = (msg) => { @@ -730,13 +798,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = -ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + -BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedRightFrontRight = speed; + cart.RFRActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x284, "RFR", rpm, - speed); - cart.RFRActualPos = ConvertR2MM(-BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x285] = (msg) => { @@ -745,13 +818,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedLeftRearLeft = speed; + cart.LRLActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x285, "LRL", rpm, - speed); - cart.LRLActualPos = ConvertR2MM(BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x286] = (msg) => { @@ -760,13 +838,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = -ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + -BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedLeftRearRight = speed; + cart.LRRActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x286, "LRR", rpm, - speed); - cart.LRRActualPos = ConvertR2MM(-BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x287] = (msg) => { @@ -775,13 +858,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedRightRearLeft = speed; + cart.RRLActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x287, "RRL", rpm, - speed); - cart.RRLActualPos = ConvertR2MM(BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x288] = (msg) => { @@ -790,13 +878,18 @@ namespace MedullaAdapter if (payload == null || payload.Length < 8) return; var rpm = DecodeRpmFromPayload(payload); var speed = -ConvertRpm2Mps(rpm); + var positionMillimeters = + ConvertR2MM( + -BitConverter.ToInt32(payload, 0) / + 10000f); cart.ActualSpeedRightRearRight = speed; + cart.RRRActualPos = positionMillimeters; _wheelSpeedLogger.RecordCanFeedback( 0x288, "RRR", rpm, - speed); - cart.RRRActualPos = ConvertR2MM(-BitConverter.ToInt32(payload, 0) / 10000f); + speed, + positionMillimeters); }, [0x289] = (msg) => { @@ -914,10 +1007,18 @@ namespace MedullaAdapter //Console.WriteLine("Received 0x18B CAN Message"); var payload = msg.Payload; if (payload == null || payload.Length < 4) return; - cart.ActualThLeftFront = BitConverter.ToInt32(payload, 0); - cart.ActualThLeftFront = cart.ActualThLeftFront >= 16384 - ? (cart.ActualThLeftFront - 98303) / 4096f / 5f * 360 - cart.ThBiasLeftFront - : cart.ActualThLeftFront / 4096f / 5f * 360 - cart.ThBiasLeftFront; + var raw = BitConverter.ToInt32(payload, 0); + cart.ActualThLeftFront = raw >= 16384 + ? (raw - 98303) / 4096f / 5f * 360 - cart.ThBiasLeftFront + : raw / 4096f / 5f * 360 - cart.ThBiasLeftFront; + MarkFeedbackReceived( + ref cart.ActualThLeftFrontTimestamp, + ref cart.ActualThLeftFrontSequence); + _wheelSpeedLogger.RecordSteeringAngleFeedback( + 0x18B, + "LF", + raw, + cart.ActualThLeftFront); }, [0x18C] = (msg) => { @@ -927,6 +1028,14 @@ namespace MedullaAdapter cart.ActualThRightFront = raw >= 16384 ? (raw - 98303) / 4096f / 5f * 360 - cart.ThBiasRightFront : raw / 4096f / 5f * 360 - cart.ThBiasRightFront; + MarkFeedbackReceived( + ref cart.ActualThRightFrontTimestamp, + ref cart.ActualThRightFrontSequence); + _wheelSpeedLogger.RecordSteeringAngleFeedback( + 0x18C, + "RF", + raw, + cart.ActualThRightFront); //DLog.Log($"RF raw=0x{raw:X8}({raw}) angle={cart.ActualThRightFront:F2}", "0x18C"); }, [0x18D] = (msg) => @@ -934,20 +1043,36 @@ namespace MedullaAdapter //Console.WriteLine($"Received 0x18D CAN Message {DateTime.Now:yyyy-MM-dd HH:mm:ss.ffffff}"); var payload = msg.Payload; if (payload == null || payload.Length < 4) return; - cart.ActualThLeftRear = BitConverter.ToInt32(payload, 0); - cart.ActualThLeftRear = cart.ActualThLeftRear >= 16384 - ? (cart.ActualThLeftRear - 98303) / 4096f / 5f * 360 - cart.ThBiasLeftRear - : cart.ActualThLeftRear / 4096f / 5f * 360 - cart.ThBiasLeftRear; + var raw = BitConverter.ToInt32(payload, 0); + cart.ActualThLeftRear = raw >= 16384 + ? (raw - 98303) / 4096f / 5f * 360 - cart.ThBiasLeftRear + : raw / 4096f / 5f * 360 - cart.ThBiasLeftRear; + MarkFeedbackReceived( + ref cart.ActualThLeftRearTimestamp, + ref cart.ActualThLeftRearSequence); + _wheelSpeedLogger.RecordSteeringAngleFeedback( + 0x18D, + "LR", + raw, + cart.ActualThLeftRear); }, [0x18E] = (msg) => { //Console.WriteLine("Received 0x18E CAN Message"); var payload = msg.Payload; if (payload == null || payload.Length < 4) return; - cart.ActualThRightRear = BitConverter.ToInt32(payload, 0); - cart.ActualThRightRear = cart.ActualThRightRear >= 16384 - ? (cart.ActualThRightRear - 98303) / 4096f / 5f * 360 - cart.ThBiasRightRear - : cart.ActualThRightRear / 4096f / 5f * 360 - cart.ThBiasRightRear; + var raw = BitConverter.ToInt32(payload, 0); + cart.ActualThRightRear = raw >= 16384 + ? (raw - 98303) / 4096f / 5f * 360 - cart.ThBiasRightRear + : raw / 4096f / 5f * 360 - cart.ThBiasRightRear; + MarkFeedbackReceived( + ref cart.ActualThRightRearTimestamp, + ref cart.ActualThRightRearSequence); + _wheelSpeedLogger.RecordSteeringAngleFeedback( + 0x18E, + "RR", + raw, + cart.ActualThRightRear); }, // 远程帧 diff --git a/MedullaAdapter/MotorRoutine.cs b/MedullaAdapter/MotorRoutine.cs index bc0165f..e210ffb 100644 --- a/MedullaAdapter/MotorRoutine.cs +++ b/MedullaAdapter/MotorRoutine.cs @@ -4,6 +4,7 @@ using FundamentalLib; using MDCSToolBox.Commons; using System; using System.Diagnostics; +using System.Threading; using static MDCSToolBox.Medulla.Chassis.BasicCartDefinition; namespace MedullaAdapter @@ -75,6 +76,11 @@ namespace MedullaAdapter cart.ClumsyControl = CartDefinition.currentPriority == 0; // 计算四个舵轮PID和8个驱动电机最终速度。 UpdateDiffSteerWheelSpeeds(); + Interlocked.Exchange( + ref cart.DiffSteerControlTimestamp, + Stopwatch.GetTimestamp()); + Interlocked.Increment( + ref cart.DiffSteerControlSequence); // 平滑更新硬件速度限制。 UpdateSendSpeedLimit(); // 更新红黄绿灯状态。 @@ -351,6 +357,15 @@ namespace MedullaAdapter leftRear = 0f; rightFront = 0f; rightRear = 0f; + cart.DiffSteerTargetRateLeftFrontDegreesPerSecond = 0f; + cart.DiffSteerTargetRateLeftRearDegreesPerSecond = 0f; + cart.DiffSteerTargetRateRightFrontDegreesPerSecond = 0f; + cart.DiffSteerTargetRateRightRearDegreesPerSecond = 0f; + cart.DiffSteerFeedforwardDeltaTimeMilliseconds = 0f; + cart.DiffSteerFeedforwardLimitedLeftFront = false; + cart.DiffSteerFeedforwardLimitedLeftRear = false; + cart.DiffSteerFeedforwardLimitedRightFront = false; + cart.DiffSteerFeedforwardLimitedRightRear = false; var currentTimestamp = Stopwatch.GetTimestamp(); @@ -365,22 +380,45 @@ namespace MedullaAdapter deltaTimeSeconds <= MaximumFeedforwardIntervalSeconds) { + cart.DiffSteerFeedforwardDeltaTimeMilliseconds = + (float)(deltaTimeSeconds * 1000.0); leftFront = CalculateDiffSteerRateFeedforward( cart.ThLeftFront, _previousThLeftFront, - deltaTimeSeconds); + deltaTimeSeconds, + out var targetRateLf, + out var limitedLf); leftRear = CalculateDiffSteerRateFeedforward( cart.ThLeftRear, _previousThLeftRear, - deltaTimeSeconds); + deltaTimeSeconds, + out var targetRateLr, + out var limitedLr); rightFront = CalculateDiffSteerRateFeedforward( cart.ThRightFront, _previousThRightFront, - deltaTimeSeconds); + deltaTimeSeconds, + out var targetRateRf, + out var limitedRf); rightRear = CalculateDiffSteerRateFeedforward( cart.ThRightRear, _previousThRightRear, - deltaTimeSeconds); + deltaTimeSeconds, + out var targetRateRr, + out var limitedRr); + + cart.DiffSteerTargetRateLeftFrontDegreesPerSecond = + targetRateLf; + cart.DiffSteerTargetRateLeftRearDegreesPerSecond = + targetRateLr; + cart.DiffSteerTargetRateRightFrontDegreesPerSecond = + targetRateRf; + cart.DiffSteerTargetRateRightRearDegreesPerSecond = + targetRateRr; + cart.DiffSteerFeedforwardLimitedLeftFront = limitedLf; + cart.DiffSteerFeedforwardLimitedLeftRear = limitedLr; + cart.DiffSteerFeedforwardLimitedRightFront = limitedRf; + cart.DiffSteerFeedforwardLimitedRightRear = limitedRr; } } @@ -398,29 +436,44 @@ namespace MedullaAdapter private float CalculateDiffSteerRateFeedforward( float targetAngleDegrees, float previousTargetAngleDegrees, - double deltaTimeSeconds) + double deltaTimeSeconds, + out float targetRateDegreesPerSecond, + out bool limited) { + targetRateDegreesPerSecond = 0f; + limited = false; + var gain = cart.DiffSteerRateFeedforwardGain; var wheelDistanceMillimeters = cart.DiffSteerWheelDistanceMillimeters; var maximumSpeed = cart.DiffSteerRateFeedforwardMaximumSpeed; - if (!IsFinite(gain) || gain <= 0f || - !IsFinite(wheelDistanceMillimeters) || - wheelDistanceMillimeters <= 0f || - !IsFinite(maximumSpeed) || maximumSpeed <= 0f || - !IsFinite(targetAngleDegrees) || - !IsFinite(previousTargetAngleDegrees)) + if (!IsFinite(targetAngleDegrees) || + !IsFinite(previousTargetAngleDegrees) || + !double.IsFinite(deltaTimeSeconds) || + deltaTimeSeconds <= 0.0) { return 0f; } // 机械舵角受限,必须使用直接差值而不是圆周最短角差。 + targetRateDegreesPerSecond = + (float)((targetAngleDegrees - + previousTargetAngleDegrees) / + deltaTimeSeconds); + + if (!IsFinite(gain) || gain <= 0f || + !IsFinite(wheelDistanceMillimeters) || + wheelDistanceMillimeters <= 0f || + !IsFinite(maximumSpeed) || maximumSpeed <= 0f) + { + return 0f; + } + var targetRateRadiansPerSecond = - (targetAngleDegrees - previousTargetAngleDegrees) * - Math.PI / 180.0 / - deltaTimeSeconds; + targetRateDegreesPerSecond * + Math.PI / 180.0; var wheelDistanceMeters = wheelDistanceMillimeters / 1000.0; var feedforwardSpeed = @@ -429,10 +482,13 @@ namespace MedullaAdapter targetRateRadiansPerSecond * gain; - return (float)Math.Clamp( + var limitedSpeed = (float)Math.Clamp( feedforwardSpeed, -maximumSpeed, maximumSpeed); + limited = Math.Abs( + feedforwardSpeed - limitedSpeed) > 1e-9; + return limitedSpeed; } /// @@ -446,6 +502,15 @@ namespace MedullaAdapter cart.DiffSteerRateFeedforwardLeftRear = 0f; cart.DiffSteerRateFeedforwardRightFront = 0f; cart.DiffSteerRateFeedforwardRightRear = 0f; + cart.DiffSteerTargetRateLeftFrontDegreesPerSecond = 0f; + cart.DiffSteerTargetRateLeftRearDegreesPerSecond = 0f; + cart.DiffSteerTargetRateRightFrontDegreesPerSecond = 0f; + cart.DiffSteerTargetRateRightRearDegreesPerSecond = 0f; + cart.DiffSteerFeedforwardDeltaTimeMilliseconds = 0f; + cart.DiffSteerFeedforwardLimitedLeftFront = false; + cart.DiffSteerFeedforwardLimitedLeftRear = false; + cart.DiffSteerFeedforwardLimitedRightFront = false; + cart.DiffSteerFeedforwardLimitedRightRear = false; cart.DiffSteerTotalOutputLeftFront = 0f; cart.DiffSteerTotalOutputLeftRear = 0f; cart.DiffSteerTotalOutputRightFront = 0f; diff --git a/MedullaAdapter/WheelSpeedDiagnosticLogger.cs b/MedullaAdapter/WheelSpeedDiagnosticLogger.cs index d55975f..ef97adf 100644 --- a/MedullaAdapter/WheelSpeedDiagnosticLogger.cs +++ b/MedullaAdapter/WheelSpeedDiagnosticLogger.cs @@ -38,8 +38,10 @@ namespace MedullaAdapter private volatile bool _isRunning; private int _queuedRecordCount; private long _receiveSequence; + private long _snapshotSequence; private long _droppedRecordCount; private double _lastSnapshotMilliseconds = double.NegativeInfinity; + private long _startTimestamp; public bool IsRunning => _isRunning; @@ -79,22 +81,43 @@ namespace MedullaAdapter _snapshotWriter = CreateWriter(SnapshotLogPath); _canWriter.WriteLine( - "ElapsedMs,ReceiveSequence,CanId,MotorName,RawRpm,SpeedMps"); + "ElapsedMs,ReceiveSequence,CanId,EventType,ChannelName," + + "RawRpm,SpeedMps,PositionMm,RawAngle,AngleDegrees"); _snapshotWriter.WriteLine( - "ElapsedMs,CarNum,ManualControlMode,ManualMode,SendThresSpeed," + + "ElapsedMs,SnapshotSequence," + + "ControlElapsedMs,ControlSequence,ControlAgeMs," + + "WheelCommandElapsedMs,WheelCommandSequence,WheelCommandAgeMs," + + "CarNum,ManualControlMode,ManualMode,SendThresSpeed," + + "VoltageV,AlarmLevel,ChassisMode,WheelAbleState," + "DiffSteerKp,DiffSteerKi,DiffSteerKd,DiffSteerMaxI,DiffSteerDeadZone,DiffSteerThresh,DiffSteerSpeedAcc," + "DiffSteerRateFeedforwardGain,DiffSteerWheelDistanceMillimeters,DiffSteerRateFeedforwardMaximumSpeed," + + "FeedforwardDeltaTimeMs," + + "TargetRateThLeftFrontDegreesPerSecond,TargetRateThLeftRearDegreesPerSecond," + + "TargetRateThRightFrontDegreesPerSecond,TargetRateThRightRearDegreesPerSecond," + + "FeedforwardLimitedLeftFront,FeedforwardLimitedLeftRear,FeedforwardLimitedRightFront,FeedforwardLimitedRightRear," + "PidOutLeftFront,PidOutLeftRear,PidOutRightFront,PidOutRightRear," + "RateFeedforwardLeftFront,RateFeedforwardLeftRear,RateFeedforwardRightFront,RateFeedforwardRightRear," + "TotalDiffLeftFront,TotalDiffLeftRear,TotalDiffRightFront,TotalDiffRightRear," + "CmdLFL,CmdLFR,CmdLRL,CmdLRR,CmdRFL,CmdRFR,CmdRRL,CmdRRR," + "PidLFL,PidLFR,PidLRL,PidLRR,PidRFL,PidRFR,PidRRL,PidRRR," + + "SentLFLMps,SentLFRMps,SentLRLMps,SentLRRMps,SentRFLMps,SentRFRMps,SentRRLMps,SentRRRMps," + + "CommandLimitedLFL,CommandLimitedLFR,CommandLimitedLRL,CommandLimitedLRR," + + "CommandLimitedRFL,CommandLimitedRFR,CommandLimitedRRL,CommandLimitedRRR," + + "PairCommandLimitedLeftFront,PairCommandLimitedLeftRear," + + "PairCommandLimitedRightFront,PairCommandLimitedRightRear,WheelCommandSuppressed," + "ActualLFL,ActualLFR,ActualLRL,ActualLRR,ActualRFL,ActualRFR,ActualRRL,ActualRRR," + "ActualLeftFront,ActualLeftRear,ActualRightFront,ActualRightRear," + + "PositionLFL,PositionLFR,PositionLRL,PositionLRR,PositionRFL,PositionRFR,PositionRRL,PositionRRR," + + "CurrentLFLAmps,CurrentLFRAmps,CurrentLRLAmps,CurrentLRRAmps," + + "CurrentRFLAmps,CurrentRFRAmps,CurrentRRLAmps,CurrentRRRAmps," + "TargetThLeftFront,TargetThLeftRear,TargetThRightFront,TargetThRightRear," + "ActualThLeftFront,ActualThLeftRear,ActualThRightFront,ActualThRightRear," + - "ErrorThLeftFront,ErrorThLeftRear,ErrorThRightFront,ErrorThRightRear"); + "ErrorThLeftFront,ErrorThLeftRear,ErrorThRightFront,ErrorThRightRear," + + "ActualThLeftFrontReceiveElapsedMs,ActualThLeftFrontReceiveSequence,ActualThLeftFrontAgeMs," + + "ActualThLeftRearReceiveElapsedMs,ActualThLeftRearReceiveSequence,ActualThLeftRearAgeMs," + + "ActualThRightFrontReceiveElapsedMs,ActualThRightFrontReceiveSequence,ActualThRightFrontAgeMs," + + "ActualThRightRearReceiveElapsedMs,ActualThRightRearReceiveSequence,ActualThRightRearAgeMs"); while (_records.TryDequeue(out _)) { @@ -102,9 +125,11 @@ namespace MedullaAdapter _queuedRecordCount = 0; _receiveSequence = 0; + _snapshotSequence = 0; _droppedRecordCount = 0; _lastSnapshotMilliseconds = double.NegativeInfinity; + _startTimestamp = Stopwatch.GetTimestamp(); _stopwatch = Stopwatch.StartNew(); _isRunning = true; @@ -157,13 +182,15 @@ namespace MedullaAdapter ushort canId, string motorName, float rawRpm, - float speedMetersPerSecond) + float speedMetersPerSecond, + float positionMillimeters) { if (!_isRunning) return; var elapsedMilliseconds = - _stopwatch.Elapsed.TotalMilliseconds; + GetElapsedMilliseconds( + Stopwatch.GetTimestamp()); var receiveSequence = Interlocked.Increment( ref _receiveSequence); @@ -174,9 +201,52 @@ namespace MedullaAdapter receiveSequence.ToString( CultureInfo.InvariantCulture), $"0x{canId:X3}", + "MotorSpeedPosition", motorName, Format(rawRpm), - Format(speedMetersPerSecond)); + Format(speedMetersPerSecond), + Format(positionMillimeters), + "", + ""); + + Enqueue(new LogRecord( + isCanEvent: true, + line)); + } + + /// + /// 按CAN回调到达时刻记录一帧舵角原始值和换算后的机械角度。 + /// + public void RecordSteeringAngleFeedback( + ushort canId, + string wheelName, + int rawAngle, + float angleDegrees) + { + if (!_isRunning) + return; + + var elapsedMilliseconds = + GetElapsedMilliseconds( + Stopwatch.GetTimestamp()); + var receiveSequence = + Interlocked.Increment( + ref _receiveSequence); + + var line = string.Join( + ",", + Format(elapsedMilliseconds), + receiveSequence.ToString( + CultureInfo.InvariantCulture), + $"0x{canId:X3}", + "SteeringAngle", + wheelName, + "", + "", + "", + rawAngle.ToString( + CultureInfo.InvariantCulture), + Format(angleDegrees)); Enqueue(new LogRecord( isCanEvent: true, @@ -192,8 +262,9 @@ namespace MedullaAdapter if (!_isRunning || cart == null) return; + var snapshotTimestamp = Stopwatch.GetTimestamp(); var elapsedMilliseconds = - _stopwatch.Elapsed.TotalMilliseconds; + GetElapsedMilliseconds(snapshotTimestamp); if (elapsedMilliseconds - _lastSnapshotMilliseconds < @@ -205,14 +276,72 @@ namespace MedullaAdapter _lastSnapshotMilliseconds = elapsedMilliseconds; + var snapshotSequence = + Interlocked.Increment( + ref _snapshotSequence); + var controlTimestamp = + Interlocked.Read( + ref cart.DiffSteerControlTimestamp); + var controlSequence = + Interlocked.Read( + ref cart.DiffSteerControlSequence); + var commandTimestamp = + Interlocked.Read( + ref cart.WheelCommandTimestamp); + var commandSequence = + Interlocked.Read( + ref cart.WheelCommandSequence); + var actualThLeftFrontTimestamp = + Interlocked.Read( + ref cart.ActualThLeftFrontTimestamp); + var actualThLeftFrontSequence = + Interlocked.Read( + ref cart.ActualThLeftFrontSequence); + var actualThLeftRearTimestamp = + Interlocked.Read( + ref cart.ActualThLeftRearTimestamp); + var actualThLeftRearSequence = + Interlocked.Read( + ref cart.ActualThLeftRearSequence); + var actualThRightFrontTimestamp = + Interlocked.Read( + ref cart.ActualThRightFrontTimestamp); + var actualThRightFrontSequence = + Interlocked.Read( + ref cart.ActualThRightFrontSequence); + var actualThRightRearTimestamp = + Interlocked.Read( + ref cart.ActualThRightRearTimestamp); + var actualThRightRearSequence = + Interlocked.Read( + ref cart.ActualThRightRearSequence); + var line = string.Join( ",", Format(elapsedMilliseconds), + snapshotSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventElapsedMilliseconds(controlTimestamp), + controlSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + controlTimestamp), + FormatEventElapsedMilliseconds(commandTimestamp), + commandSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + commandTimestamp), cart.CarNum.ToString( CultureInfo.InvariantCulture), Format((int)cart.TransmitterControlMode), Format(cart.ManualMode), Format(cart.SendThresSpeed), + Format(cart.Voltage), + Format(cart.AlarmLevel), + Format(cart.ChassisMode), + FormatBoolean(cart.WheelAbleState), Format(cart.DiffSteerKp), Format(cart.DiffSteerKi), Format(cart.DiffSteerKd), @@ -223,6 +352,15 @@ namespace MedullaAdapter Format(cart.DiffSteerRateFeedforwardGain), Format(cart.DiffSteerWheelDistanceMillimeters), Format(cart.DiffSteerRateFeedforwardMaximumSpeed), + Format(cart.DiffSteerFeedforwardDeltaTimeMilliseconds), + Format(cart.DiffSteerTargetRateLeftFrontDegreesPerSecond), + Format(cart.DiffSteerTargetRateLeftRearDegreesPerSecond), + Format(cart.DiffSteerTargetRateRightFrontDegreesPerSecond), + Format(cart.DiffSteerTargetRateRightRearDegreesPerSecond), + FormatBoolean(cart.DiffSteerFeedforwardLimitedLeftFront), + FormatBoolean(cart.DiffSteerFeedforwardLimitedLeftRear), + FormatBoolean(cart.DiffSteerFeedforwardLimitedRightFront), + FormatBoolean(cart.DiffSteerFeedforwardLimitedRightRear), Format(cart.DiffSteerOutputLeftFront), Format(cart.DiffSteerOutputLeftRear), Format(cart.DiffSteerOutputRightFront), @@ -251,6 +389,35 @@ namespace MedullaAdapter Format(cart.SpeedRFR), Format(cart.SpeedRRL), Format(cart.SpeedRRR), + Format(cart.SentSpeedLFL), + Format(cart.SentSpeedLFR), + Format(cart.SentSpeedLRL), + Format(cart.SentSpeedLRR), + Format(cart.SentSpeedRFL), + Format(cart.SentSpeedRFR), + Format(cart.SentSpeedRRL), + Format(cart.SentSpeedRRR), + FormatBoolean(cart.WheelCommandLimitedLFL), + FormatBoolean(cart.WheelCommandLimitedLFR), + FormatBoolean(cart.WheelCommandLimitedLRL), + FormatBoolean(cart.WheelCommandLimitedLRR), + FormatBoolean(cart.WheelCommandLimitedRFL), + FormatBoolean(cart.WheelCommandLimitedRFR), + FormatBoolean(cart.WheelCommandLimitedRRL), + FormatBoolean(cart.WheelCommandLimitedRRR), + FormatBoolean( + cart.WheelCommandLimitedLFL || + cart.WheelCommandLimitedLFR), + FormatBoolean( + cart.WheelCommandLimitedLRL || + cart.WheelCommandLimitedLRR), + FormatBoolean( + cart.WheelCommandLimitedRFL || + cart.WheelCommandLimitedRFR), + FormatBoolean( + cart.WheelCommandLimitedRRL || + cart.WheelCommandLimitedRRR), + FormatBoolean(cart.WheelCommandSuppressed), Format(cart.ActualSpeedLeftFrontLeft), Format(cart.ActualSpeedLeftFrontRight), Format(cart.ActualSpeedLeftRearLeft), @@ -263,6 +430,22 @@ namespace MedullaAdapter Format(cart.ActualSpeedLeftRear), Format(cart.ActualSpeedRightFront), Format(cart.ActualSpeedRightRear), + Format(cart.LFLActualPos), + Format(cart.LFRActualPos), + Format(cart.LRLActualPos), + Format(cart.LRRActualPos), + Format(cart.RFLActualPos), + Format(cart.RFRActualPos), + Format(cart.RRLActualPos), + Format(cart.RRRActualPos), + Format(cart.LeftFrontLeftElectric), + Format(cart.LeftFrontRightElectric), + Format(cart.LeftRearLeftElectric), + Format(cart.LeftRearRightElectric), + Format(cart.RightFrontLeftElectric), + Format(cart.RightFrontRightElectric), + Format(cart.RightRearLeftElectric), + Format(cart.RightRearRightElectric), Format(cart.ThLeftFront), Format(cart.ThLeftRear), Format(cart.ThRightFront), @@ -274,7 +457,35 @@ namespace MedullaAdapter Format(cart.ThLeftFront - cart.ActualThLeftFront), Format(cart.ThLeftRear - cart.ActualThLeftRear), Format(cart.ThRightFront - cart.ActualThRightFront), - Format(cart.ThRightRear - cart.ActualThRightRear)); + Format(cart.ThRightRear - cart.ActualThRightRear), + FormatEventElapsedMilliseconds( + actualThLeftFrontTimestamp), + actualThLeftFrontSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + actualThLeftFrontTimestamp), + FormatEventElapsedMilliseconds( + actualThLeftRearTimestamp), + actualThLeftRearSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + actualThLeftRearTimestamp), + FormatEventElapsedMilliseconds( + actualThRightFrontTimestamp), + actualThRightFrontSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + actualThRightFrontTimestamp), + FormatEventElapsedMilliseconds( + actualThRightRearTimestamp), + actualThRightRearSequence.ToString( + CultureInfo.InvariantCulture), + FormatEventAgeMilliseconds( + snapshotTimestamp, + actualThRightRearTimestamp)); Enqueue(new LogRecord( isCanEvent: false, @@ -386,6 +597,54 @@ namespace MedullaAdapter CultureInfo.InvariantCulture); } + /// + /// 将诊断布尔值写成便于MATLAB直接读取的0或1。 + /// + private static string FormatBoolean(bool value) + { + return value ? "1" : "0"; + } + + /// + /// 将本机单调时钟值换算为相对本次日志开始的毫秒数。 + /// + private double GetElapsedMilliseconds(long timestamp) + { + return (timestamp - _startTimestamp) * + 1000.0 / + Stopwatch.Frequency; + } + + /// + /// 格式化发生在本次记录期间的事件时刻,记录前事件返回空字段。 + /// + private string FormatEventElapsedMilliseconds(long timestamp) + { + if (timestamp < _startTimestamp) + return ""; + + return Format(GetElapsedMilliseconds(timestamp)); + } + + /// + /// 计算快照时刻相对最近一次控制或反馈事件的数据年龄。 + /// + private static string FormatEventAgeMilliseconds( + long currentTimestamp, + long eventTimestamp) + { + if (eventTimestamp <= 0 || + eventTimestamp > currentTimestamp) + { + return ""; + } + + return Format( + (currentTimestamp - eventTimestamp) * + 1000.0 / + Stopwatch.Frequency); + } + public void Dispose() { Stop(); diff --git a/MedullaAdapter/build/Medulla/plugins/CommonUsage.dll b/MedullaAdapter/build/Medulla/plugins/CommonUsage.dll index 403ea8bb61054b2090b3fc4177dee1463119ec71..2c0496a776efe6684628a7be9d924752630e9421 100644 GIT binary patch delta 29618 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

Vv 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 delta 29579 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 b(7mW!S?8Ri5Fa|l4cO`NDPJpVtL*Z9=!!=O zx}Zd{U`0_uWfd&g5qm=c7sal)YhA_vex7qCnFRmu`}V)SKi8G}JonSya^Ca4?zE&Q0 z6THW<8s2wnYjYE0S`>-_zhjs}XBxR`snMYHa#Nv|w5PFJ$#-#T&J!>mR&rd3AQV8Q z#)nE?+Us0Ceon!!N_HB1J<;SliIle75lZ#;@#>9eh6h@nXl)P4$cEAIFKGZNX9SO75caA_=QoCQ|mouIUF(_4w(+$iNp47IoHLw z+F>b8RfFxusiozG%m@SrHFyay@8y?X8XQ=JQs*|6B8-j3=F*=}Zey2}&<68>u3>hA zdH9=o*k~R$nTH$A!%gO4Gar&ew-|@YJ`E>UILViUekbyh8dz_Zvjr~NaV6!rl9=z! zFHIm-3$YI6+=>I0#FMH9S@cabH73jHaoom11>S8lq7MAK%vo4V>98p+i>zPzy4`NK&lHkzO+mjtGVut|QiJl0coj7QLjmGBQ zh2dV_UZr6xT2EO!Cv-DcR+54GrlcI#LQ9dkLzOD3WznkiDW#gPL`ex<9<9w5$19*h zqMUdzB{AR)l*U=5`9jNyjNuiz;T7;H(^5(lU+7*g-7G5zv)fm0X1=eZR>4~!a;_q8 zQE4WjU$?O>C3L@ecmM~g+0VmYS|R>E_!oPNqx^lH{^xQ4PHjhoffT8TDDjr?x$yl_ z2_*}x^z57l=TdJeJ9n*)FZ6&>-zPa-<}HgdMwQJY!q+`2B_xd?XNnr+4l(;i4RR-l zoH|tva;t@;gK*o0WP@-p6E!D(>T4Uhn#P-b618$~x$#Ax%#4*CCn>lJ;>0{OyzZRP zYRJYfeHQh22;pYinhs;A7`ulhDR&yX`})%Ff@Nc(EnB9C!W92+h}>A{Q-gOK$NHv* z?-8?}&^xDxFAzYwgx<~X@YpSaObNZ!;BD{-^dKq$3zR_H{1e-+W4meP6I(s16UX0(wzTUp2`AFzj zVD#ELl9>uugh#?~B}-U8Z$C3k?HFic(&R^_cS!@~CNajZBY4zqy7ReP(=IK6uqD^3W*tRZ1F-WoH^(LF58niJwM zol0D-x7Lhvc8_Dl31OJbaFJ_?1H1#wFjx05R&)sqqom+WD{i27pc&`x9>{4q0@<=M1V-Y@KW#?Ih z&qCP*i}1iH8*ULE4rSFA;a)E*w#Y_fUTr~mh<8Y7EKf>u1837uKzbky)9 z?@6_fOAY^E{GTwgPZ+Y@2V>ZO!Z15w0G%*2PB`Z$oXu{hscV;C?uj%g<9Jv}tn=1& zZIL~41>+Kz7DX$hMbQdrQM5uD6s?d3MJuF1rXtL

Nq#6zw7{idIOAIu%`8^q{Qe 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 diff --git a/MedullaAdapter/build/Medulla/plugins/MedullaAdapter.pdb b/MedullaAdapter/build/Medulla/plugins/MedullaAdapter.pdb index 2f446aaa7bfcada1d635fd8c7f64a79d4c4583a4..1f8a518bb3ce3dd00550f108d61dd4846860c17b 100644 GIT binary patch delta 10472 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 diff --git a/MultiWheelC.Tests/FleetControllerTests.cs b/MultiWheelC.Tests/FleetControllerTests.cs index 3667bd8..6a6dbe3 100644 --- a/MultiWheelC.Tests/FleetControllerTests.cs +++ b/MultiWheelC.Tests/FleetControllerTests.cs @@ -15,13 +15,15 @@ namespace MultiWheelC.Tests { VerifyInactiveControllerStops(); VerifyStraightCommand(); + VerifyFortyFiveDegreeMotionDirection(); + VerifyNinetyDegreeMotionDirection(); VerifyInvalidVelocityUsesReferenceSpeed(); VerifyCompletionStops(); VerifyExcessiveTrackingErrorFaults(); VerifyCancelStops(); Console.WriteLine( - "FleetController车队中心控制测试通过。共6个场景。"); + "FleetController车队中心控制测试通过。共8个场景。"); } private static void VerifyInactiveControllerStops() @@ -91,6 +93,56 @@ namespace MultiWheelC.Tests "速度尚未初始化"); } + private static void VerifyFortyFiveDegreeMotionDirection() + { + VerifyMotionDirection( + Math.PI / 4.0, + "45度运动方向"); + } + + private static void VerifyNinetyDegreeMotionDirection() + { + VerifyMotionDirection( + Math.PI / 2.0, + "90度运动方向"); + } + + private static void VerifyMotionDirection( + double motionDirectionInFleetRadians, + string scenario) + { + var controller = CreateController( + motionDirectionInFleetRadians); + controller.Start( + CreateStraightTrajectory( + motionDirectionInFleetRadians)); + + var directionX = + Math.Cos(motionDirectionInFleetRadians); + var directionY = + Math.Sin(motionDirectionInFleetRadians); + var result = controller.ComputeCommand( + CreateState( + 0.5 * directionX, + 0.5 * directionY, + 0.4 * directionX, + 0.4 * directionY, + true), + 0.02, + out var command); + + AssertResult( + result, + FleetControlCycleResult.CommandGenerated, + scenario); + AssertTwist( + command.TwistAtReferencePoint, + 0.4 * directionX, + 0.4 * directionY, + 0.0, + scenario); + } + private static void VerifyCompletionStops() { var controller = CreateController(); @@ -156,18 +208,27 @@ namespace MultiWheelC.Tests AssertStop(command, "取消控制"); } - private static FleetController CreateController() + private static FleetController CreateController( + double motionDirectionInFleetRadians = 0.0) { return new FleetController( new StraightLateralController(), new ReferenceLongitudinalController(), new GcpCommandAllocator( Math.PI / 4.0), - virtualControlPointRadiusMeters: 0.5); + virtualControlPointRadiusMeters: 0.5, + motionDirectionInFleetRadians: + motionDirectionInFleetRadians); } - private static Trajectory2D CreateStraightTrajectory() + private static Trajectory2D CreateStraightTrajectory( + double motionDirectionInFleetRadians = 0.0) { + var directionX = + Math.Cos(motionDirectionInFleetRadians); + var directionY = + Math.Sin(motionDirectionInFleetRadians); + return new Trajectory2D( new[] { @@ -178,7 +239,10 @@ namespace MultiWheelC.Tests 0.4), new TrajectoryPoint( 1.0, - new Pose2D(1.0, 0.0, 0.0), + new Pose2D( + directionX, + directionY, + 0.0), 0.0, 0.4) }); @@ -189,6 +253,21 @@ namespace MultiWheelC.Tests double yMeters, double vxMetersPerSecond, bool hasValidVelocityEstimate) + { + return CreateState( + xMeters, + yMeters, + vxMetersPerSecond, + 0.0, + hasValidVelocityEstimate); + } + + private static FleetState CreateState( + double xMeters, + double yMeters, + double vxMetersPerSecond, + double vyMetersPerSecond, + bool hasValidVelocityEstimate) { return new FleetState( sampleTimestampSeconds: 1.0, @@ -198,7 +277,7 @@ namespace MultiWheelC.Tests 0.0), twistAtFleetOriginInWorld: new Twist2D( vxMetersPerSecond, - 0.0, + vyMetersPerSecond, 0.0), hasValidVelocityEstimate: hasValidVelocityEstimate); diff --git a/MultiWheelC.Tests/FleetCoordinatorTests.cs b/MultiWheelC.Tests/FleetCoordinatorTests.cs new file mode 100644 index 0000000..d19f5ec --- /dev/null +++ b/MultiWheelC.Tests/FleetCoordinatorTests.cs @@ -0,0 +1,654 @@ +using System; +using System.Collections.Generic; +using MultiWheelC.Control.Abstractions; +using MultiWheelC.Control.Allocation; +using MultiWheelC.Fleet; +using MultiWheelC.Trajectory; +using MyParking.Shared; + +namespace MultiWheelC.Tests +{ + internal static class FleetCoordinatorTests + { + private const double Tolerance = 1e-9; + + public static void Run() + { + VerifyCommandCycle(); + VerifySmallLayoutErrorIsCorrected(); + VerifyWarningRangeScalesAllCommands(); + VerifyUnavailableStateStopsAndRecovers(); + VerifyUnsafeLayoutFaultsAndLatches(); + VerifyCompletionStops(); + VerifyTrackingFaultStops(); + VerifyCancelReturnsInactive(); + + Console.WriteLine( + "FleetCoordinator车队协调测试通过。共8个场景。"); + } + + private static void VerifyCommandCycle() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + + var result = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.0, 0.0), + new Twist2D(0.4, 0.0, 0.0), + 1.0), + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.CommandGenerated, + "正常协调周期"); + if (!output.State.HasValue) + { + throw new InvalidOperationException( + "正常协调周期没有返回车队状态。"); + } + + AssertNear( + output.State.Value.FleetPoseInWorld.XMeters, + 0.5, + "正常协调周期中心X"); + AssertNear( + output.SpeedScale, + 1.0, + "正常协调周期速度比例"); + AssertTwist( + output.FleetCommand.TwistAtReferencePoint, + 0.4, + 0.0, + 0.0, + "正常协调周期车队命令"); + AssertTwist( + FindCommand(output.MemberCommands, 1) + .TwistInVehicleBody, + 0.4, + 0.0, + 0.0, + "正常协调周期车辆1"); + AssertTwist( + FindCommand(output.MemberCommands, 2) + .TwistInVehicleBody, + -0.4, + 0.0, + 0.0, + "正常协调周期车辆2"); + } + + private static void VerifySmallLayoutErrorIsCorrected() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + var result = coordinator.ExecuteCycle( + new[] + { + CreateMemberState( + 1, + new Pose2D(-0.99, 0.0, 0.0), + 1.0), + CreateMemberState( + 2, + new Pose2D(0.99, 0.0, Math.PI), + 1.0) + }, + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.CommandGenerated, + "小范围布局误差纠偏"); + AssertNear( + output.SpeedScale, + 1.0, + "小范围布局误差速度比例"); + AssertTwist( + FindCommand(output.BaseMemberCommands, 1) + .TwistInVehicleBody, + 0.4, + 0.0, + 0.0, + "车辆1基础命令"); + AssertTwist( + FindCommand(output.BaseMemberCommands, 2) + .TwistInVehicleBody, + -0.4, + 0.0, + 0.0, + "车辆2基础命令"); + AssertTwist( + FindCommand(output.MemberCommands, 1) + .TwistInVehicleBody, + 0.395, + 0.0, + 0.0, + "车辆1纠偏后命令"); + AssertTwist( + FindCommand(output.MemberCommands, 2) + .TwistInVehicleBody, + -0.405, + 0.0, + 0.0, + "车辆2纠偏后命令"); + } + + private static void VerifyWarningRangeScalesAllCommands() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + var result = coordinator.ExecuteCycle( + new[] + { + CreateMemberState( + 1, + new Pose2D(-0.965, 0.0, 0.0), + 1.0), + CreateMemberState( + 2, + new Pose2D(0.965, 0.0, Math.PI), + 1.0) + }, + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.CommandGenerated, + "警告区间统一缩放"); + AssertNear( + output.SpeedScale, + 0.5, + "警告区间速度比例"); + AssertTwist( + output.FleetCommand.TwistAtReferencePoint, + 0.2, + 0.0, + 0.0, + "警告区间车队命令"); + AssertTwist( + FindCommand(output.MemberCommands, 1) + .TwistInVehicleBody, + 0.2, + 0.0, + 0.0, + "警告区间车辆1"); + AssertTwist( + FindCommand(output.MemberCommands, 2) + .TwistInVehicleBody, + -0.2, + 0.0, + 0.0, + "警告区间车辆2"); + + if (string.IsNullOrWhiteSpace(output.Reason)) + { + throw new InvalidOperationException( + "警告区间缩放没有返回限制原因。"); + } + } + + private static void VerifyUnavailableStateStopsAndRecovers() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + var unavailableStates = CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.0, 0.0), + new Twist2D(0.4, 0.0, 0.0), + 1.0); + unavailableStates[1] = new FleetMemberStateSample( + unavailableStates[1].VehicleId, + unavailableStates[1].SampleTimestampSeconds, + unavailableStates[1].PoseInWorld, + unavailableStates[1].TwistAtVehicleOriginInWorld, + isStateAvailable: false, + hasValidVelocityEstimate: true); + + var waitingResult = coordinator.ExecuteCycle( + unavailableStates, + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var waitingOutput); + + AssertResult( + waitingResult, + FleetCoordinationCycleResult.WaitingForState, + "状态暂时不可用"); + AssertStop(waitingOutput, layout.VehicleCount); + + if (!coordinator.IsActive) + { + throw new InvalidOperationException( + "状态暂时不可用不应取消车队控制器。"); + } + + var recoveredResult = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.0, 0.0), + new Twist2D(0.4, 0.0, 0.0), + 1.02), + targetTimestampSeconds: 1.02, + deltaTimeSeconds: 0.02, + out _); + + AssertResult( + recoveredResult, + FleetCoordinationCycleResult.CommandGenerated, + "状态恢复"); + } + + private static void VerifyUnsafeLayoutFaultsAndLatches() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + var deformedStates = new[] + { + CreateMemberState( + 1, + new Pose2D(-0.9, 0.0, 0.0), + 1.0), + CreateMemberState( + 2, + new Pose2D(0.9, 0.0, Math.PI), + 1.0) + }; + + var result = coordinator.ExecuteCycle( + deformedStates, + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.Faulted, + "布局误差超限"); + AssertStop(output, layout.VehicleCount); + + if (!coordinator.IsFaulted || + string.IsNullOrWhiteSpace( + coordinator.LastFailureReason)) + { + throw new InvalidOperationException( + "布局误差故障没有被锁存。"); + } + + var latchedResult = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.0, 0.0), + new Twist2D(0.4, 0.0, 0.0), + 1.02), + targetTimestampSeconds: 1.02, + deltaTimeSeconds: 0.02, + out var latchedOutput); + + AssertResult( + latchedResult, + FleetCoordinationCycleResult.Faulted, + "布局误差故障锁存"); + AssertStop(latchedOutput, layout.VehicleCount); + } + + private static void VerifyCompletionStops() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + + var result = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(1.0, 0.0, 0.0), + Twist2D.Zero, + 1.0), + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.Completed, + "车队轨迹完成"); + AssertStop(output, layout.VehicleCount); + + if (!coordinator.IsCompleted) + { + throw new InvalidOperationException( + "车队轨迹完成状态没有被保存。"); + } + } + + private static void VerifyTrackingFaultStops() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + + var result = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.5, 0.0), + Twist2D.Zero, + 1.0), + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.Faulted, + "车队中心跟踪故障"); + AssertStop(output, layout.VehicleCount); + + if (!coordinator.IsFaulted) + { + throw new InvalidOperationException( + "车队中心跟踪故障没有传递到协调器。"); + } + } + + private static void VerifyCancelReturnsInactive() + { + var layout = CreateLayout(); + var coordinator = CreateCoordinator(); + coordinator.Start(layout, CreateTrajectory()); + coordinator.Cancel(); + + var result = coordinator.ExecuteCycle( + CreateRigidMemberStates( + layout, + new Pose2D(0.5, 0.0, 0.0), + Twist2D.Zero, + 1.0), + targetTimestampSeconds: 1.0, + deltaTimeSeconds: 0.02, + out var output); + + AssertResult( + result, + FleetCoordinationCycleResult.Inactive, + "取消车队协调"); + AssertStop(output, layout.VehicleCount); + } + + private static FleetCoordinator CreateCoordinator() + { + var estimator = new FleetStateEstimator( + maximumMemberStateAgeSeconds: 0.25, + maximumPositionDisagreementMeters: 0.5, + maximumYawDisagreementRadians: + AngleMath.DegreesToRadians(10.0)); + var controller = new FleetController( + new StraightLateralController(), + new ReferenceLongitudinalController(), + new GcpCommandAllocator(Math.PI / 4.0), + virtualControlPointRadiusMeters: 0.5); + var commandCorrector = + new FleetMemberCommandCorrector( + longitudinalPositionGainPerSecond: 1.0, + lateralPositionGainPerSecond: 1.0, + yawGainPerSecond: 1.0, + positionErrorDeadbandMeters: 0.005, + yawErrorDeadbandRadians: + AngleMath.DegreesToRadians(0.5), + maximumLinearCorrectionMetersPerSecond: + 0.03, + maximumAngularCorrectionRadiansPerSecond: + AngleMath.DegreesToRadians(2.0)); + + return new FleetCoordinator( + estimator, + controller, + commandCorrector, + memberPositionErrorWarningMeters: 0.02, + maximumMemberPositionErrorMeters: 0.05, + memberYawErrorWarningRadians: + AngleMath.DegreesToRadians(1.0), + maximumMemberYawErrorRadians: + AngleMath.DegreesToRadians(3.0)); + } + + private static FleetLayout CreateLayout() + { + return new FleetLayout( + new[] + { + new VehicleLayout( + 1, + new Pose2D(-1.0, 0.0, 0.0)), + new VehicleLayout( + 2, + new Pose2D(1.0, 0.0, Math.PI)) + }); + } + + private static Trajectory2D CreateTrajectory() + { + return new Trajectory2D( + new[] + { + new TrajectoryPoint( + 0.0, + Pose2D.Identity, + 0.0, + 0.4), + new TrajectoryPoint( + 1.0, + new Pose2D(1.0, 0.0, 0.0), + 0.0, + 0.4) + }); + } + + private static FleetMemberStateSample[] + CreateRigidMemberStates( + FleetLayout layout, + Pose2D fleetPoseInWorld, + Twist2D twistAtFleetOriginInWorld, + double timestampSeconds) + { + var states = + new FleetMemberStateSample[layout.VehicleCount]; + + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicle = layout.Vehicles[index]; + var poseInWorld = FrameTransform2D.Compose( + fleetPoseInWorld, + vehicle.PoseInFleet); + var offsetX = + poseInWorld.XMeters - + fleetPoseInWorld.XMeters; + var offsetY = + poseInWorld.YMeters - + fleetPoseInWorld.YMeters; + var twistInWorld = new Twist2D( + twistAtFleetOriginInWorld.VxMetersPerSecond - + twistAtFleetOriginInWorld.OmegaRadiansPerSecond * + offsetY, + twistAtFleetOriginInWorld.VyMetersPerSecond + + twistAtFleetOriginInWorld.OmegaRadiansPerSecond * + offsetX, + twistAtFleetOriginInWorld.OmegaRadiansPerSecond); + + states[index] = new FleetMemberStateSample( + vehicle.VehicleId, + timestampSeconds, + poseInWorld, + twistInWorld, + isStateAvailable: true, + hasValidVelocityEstimate: true); + } + + return states; + } + + private static FleetMemberStateSample CreateMemberState( + int vehicleId, + Pose2D poseInWorld, + double timestampSeconds) + { + return new FleetMemberStateSample( + vehicleId, + timestampSeconds, + poseInWorld, + Twist2D.Zero, + isStateAvailable: true, + hasValidVelocityEstimate: true); + } + + private static FleetMemberCommand FindCommand( + IReadOnlyList commands, + int vehicleId) + { + for (var index = 0; + index < commands.Count; + index++) + { + if (commands[index].VehicleId == vehicleId) + { + return commands[index]; + } + } + + throw new InvalidOperationException( + $"没有找到车辆{vehicleId}的成员命令。"); + } + + private static void AssertStop( + FleetCoordinationCycleOutput output, + int expectedMemberCount) + { + AssertTwist( + output.FleetCommand.TwistAtReferencePoint, + 0.0, + 0.0, + 0.0, + "车队停止命令"); + + if (output.MemberCommands.Count != expectedMemberCount) + { + throw new InvalidOperationException( + "停止输出的成员命令数量错误。"); + } + + if (output.BaseMemberCommands.Count != expectedMemberCount) + { + throw new InvalidOperationException( + "停止输出的成员基础命令数量错误。"); + } + + for (var index = 0; + index < output.MemberCommands.Count; + index++) + { + AssertTwist( + output.BaseMemberCommands[index] + .TwistInVehicleBody, + 0.0, + 0.0, + 0.0, + "成员基础停止命令"); + AssertTwist( + output.MemberCommands[index].TwistInVehicleBody, + 0.0, + 0.0, + 0.0, + "成员停止命令"); + } + } + + private static void AssertResult( + FleetCoordinationCycleResult actual, + FleetCoordinationCycleResult expected, + string scenario) + { + if (actual != expected) + { + throw new InvalidOperationException( + $"{scenario}结果错误:" + + $"actual={actual}, expected={expected}。"); + } + } + + private static void AssertTwist( + Twist2D actual, + double expectedVx, + double expectedVy, + double expectedOmega, + string scenario) + { + AssertNear( + actual.VxMetersPerSecond, + expectedVx, + scenario + " Vx"); + AssertNear( + actual.VyMetersPerSecond, + expectedVy, + scenario + " Vy"); + AssertNear( + actual.OmegaRadiansPerSecond, + expectedOmega, + scenario + " Omega"); + } + + private static void AssertNear( + double actual, + double expected, + string valueName) + { + if (Math.Abs(actual - expected) > Tolerance) + { + throw new InvalidOperationException( + $"{valueName}错误:" + + $"actual={actual:F9}, expected={expected:F9}。"); + } + } + + private sealed class StraightLateralController : + ILateralController + { + public LateralControlCommand Compute( + PathTrackingContext context) + { + return LateralControlCommand.Straight; + } + + public void Reset() + { + } + } + + private sealed class ReferenceLongitudinalController : + ILongitudinalController + { + public double ComputeSpeedMetersPerSecond( + PathTrackingContext context) + { + return context.ControlReferenceSpeedMetersPerSecond; + } + + public void Reset() + { + } + } + } +} diff --git a/MultiWheelC.Tests/FleetLayoutCaptureTests.cs b/MultiWheelC.Tests/FleetLayoutCaptureTests.cs new file mode 100644 index 0000000..416ecc9 --- /dev/null +++ b/MultiWheelC.Tests/FleetLayoutCaptureTests.cs @@ -0,0 +1,268 @@ +using System; +using MultiWheelC.Fleet; +using MyParking.Shared; + +namespace MultiWheelC.Tests +{ + internal static class FleetLayoutCaptureTests + { + private const double Tolerance = 1e-9; + + public static void Run() + { + VerifySymmetricTailToTailLayout(); + VerifyAsymmetricLayoutAndPoseReconstruction(); + VerifyInputOrderDoesNotChangeResult(); + VerifyEmptyInputIsRejected(); + VerifyDuplicateVehicleIdIsRejected(); + VerifyMissingLeaderIsRejected(); + + Console.WriteLine( + "FleetLayoutCapture布局建立测试通过。共6个场景。"); + } + + private static void VerifySymmetricTailToTailLayout() + { + var result = FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 1, + new Pose2D(-1.2, 0.0, 0.0)), + new FleetMemberPose( + 2, + new Pose2D(1.2, 0.0, Math.PI)) + }, + leaderVehicleId: 1); + + AssertPose( + result.FleetPoseInWorld, + Pose2D.Identity, + "对称双车中心"); + AssertVehicleLayout( + result.Layout, + 1, + new Pose2D(-1.2, 0.0, 0.0), + "对称双车主车布局"); + AssertVehicleLayout( + result.Layout, + 2, + new Pose2D(1.2, 0.0, Math.PI), + "对称双车从车布局"); + } + + private static void VerifyAsymmetricLayoutAndPoseReconstruction() + { + var members = new[] + { + new FleetMemberPose( + 3, + new Pose2D(1.0, 1.0, 0.4)), + new FleetMemberPose( + 1, + new Pose2D(4.0, 1.0, 0.4)), + new FleetMemberPose( + 2, + new Pose2D(1.0, 4.0, -0.8)) + }; + var result = FleetLayoutCapture.Capture( + members, + leaderVehicleId: 1); + + AssertPose( + result.FleetPoseInWorld, + new Pose2D(2.0, 2.0, 0.4), + "非对称三车中心"); + + for (var index = 0; + index < members.Length; + index++) + { + if (!result.Layout.TryGetVehicle( + members[index].VehicleId, + out var vehicleLayout)) + { + throw new InvalidOperationException( + "非对称布局缺少成员车。" + + members[index].VehicleId); + } + + var reconstructedPoseInWorld = + FrameTransform2D.Compose( + result.FleetPoseInWorld, + vehicleLayout.PoseInFleet); + AssertPose( + reconstructedPoseInWorld, + members[index].PoseInWorld, + "非对称布局世界位姿还原"); + } + } + + private static void VerifyInputOrderDoesNotChangeResult() + { + var first = FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 1, + new Pose2D(2.0, 3.0, 0.6)), + new FleetMemberPose( + 2, + new Pose2D(4.0, 5.0, -1.0)) + }, + leaderVehicleId: 1); + var second = FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 2, + new Pose2D(4.0, 5.0, -1.0)), + new FleetMemberPose( + 1, + new Pose2D(2.0, 3.0, 0.6)) + }, + leaderVehicleId: 1); + + AssertPose( + first.FleetPoseInWorld, + second.FleetPoseInWorld, + "输入顺序不变中心"); + AssertSameLayout(first.Layout, second.Layout); + } + + private static void VerifyEmptyInputIsRejected() + { + ExpectException( + () => FleetLayoutCapture.Capture( + Array.Empty(), + leaderVehicleId: 1), + "空成员集合"); + } + + private static void VerifyDuplicateVehicleIdIsRejected() + { + ExpectException( + () => FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 1, + Pose2D.Identity), + new FleetMemberPose( + 1, + new Pose2D(1.0, 0.0, 0.0)) + }, + leaderVehicleId: 1), + "重复车号"); + } + + private static void VerifyMissingLeaderIsRejected() + { + ExpectException( + () => FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 2, + Pose2D.Identity) + }, + leaderVehicleId: 1), + "缺少主车"); + } + + private static void AssertSameLayout( + FleetLayout first, + FleetLayout second) + { + if (first.VehicleCount != second.VehicleCount) + { + throw new InvalidOperationException( + "输入顺序变化后成员数量发生变化。"); + } + + for (var index = 0; + index < first.Vehicles.Count; + index++) + { + var vehicle = first.Vehicles[index]; + AssertVehicleLayout( + second, + vehicle.VehicleId, + vehicle.PoseInFleet, + "输入顺序不变布局"); + } + } + + private static void AssertVehicleLayout( + FleetLayout layout, + int vehicleId, + Pose2D expectedPoseInFleet, + string scenario) + { + if (!layout.TryGetVehicle( + vehicleId, + out var vehicle)) + { + throw new InvalidOperationException( + $"{scenario}缺少车辆{vehicleId}。"); + } + + AssertPose( + vehicle.PoseInFleet, + expectedPoseInFleet, + scenario); + } + + private static void AssertPose( + Pose2D actual, + Pose2D expected, + string scenario) + { + AssertNear( + actual.XMeters, + expected.XMeters, + scenario + " X"); + AssertNear( + actual.YMeters, + expected.YMeters, + scenario + " Y"); + AssertNear( + AngleMath.NormalizeRadians( + actual.YawRadians - + expected.YawRadians), + 0.0, + scenario + " Yaw"); + } + + private static void AssertNear( + double actual, + double expected, + string valueName) + { + if (Math.Abs(actual - expected) > Tolerance) + { + throw new InvalidOperationException( + $"{valueName}错误:" + + $"actual={actual:F9}, expected={expected:F9}。"); + } + } + + private static void ExpectException( + Action action, + string scenario) + where TException : Exception + { + try + { + action(); + } + catch (TException) + { + return; + } + + throw new InvalidOperationException( + $"{scenario}没有抛出{typeof(TException).Name}。"); + } + } +} diff --git a/MultiWheelC.Tests/FleetMemberCommandCorrectorTests.cs b/MultiWheelC.Tests/FleetMemberCommandCorrectorTests.cs new file mode 100644 index 0000000..7c6fe7d --- /dev/null +++ b/MultiWheelC.Tests/FleetMemberCommandCorrectorTests.cs @@ -0,0 +1,302 @@ +using System; +using System.Collections.Generic; +using MultiWheelC.Fleet; +using MyParking.Shared; + +namespace MultiWheelC.Tests +{ + internal static class FleetMemberCommandCorrectorTests + { + private const double Tolerance = 1e-9; + + public static void Run() + { + VerifyZeroErrorsPreserveBaseCommands(); + VerifyRelativePositionErrorProducesOpposingCorrection(); + VerifyCommonTranslationIsRemoved(); + VerifyCommonRotationIsRemoved(); + VerifyDeadbandSuppressesSmallErrors(); + VerifyCorrectionLimits(); + + Console.WriteLine( + "FleetMemberCommandCorrector测试通过,共6个场景。"); + } + + private static void VerifyZeroErrorsPreserveBaseCommands() + { + var layout = CreateLayout(); + var baseCommands = FleetKinematics.Decompose( + layout, + new FleetMotionCommand( + Point2D.Zero, + new Twist2D(0.4, 0.1, 0.05))); + var corrected = CreateCorrector().Correct( + layout, + baseCommands, + CreateErrors(Pose2D.Identity, Pose2D.Identity)); + + AssertCommandsEqual( + corrected, + baseCommands, + "零布局误差"); + } + + private static void + VerifyRelativePositionErrorProducesOpposingCorrection() + { + var layout = CreateLayout(); + var corrected = CreateCorrector().Correct( + layout, + CreateStopCommands(layout), + CreateErrors( + new Pose2D(0.02, 0.0, 0.0), + new Pose2D(0.02, 0.0, 0.0))); + + AssertTwist( + FindCommand(corrected, 1).TwistInVehicleBody, + -0.02, + 0.0, + 0.0, + "车辆1相对位置纠偏"); + AssertTwist( + FindCommand(corrected, 2).TwistInVehicleBody, + -0.02, + 0.0, + 0.0, + "车辆2相对位置纠偏"); + } + + private static void VerifyCommonTranslationIsRemoved() + { + var layout = CreateLayout(); + var corrected = CreateCorrector().Correct( + layout, + CreateStopCommands(layout), + CreateErrors( + new Pose2D(0.02, 0.0, 0.0), + new Pose2D(-0.02, 0.0, 0.0))); + + AssertAllStopped( + corrected, + "共同平移不应成为成员相对纠偏"); + } + + private static void VerifyCommonRotationIsRemoved() + { + const double fleetYawErrorRadians = 0.02; + var layout = CreateLayout(); + var commonRotationError = new Pose2D( + 0.0, + -fleetYawErrorRadians, + fleetYawErrorRadians); + var corrected = CreateCorrector().Correct( + layout, + CreateStopCommands(layout), + CreateErrors( + commonRotationError, + commonRotationError)); + + AssertAllStopped( + corrected, + "共同旋转不应成为成员相对纠偏"); + } + + private static void VerifyDeadbandSuppressesSmallErrors() + { + var layout = CreateLayout(); + var corrector = new FleetMemberCommandCorrector( + longitudinalPositionGainPerSecond: 1.0, + lateralPositionGainPerSecond: 1.0, + yawGainPerSecond: 1.0, + positionErrorDeadbandMeters: 0.005, + yawErrorDeadbandRadians: 0.02, + maximumLinearCorrectionMetersPerSecond: 1.0, + maximumAngularCorrectionRadiansPerSecond: 1.0); + var corrected = corrector.Correct( + layout, + CreateStopCommands(layout), + CreateErrors( + new Pose2D(0.004, 0.003, 0.01), + new Pose2D(0.004, -0.003, -0.01))); + + AssertAllStopped(corrected, "布局误差死区"); + } + + private static void VerifyCorrectionLimits() + { + var layout = CreateLayout(); + var corrector = new FleetMemberCommandCorrector( + longitudinalPositionGainPerSecond: 1.0, + lateralPositionGainPerSecond: 1.0, + yawGainPerSecond: 1.0, + positionErrorDeadbandMeters: 0.0, + yawErrorDeadbandRadians: 0.0, + maximumLinearCorrectionMetersPerSecond: 0.03, + maximumAngularCorrectionRadiansPerSecond: 0.05); + var corrected = corrector.Correct( + layout, + CreateStopCommands(layout), + CreateErrors( + new Pose2D(0.2, 0.0, 0.2), + new Pose2D(0.2, 0.0, -0.2))); + + for (var index = 0; index < corrected.Count; index++) + { + var twist = corrected[index].TwistInVehicleBody; + var linearMagnitude = Math.Sqrt( + twist.VxMetersPerSecond * + twist.VxMetersPerSecond + + twist.VyMetersPerSecond * + twist.VyMetersPerSecond); + + AssertNear( + linearMagnitude, + 0.03, + "线速度纠偏限幅"); + AssertNear( + Math.Abs(twist.OmegaRadiansPerSecond), + 0.05, + "角速度纠偏限幅"); + } + } + + private static FleetMemberCommandCorrector CreateCorrector() + { + return new FleetMemberCommandCorrector( + longitudinalPositionGainPerSecond: 1.0, + lateralPositionGainPerSecond: 1.0, + yawGainPerSecond: 1.0, + positionErrorDeadbandMeters: 0.0, + yawErrorDeadbandRadians: 0.0, + maximumLinearCorrectionMetersPerSecond: 1.0, + maximumAngularCorrectionRadiansPerSecond: 1.0); + } + + private static FleetLayout CreateLayout() + { + return new FleetLayout( + new[] + { + new VehicleLayout( + 1, + new Pose2D(-1.0, 0.0, 0.0)), + new VehicleLayout( + 2, + new Pose2D(1.0, 0.0, Math.PI)) + }); + } + + private static IReadOnlyList + CreateStopCommands(FleetLayout layout) + { + return FleetKinematics.Decompose( + layout, + FleetMotionCommand.Stop()); + } + + private static FleetMemberLayoutError[] CreateErrors( + Pose2D vehicle1Error, + Pose2D vehicle2Error) + { + return new[] + { + new FleetMemberLayoutError(1, vehicle1Error), + new FleetMemberLayoutError(2, vehicle2Error) + }; + } + + private static FleetMemberCommand FindCommand( + IReadOnlyList commands, + int vehicleId) + { + for (var index = 0; index < commands.Count; index++) + { + if (commands[index].VehicleId == vehicleId) + { + return commands[index]; + } + } + + throw new InvalidOperationException( + $"没有找到车辆{vehicleId}的成员命令。"); + } + + private static void AssertCommandsEqual( + IReadOnlyList actual, + IReadOnlyList expected, + string scenario) + { + if (actual.Count != expected.Count) + { + throw new InvalidOperationException( + $"{scenario}的命令数量不一致。"); + } + + for (var index = 0; index < expected.Count; index++) + { + var expectedCommand = expected[index]; + var actualCommand = FindCommand( + actual, + expectedCommand.VehicleId); + AssertTwist( + actualCommand.TwistInVehicleBody, + expectedCommand.TwistInVehicleBody + .VxMetersPerSecond, + expectedCommand.TwistInVehicleBody + .VyMetersPerSecond, + expectedCommand.TwistInVehicleBody + .OmegaRadiansPerSecond, + scenario); + } + } + + private static void AssertAllStopped( + IReadOnlyList commands, + string scenario) + { + for (var index = 0; index < commands.Count; index++) + { + AssertTwist( + commands[index].TwistInVehicleBody, + 0.0, + 0.0, + 0.0, + scenario); + } + } + + private static void AssertTwist( + Twist2D actual, + double expectedVx, + double expectedVy, + double expectedOmega, + string scenario) + { + AssertNear( + actual.VxMetersPerSecond, + expectedVx, + scenario + " Vx"); + AssertNear( + actual.VyMetersPerSecond, + expectedVy, + scenario + " Vy"); + AssertNear( + actual.OmegaRadiansPerSecond, + expectedOmega, + scenario + " Omega"); + } + + private static void AssertNear( + double actual, + double expected, + string valueName) + { + if (Math.Abs(actual - expected) > Tolerance) + { + throw new InvalidOperationException( + $"{valueName}错误:" + + $"actual={actual:F9}, expected={expected:F9}。"); + } + } + } +} diff --git a/MultiWheelC.Tests/FleetPreparationCoordinatorTests.cs b/MultiWheelC.Tests/FleetPreparationCoordinatorTests.cs new file mode 100644 index 0000000..3e41d08 --- /dev/null +++ b/MultiWheelC.Tests/FleetPreparationCoordinatorTests.cs @@ -0,0 +1,310 @@ +using System; +using MultiWheelC.Fleet; +using MyParking.Shared; + +namespace MultiWheelC.Tests +{ + internal static class FleetPreparationCoordinatorTests + { + private const double Tolerance = 1e-9; + + public static void Run() + { + VerifyLeaderYawExample(); + VerifyTailToTailUsesEquivalentAxis(); + VerifyAllMembersMustBeReady(); + VerifyStaleStatusIsIgnored(); + VerifyMemberFaultIsLatched(); + VerifyFaultAfterAuthorizationIsLatched(); + VerifyPrematureActiveIsRejected(); + VerifyCancelClearsPlan(); + + Console.WriteLine( + "FleetPreparationCoordinator测试通过。共8个场景。"); + } + + private static void VerifyLeaderYawExample() + { + var capture = FleetLayoutCapture.Capture( + new[] + { + new FleetMemberPose( + 1, + new Pose2D( + -1.0, + 0.0, + AngleMath.DegreesToRadians(20.0))), + new FleetMemberPose( + 2, + new Pose2D(1.0, 0.0, 0.0)) + }, + leaderVehicleId: 1); + var coordinator = + new FleetPreparationCoordinator(); + + coordinator.StartRollingPreparation( + planId: 1, + capture.Layout, + motionDirectionInFleetRadians: 0.0); + + AssertTargetDegrees(coordinator, 1, 0.0); + AssertTargetDegrees(coordinator, 2, 20.0); + } + + private static void VerifyTailToTailUsesEquivalentAxis() + { + var coordinator = + new FleetPreparationCoordinator(); + coordinator.StartRollingPreparation( + planId: 2, + CreateTailToTailLayout(), + motionDirectionInFleetRadians: 0.0); + + AssertTargetDegrees(coordinator, 1, 0.0); + AssertTargetDegrees(coordinator, 2, 0.0); + } + + private static void VerifyAllMembersMustBeReady() + { + var coordinator = CreateStartedCoordinator(3); + + AssertState( + coordinator.ReportMemberStatus( + CreateStatus( + 3, + 1, + FleetMemberAgentState.Ready)), + FleetPreparationCoordinatorState + .WaitingForMembers, + "仅一辆车Ready"); + AssertState( + coordinator.ReportMemberStatus( + CreateStatus( + 3, + 2, + FleetMemberAgentState.Ready)), + FleetPreparationCoordinatorState + .ReadyToActivate, + "全部成员Ready"); + AssertState( + coordinator.ReportMemberStatus( + CreateStatus( + 3, + 1, + FleetMemberAgentState.Preparing)), + FleetPreparationCoordinatorState + .WaitingForMembers, + "成员失去Ready"); + AssertState( + coordinator.ReportMemberStatus( + CreateStatus( + 3, + 1, + FleetMemberAgentState.Ready)), + FleetPreparationCoordinatorState + .ReadyToActivate, + "成员重新Ready"); + + if (coordinator.TryAuthorizeActivation(4)) + { + throw new InvalidOperationException( + "错误任务编号不应获得激活授权。"); + } + + if (!coordinator.TryAuthorizeActivation(3)) + { + throw new InvalidOperationException( + "全部成员Ready后没有获得激活授权。"); + } + + AssertState( + coordinator.State, + FleetPreparationCoordinatorState + .ActivationAuthorized, + "统一激活授权"); + } + + private static void VerifyStaleStatusIsIgnored() + { + var coordinator = CreateStartedCoordinator(5); + var state = coordinator.ReportMemberStatus( + CreateStatus( + 4, + 1, + FleetMemberAgentState.Ready)); + + AssertState( + state, + FleetPreparationCoordinatorState + .WaitingForMembers, + "旧任务状态报告"); + } + + private static void VerifyMemberFaultIsLatched() + { + var coordinator = CreateStartedCoordinator(6); + var state = coordinator.ReportMemberStatus( + CreateStatus( + 6, + 2, + FleetMemberAgentState.Faulted, + "舵轮未到位")); + + AssertState( + state, + FleetPreparationCoordinatorState.Faulted, + "成员准备故障"); + if (string.IsNullOrWhiteSpace( + coordinator.LastFailureReason)) + { + throw new InvalidOperationException( + "成员准备故障没有保存原因。"); + } + } + + private static void VerifyFaultAfterAuthorizationIsLatched() + { + var coordinator = CreateStartedCoordinator(9); + coordinator.ReportMemberStatus( + CreateStatus( + 9, + 1, + FleetMemberAgentState.Ready)); + coordinator.ReportMemberStatus( + CreateStatus( + 9, + 2, + FleetMemberAgentState.Ready)); + coordinator.TryAuthorizeActivation(9); + + var state = coordinator.ReportMemberStatus( + CreateStatus( + 9, + 2, + FleetMemberAgentState.Faulted, + "激活失败")); + + AssertState( + state, + FleetPreparationCoordinatorState.Faulted, + "授权后的成员故障"); + } + + private static void VerifyPrematureActiveIsRejected() + { + var coordinator = CreateStartedCoordinator(7); + var state = coordinator.ReportMemberStatus( + CreateStatus( + 7, + 1, + FleetMemberAgentState.Active)); + + AssertState( + state, + FleetPreparationCoordinatorState.Faulted, + "成员提前运动"); + } + + private static void VerifyCancelClearsPlan() + { + var coordinator = CreateStartedCoordinator(8); + coordinator.Cancel(); + + AssertState( + coordinator.State, + FleetPreparationCoordinatorState.Idle, + "取消准备任务"); + if (coordinator.CurrentPlanId != 0 || + coordinator.Targets.Count != 0) + { + throw new InvalidOperationException( + "取消后没有清除准备任务数据。"); + } + } + + private static FleetPreparationCoordinator + CreateStartedCoordinator(long planId) + { + var coordinator = + new FleetPreparationCoordinator(); + coordinator.StartRollingPreparation( + planId, + CreateTailToTailLayout(), + motionDirectionInFleetRadians: 0.0); + return coordinator; + } + + private static FleetLayout CreateTailToTailLayout() + { + return new FleetLayout( + new[] + { + new VehicleLayout( + 1, + new Pose2D(-1.0, 0.0, 0.0)), + new VehicleLayout( + 2, + new Pose2D(1.0, 0.0, Math.PI)) + }); + } + + private static FleetMemberPreparationStatus CreateStatus( + long planId, + int vehicleId, + FleetMemberAgentState state, + string failureReason = "") + { + return new FleetMemberPreparationStatus( + planId, + vehicleId, + state, + failureReason); + } + + private static void AssertTargetDegrees( + FleetPreparationCoordinator coordinator, + int vehicleId, + double expectedDegrees) + { + if (!coordinator.TryGetTarget( + vehicleId, + out var target)) + { + throw new InvalidOperationException( + $"没有找到车辆{vehicleId}的准备目标。"); + } + + AssertNear( + AngleMath.RadiansToDegrees( + target.MotionDirectionInBodyRadians), + expectedDegrees, + $"车辆{vehicleId}本地β"); + } + + private static void AssertState( + FleetPreparationCoordinatorState actual, + FleetPreparationCoordinatorState expected, + string scenario) + { + if (actual != expected) + { + throw new InvalidOperationException( + $"{scenario}状态错误:" + + $"actual={actual}, expected={expected}。"); + } + } + + private static void AssertNear( + double actual, + double expected, + string valueName) + { + if (Math.Abs(actual - expected) > Tolerance) + { + throw new InvalidOperationException( + $"{valueName}错误:" + + $"actual={actual:F9}, expected={expected:F9}。"); + } + } + } +} diff --git a/MultiWheelC.Tests/FleetStateEstimatorTests.cs b/MultiWheelC.Tests/FleetStateEstimatorTests.cs new file mode 100644 index 0000000..8d5f1b7 --- /dev/null +++ b/MultiWheelC.Tests/FleetStateEstimatorTests.cs @@ -0,0 +1,430 @@ +using System; +using System.Collections.Generic; +using MultiWheelC.Fleet; +using MyParking.Shared; + +namespace MultiWheelC.Tests +{ + internal static class FleetStateEstimatorTests + { + private const double Tolerance = 1e-9; + + public static void Run() + { + VerifyRigidStateIsRecovered(); + VerifyOlderSamplesAreAligned(); + VerifyYawWrapAroundIsAveraged(); + VerifySmallLayoutErrorIsReported(); + VerifyInconsistentCentersAreRejected(); + VerifyMissingMemberIsRejected(); + VerifyInvalidVelocityRemainsExplicit(); + + Console.WriteLine( + "FleetStateEstimator车队状态估计测试通过。共7个场景。"); + } + + private static void VerifyRigidStateIsRecovered() + { + var layout = CreateLayout(); + var fleetPose = new Pose2D(4.0, -2.0, 0.4); + var fleetTwist = new Twist2D(0.3, -0.1, 0.2); + var result = CreateEstimator().Estimate( + layout, + CreateRigidMemberStates( + layout, + fleetPose, + fleetTwist, + sampleTimestampSeconds: 5.0, + hasValidVelocityEstimate: true), + targetTimestampSeconds: 5.0); + + var state = RequireState(result, "刚体状态还原"); + AssertPose( + state.FleetPoseInWorld, + fleetPose, + "刚体状态还原"); + AssertTwist( + state.TwistAtFleetOriginInWorld, + fleetTwist, + "刚体速度还原"); + + for (var index = 0; + index < result.MemberErrors.Count; + index++) + { + AssertPose( + result.MemberErrors[index] + .ActualPoseInExpectedVehicleFrame, + Pose2D.Identity, + "刚体布局误差"); + } + } + + private static void VerifyOlderSamplesAreAligned() + { + var layout = CreateLayout(); + var sampleFleetPose = + new Pose2D(1.0, 2.0, 0.3); + var fleetTwist = + new Twist2D(0.4, -0.2, 0.0); + var result = CreateEstimator().Estimate( + layout, + CreateRigidMemberStates( + layout, + sampleFleetPose, + fleetTwist, + sampleTimestampSeconds: 0.9, + hasValidVelocityEstimate: true), + targetTimestampSeconds: 1.0); + + var state = RequireState(result, "成员时间对齐"); + AssertPose( + state.FleetPoseInWorld, + new Pose2D(1.04, 1.98, 0.3), + "成员时间对齐"); + AssertTwist( + state.TwistAtFleetOriginInWorld, + fleetTwist, + "时间对齐后速度"); + } + + private static void VerifySmallLayoutErrorIsReported() + { + var layout = CreateLayout(); + var result = CreateEstimator().Estimate( + layout, + new[] + { + CreateMemberState( + 1, + new Pose2D(-0.98, 0.0, 0.0), + Twist2D.Zero, + 1.0, + true), + CreateMemberState( + 2, + new Pose2D(0.99, 0.0, Math.PI), + Twist2D.Zero, + 1.0, + true) + }, + targetTimestampSeconds: 1.0); + + var state = RequireState(result, "小范围布局误差"); + AssertNear( + state.FleetPoseInWorld.XMeters, + 0.005, + "小范围布局误差中心X"); + AssertNear( + FindError(result.MemberErrors, 1) + .ActualPoseInExpectedVehicleFrame.XMeters, + 0.015, + "车辆1布局误差X"); + AssertNear( + FindError(result.MemberErrors, 2) + .ActualPoseInExpectedVehicleFrame.XMeters, + 0.015, + "车辆2布局误差X"); + } + + private static void VerifyYawWrapAroundIsAveraged() + { + var layout = CreateLayout(); + var firstCandidate = new Pose2D( + 0.0, + 0.0, + AngleMath.DegreesToRadians(179.0)); + var secondCandidate = new Pose2D( + 0.0, + 0.0, + AngleMath.DegreesToRadians(-179.0)); + var result = CreateEstimator().Estimate( + layout, + new[] + { + CreateMemberState( + 1, + FrameTransform2D.Compose( + firstCandidate, + layout.Vehicles[0].PoseInFleet), + Twist2D.Zero, + 1.0, + true), + CreateMemberState( + 2, + FrameTransform2D.Compose( + secondCandidate, + layout.Vehicles[1].PoseInFleet), + Twist2D.Zero, + 1.0, + true) + }, + targetTimestampSeconds: 1.0); + + var state = RequireState(result, "跨正负π航向平均"); + AssertNear( + Math.Abs(state.FleetPoseInWorld.YawRadians), + Math.PI, + "跨正负π航向平均"); + } + + private static void VerifyInconsistentCentersAreRejected() + { + var result = CreateEstimator().Estimate( + CreateLayout(), + new[] + { + CreateMemberState( + 1, + new Pose2D(-1.0, 0.0, 0.0), + Twist2D.Zero, + 1.0, + true), + CreateMemberState( + 2, + new Pose2D(1.3, 0.0, Math.PI), + Twist2D.Zero, + 1.0, + true) + }, + targetTimestampSeconds: 1.0); + + AssertUnavailable(result, "候选中心冲突"); + } + + private static void VerifyMissingMemberIsRejected() + { + var result = CreateEstimator().Estimate( + CreateLayout(), + new[] + { + CreateMemberState( + 1, + new Pose2D(-1.0, 0.0, 0.0), + Twist2D.Zero, + 1.0, + true) + }, + targetTimestampSeconds: 1.0); + + AssertUnavailable(result, "成员缺失"); + } + + private static void VerifyInvalidVelocityRemainsExplicit() + { + var layout = CreateLayout(); + var result = CreateEstimator().Estimate( + layout, + CreateRigidMemberStates( + layout, + Pose2D.Identity, + new Twist2D(0.4, 0.0, 0.0), + sampleTimestampSeconds: 1.0, + hasValidVelocityEstimate: false), + targetTimestampSeconds: 1.0); + + var state = RequireState(result, "速度未初始化"); + if (state.HasValidVelocityEstimate) + { + throw new InvalidOperationException( + "成员速度无效时车队速度不应标记为有效。"); + } + + AssertTwist( + state.TwistAtFleetOriginInWorld, + Twist2D.Zero, + "速度未初始化"); + } + + private static FleetStateEstimator CreateEstimator() + { + return new FleetStateEstimator( + maximumMemberStateAgeSeconds: 0.25, + maximumPositionDisagreementMeters: 0.1, + maximumYawDisagreementRadians: + AngleMath.DegreesToRadians(5.0)); + } + + private static FleetLayout CreateLayout() + { + return new FleetLayout( + new[] + { + new VehicleLayout( + 1, + new Pose2D(-1.0, 0.0, 0.0)), + new VehicleLayout( + 2, + new Pose2D(1.0, 0.0, Math.PI)) + }); + } + + private static FleetMemberStateSample[] + CreateRigidMemberStates( + FleetLayout layout, + Pose2D fleetPoseInWorld, + Twist2D twistAtFleetOriginInWorld, + double sampleTimestampSeconds, + bool hasValidVelocityEstimate) + { + var states = + new FleetMemberStateSample[layout.VehicleCount]; + + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicle = layout.Vehicles[index]; + var memberPoseInWorld = + FrameTransform2D.Compose( + fleetPoseInWorld, + vehicle.PoseInFleet); + var xFromFleetOrigin = + memberPoseInWorld.XMeters - + fleetPoseInWorld.XMeters; + var yFromFleetOrigin = + memberPoseInWorld.YMeters - + fleetPoseInWorld.YMeters; + var memberTwistInWorld = new Twist2D( + twistAtFleetOriginInWorld + .VxMetersPerSecond - + twistAtFleetOriginInWorld + .OmegaRadiansPerSecond * + yFromFleetOrigin, + twistAtFleetOriginInWorld + .VyMetersPerSecond + + twistAtFleetOriginInWorld + .OmegaRadiansPerSecond * + xFromFleetOrigin, + twistAtFleetOriginInWorld + .OmegaRadiansPerSecond); + + states[index] = new FleetMemberStateSample( + vehicle.VehicleId, + sampleTimestampSeconds, + memberPoseInWorld, + memberTwistInWorld, + isStateAvailable: true, + hasValidVelocityEstimate: + hasValidVelocityEstimate); + } + + return states; + } + + private static FleetMemberStateSample CreateMemberState( + int vehicleId, + Pose2D poseInWorld, + Twist2D twistInWorld, + double timestampSeconds, + bool hasValidVelocityEstimate) + { + return new FleetMemberStateSample( + vehicleId, + timestampSeconds, + poseInWorld, + twistInWorld, + isStateAvailable: true, + hasValidVelocityEstimate: + hasValidVelocityEstimate); + } + + private static FleetState RequireState( + FleetStateEstimateResult result, + string scenario) + { + if (!result.IsAvailable || !result.State.HasValue) + { + throw new InvalidOperationException( + $"{scenario}应产生可用状态:" + + result.UnavailableReason); + } + + return result.State.Value; + } + + private static void AssertUnavailable( + FleetStateEstimateResult result, + string scenario) + { + if (result.IsAvailable || + string.IsNullOrWhiteSpace( + result.UnavailableReason)) + { + throw new InvalidOperationException( + $"{scenario}应返回带原因的不可用结果。"); + } + } + + private static FleetMemberLayoutError FindError( + IReadOnlyList errors, + int vehicleId) + { + for (var index = 0; + index < errors.Count; + index++) + { + if (errors[index].VehicleId == vehicleId) + { + return errors[index]; + } + } + + throw new InvalidOperationException( + $"没有找到车辆{vehicleId}的布局误差。"); + } + + private static void AssertPose( + Pose2D actual, + Pose2D expected, + string scenario) + { + AssertNear( + actual.XMeters, + expected.XMeters, + scenario + " X"); + AssertNear( + actual.YMeters, + expected.YMeters, + scenario + " Y"); + AssertNear( + AngleMath.ShortestDifferenceRadians( + actual.YawRadians, + expected.YawRadians), + 0.0, + scenario + " Yaw"); + } + + private static void AssertTwist( + Twist2D actual, + Twist2D expected, + string scenario) + { + AssertNear( + actual.VxMetersPerSecond, + expected.VxMetersPerSecond, + scenario + " Vx"); + AssertNear( + actual.VyMetersPerSecond, + expected.VyMetersPerSecond, + scenario + " Vy"); + AssertNear( + actual.OmegaRadiansPerSecond, + expected.OmegaRadiansPerSecond, + scenario + " Omega"); + } + + private static void AssertNear( + double actual, + double expected, + string valueName) + { + if (Math.Abs(actual - expected) > Tolerance) + { + throw new InvalidOperationException( + $"{valueName}错误:" + + $"actual={actual:F9}, expected={expected:F9}。"); + } + } + } +} diff --git a/MultiWheelC.Tests/Program.cs b/MultiWheelC.Tests/Program.cs index 9360103..3487e4b 100644 --- a/MultiWheelC.Tests/Program.cs +++ b/MultiWheelC.Tests/Program.cs @@ -35,8 +35,13 @@ namespace MultiWheelC.Tests Console.WriteLine( "Stanley前进/倒车横向符号测试通过。共8个场景。"); + FleetLayoutCaptureTests.Run(); + FleetStateEstimatorTests.Run(); FleetKinematicsTests.Run(); FleetControllerTests.Run(); + FleetMemberCommandCorrectorTests.Run(); + FleetCoordinatorTests.Run(); + FleetPreparationCoordinatorTests.Run(); } ///

diff --git a/MultiWheelC/Configuration/PilotConfig.ParkingControl.cs b/MultiWheelC/Configuration/PilotConfig.ParkingControl.cs index 367e321..281bafa 100644 --- a/MultiWheelC/Configuration/PilotConfig.ParkingControl.cs +++ b/MultiWheelC/Configuration/PilotConfig.ParkingControl.cs @@ -49,6 +49,12 @@ public partial class PilotConfig [FieldMember(desc = "停车控制:Detour自动坐标连续化最大航向变化(deg)")] public float ParkingDetourMaximumAutomaticHeadingShiftDegrees = 5f; + [FieldMember(desc = "停车控制:Detour缓存帧最大允许时间(s)")] + public float ParkingDetourMaximumCachedFrameAgeSeconds = 0.50f; + + [FieldMember(desc = "停车控制:Detour定位质量失效/恢复确认新帧数")] + public int ParkingDetourLocalizationQualityConfirmationFrames = 3; + [FieldMember(desc = "停车控制:Detour线速度滤波时间常数(s)")] public float ParkingDetourLinearVelocityFilterSeconds = 0.15f; diff --git a/MultiWheelC/Fleet/FleetController.cs b/MultiWheelC/Fleet/FleetController.cs index e0ca3e7..2cf04b8 100644 --- a/MultiWheelC/Fleet/FleetController.cs +++ b/MultiWheelC/Fleet/FleetController.cs @@ -37,14 +37,21 @@ namespace MultiWheelC.Fleet double terminalApproachGainPerSecond = 0.8, double maximumTerminalApproachSpeedMetersPerSecond = 0.05, double curvaturePreviewSeconds = 0.20, - double maximumCurvaturePreviewMeters = 0.12) + double maximumCurvaturePreviewMeters = 0.12, + double motionDirectionInFleetRadians = 0.0) { NumericGuard.EnsureFinitePositive( virtualControlPointRadiusMeters, nameof(virtualControlPointRadiusMeters)); + NumericGuard.EnsureFinite( + motionDirectionInFleetRadians, + nameof(motionDirectionInFleetRadians)); VirtualControlPointRadiusMeters = virtualControlPointRadiusMeters; + MotionDirectionInFleetRadians = + AngleMath.NormalizeRadians( + motionDirectionInFleetRadians); _trackingCore = new PathTrackingCore( lateralController, longitudinalController, @@ -58,12 +65,16 @@ namespace MultiWheelC.Fleet terminalApproachGainPerSecond, maximumTerminalApproachSpeedMetersPerSecond, curvaturePreviewSeconds, - maximumCurvaturePreviewMeters); + maximumCurvaturePreviewMeters, + MotionDirectionInFleetRadians); } // 虚拟车队中心到前、后GCP的距离,单位为m。 public double VirtualControlPointRadiusMeters { get; } + // 当前运动坐标系+X轴相对车队坐标系+X轴的方向,单位为rad。 + public double MotionDirectionInFleetRadians { get; } + public double FinishDistanceMeters => _trackingCore.FinishDistanceMeters; @@ -169,13 +180,20 @@ namespace MultiWheelC.Fleet try { - var twistAtFleetOrigin = + var twistAtFleetOriginInMotionFrame = GcpKinematics.ToBodyTwist( output.Command.Value, VirtualControlPointRadiusMeters); + var twistAtFleetOriginInFleet = + FrameTransform2D.TransformTwistAtSamePoint( + new Pose2D( + 0.0, + 0.0, + MotionDirectionInFleetRadians), + twistAtFleetOriginInMotionFrame); command = new FleetMotionCommand( Point2D.Zero, - twistAtFleetOrigin); + twistAtFleetOriginInFleet); LastCommand = command; return FleetControlCycleResult.CommandGenerated; } diff --git a/MultiWheelC/Fleet/FleetCoordinator.cs b/MultiWheelC/Fleet/FleetCoordinator.cs index 9a0d323..fd690f9 100644 --- a/MultiWheelC/Fleet/FleetCoordinator.cs +++ b/MultiWheelC/Fleet/FleetCoordinator.cs @@ -1 +1,509 @@ -// 只在主车激活,完成车队轨迹控制和命令分配 \ No newline at end of file +using System; +using System.Collections.Generic; +using MultiWheelC.Trajectory; +using MyParking.Shared; + +namespace MultiWheelC.Fleet +{ + // 主车单周期车队协调结果,不表示通信或成员底盘执行结果。 + public enum FleetCoordinationCycleResult + { + Inactive = 0, + WaitingForState = 1, + CommandGenerated = 2, + Completed = 3, + Faulted = 4 + } + + // 保存本周期的状态估计、车队命令和成员基础命令。 + public sealed class FleetCoordinationCycleOutput + { + internal FleetCoordinationCycleOutput( + FleetState? state, + IReadOnlyList memberErrors, + FleetMotionCommand fleetCommand, + IReadOnlyList baseMemberCommands, + IReadOnlyList memberCommands, + double speedScale, + string reason) + { + NumericGuard.EnsureFiniteNonNegative( + speedScale, + nameof(speedScale)); + if (speedScale > 1.0) + { + throw new ArgumentOutOfRangeException( + nameof(speedScale), + "车队统一速度比例不能大于1。"); + } + + State = state; + MemberErrors = memberErrors ?? + throw new ArgumentNullException( + nameof(memberErrors)); + FleetCommand = fleetCommand; + BaseMemberCommands = baseMemberCommands ?? + throw new ArgumentNullException( + nameof(baseMemberCommands)); + MemberCommands = memberCommands ?? + throw new ArgumentNullException( + nameof(memberCommands)); + SpeedScale = speedScale; + Reason = reason ?? string.Empty; + } + + public FleetState? State { get; } + + public IReadOnlyList MemberErrors { get; } + + public FleetMotionCommand FleetCommand { get; } + + // 仅由车队刚体命令分解得到,尚未叠加成员相对布局纠偏。 + public IReadOnlyList BaseMemberCommands { get; } + + // 已转换到成员当前车体系并叠加小范围相对布局纠偏的最终命令。 + public IReadOnlyList MemberCommands { get; } + + // 因成员布局误差施加到Vx、Vy和Omega的统一比例,范围为[0,1]。 + public double SpeedScale { get; } + + public string Reason { get; } + } + + // 在主车上串联车队状态估计、中心轨迹控制和成员命令分解。 + public sealed class FleetCoordinator + { + private static readonly IReadOnlyList + EmptyMemberErrors = Array.AsReadOnly( + Array.Empty()); + private static readonly IReadOnlyList + EmptyMemberCommands = Array.AsReadOnly( + Array.Empty()); + + private readonly FleetStateEstimator _stateEstimator; + private readonly FleetController _fleetController; + private readonly FleetMemberCommandCorrector + _memberCommandCorrector; + private readonly double _memberPositionErrorWarningMeters; + private readonly double _maximumMemberPositionErrorMeters; + private readonly double _memberYawErrorWarningRadians; + private readonly double _maximumMemberYawErrorRadians; + + private FleetLayout _activeLayout; + private bool _isCompleted; + private bool _isFaulted; + + public FleetCoordinator( + FleetStateEstimator stateEstimator, + FleetController fleetController, + FleetMemberCommandCorrector memberCommandCorrector, + double memberPositionErrorWarningMeters, + double maximumMemberPositionErrorMeters, + double memberYawErrorWarningRadians, + double maximumMemberYawErrorRadians) + { + _stateEstimator = stateEstimator ?? + throw new ArgumentNullException( + nameof(stateEstimator)); + _fleetController = fleetController ?? + throw new ArgumentNullException( + nameof(fleetController)); + _memberCommandCorrector = + memberCommandCorrector ?? + throw new ArgumentNullException( + nameof(memberCommandCorrector)); + NumericGuard.EnsureFiniteNonNegative( + memberPositionErrorWarningMeters, + nameof(memberPositionErrorWarningMeters)); + NumericGuard.EnsureFinitePositive( + maximumMemberPositionErrorMeters, + nameof(maximumMemberPositionErrorMeters)); + NumericGuard.EnsureFiniteNonNegative( + memberYawErrorWarningRadians, + nameof(memberYawErrorWarningRadians)); + NumericGuard.EnsureFinitePositive( + maximumMemberYawErrorRadians, + nameof(maximumMemberYawErrorRadians)); + + if (memberPositionErrorWarningMeters >= + maximumMemberPositionErrorMeters) + { + throw new ArgumentOutOfRangeException( + nameof(memberPositionErrorWarningMeters), + "成员位置误差警告阈值必须小于停止阈值。"); + } + + if (memberYawErrorWarningRadians >= + maximumMemberYawErrorRadians) + { + throw new ArgumentOutOfRangeException( + nameof(memberYawErrorWarningRadians), + "成员航向误差警告阈值必须小于停止阈值。"); + } + + if (maximumMemberYawErrorRadians > Math.PI) + { + throw new ArgumentOutOfRangeException( + nameof(maximumMemberYawErrorRadians), + "成员航向误差上限不能大于π。"); + } + + _memberPositionErrorWarningMeters = + memberPositionErrorWarningMeters; + _maximumMemberPositionErrorMeters = + maximumMemberPositionErrorMeters; + _memberYawErrorWarningRadians = + memberYawErrorWarningRadians; + _maximumMemberYawErrorRadians = + maximumMemberYawErrorRadians; + LastFailureReason = string.Empty; + } + + public FleetLayout ActiveLayout => _activeLayout; + + public bool IsActive => + _activeLayout != null && + !_isCompleted && + !_isFaulted && + _fleetController.IsActive; + + public bool IsCompleted => _isCompleted; + + public bool IsFaulted => _isFaulted; + + public string LastFailureReason { get; private set; } + + public void Start( + FleetLayout layout, + Trajectory2D trajectory) + { + if (layout == null) + { + throw new ArgumentNullException(nameof(layout)); + } + + if (trajectory == null) + { + throw new ArgumentNullException(nameof(trajectory)); + } + + _fleetController.Start(trajectory); + _activeLayout = layout; + _isCompleted = false; + _isFaulted = false; + LastFailureReason = string.Empty; + } + + public FleetCoordinationCycleResult ExecuteCycle( + IReadOnlyList memberStates, + double targetTimestampSeconds, + double deltaTimeSeconds, + out FleetCoordinationCycleOutput output) + { + if (memberStates == null) + { + throw new ArgumentNullException(nameof(memberStates)); + } + + NumericGuard.EnsureFiniteNonNegative( + targetTimestampSeconds, + nameof(targetTimestampSeconds)); + NumericGuard.EnsureFinitePositive( + deltaTimeSeconds, + nameof(deltaTimeSeconds)); + + if (_activeLayout == null) + { + output = CreateOutput( + null, + EmptyMemberErrors, + EmptyMemberCommands, + "车队布局尚未激活。"); + return FleetCoordinationCycleResult.Inactive; + } + + if (_isFaulted) + { + output = CreateStopOutput( + null, + EmptyMemberErrors, + LastFailureReason); + return FleetCoordinationCycleResult.Faulted; + } + + if (_isCompleted) + { + output = CreateStopOutput( + null, + EmptyMemberErrors, + string.Empty); + return FleetCoordinationCycleResult.Completed; + } + + if (!_fleetController.IsActive) + { + output = CreateStopOutput( + null, + EmptyMemberErrors, + "车队中心控制器尚未启动或已经取消。"); + return FleetCoordinationCycleResult.Inactive; + } + + var estimate = _stateEstimator.Estimate( + _activeLayout, + memberStates, + targetTimestampSeconds); + if (!estimate.IsAvailable || + !estimate.State.HasValue) + { + output = CreateStopOutput( + null, + estimate.MemberErrors, + estimate.UnavailableReason); + return FleetCoordinationCycleResult.WaitingForState; + } + + var state = estimate.State.Value; + var speedScale = CalculateLayoutSpeedScale( + estimate.MemberErrors, + out var layoutFailureReason, + out var limitingReason); + if (layoutFailureReason != null) + { + return Fail( + state, + estimate.MemberErrors, + layoutFailureReason, + out output); + } + + var controlResult = + _fleetController.ComputeCommand( + state, + deltaTimeSeconds, + out var fleetCommand); + + if (controlResult == + FleetControlCycleResult.CommandGenerated) + { + var scaledFleetCommand = ScaleFleetCommand( + fleetCommand, + speedScale); + var baseMemberCommands = + FleetKinematics.Decompose( + _activeLayout, + scaledFleetCommand); + var memberCommands = + _memberCommandCorrector.Correct( + _activeLayout, + baseMemberCommands, + estimate.MemberErrors, + applyRelativeCorrection: + speedScale >= 1.0); + output = new FleetCoordinationCycleOutput( + state, + estimate.MemberErrors, + scaledFleetCommand, + baseMemberCommands, + memberCommands, + speedScale, + limitingReason); + return FleetCoordinationCycleResult.CommandGenerated; + } + + if (controlResult == + FleetControlCycleResult.Completed) + { + _isCompleted = true; + output = CreateStopOutput( + state, + estimate.MemberErrors, + string.Empty); + return FleetCoordinationCycleResult.Completed; + } + + if (controlResult == + FleetControlCycleResult.Faulted) + { + var reason = string.IsNullOrWhiteSpace( + _fleetController.LastFailureReason) + ? "车队中心轨迹控制失败。" + : _fleetController.LastFailureReason; + return Fail( + state, + estimate.MemberErrors, + reason, + out output, + cancelController: false); + } + + output = CreateStopOutput( + state, + estimate.MemberErrors, + "车队中心控制器当前未生成命令。"); + return FleetCoordinationCycleResult.Inactive; + } + + public void Cancel() + { + _fleetController.Cancel(); + _isCompleted = false; + _isFaulted = false; + LastFailureReason = string.Empty; + } + + private double CalculateLayoutSpeedScale( + IReadOnlyList memberErrors, + out string failureReason, + out string limitingReason) + { + var speedScale = 1.0; + failureReason = null; + limitingReason = string.Empty; + + for (var index = 0; + index < memberErrors.Count; + index++) + { + var memberError = memberErrors[index]; + var poseError = + memberError.ActualPoseInExpectedVehicleFrame; + var positionErrorMeters = Math.Sqrt( + poseError.XMeters * poseError.XMeters + + poseError.YMeters * poseError.YMeters); + var yawErrorRadians = + Math.Abs(poseError.YawRadians); + + if (positionErrorMeters >= + _maximumMemberPositionErrorMeters) + { + failureReason = + $"车辆{memberError.VehicleId}相对布局位置误差" + + $"{positionErrorMeters:F3}m达到停止阈值。"; + return 0.0; + } + + if (yawErrorRadians >= + _maximumMemberYawErrorRadians) + { + failureReason = + $"车辆{memberError.VehicleId}相对布局航向误差" + + $"{AngleMath.RadiansToDegrees(yawErrorRadians):F2}°" + + "达到停止阈值。"; + return 0.0; + } + + var positionScale = CalculateScale( + positionErrorMeters, + _memberPositionErrorWarningMeters, + _maximumMemberPositionErrorMeters); + if (positionScale < speedScale) + { + speedScale = positionScale; + limitingReason = + $"车辆{memberError.VehicleId}相对布局位置误差" + + $"{positionErrorMeters:F3}m,车队统一速度比例" + + $"降至{speedScale:F3}。"; + } + + var yawScale = CalculateScale( + yawErrorRadians, + _memberYawErrorWarningRadians, + _maximumMemberYawErrorRadians); + if (yawScale < speedScale) + { + speedScale = yawScale; + limitingReason = + $"车辆{memberError.VehicleId}相对布局航向误差" + + $"{AngleMath.RadiansToDegrees(yawErrorRadians):F2}°," + + $"车队统一速度比例降至{speedScale:F3}。"; + } + } + + return speedScale; + } + + private static double CalculateScale( + double errorMagnitude, + double warningThreshold, + double stopThreshold) + { + if (errorMagnitude <= warningThreshold) + { + return 1.0; + } + + return (stopThreshold - errorMagnitude) / + (stopThreshold - warningThreshold); + } + + private static FleetMotionCommand ScaleFleetCommand( + FleetMotionCommand command, + double speedScale) + { + var twist = command.TwistAtReferencePoint; + return new FleetMotionCommand( + command.ReferencePointInFleet, + new Twist2D( + twist.VxMetersPerSecond * speedScale, + twist.VyMetersPerSecond * speedScale, + twist.OmegaRadiansPerSecond * speedScale)); + } + + private FleetCoordinationCycleResult Fail( + FleetState state, + IReadOnlyList memberErrors, + string reason, + out FleetCoordinationCycleOutput output, + bool cancelController = true) + { + if (cancelController) + { + _fleetController.Cancel(); + } + + _isFaulted = true; + _isCompleted = false; + LastFailureReason = reason ?? string.Empty; + output = CreateStopOutput( + state, + memberErrors, + LastFailureReason); + return FleetCoordinationCycleResult.Faulted; + } + + private FleetCoordinationCycleOutput CreateStopOutput( + FleetState? state, + IReadOnlyList memberErrors, + string reason) + { + var stopCommands = _activeLayout == null + ? EmptyMemberCommands + : FleetKinematics.Decompose( + _activeLayout, + FleetMotionCommand.Stop()); + + return CreateOutput( + state, + memberErrors, + stopCommands, + reason); + } + + private static FleetCoordinationCycleOutput CreateOutput( + FleetState? state, + IReadOnlyList memberErrors, + IReadOnlyList memberCommands, + string reason) + { + return new FleetCoordinationCycleOutput( + state, + memberErrors, + FleetMotionCommand.Stop(), + memberCommands, + memberCommands, + 0.0, + reason); + } + } +} diff --git a/MultiWheelC/Fleet/FleetLayoutCapture.cs b/MultiWheelC/Fleet/FleetLayoutCapture.cs new file mode 100644 index 0000000..e998bd8 --- /dev/null +++ b/MultiWheelC/Fleet/FleetLayoutCapture.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using MyParking.Shared; +// 夹紧后只执行一次 → 建立固定布局 +namespace MultiWheelC.Fleet +{ + // 建立编队时使用的一辆成员车世界位姿快照。 + public readonly struct FleetMemberPose + { + public FleetMemberPose( + int vehicleId, + Pose2D poseInWorld) + { + if (vehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(vehicleId), + "编队成员车号必须大于零。"); + } + + NumericGuard.EnsureFinite( + poseInWorld, + nameof(poseInWorld)); + + VehicleId = vehicleId; + PoseInWorld = new Pose2D( + poseInWorld.XMeters, + poseInWorld.YMeters, + AngleMath.NormalizeRadians( + poseInWorld.YawRadians)); + } + + public int VehicleId { get; } + + public Pose2D PoseInWorld { get; } + } + + // 保存布局建立时的车队世界位姿和固定成员布局。 + public readonly struct FleetLayoutCaptureResult + { + public FleetLayoutCaptureResult( + Pose2D fleetPoseInWorld, + FleetLayout layout) + { + NumericGuard.EnsureFinite( + fleetPoseInWorld, + nameof(fleetPoseInWorld)); + + FleetPoseInWorld = new Pose2D( + fleetPoseInWorld.XMeters, + fleetPoseInWorld.YMeters, + AngleMath.NormalizeRadians( + fleetPoseInWorld.YawRadians)); + Layout = layout ?? + throw new ArgumentNullException( + nameof(layout)); + } + + public Pose2D FleetPoseInWorld { get; } + + public FleetLayout Layout { get; } + } + + // 根据同一世界坐标系中的成员位姿建立车队几何中心和固定布局。 + public static class FleetLayoutCapture + { + public static FleetLayoutCaptureResult Capture( + IReadOnlyList memberPoses, + int leaderVehicleId) + { + if (memberPoses == null) + { + throw new ArgumentNullException( + nameof(memberPoses)); + } + + if (memberPoses.Count == 0) + { + throw new ArgumentException( + "建立编队布局至少需要一辆成员车。", + nameof(memberPoses)); + } + + if (leaderVehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(leaderVehicleId), + "主车车号必须大于零。"); + } + + var vehicleIds = new HashSet(); + var centerXMeters = 0.0; + var centerYMeters = 0.0; + var leaderFound = false; + var leaderYawRadians = 0.0; + + for (var index = 0; + index < memberPoses.Count; + index++) + { + var memberPose = memberPoses[index]; + if (memberPose.VehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(memberPoses), + $"第{index}辆成员车的车号必须大于零。"); + } + + NumericGuard.EnsureFinite( + memberPose.PoseInWorld, + $"{nameof(memberPoses)}[{index}]." + + nameof(FleetMemberPose.PoseInWorld)); + + if (!vehicleIds.Add(memberPose.VehicleId)) + { + throw new ArgumentException( + $"成员位姿包含重复车号{memberPose.VehicleId}。", + nameof(memberPoses)); + } + + centerXMeters += + memberPose.PoseInWorld.XMeters; + centerYMeters += + memberPose.PoseInWorld.YMeters; + + if (memberPose.VehicleId == leaderVehicleId) + { + leaderFound = true; + leaderYawRadians = + memberPose.PoseInWorld.YawRadians; + } + } + + if (!leaderFound) + { + throw new ArgumentException( + $"成员位姿中不存在主车{leaderVehicleId}。", + nameof(leaderVehicleId)); + } + + centerXMeters /= memberPoses.Count; + centerYMeters /= memberPoses.Count; + NumericGuard.EnsureFinite( + centerXMeters, + nameof(centerXMeters)); + NumericGuard.EnsureFinite( + centerYMeters, + nameof(centerYMeters)); + + var fleetPoseInWorld = new Pose2D( + centerXMeters, + centerYMeters, + AngleMath.NormalizeRadians( + leaderYawRadians)); + var worldPoseInFleet = + FrameTransform2D.Inverse( + fleetPoseInWorld); + var vehicleLayouts = + new VehicleLayout[memberPoses.Count]; + + for (var index = 0; + index < memberPoses.Count; + index++) + { + var memberPose = memberPoses[index]; + var poseInFleet = + FrameTransform2D.Compose( + worldPoseInFleet, + memberPose.PoseInWorld); + vehicleLayouts[index] = + new VehicleLayout( + memberPose.VehicleId, + poseInFleet); + } + + return new FleetLayoutCaptureResult( + fleetPoseInWorld, + new FleetLayout(vehicleLayouts)); + } + } +} diff --git a/MultiWheelC/Fleet/FleetMemberAgent.cs b/MultiWheelC/Fleet/FleetMemberAgent.cs index 3b7ba8d..d66294a 100644 --- a/MultiWheelC/Fleet/FleetMemberAgent.cs +++ b/MultiWheelC/Fleet/FleetMemberAgent.cs @@ -1 +1,456 @@ -// 主车、从车都有,负责执行分配给本车的命令 \ No newline at end of file +using System; +using MyParking.Shared; + +namespace MultiWheelC.Fleet +{ + /// 表示成员车在一次车队动作中的本地执行阶段。 + public enum FleetMemberAgentState + { + Idle = 0, + Preparing = 1, + Ready = 2, + Active = 3, + Faulted = 4 + } + + /// 区分固定β滚动运动和车辆中心纯自转的准备方式。 + public enum FleetMemberPreparationMode + { + Rolling = 0, + Spin = 1 + } + + /// 负责一辆成员车的舵轮准备、激活和本车速度命令执行。 + public sealed class FleetMemberAgent + { + private const double MotionDeadband = 1e-6; + + private readonly MultiWheelChassisAdapter _adapter; + private readonly double _alignmentToleranceRadians; + private readonly double _alignmentStableSeconds; + + private double _alignedDurationSeconds; + + /// 创建绑定到一辆多舵轮底盘的成员车执行器。 + public FleetMemberAgent( + MultiWheelChassisAdapter adapter, + double alignmentToleranceRadians, + double alignmentStableSeconds) + { + _adapter = adapter ?? + throw new ArgumentNullException(nameof(adapter)); + NumericGuard.EnsureFinitePositive( + alignmentToleranceRadians, + nameof(alignmentToleranceRadians)); + NumericGuard.EnsureFiniteNonNegative( + alignmentStableSeconds, + nameof(alignmentStableSeconds)); + + if (alignmentToleranceRadians > Math.PI) + { + throw new ArgumentOutOfRangeException( + nameof(alignmentToleranceRadians), + "舵轮到位容差不能大于π。"); + } + + _alignmentToleranceRadians = + alignmentToleranceRadians; + _alignmentStableSeconds = + alignmentStableSeconds; + State = FleetMemberAgentState.Idle; + LastFailureReason = string.Empty; + } + + public int VehicleId => _adapter.VehicleId; + + public FleetMemberAgentState State { get; private set; } + + public FleetMemberPreparationMode? PreparationMode + { + get; + private set; + } + + public long CurrentPlanId { get; private set; } + + public double MotionDirectionInBodyRadians + { + get; + private set; + } + + public string LastFailureReason { get; private set; } + + /// 停车并开始准备本车固定β滚动运动系。 + public bool BeginRollingPreparation( + long planId, + double motionDirectionInBodyRadians) + { + ValidatePlanId(planId); + NumericGuard.EnsureFinite( + motionDirectionInBodyRadians, + nameof(motionDirectionInBodyRadians)); + + return BeginPreparation( + planId, + FleetMemberPreparationMode.Rolling, + AngleMath.NormalizeRadians( + motionDirectionInBodyRadians)); + } + + /// 停车并开始准备车辆中心纯自转所需的舵轮方向。 + public bool BeginSpinPreparation(long planId) + { + ValidatePlanId(planId); + return BeginPreparation( + planId, + FleetMemberPreparationMode.Spin, + motionDirectionInBodyRadians: 0.0); + } + + /// 检查舵轮是否已连续稳定到位;宿主应在准备阶段周期调用。 + public FleetMemberAgentState UpdatePreparation( + double deltaTimeSeconds) + { + NumericGuard.EnsureFinitePositive( + deltaTimeSeconds, + nameof(deltaTimeSeconds)); + + if (State != FleetMemberAgentState.Preparing) + { + return State; + } + + bool aligned; + try + { + aligned = UpdateAndCheckAlignment(); + } + catch (InvalidOperationException exception) + { + Fail(exception.Message); + return State; + } + catch (ArgumentException exception) + { + Fail(exception.Message); + return State; + } + + if (State == FleetMemberAgentState.Faulted) + { + return State; + } + + _alignedDurationSeconds = aligned + ? _alignedDurationSeconds + deltaTimeSeconds + : 0.0; + + if (aligned && + _alignedDurationSeconds >= + _alignmentStableSeconds) + { + State = FleetMemberAgentState.Ready; + LastFailureReason = string.Empty; + } + + return State; + } + + /// 在主车确认全队Ready后激活本车已经准备好的运动方式。 + public bool Activate(long planId) + { + if (planId != CurrentPlanId) + { + LastFailureReason = + "激活任务编号与当前准备任务不一致。"; + return false; + } + + if (State == FleetMemberAgentState.Active) + { + return true; + } + + if (State != FleetMemberAgentState.Ready || + !PreparationMode.HasValue) + { + return RejectWhileStopped( + "成员车尚未完成舵轮准备。"); + } + + bool stillAligned; + try + { + stillAligned = ArePreparedWheelsStillAligned(); + } + catch (InvalidOperationException exception) + { + return Fail(exception.Message); + } + catch (ArgumentException exception) + { + return Fail(exception.Message); + } + + if (!stillAligned) + { + State = FleetMemberAgentState.Preparing; + _alignedDurationSeconds = 0.0; + return RejectWhileStopped( + "成员车在激活前失去舵轮到位状态。"); + } + + try + { + if (PreparationMode.Value == + FleetMemberPreparationMode.Rolling) + { + _adapter.ActivateMotionFrame( + MotionDirectionInBodyRadians); + } + else if (!_adapter.AdoptPreparedSpinForXYTh( + _alignmentToleranceRadians)) + { + return Fail( + BuildAdapterFailureReason( + "无法激活已经准备好的原地自转舵轮。")); + } + } + catch (InvalidOperationException exception) + { + return Fail(exception.Message); + } + catch (ArgumentException exception) + { + return Fail(exception.Message); + } + + State = FleetMemberAgentState.Active; + LastFailureReason = string.Empty; + return true; + } + + /// 校验任务和车号后执行分配给本车的车体系速度命令。 + public bool Execute( + long planId, + FleetMemberCommand command, + TimeSpan? interval = null) + { + ValidatePlanId(planId); + NumericGuard.EnsureFinite( + command.TwistInVehicleBody, + nameof(command)); + + if (planId != CurrentPlanId) + { + return Fail( + "速度命令任务编号与当前激活任务不一致。"); + } + + if (command.VehicleId != VehicleId) + { + return Fail( + $"速度命令属于车辆{command.VehicleId}," + + $"当前成员车号为{VehicleId}。"); + } + + if (State != FleetMemberAgentState.Active || + !PreparationMode.HasValue) + { + return RejectWhileStopped( + "成员车尚未激活,不能执行速度命令。"); + } + + if (!IsCommandCompatibleWithPreparation( + command.TwistInVehicleBody)) + { + return Fail( + "速度命令与本次舵轮准备方式不一致。"); + } + + try + { + if (!_adapter.SendBodyTwist( + command.TwistInVehicleBody, + interval)) + { + return Fail( + BuildAdapterFailureReason( + "成员车底盘拒绝执行速度命令。")); + } + } + catch (InvalidOperationException exception) + { + return Fail(exception.Message); + } + catch (ArgumentException exception) + { + return Fail(exception.Message); + } + + LastFailureReason = string.Empty; + return true; + } + + /// 正常取消当前任务并立即停止驱动轮。 + public void Stop() + { + _adapter.StopImmediately(); + State = FleetMemberAgentState.Idle; + PreparationMode = null; + CurrentPlanId = 0; + MotionDirectionInBodyRadians = 0.0; + _alignedDurationSeconds = 0.0; + LastFailureReason = string.Empty; + } + + /// 重置上一动作并下发本次滚动或自转舵轮准备目标。 + private bool BeginPreparation( + long planId, + FleetMemberPreparationMode mode, + double motionDirectionInBodyRadians) + { + try + { + _adapter.StopImmediately(); + _adapter.ResetToBodyFrame(); + + CurrentPlanId = planId; + PreparationMode = mode; + MotionDirectionInBodyRadians = + motionDirectionInBodyRadians; + State = FleetMemberAgentState.Preparing; + LastFailureReason = string.Empty; + _alignedDurationSeconds = 0.0; + + var accepted = mode == + FleetMemberPreparationMode.Rolling + ? _adapter.PrepareParallelDirection( + motionDirectionInBodyRadians) + : _adapter.PrepareSpin( + alignmentToleranceDegrees: + AngleMath.RadiansToDegrees( + _alignmentToleranceRadians)); + + if (!accepted) + { + return Fail( + BuildAdapterFailureReason( + "成员车底盘拒绝舵轮准备目标。")); + } + + return true; + } + catch (InvalidOperationException exception) + { + return Fail(exception.Message); + } + catch (ArgumentException exception) + { + return Fail(exception.Message); + } + } + + /// 更新当前准备目标并读取舵轮到位状态。 + private bool UpdateAndCheckAlignment() + { + if (PreparationMode == + FleetMemberPreparationMode.Rolling) + { + return _adapter.AreParallelWheelsAligned( + MotionDirectionInBodyRadians, + _alignmentToleranceRadians); + } + + if (!_adapter.PrepareSpin( + alignmentToleranceDegrees: + AngleMath.RadiansToDegrees( + _alignmentToleranceRadians))) + { + Fail( + BuildAdapterFailureReason( + "成员车底盘无法继续更新原地自转准备。")); + return false; + } + + return _adapter.AreSpinWheelsAligned; + } + + /// 确认舵轮在全队释放前仍保持到位。 + private bool ArePreparedWheelsStillAligned() + { + return PreparationMode == + FleetMemberPreparationMode.Rolling + ? _adapter.AreParallelWheelsAligned( + MotionDirectionInBodyRadians, + _alignmentToleranceRadians) + : _adapter.AreSpinWheelsAligned; + } + + /// 禁止滚动准备执行纯自转,也禁止自转准备执行平移。 + private bool IsCommandCompatibleWithPreparation( + Twist2D bodyTwist) + { + var linearSpeed = Math.Sqrt( + bodyTwist.VxMetersPerSecond * + bodyTwist.VxMetersPerSecond + + bodyTwist.VyMetersPerSecond * + bodyTwist.VyMetersPerSecond); + var hasLinearMotion = + linearSpeed > MotionDeadband; + var hasAngularMotion = + Math.Abs( + bodyTwist.OmegaRadiansPerSecond) > + MotionDeadband; + + if (!hasLinearMotion && !hasAngularMotion) + { + return true; + } + + return PreparationMode == + FleetMemberPreparationMode.Rolling + ? hasLinearMotion + : !hasLinearMotion && hasAngularMotion; + } + + /// 拒绝未满足执行条件的命令并保持车辆零速。 + private bool RejectWhileStopped(string reason) + { + _adapter.StopImmediately(); + LastFailureReason = reason ?? string.Empty; + return false; + } + + /// 锁存成员车故障并立即清零驱动轮速度。 + private bool Fail(string reason) + { + _adapter.StopImmediately(); + State = FleetMemberAgentState.Faulted; + LastFailureReason = reason ?? string.Empty; + return false; + } + + /// 优先返回底盘提供的具体失败原因。 + private string BuildAdapterFailureReason( + string fallbackReason) + { + return string.IsNullOrWhiteSpace( + _adapter.LastFailureReason) + ? fallbackReason + : _adapter.LastFailureReason; + } + + /// 拒绝零值和负值任务编号。 + private static void ValidatePlanId(long planId) + { + if (planId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(planId), + "车队动作任务编号必须大于零。"); + } + } + } +} diff --git a/MultiWheelC/Fleet/FleetMemberCommandCorrector.cs b/MultiWheelC/Fleet/FleetMemberCommandCorrector.cs new file mode 100644 index 0000000..b5ceba2 --- /dev/null +++ b/MultiWheelC/Fleet/FleetMemberCommandCorrector.cs @@ -0,0 +1,433 @@ +using System; +using System.Collections.Generic; +using MyParking.Shared; + +namespace MultiWheelC.Fleet +{ + // 将小范围成员布局误差转换为不改变车队整体刚体运动的相对速度修正。 + public sealed class FleetMemberCommandCorrector + { + private const double GeometryTolerance = 1e-12; + + private readonly double _longitudinalPositionGainPerSecond; + private readonly double _lateralPositionGainPerSecond; + private readonly double _yawGainPerSecond; + private readonly double _positionErrorDeadbandMeters; + private readonly double _yawErrorDeadbandRadians; + private readonly double _maximumLinearCorrectionMetersPerSecond; + private readonly double _maximumAngularCorrectionRadiansPerSecond; + + public FleetMemberCommandCorrector( + double longitudinalPositionGainPerSecond, + double lateralPositionGainPerSecond, + double yawGainPerSecond, + double positionErrorDeadbandMeters, + double yawErrorDeadbandRadians, + double maximumLinearCorrectionMetersPerSecond, + double maximumAngularCorrectionRadiansPerSecond) + { + NumericGuard.EnsureFiniteNonNegative( + longitudinalPositionGainPerSecond, + nameof(longitudinalPositionGainPerSecond)); + NumericGuard.EnsureFiniteNonNegative( + lateralPositionGainPerSecond, + nameof(lateralPositionGainPerSecond)); + NumericGuard.EnsureFiniteNonNegative( + yawGainPerSecond, + nameof(yawGainPerSecond)); + NumericGuard.EnsureFiniteNonNegative( + positionErrorDeadbandMeters, + nameof(positionErrorDeadbandMeters)); + NumericGuard.EnsureFiniteNonNegative( + yawErrorDeadbandRadians, + nameof(yawErrorDeadbandRadians)); + NumericGuard.EnsureFinitePositive( + maximumLinearCorrectionMetersPerSecond, + nameof(maximumLinearCorrectionMetersPerSecond)); + NumericGuard.EnsureFinitePositive( + maximumAngularCorrectionRadiansPerSecond, + nameof(maximumAngularCorrectionRadiansPerSecond)); + + if (yawErrorDeadbandRadians > Math.PI) + { + throw new ArgumentOutOfRangeException( + nameof(yawErrorDeadbandRadians), + "成员航向误差死区不能大于π。"); + } + + _longitudinalPositionGainPerSecond = + longitudinalPositionGainPerSecond; + _lateralPositionGainPerSecond = + lateralPositionGainPerSecond; + _yawGainPerSecond = yawGainPerSecond; + _positionErrorDeadbandMeters = + positionErrorDeadbandMeters; + _yawErrorDeadbandRadians = + yawErrorDeadbandRadians; + _maximumLinearCorrectionMetersPerSecond = + maximumLinearCorrectionMetersPerSecond; + _maximumAngularCorrectionRadiansPerSecond = + maximumAngularCorrectionRadiansPerSecond; + } + + public IReadOnlyList Correct( + FleetLayout layout, + IReadOnlyList baseCommands, + IReadOnlyList memberErrors, + bool applyRelativeCorrection = true) + { + if (layout == null) + { + throw new ArgumentNullException(nameof(layout)); + } + + if (baseCommands == null) + { + throw new ArgumentNullException(nameof(baseCommands)); + } + + if (memberErrors == null) + { + throw new ArgumentNullException(nameof(memberErrors)); + } + + if (baseCommands.Count != layout.VehicleCount) + { + throw new ArgumentException( + "成员基础命令数量必须与车队布局一致。", + nameof(baseCommands)); + } + + if (memberErrors.Count != layout.VehicleCount) + { + throw new ArgumentException( + "成员布局误差数量必须与车队布局一致。", + nameof(memberErrors)); + } + + var commandsByVehicleId = + IndexCommands(baseCommands); + var errorsByVehicleId = + IndexErrors(memberErrors); + var orderedCommands = + new FleetMemberCommand[layout.VehicleCount]; + var orderedErrors = + new FleetMemberLayoutError[layout.VehicleCount]; + var rawCorrectionsInFleet = + new Twist2D[layout.VehicleCount]; + + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicleLayout = layout.Vehicles[index]; + if (!commandsByVehicleId.TryGetValue( + vehicleLayout.VehicleId, + out var baseCommand)) + { + throw new ArgumentException( + $"缺少车辆{vehicleLayout.VehicleId}的基础命令。", + nameof(baseCommands)); + } + + if (!errorsByVehicleId.TryGetValue( + vehicleLayout.VehicleId, + out var memberError)) + { + throw new ArgumentException( + $"缺少车辆{vehicleLayout.VehicleId}的布局误差。", + nameof(memberErrors)); + } + + orderedCommands[index] = baseCommand; + orderedErrors[index] = memberError; + rawCorrectionsInFleet[index] = + applyRelativeCorrection + ? CalculateRawCorrectionInFleet( + vehicleLayout, + memberError) + : Twist2D.Zero; + } + + var relativeCorrectionsInFleet = + RemoveCommonRigidMotion( + layout, + rawCorrectionsInFleet); + var correctedCommands = + new FleetMemberCommand[layout.VehicleCount]; + + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicleLayout = layout.Vehicles[index]; + var baseTwistInFleet = + FrameTransform2D.TransformTwistAtSamePoint( + vehicleLayout.PoseInFleet, + orderedCommands[index].TwistInVehicleBody); + var correctionInFleet = LimitCorrection( + relativeCorrectionsInFleet[index]); + var correctedTwistInFleet = Add( + baseTwistInFleet, + correctionInFleet); + + // 使用成员当前相对姿态表达最终命令,避免小航向误差造成坐标表达偏差。 + var actualPoseInFleet = + FrameTransform2D.Compose( + vehicleLayout.PoseInFleet, + orderedErrors[index] + .ActualPoseInExpectedVehicleFrame); + var fleetPoseInActualVehicle = + FrameTransform2D.Inverse( + actualPoseInFleet); + var correctedTwistInVehicleBody = + FrameTransform2D.TransformTwistAtSamePoint( + fleetPoseInActualVehicle, + correctedTwistInFleet); + + correctedCommands[index] = + new FleetMemberCommand( + vehicleLayout.VehicleId, + correctedTwistInVehicleBody); + } + + return Array.AsReadOnly(correctedCommands); + } + + private Twist2D CalculateRawCorrectionInFleet( + VehicleLayout vehicleLayout, + FleetMemberLayoutError memberError) + { + var error = + memberError.ActualPoseInExpectedVehicleFrame; + var correctionInExpectedVehicle = new Twist2D( + -_longitudinalPositionGainPerSecond * + ApplyDeadband( + error.XMeters, + _positionErrorDeadbandMeters), + -_lateralPositionGainPerSecond * + ApplyDeadband( + error.YMeters, + _positionErrorDeadbandMeters), + -_yawGainPerSecond * + ApplyDeadband( + error.YawRadians, + _yawErrorDeadbandRadians)); + + return FrameTransform2D.TransformTwistAtSamePoint( + vehicleLayout.PoseInFleet, + correctionInExpectedVehicle); + } + + private static Twist2D[] RemoveCommonRigidMotion( + FleetLayout layout, + IReadOnlyList rawCorrectionsInFleet) + { + var count = layout.VehicleCount; + var meanX = 0.0; + var meanY = 0.0; + var meanVx = 0.0; + var meanVy = 0.0; + var meanOmega = 0.0; + + for (var index = 0; index < count; index++) + { + var position = layout.Vehicles[index].PoseInFleet; + var correction = rawCorrectionsInFleet[index]; + meanX += position.XMeters; + meanY += position.YMeters; + meanVx += correction.VxMetersPerSecond; + meanVy += correction.VyMetersPerSecond; + meanOmega += correction.OmegaRadiansPerSecond; + } + + meanX /= count; + meanY /= count; + meanVx /= count; + meanVy /= count; + meanOmega /= count; + + var rotationalNumerator = 0.0; + var rotationalDenominator = 0.0; + for (var index = 0; index < count; index++) + { + var position = layout.Vehicles[index].PoseInFleet; + var correction = rawCorrectionsInFleet[index]; + var centeredX = position.XMeters - meanX; + var centeredY = position.YMeters - meanY; + var centeredVx = + correction.VxMetersPerSecond - meanVx; + var centeredVy = + correction.VyMetersPerSecond - meanVy; + + rotationalNumerator += + -centeredY * centeredVx + + centeredX * centeredVy; + rotationalDenominator += + centeredX * centeredX + + centeredY * centeredY; + } + + var commonOmegaFromTranslation = + rotationalDenominator <= GeometryTolerance + ? 0.0 + : rotationalNumerator / + rotationalDenominator; + var commonVxAtFleetOrigin = + meanVx + + commonOmegaFromTranslation * meanY; + var commonVyAtFleetOrigin = + meanVy - + commonOmegaFromTranslation * meanX; + var relativeCorrections = new Twist2D[count]; + + for (var index = 0; index < count; index++) + { + var position = layout.Vehicles[index].PoseInFleet; + var correction = rawCorrectionsInFleet[index]; + var commonVxAtMember = + commonVxAtFleetOrigin - + commonOmegaFromTranslation * + position.YMeters; + var commonVyAtMember = + commonVyAtFleetOrigin + + commonOmegaFromTranslation * + position.XMeters; + + relativeCorrections[index] = new Twist2D( + correction.VxMetersPerSecond - + commonVxAtMember, + correction.VyMetersPerSecond - + commonVyAtMember, + correction.OmegaRadiansPerSecond - + meanOmega); + } + + return relativeCorrections; + } + + private Twist2D LimitCorrection(Twist2D correction) + { + var linearMagnitude = Math.Sqrt( + correction.VxMetersPerSecond * + correction.VxMetersPerSecond + + correction.VyMetersPerSecond * + correction.VyMetersPerSecond); + var linearScale = + linearMagnitude <= + _maximumLinearCorrectionMetersPerSecond + ? 1.0 + : _maximumLinearCorrectionMetersPerSecond / + linearMagnitude; + var limitedOmega = Math.Max( + -_maximumAngularCorrectionRadiansPerSecond, + Math.Min( + _maximumAngularCorrectionRadiansPerSecond, + correction.OmegaRadiansPerSecond)); + + return new Twist2D( + correction.VxMetersPerSecond * linearScale, + correction.VyMetersPerSecond * linearScale, + limitedOmega); + } + + private static Dictionary + IndexCommands( + IReadOnlyList commands) + { + var indexed = + new Dictionary( + commands.Count); + + for (var index = 0; index < commands.Count; index++) + { + var command = commands[index]; + if (command.VehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(commands), + $"第{index}个成员命令的车号无效。"); + } + + NumericGuard.EnsureFinite( + command.TwistInVehicleBody, + $"{nameof(commands)}[{index}]." + + nameof(FleetMemberCommand.TwistInVehicleBody)); + + if (indexed.ContainsKey(command.VehicleId)) + { + throw new ArgumentException( + $"成员命令包含重复车号{command.VehicleId}。", + nameof(commands)); + } + + indexed.Add(command.VehicleId, command); + } + + return indexed; + } + + private static Dictionary + IndexErrors( + IReadOnlyList errors) + { + var indexed = + new Dictionary( + errors.Count); + + for (var index = 0; index < errors.Count; index++) + { + var error = errors[index]; + if (error.VehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(errors), + $"第{index}个布局误差的车号无效。"); + } + + NumericGuard.EnsureFinite( + error.ActualPoseInExpectedVehicleFrame, + $"{nameof(errors)}[{index}]." + + nameof(FleetMemberLayoutError + .ActualPoseInExpectedVehicleFrame)); + + if (indexed.ContainsKey(error.VehicleId)) + { + throw new ArgumentException( + $"成员布局误差包含重复车号{error.VehicleId}。", + nameof(errors)); + } + + indexed.Add(error.VehicleId, error); + } + + return indexed; + } + + private static double ApplyDeadband( + double value, + double deadband) + { + var magnitude = Math.Abs(value); + if (magnitude <= deadband) + { + return 0.0; + } + + return Math.Sign(value) * (magnitude - deadband); + } + + private static Twist2D Add( + Twist2D first, + Twist2D second) + { + return new Twist2D( + first.VxMetersPerSecond + + second.VxMetersPerSecond, + first.VyMetersPerSecond + + second.VyMetersPerSecond, + first.OmegaRadiansPerSecond + + second.OmegaRadiansPerSecond); + } + } +} diff --git a/MultiWheelC/Fleet/FleetPreparationCoordinator.cs b/MultiWheelC/Fleet/FleetPreparationCoordinator.cs new file mode 100644 index 0000000..0eecb5b --- /dev/null +++ b/MultiWheelC/Fleet/FleetPreparationCoordinator.cs @@ -0,0 +1,372 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using MyParking.Shared; + +namespace MultiWheelC.Fleet +{ + /// 表示主车侧车队运动准备的当前阶段。 + public enum FleetPreparationCoordinatorState + { + Idle = 0, + WaitingForMembers = 1, + ReadyToActivate = 2, + ActivationAuthorized = 3, + Faulted = 4 + } + + /// 保存一次滚动准备中分配给指定成员车的本地β目标。 + public readonly struct FleetMemberPreparationTarget + { + /// 创建一条属于指定任务和成员车的准备目标。 + public FleetMemberPreparationTarget( + long planId, + int vehicleId, + double motionDirectionInBodyRadians) + { + if (planId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(planId), + "车队动作任务编号必须大于零。"); + } + + if (vehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(vehicleId), + "成员车号必须大于零。"); + } + + NumericGuard.EnsureFinite( + motionDirectionInBodyRadians, + nameof(motionDirectionInBodyRadians)); + + PlanId = planId; + VehicleId = vehicleId; + MotionDirectionInBodyRadians = + AngleMath.NormalizeRadians( + motionDirectionInBodyRadians); + } + + public long PlanId { get; } + + public int VehicleId { get; } + + public double MotionDirectionInBodyRadians { get; } + } + + /// 保存成员车对某次准备任务上报的本地状态。 + public readonly struct FleetMemberPreparationStatus + { + /// 创建一条成员车准备状态报告。 + public FleetMemberPreparationStatus( + long planId, + int vehicleId, + FleetMemberAgentState state, + string failureReason = "") + { + if (planId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(planId), + "车队动作任务编号必须大于零。"); + } + + if (vehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(vehicleId), + "成员车号必须大于零。"); + } + + if (!Enum.IsDefined( + typeof(FleetMemberAgentState), + state)) + { + throw new ArgumentOutOfRangeException( + nameof(state), + "成员车准备状态无效。"); + } + + PlanId = planId; + VehicleId = vehicleId; + State = state; + FailureReason = failureReason ?? string.Empty; + } + + public long PlanId { get; } + + public int VehicleId { get; } + + public FleetMemberAgentState State { get; } + + public string FailureReason { get; } + } + + /// 在主车侧分配成员β并管理全队Ready统一激活屏障。 + public sealed class FleetPreparationCoordinator + { + private static readonly IReadOnlyList< + FleetMemberPreparationTarget> + EmptyTargets = Array.AsReadOnly( + Array.Empty()); + + private readonly Dictionary + _memberStates = + new Dictionary(); + + private IReadOnlyList + _targets = EmptyTargets; + + /// 创建尚未激活准备任务的主车侧协调器。 + public FleetPreparationCoordinator() + { + State = FleetPreparationCoordinatorState.Idle; + LastFailureReason = string.Empty; + } + + public FleetPreparationCoordinatorState State + { + get; + private set; + } + + public long CurrentPlanId { get; private set; } + + public double MotionDirectionInFleetRadians + { + get; + private set; + } + + public IReadOnlyList + Targets => _targets; + + public string LastFailureReason { get; private set; } + + /// 根据车队固定布局为全部成员建立本次滚动β准备目标。 + public void StartRollingPreparation( + long planId, + FleetLayout layout, + double motionDirectionInFleetRadians) + { + if (planId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(planId), + "车队动作任务编号必须大于零。"); + } + + if (layout == null) + { + throw new ArgumentNullException(nameof(layout)); + } + + NumericGuard.EnsureFinite( + motionDirectionInFleetRadians, + nameof(motionDirectionInFleetRadians)); + + var normalizedFleetDirection = + AngleMath.NormalizeRadians( + motionDirectionInFleetRadians); + var targets = + new FleetMemberPreparationTarget[ + layout.VehicleCount]; + + _memberStates.Clear(); + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicle = layout.Vehicles[index]; + var rawDirectionInBody = + AngleMath.NormalizeRadians( + normalizedFleetDirection - + vehicle.PoseInFleet.YawRadians); + var equivalentDirectionInBody = + SelectSteeringAxisEquivalent( + rawDirectionInBody); + + targets[index] = + new FleetMemberPreparationTarget( + planId, + vehicle.VehicleId, + equivalentDirectionInBody); + _memberStates.Add( + vehicle.VehicleId, + FleetMemberAgentState.Idle); + } + + CurrentPlanId = planId; + MotionDirectionInFleetRadians = + normalizedFleetDirection; + _targets = Array.AsReadOnly(targets); + State = + FleetPreparationCoordinatorState + .WaitingForMembers; + LastFailureReason = string.Empty; + } + + /// 接收一辆成员车的状态并重新计算全队Ready状态。 + public FleetPreparationCoordinatorState + ReportMemberStatus( + FleetMemberPreparationStatus status) + { + if (State == + FleetPreparationCoordinatorState.Idle || + State == + FleetPreparationCoordinatorState.Faulted) + { + return State; + } + + if (status.PlanId != CurrentPlanId) + { + return State; + } + + if (!_memberStates.ContainsKey(status.VehicleId)) + { + throw new ArgumentException( + $"车辆{status.VehicleId}不属于当前车队布局。", + nameof(status)); + } + + if (status.State == + FleetMemberAgentState.Faulted) + { + return Fail( + string.IsNullOrWhiteSpace( + status.FailureReason) + ? $"车辆{status.VehicleId}准备失败。" + : $"车辆{status.VehicleId}准备失败:" + + status.FailureReason); + } + + if (State == + FleetPreparationCoordinatorState + .ActivationAuthorized) + { + return State; + } + + if (status.State == + FleetMemberAgentState.Active) + { + return Fail( + $"车辆{status.VehicleId}在全队统一激活前已经进入Active。"); + } + + _memberStates[status.VehicleId] = status.State; + State = AreAllMembersReady() + ? FleetPreparationCoordinatorState + .ReadyToActivate + : FleetPreparationCoordinatorState + .WaitingForMembers; + LastFailureReason = string.Empty; + return State; + } + + /// 在全部成员Ready后授权外层向全队广播同一任务的激活命令。 + public bool TryAuthorizeActivation(long planId) + { + if (planId != CurrentPlanId) + { + return false; + } + + if (State == + FleetPreparationCoordinatorState + .ActivationAuthorized) + { + return true; + } + + if (State != + FleetPreparationCoordinatorState + .ReadyToActivate) + { + return false; + } + + State = FleetPreparationCoordinatorState + .ActivationAuthorized; + LastFailureReason = string.Empty; + return true; + } + + /// 查找指定成员车在当前任务中的本地β准备目标。 + public bool TryGetTarget( + int vehicleId, + out FleetMemberPreparationTarget target) + { + for (var index = 0; + index < _targets.Count; + index++) + { + if (_targets[index].VehicleId == vehicleId) + { + target = _targets[index]; + return true; + } + } + + target = default; + return false; + } + + /// 取消当前准备任务并清除成员状态和β目标。 + public void Cancel() + { + _memberStates.Clear(); + _targets = EmptyTargets; + CurrentPlanId = 0; + MotionDirectionInFleetRadians = 0.0; + State = FleetPreparationCoordinatorState.Idle; + LastFailureReason = string.Empty; + } + + /// 判断当前任务中的每辆成员车是否都已报告Ready。 + private bool AreAllMembersReady() + { + foreach (var state in _memberStates.Values) + { + if (state != FleetMemberAgentState.Ready) + { + return false; + } + } + + return _memberStates.Count > 0; + } + + /// 将有向β转换为±90°内的等效滚动轴,反向运动由轮速符号表达。 + private static double SelectSteeringAxisEquivalent( + double directionRadians) + { + var equivalent = AngleMath.NormalizeRadians( + directionRadians); + + if (equivalent > Math.PI / 2.0) + { + equivalent -= Math.PI; + } + else if (equivalent < -Math.PI / 2.0) + { + equivalent += Math.PI; + } + + return AngleMath.NormalizeRadians(equivalent); + } + + /// 锁存准备故障,等待外层停止所有成员并取消任务。 + private FleetPreparationCoordinatorState Fail( + string reason) + { + State = FleetPreparationCoordinatorState.Faulted; + LastFailureReason = reason ?? string.Empty; + return State; + } + } +} diff --git a/MultiWheelC/Fleet/FleetSafetySupervisor.cs b/MultiWheelC/Fleet/FleetSafetySupervisor.cs deleted file mode 100644 index 4935d90..0000000 --- a/MultiWheelC/Fleet/FleetSafetySupervisor.cs +++ /dev/null @@ -1 +0,0 @@ -// 检查通信超时、成员故障、定位状态、夹臂状态和相对误差 \ No newline at end of file diff --git a/MultiWheelC/Fleet/FleetStateEstimator.cs b/MultiWheelC/Fleet/FleetStateEstimator.cs index 97a5704..21ba16d 100644 --- a/MultiWheelC/Fleet/FleetStateEstimator.cs +++ b/MultiWheelC/Fleet/FleetStateEstimator.cs @@ -1 +1,579 @@ -// 主车汇总各车状态、时间对齐、计算车队中心和相对布局误差;输出FleetState \ No newline at end of file +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using MyParking.Shared; + +namespace MultiWheelC.Fleet +{ + // 一辆成员车在主车统一时间轴上的状态样本。 + public readonly struct FleetMemberStateSample + { + public FleetMemberStateSample( + int vehicleId, + double sampleTimestampSeconds, + Pose2D poseInWorld, + Twist2D twistAtVehicleOriginInWorld, + bool isStateAvailable, + bool hasValidVelocityEstimate) + { + if (vehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(vehicleId), + "编队成员车号必须大于零。"); + } + + NumericGuard.EnsureFiniteNonNegative( + sampleTimestampSeconds, + nameof(sampleTimestampSeconds)); + NumericGuard.EnsureFinite( + poseInWorld, + nameof(poseInWorld)); + NumericGuard.EnsureFinite( + twistAtVehicleOriginInWorld, + nameof(twistAtVehicleOriginInWorld)); + + VehicleId = vehicleId; + SampleTimestampSeconds = sampleTimestampSeconds; + PoseInWorld = new Pose2D( + poseInWorld.XMeters, + poseInWorld.YMeters, + AngleMath.NormalizeRadians( + poseInWorld.YawRadians)); + TwistAtVehicleOriginInWorld = + twistAtVehicleOriginInWorld; + IsStateAvailable = isStateAvailable; + HasValidVelocityEstimate = + hasValidVelocityEstimate; + } + + public int VehicleId { get; } + + // 该时间戳必须已经换算到主车/协调器的单调时间轴。 + public double SampleTimestampSeconds { get; } + + public Pose2D PoseInWorld { get; } + + // 成员车体中心处的实际速度,在世界坐标系中表达。 + public Twist2D TwistAtVehicleOriginInWorld { get; } + + public bool IsStateAvailable { get; } + + public bool HasValidVelocityEstimate { get; } + } + + // 成员实际位姿相对固定布局目标位姿的误差。 + public readonly struct FleetMemberLayoutError + { + public FleetMemberLayoutError( + int vehicleId, + Pose2D actualPoseInExpectedVehicleFrame) + { + if (vehicleId <= 0) + { + throw new ArgumentOutOfRangeException( + nameof(vehicleId), + "编队成员车号必须大于零。"); + } + + NumericGuard.EnsureFinite( + actualPoseInExpectedVehicleFrame, + nameof(actualPoseInExpectedVehicleFrame)); + + VehicleId = vehicleId; + ActualPoseInExpectedVehicleFrame = + new Pose2D( + actualPoseInExpectedVehicleFrame.XMeters, + actualPoseInExpectedVehicleFrame.YMeters, + AngleMath.NormalizeRadians( + actualPoseInExpectedVehicleFrame + .YawRadians)); + } + + public int VehicleId { get; } + + // 期望成员车体系中表达的实际成员位姿;理想刚体布局时为Identity。 + public Pose2D ActualPoseInExpectedVehicleFrame { get; } + } + + // 一次车队状态估计的结果;不可用时不提供FleetState。 + public sealed class FleetStateEstimateResult + { + private static readonly IReadOnlyList + EmptyMemberErrors = Array.AsReadOnly( + Array.Empty()); + + private FleetStateEstimateResult( + bool isAvailable, + FleetState? state, + IReadOnlyList memberErrors, + string unavailableReason) + { + IsAvailable = isAvailable; + State = state; + MemberErrors = memberErrors; + UnavailableReason = unavailableReason; + } + + public bool IsAvailable { get; } + + public FleetState? State { get; } + + public IReadOnlyList MemberErrors { get; } + + public string UnavailableReason { get; } + + internal static FleetStateEstimateResult Available( + FleetState state, + FleetMemberLayoutError[] memberErrors) + { + return new FleetStateEstimateResult( + true, + state, + Array.AsReadOnly(memberErrors), + string.Empty); + } + + internal static FleetStateEstimateResult Unavailable( + string reason) + { + return new FleetStateEstimateResult( + false, + null, + EmptyMemberErrors, + reason ?? string.Empty); + } + } + + // 从各成员状态反算并融合车队虚拟中心状态。 + public sealed class FleetStateEstimator + { + private const double TimestampToleranceSeconds = 1e-9; + private const double MinimumCircularMeanMagnitude = 1e-12; + + private readonly double _maximumMemberStateAgeSeconds; + private readonly double _maximumPositionDisagreementMeters; + private readonly double _maximumYawDisagreementRadians; + + public FleetStateEstimator( + double maximumMemberStateAgeSeconds, + double maximumPositionDisagreementMeters, + double maximumYawDisagreementRadians) + { + NumericGuard.EnsureFinitePositive( + maximumMemberStateAgeSeconds, + nameof(maximumMemberStateAgeSeconds)); + NumericGuard.EnsureFinitePositive( + maximumPositionDisagreementMeters, + nameof(maximumPositionDisagreementMeters)); + NumericGuard.EnsureFinitePositive( + maximumYawDisagreementRadians, + nameof(maximumYawDisagreementRadians)); + + if (maximumYawDisagreementRadians > Math.PI) + { + throw new ArgumentOutOfRangeException( + nameof(maximumYawDisagreementRadians), + "车队候选航向差阈值不能大于π。"); + } + + _maximumMemberStateAgeSeconds = + maximumMemberStateAgeSeconds; + _maximumPositionDisagreementMeters = + maximumPositionDisagreementMeters; + _maximumYawDisagreementRadians = + maximumYawDisagreementRadians; + } + + public FleetStateEstimateResult Estimate( + FleetLayout layout, + IReadOnlyList memberStates, + double targetTimestampSeconds) + { + if (layout == null) + { + throw new ArgumentNullException(nameof(layout)); + } + + if (memberStates == null) + { + throw new ArgumentNullException(nameof(memberStates)); + } + + NumericGuard.EnsureFiniteNonNegative( + targetTimestampSeconds, + nameof(targetTimestampSeconds)); + + if (memberStates.Count != layout.VehicleCount) + { + return FleetStateEstimateResult.Unavailable( + $"成员状态数量{memberStates.Count}与布局数量" + + $"{layout.VehicleCount}不一致。"); + } + + var statesByVehicleId = + new Dictionary( + memberStates.Count); + + for (var index = 0; + index < memberStates.Count; + index++) + { + var memberState = memberStates[index]; + if (memberState.VehicleId <= 0) + { + return FleetStateEstimateResult.Unavailable( + $"第{index}个成员状态的车号无效。"); + } + + if (!layout.TryGetVehicle( + memberState.VehicleId, + out _)) + { + return FleetStateEstimateResult.Unavailable( + $"成员状态包含布局外车辆" + + $"{memberState.VehicleId}。"); + } + + if (statesByVehicleId.ContainsKey( + memberState.VehicleId)) + { + return FleetStateEstimateResult.Unavailable( + $"成员状态包含重复车号" + + $"{memberState.VehicleId}。"); + } + + statesByVehicleId.Add( + memberState.VehicleId, + memberState); + } + + var alignedMembers = + new AlignedMemberState[layout.VehicleCount]; + + for (var index = 0; + index < layout.Vehicles.Count; + index++) + { + var vehicleLayout = layout.Vehicles[index]; + if (!statesByVehicleId.TryGetValue( + vehicleLayout.VehicleId, + out var memberState)) + { + return FleetStateEstimateResult.Unavailable( + $"缺少车辆{vehicleLayout.VehicleId}的状态。"); + } + + var alignmentResult = AlignMemberState( + memberState, + targetTimestampSeconds, + out var alignedPoseInWorld); + if (alignmentResult != null) + { + return FleetStateEstimateResult.Unavailable( + alignmentResult); + } + + var candidateFleetPoseInWorld = + FrameTransform2D.Compose( + alignedPoseInWorld, + FrameTransform2D.Inverse( + vehicleLayout.PoseInFleet)); + + alignedMembers[index] = + new AlignedMemberState( + vehicleLayout, + memberState, + alignedPoseInWorld, + candidateFleetPoseInWorld); + } + + var disagreementReason = + FindCandidateDisagreement(alignedMembers); + if (disagreementReason != null) + { + return FleetStateEstimateResult.Unavailable( + disagreementReason); + } + + if (!TryAverageCandidateFleetPose( + alignedMembers, + out var fleetPoseInWorld)) + { + return FleetStateEstimateResult.Unavailable( + "成员候选航向无法形成唯一的车队平均航向。"); + } + + var hasValidVelocityEstimate = + TryAverageFleetOriginTwist( + alignedMembers, + fleetPoseInWorld, + out var twistAtFleetOriginInWorld); + var fleetState = new FleetState( + targetTimestampSeconds, + fleetPoseInWorld, + twistAtFleetOriginInWorld, + hasValidVelocityEstimate); + var memberErrors = CalculateMemberErrors( + alignedMembers, + fleetPoseInWorld); + + return FleetStateEstimateResult.Available( + fleetState, + memberErrors); + } + + private string AlignMemberState( + FleetMemberStateSample memberState, + double targetTimestampSeconds, + out Pose2D alignedPoseInWorld) + { + alignedPoseInWorld = memberState.PoseInWorld; + + if (!memberState.IsStateAvailable) + { + return $"车辆{memberState.VehicleId}状态不可用。"; + } + + var ageSeconds = + targetTimestampSeconds - + memberState.SampleTimestampSeconds; + + if (ageSeconds < -TimestampToleranceSeconds) + { + return $"车辆{memberState.VehicleId}的状态时间晚于" + + "本次估计目标时间。"; + } + + if (ageSeconds > _maximumMemberStateAgeSeconds) + { + return $"车辆{memberState.VehicleId}的状态已过期:" + + $"{ageSeconds:F3}s。"; + } + + if (ageSeconds <= TimestampToleranceSeconds) + { + return null; + } + + if (!memberState.HasValidVelocityEstimate) + { + return $"车辆{memberState.VehicleId}缺少时间对齐所需的" + + "有效速度。"; + } + + var twist = memberState.TwistAtVehicleOriginInWorld; + alignedPoseInWorld = new Pose2D( + memberState.PoseInWorld.XMeters + + twist.VxMetersPerSecond * ageSeconds, + memberState.PoseInWorld.YMeters + + twist.VyMetersPerSecond * ageSeconds, + AngleMath.NormalizeRadians( + memberState.PoseInWorld.YawRadians + + twist.OmegaRadiansPerSecond * ageSeconds)); + return null; + } + + private string FindCandidateDisagreement( + IReadOnlyList alignedMembers) + { + for (var firstIndex = 0; + firstIndex < alignedMembers.Count; + firstIndex++) + { + var first = alignedMembers[firstIndex]; + for (var secondIndex = firstIndex + 1; + secondIndex < alignedMembers.Count; + secondIndex++) + { + var second = alignedMembers[secondIndex]; + var dx = + first.CandidateFleetPoseInWorld.XMeters - + second.CandidateFleetPoseInWorld.XMeters; + var dy = + first.CandidateFleetPoseInWorld.YMeters - + second.CandidateFleetPoseInWorld.YMeters; + var positionDifferenceMeters = + Math.Sqrt(dx * dx + dy * dy); + var yawDifferenceRadians = Math.Abs( + AngleMath.ShortestDifferenceRadians( + first.CandidateFleetPoseInWorld + .YawRadians, + second.CandidateFleetPoseInWorld + .YawRadians)); + + if (positionDifferenceMeters > + _maximumPositionDisagreementMeters) + { + return $"车辆{first.VehicleLayout.VehicleId}与" + + $"车辆{second.VehicleLayout.VehicleId}反算的" + + $"车队中心相差{positionDifferenceMeters:F3}m," + + "超过允许值。"; + } + + if (yawDifferenceRadians > + _maximumYawDisagreementRadians) + { + return $"车辆{first.VehicleLayout.VehicleId}与" + + $"车辆{second.VehicleLayout.VehicleId}反算的" + + $"车队航向相差" + + $"{AngleMath.RadiansToDegrees(yawDifferenceRadians):F2}°," + + "超过允许值。"; + } + } + } + + return null; + } + + private static bool TryAverageCandidateFleetPose( + IReadOnlyList alignedMembers, + out Pose2D fleetPoseInWorld) + { + var xMeters = 0.0; + var yMeters = 0.0; + var yawCosineSum = 0.0; + var yawSineSum = 0.0; + + for (var index = 0; + index < alignedMembers.Count; + index++) + { + var candidate = + alignedMembers[index] + .CandidateFleetPoseInWorld; + xMeters += candidate.XMeters; + yMeters += candidate.YMeters; + yawCosineSum += Math.Cos(candidate.YawRadians); + yawSineSum += Math.Sin(candidate.YawRadians); + } + + var count = alignedMembers.Count; + var circularMeanMagnitude = Math.Sqrt( + yawCosineSum * yawCosineSum + + yawSineSum * yawSineSum); + if (circularMeanMagnitude < + MinimumCircularMeanMagnitude) + { + fleetPoseInWorld = Pose2D.Identity; + return false; + } + + fleetPoseInWorld = new Pose2D( + xMeters / count, + yMeters / count, + Math.Atan2(yawSineSum, yawCosineSum)); + return true; + } + + private static bool TryAverageFleetOriginTwist( + IReadOnlyList alignedMembers, + Pose2D fleetPoseInWorld, + out Twist2D twistAtFleetOriginInWorld) + { + for (var index = 0; + index < alignedMembers.Count; + index++) + { + if (!alignedMembers[index] + .MemberState + .HasValidVelocityEstimate) + { + twistAtFleetOriginInWorld = Twist2D.Zero; + return false; + } + } + + var vxMetersPerSecond = 0.0; + var vyMetersPerSecond = 0.0; + var omegaRadiansPerSecond = 0.0; + + for (var index = 0; + index < alignedMembers.Count; + index++) + { + var member = alignedMembers[index]; + var twist = member.MemberState + .TwistAtVehicleOriginInWorld; + var memberXFromFleetOrigin = + member.AlignedPoseInWorld.XMeters - + fleetPoseInWorld.XMeters; + var memberYFromFleetOrigin = + member.AlignedPoseInWorld.YMeters - + fleetPoseInWorld.YMeters; + + vxMetersPerSecond += + twist.VxMetersPerSecond + + twist.OmegaRadiansPerSecond * + memberYFromFleetOrigin; + vyMetersPerSecond += + twist.VyMetersPerSecond - + twist.OmegaRadiansPerSecond * + memberXFromFleetOrigin; + omegaRadiansPerSecond += + twist.OmegaRadiansPerSecond; + } + + var count = alignedMembers.Count; + twistAtFleetOriginInWorld = new Twist2D( + vxMetersPerSecond / count, + vyMetersPerSecond / count, + omegaRadiansPerSecond / count); + return true; + } + + private static FleetMemberLayoutError[] CalculateMemberErrors( + IReadOnlyList alignedMembers, + Pose2D fleetPoseInWorld) + { + var errors = + new FleetMemberLayoutError[alignedMembers.Count]; + + for (var index = 0; + index < alignedMembers.Count; + index++) + { + var member = alignedMembers[index]; + var expectedPoseInWorld = + FrameTransform2D.Compose( + fleetPoseInWorld, + member.VehicleLayout.PoseInFleet); + var actualPoseInExpectedVehicleFrame = + FrameTransform2D.Compose( + FrameTransform2D.Inverse( + expectedPoseInWorld), + member.AlignedPoseInWorld); + + errors[index] = new FleetMemberLayoutError( + member.VehicleLayout.VehicleId, + actualPoseInExpectedVehicleFrame); + } + + return errors; + } + + private readonly struct AlignedMemberState + { + public AlignedMemberState( + VehicleLayout vehicleLayout, + FleetMemberStateSample memberState, + Pose2D alignedPoseInWorld, + Pose2D candidateFleetPoseInWorld) + { + VehicleLayout = vehicleLayout; + MemberState = memberState; + AlignedPoseInWorld = alignedPoseInWorld; + CandidateFleetPoseInWorld = + candidateFleetPoseInWorld; + } + + public VehicleLayout VehicleLayout { get; } + + public FleetMemberStateSample MemberState { get; } + + public Pose2D AlignedPoseInWorld { get; } + + public Pose2D CandidateFleetPoseInWorld { get; } + } + } +} diff --git a/MultiWheelC/StateEstimation/DetourVehicleStateProvider.cs b/MultiWheelC/StateEstimation/DetourVehicleStateProvider.cs index c1fbcb0..c2b2dbd 100644 --- a/MultiWheelC/StateEstimation/DetourVehicleStateProvider.cs +++ b/MultiWheelC/StateEstimation/DetourVehicleStateProvider.cs @@ -6,6 +6,16 @@ using MyParking.Shared; namespace MultiWheelC.StateEstimation { + /// 表示Detour位姿相对已标注地图关键帧的当前可信级别。 + public enum DetourLocalizationQuality + { + Unknown = 0, + Normal = 1, + Degraded = 2, + Poor = 3, + Lost = 4 + } + /// /// 读取Detour位姿,并将可能发生重定位的原始世界坐标转换为当前任务使用的连续坐标。 /// @@ -55,6 +65,10 @@ namespace MultiWheelC.StateEstimation public const double DefaultMaximumAutomaticHeadingShiftRadians = 5.0 * Math.PI / 180.0; + public const double DefaultMaximumCachedFrameAgeSeconds = + 0.50; + public const int + DefaultLocalizationQualityConfirmationFrameCount = 3; private const double MillimetersPerMeter = 1000.0; private const double PositionEqualityToleranceMeters = 1e-9; @@ -64,6 +78,9 @@ namespace MultiWheelC.StateEstimation private const double InPlaceRotationAngularSpeedThresholdRadiansPerSecond = Math.PI / 180.0; + private const double NormalLocalizationStepUpperBound = 5.0; + private const double DegradedLocalizationStepUpperBound = 10.0; + private const double LostLocalizationStepLowerBound = 99.0; private readonly object _syncRoot = new object(); private readonly Stopwatch _clock = Stopwatch.StartNew(); @@ -83,6 +100,9 @@ namespace MultiWheelC.StateEstimation private readonly double _maximumAutomaticFrameShiftMeters; private readonly double _maximumAutomaticHeadingShiftRadians; + private readonly double _maximumCachedFrameAgeSeconds; + private readonly int + _localizationQualityConfirmationFrameCount; private Pose2D _acceptedPoseInControl; private double _acceptedTimestampSeconds; @@ -94,8 +114,15 @@ namespace MultiWheelC.StateEstimation private long _lastObservedTickRaw; private bool _hasDetourSourceFrameInterval; private double _lastDetourSourceFrameIntervalSeconds; + private double _lastNewDetourFrameTimestampSeconds; private Pose2D _controlFromDetour = Pose2D.Identity; + private int _lostLocalizationStepConsecutiveFrameCount; + private int _normalLocalizationStepRecoveryFrameCount; + private bool _localizationStepUnavailable; + private bool _localizationStepPredictionActive; + private bool _cachedFramePredictionActive; + private bool _hasMotionPrediction; private Pose2D _predictedPoseInControl; private double _predictionTimestampSeconds; @@ -144,7 +171,9 @@ namespace MultiWheelC.StateEstimation DefaultJumpConfirmationFrameCount, DefaultJumpConfirmationTimeoutSeconds, DefaultMaximumAutomaticFrameShiftMeters, - DefaultMaximumAutomaticHeadingShiftRadians) + DefaultMaximumAutomaticHeadingShiftRadians, + DefaultMaximumCachedFrameAgeSeconds, + DefaultLocalizationQualityConfirmationFrameCount) { } @@ -175,7 +204,9 @@ namespace MultiWheelC.StateEstimation DefaultJumpConfirmationFrameCount, DefaultJumpConfirmationTimeoutSeconds, DefaultMaximumAutomaticFrameShiftMeters, - DefaultMaximumAutomaticHeadingShiftRadians) + DefaultMaximumAutomaticHeadingShiftRadians, + DefaultMaximumCachedFrameAgeSeconds, + DefaultLocalizationQualityConfirmationFrameCount) { } @@ -197,6 +228,46 @@ namespace MultiWheelC.StateEstimation double jumpConfirmationTimeoutSeconds, double maximumAutomaticFrameShiftMeters, double maximumAutomaticHeadingShiftRadians) + : this( + velocityEstimator, + maximumLinearSpeedMetersPerSecond, + maximumAngularSpeedRadiansPerSecond, + positionJumpMarginMeters, + headingJumpMarginRadians, + velocityPositionResidualMeters, + velocityHeadingResidualRadians, + stationaryConfirmationSeconds, + headingOutlierConfirmationFrameCount, + headingOutlierPredictionTimeoutSeconds, + jumpConfirmationFrameCount, + jumpConfirmationTimeoutSeconds, + maximumAutomaticFrameShiftMeters, + maximumAutomaticHeadingShiftRadians, + DefaultMaximumCachedFrameAgeSeconds, + DefaultLocalizationQualityConfirmationFrameCount) + { + } + + /// + /// 创建同时配置缓存停更和定位质量确认参数的Detour状态源。 + /// + public DetourVehicleStateProvider( + VelocityEstimator2D velocityEstimator, + double maximumLinearSpeedMetersPerSecond, + double maximumAngularSpeedRadiansPerSecond, + double positionJumpMarginMeters, + double headingJumpMarginRadians, + double velocityPositionResidualMeters, + double velocityHeadingResidualRadians, + double stationaryConfirmationSeconds, + int headingOutlierConfirmationFrameCount, + double headingOutlierPredictionTimeoutSeconds, + int jumpConfirmationFrameCount, + double jumpConfirmationTimeoutSeconds, + double maximumAutomaticFrameShiftMeters, + double maximumAutomaticHeadingShiftRadians, + double maximumCachedFrameAgeSeconds, + int localizationQualityConfirmationFrameCount) { _velocityEstimator = velocityEstimator ?? throw new ArgumentNullException( @@ -235,6 +306,9 @@ namespace MultiWheelC.StateEstimation NumericGuard.EnsureFinitePositive( maximumAutomaticHeadingShiftRadians, nameof(maximumAutomaticHeadingShiftRadians)); + NumericGuard.EnsureFinitePositive( + maximumCachedFrameAgeSeconds, + nameof(maximumCachedFrameAgeSeconds)); if (jumpConfirmationFrameCount < 2) { @@ -250,6 +324,13 @@ namespace MultiWheelC.StateEstimation "Detour航向异常至少需要两个新帧确认。"); } + if (localizationQualityConfirmationFrameCount < 2) + { + throw new ArgumentOutOfRangeException( + nameof(localizationQualityConfirmationFrameCount), + "Detour定位质量失效和恢复至少需要两个新帧确认。"); + } + _maximumLinearSpeedMetersPerSecond = maximumLinearSpeedMetersPerSecond; _maximumAngularSpeedRadiansPerSecond = @@ -274,6 +355,10 @@ namespace MultiWheelC.StateEstimation maximumAutomaticFrameShiftMeters; _maximumAutomaticHeadingShiftRadians = maximumAutomaticHeadingShiftRadians; + _maximumCachedFrameAgeSeconds = + maximumCachedFrameAgeSeconds; + _localizationQualityConfirmationFrameCount = + localizationQualityConfirmationFrameCount; } /// @@ -289,15 +374,22 @@ namespace MultiWheelC.StateEstimation string.Empty; /// - /// 获取最近一次读取到的Detour源时间戳原值。 + /// 获取最近一次共享对象提交时的DateTime.Ticks原值。 /// public long? LastDetourTickRaw { get; private set; } /// - /// 获取最近一次Detour l_step原值;其精确定义仍由Detour接口文档确认。 + /// 获取最近一次Detour l_step原值,即到已标注地图关键帧的图上步数。 /// public double? LastDetourLocalizationStep { get; private set; } + /// 获取最近一帧Detour定位质量的瞬时分级。 + public DetourLocalizationQuality LocalizationQuality + { + get; + private set; + } = DetourLocalizationQuality.Unknown; + /// /// 获取当前是否正在确认疑似Detour坐标跳变。 /// @@ -435,10 +527,35 @@ namespace MultiWheelC.StateEstimation LastDetourTickRaw = observation.TickRaw; LastDetourLocalizationStep = observation.LocalizationStep; + LocalizationQuality = + ClassifyLocalizationStep( + observation.LocalizationStep); if (!_hasObservedDetourFrame) { SetLastObservedDetourFrame(observation); + _lastNewDetourFrameTimestampSeconds = + timestampSeconds; + + if (LocalizationQuality == + DetourLocalizationQuality.Lost) + { + _localizationStepUnavailable = true; + _lostLocalizationStepConsecutiveFrameCount = + _localizationQualityConfirmationFrameCount; + InvalidateHeadingObservation( + "Detour初始l_step达到丢失定位范围,航向暂不可用。"); + state = default; + LastFailureReason = + "Detour初始l_step=" + + observation.LocalizationStep + .ToString( + "F0", + CultureInfo.InvariantCulture) + + ",定位状态不可用。"; + return false; + } + AcceptReliableHeadingObservation(observation); state = AcceptPoseAfterReset( observation.PoseInDetour, @@ -471,6 +588,9 @@ namespace MultiWheelC.StateEstimation var previousPoseInDetour = _lastObservedPoseInDetour; SetLastObservedDetourFrame(observation); + _lastNewDetourFrameTimestampSeconds = + timestampSeconds; + _cachedFramePredictionActive = false; if (!NumericGuard.IsFinite( sourceDeltaTimeSeconds) || @@ -488,6 +608,14 @@ namespace MultiWheelC.StateEstimation sourceDeltaTimeSeconds; _hasDetourSourceFrameInterval = true; + if (HandleLocalizationStepQuality( + observation, + timestampSeconds, + out state)) + { + return !_localizationStepUnavailable; + } + var poseInControl = FrameTransform2D.TransformPose( _controlFromDetour, @@ -605,6 +733,18 @@ namespace MultiWheelC.StateEstimation { lock (_syncRoot) { + if ((_cachedFramePredictionActive || + _localizationStepPredictionActive) && + _hasReliableHeadingObservation && + _latestWheelVelocityValid && + _hasMotionPrediction) + { + headingRadians = + GetPredictedPoseInControl().YawRadians; + LastHeadingFailureReason = string.Empty; + return true; + } + if (_headingOutlierCandidateActive) { var candidateAgeSeconds = @@ -742,8 +882,15 @@ namespace MultiWheelC.StateEstimation _lastObservedTickRaw = 0L; _hasDetourSourceFrameInterval = false; _lastDetourSourceFrameIntervalSeconds = 0.0; + _lastNewDetourFrameTimestampSeconds = 0.0; _controlFromDetour = Pose2D.Identity; + _lostLocalizationStepConsecutiveFrameCount = 0; + _normalLocalizationStepRecoveryFrameCount = 0; + _localizationStepUnavailable = false; + _localizationStepPredictionActive = false; + _cachedFramePredictionActive = false; + _hasMotionPrediction = false; _predictedPoseInControl = Pose2D.Identity; _predictionTimestampSeconds = 0.0; @@ -765,15 +912,158 @@ namespace MultiWheelC.StateEstimation AutomaticFrameShiftCount = 0; LastDetourTickRaw = null; LastDetourLocalizationStep = null; + LocalizationQuality = + DetourLocalizationQuality.Unknown; LastFailureReason = string.Empty; LastHeadingFailureReason = string.Empty; } } + /// 按l_step确认定位丢失,并要求连续正常新帧后才恢复。 + private bool HandleLocalizationStepQuality( + DetourObservation observation, + double timestampSeconds, + out VehicleState state) + { + if (LocalizationQuality == + DetourLocalizationQuality.Lost) + { + _normalLocalizationStepRecoveryFrameCount = 0; + _lostLocalizationStepConsecutiveFrameCount++; + + if (_lostLocalizationStepConsecutiveFrameCount >= + _localizationQualityConfirmationFrameCount) + { + _localizationStepUnavailable = true; + _localizationStepPredictionActive = false; + InvalidateHeadingObservation( + "Detour l_step连续达到丢失定位范围,航向暂不可用。"); + state = default; + LastFailureReason = + "Detour l_step=" + + observation.LocalizationStep.ToString( + "F0", + CultureInfo.InvariantCulture) + + "已连续" + + _lostLocalizationStepConsecutiveFrameCount + + "个新帧达到丢失定位范围,车辆状态暂不可用。"; + return true; + } + + if (!_hasMotionPrediction || + !_latestWheelVelocityValid || + !_hasReliableHeadingObservation) + { + _localizationStepUnavailable = true; + _localizationStepPredictionActive = false; + InvalidateHeadingObservation( + "Detour定位质量异常且缺少可靠轮组预测,航向暂不可用。"); + state = default; + LastFailureReason = + "Detour定位质量异常且缺少可靠轮组预测,车辆状态暂不可用。"; + return true; + } + + _localizationStepPredictionActive = true; + state = CreatePredictedState(timestampSeconds); + LastFailureReason = + "Detour l_step达到丢失定位范围,正在等待连续新帧确认," + + "当前使用轮组速度短时预测位姿。"; + return true; + } + + _lostLocalizationStepConsecutiveFrameCount = 0; + _localizationStepPredictionActive = false; + + if (!_localizationStepUnavailable) + { + _normalLocalizationStepRecoveryFrameCount = 0; + state = default; + return false; + } + + if (LocalizationQuality == + DetourLocalizationQuality.Normal) + { + _normalLocalizationStepRecoveryFrameCount++; + } + else + { + _normalLocalizationStepRecoveryFrameCount = 0; + } + + if (_normalLocalizationStepRecoveryFrameCount < + _localizationQualityConfirmationFrameCount) + { + state = default; + LastFailureReason = + "Detour定位质量正在恢复确认(" + + _normalLocalizationStepRecoveryFrameCount + + "/" + + _localizationQualityConfirmationFrameCount + + "),车辆状态暂不可用。"; + return true; + } + + _localizationStepUnavailable = false; + _normalLocalizationStepRecoveryFrameCount = 0; + AcceptReliableHeadingObservation(observation); + state = AcceptPoseAfterReset( + FrameTransform2D.TransformPose( + _controlFromDetour, + observation.PoseInDetour), + timestampSeconds); + LastFailureReason = string.Empty; + return true; + } + private bool HandleRepeatedDetourFrame( double timestampSeconds, out VehicleState state) { + var cachedFrameAgeSeconds = + timestampSeconds - + _lastNewDetourFrameTimestampSeconds; + + if (!NumericGuard.IsFinite(cachedFrameAgeSeconds) || + cachedFrameAgeSeconds < 0.0) + { + InvalidateHeadingObservation( + "Detour缓存帧本机计时无效,航向暂不可用。"); + state = default; + LastFailureReason = + "Detour缓存帧本机计时无效,车辆状态暂不可用。"; + return false; + } + + if (_localizationStepUnavailable) + { + state = default; + LastFailureReason = + "Detour定位质量尚未通过连续健康新帧恢复确认。"; + return false; + } + + if (cachedFrameAgeSeconds > + _maximumCachedFrameAgeSeconds) + { + _cachedFramePredictionActive = false; + InvalidateHeadingObservation( + "Detour源tick超过缓存停更上限,航向暂不可用。"); + state = default; + LastFailureReason = + "Detour源tick已连续" + + cachedFrameAgeSeconds.ToString( + "F3", + CultureInfo.InvariantCulture) + + "s未更新,超过" + + _maximumCachedFrameAgeSeconds.ToString( + "F3", + CultureInfo.InvariantCulture) + + "s上限,车辆状态暂不可用。"; + return false; + } + if (_jumpCandidateActive) { return ReturnCandidateState( @@ -781,6 +1071,16 @@ namespace MultiWheelC.StateEstimation out state); } + if (IsVehicleMovingFromWheelFeedback()) + { + _cachedFramePredictionActive = true; + state = CreatePredictedState(timestampSeconds); + LastFailureReason = + "Detour源tick暂未更新,当前使用轮组速度短时预测位姿。"; + return true; + } + + _cachedFramePredictionActive = false; state = HandleRepeatedPose(timestampSeconds); LastFailureReason = string.Empty; return true; @@ -974,6 +1274,54 @@ namespace MultiWheelC.StateEstimation InPlaceRotationAngularSpeedThresholdRadiansPerSecond; } + /// 判断轮组反馈是否表明车辆仍在平移或转动。 + private bool IsVehicleMovingFromWheelFeedback() + { + if (!_latestWheelVelocityValid) + { + return false; + } + + var linearSpeedMetersPerSecond = Math.Sqrt( + _latestWheelTwistInBody.VxMetersPerSecond * + _latestWheelTwistInBody.VxMetersPerSecond + + _latestWheelTwistInBody.VyMetersPerSecond * + _latestWheelTwistInBody.VyMetersPerSecond); + + return linearSpeedMetersPerSecond > + InPlaceRotationLinearSpeedThresholdMetersPerSecond || + Math.Abs( + _latestWheelTwistInBody + .OmegaRadiansPerSecond) > + InPlaceRotationAngularSpeedThresholdRadiansPerSecond; + } + + /// 按照Detour源码中l_step到可信锚点的图距离进行质量分级。 + public static DetourLocalizationQuality + ClassifyLocalizationStep(double localizationStep) + { + NumericGuard.EnsureFiniteNonNegative( + localizationStep, + nameof(localizationStep)); + + if (localizationStep >= + LostLocalizationStepLowerBound) + { + return DetourLocalizationQuality.Lost; + } + + if (localizationStep > + DegradedLocalizationStepUpperBound) + { + return DetourLocalizationQuality.Poor; + } + + return localizationStep > + NormalLocalizationStepUpperBound + ? DetourLocalizationQuality.Degraded + : DetourLocalizationQuality.Normal; + } + private void ClearJumpCandidate() { _jumpCandidateActive = false; @@ -1015,7 +1363,7 @@ namespace MultiWheelC.StateEstimation NumericGuard.EnsureFinite( yawDegrees, "DetourTheta"); - NumericGuard.EnsureFinite( + NumericGuard.EnsureFiniteNonNegative( localizationStep, "DetourLStep"); @@ -1459,6 +1807,21 @@ namespace MultiWheelC.StateEstimation return "Uninitialized"; } + if (_localizationStepUnavailable) + { + return "LocalizationUnavailable"; + } + + if (_localizationStepPredictionActive) + { + return "LocalizationStepPrediction"; + } + + if (_cachedFramePredictionActive) + { + return "CachedFramePrediction"; + } + if (_jumpCandidateActive) { var candidateAgeSeconds = @@ -1482,6 +1845,18 @@ namespace MultiWheelC.StateEstimation return "HeadingUnavailable"; } + if (LocalizationQuality == + DetourLocalizationQuality.Poor) + { + return "LocalizationPoor"; + } + + if (LocalizationQuality == + DetourLocalizationQuality.Degraded) + { + return "LocalizationDegraded"; + } + return string.IsNullOrWhiteSpace(LastFailureReason) ? "Healthy" : "Unavailable"; diff --git a/MultiWheelC/StateEstimation/ParkingVehicleStateProviderFactory.cs b/MultiWheelC/StateEstimation/ParkingVehicleStateProviderFactory.cs index 2cb4c2b..d3f1be8 100644 --- a/MultiWheelC/StateEstimation/ParkingVehicleStateProviderFactory.cs +++ b/MultiWheelC/StateEstimation/ParkingVehicleStateProviderFactory.cs @@ -64,7 +64,10 @@ namespace MultiWheelC.StateEstimation config.ParkingDetourMaximumAutomaticFrameShift, AngleMath.DegreesToRadians( config - .ParkingDetourMaximumAutomaticHeadingShiftDegrees)); + .ParkingDetourMaximumAutomaticHeadingShiftDegrees), + config.ParkingDetourMaximumCachedFrameAgeSeconds, + config + .ParkingDetourLocalizationQualityConfirmationFrames); return new WheelFeedbackVehicleStateProvider( detourStateProvider, diff --git a/MultiWheelC/build/Clumsy/CommonUsage.dll b/MultiWheelC/build/Clumsy/CommonUsage.dll index 403ea8bb61054b2090b3fc4177dee1463119ec71..2c0496a776efe6684628a7be9d924752630e9421 100644 GIT binary patch delta 29618 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

Vv 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 delta 29579 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 diff --git a/MultiWheelC/build/Clumsy/MultiWheelC.pdb b/MultiWheelC/build/Clumsy/MultiWheelC.pdb index b41c738f080c7279dabc56fbfe91a339a7e3db2b..0106fc90a4ab54783b2f368b84f7c2cd9942787c 100644 GIT binary patch delta 34198 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�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 200` 记为 `bad perf`。 +- `/getPos` 若 `now - st_time > 500 ms` 打 `Timeout`。 + +因此正常运行时,**从观测到可读位姿大约是 1 帧雷达周期 + 配准/融合,常见几十到两百毫秒;超过 500 ms 会被 HTTP 接口判超时。** 这是实现上的门槛,不是出厂标定值。 + +### 3.2 `getCartLocation()` 是否返回最近一次缓存 + +**是。** + +- `CartLocation.latest` 是全局缓存。 +- 只有 `TightCoupler.CommitLocation` 成功后才会替换(取 `history` 中 `st_time` 最新的一帧)。 +- `/getPos` 只读缓存,不触发新的 SLAM 计算。 +- 配准失败、`CommitLocation` 返回 `null`(`bad variance` / `bad trace`)、或 `G.paused` 时,缓存停在上一帧。 + +### 3.3 原地自转时频率/延迟是否明显变化 + +**轮询频率不变,有效更新和延迟会变差。** + +- 接口仍按调用方频率读同一缓存。 +- 原地旋转时二维扫描重叠变差,帧间分、相位锁分容易掉,`allowCommit` 更常失败,缓存更容易停住。 +- 配准变慢时单帧 `reg_ms` 上升;失败后 `l_step` 被加大(见第 4 节),看起来像“转的时候定位变钝”。 +- 源码没有“自转专用降频”。 + +控制侧:自转短时预测应假设**有效位姿更新可能变稀、变老**,不要假设 `tick` 仍按雷达周期前进。 + +--- + +## 4. `l_step` 的含义(优先) + +### 4.1 它是什么 + +**定位质量的图距离,不是优化迭代次数,也不是匹配状态枚举。** + +定义:当前位姿/关键帧沿约束图走到**已标注关键帧**还要几步。 + +- `0`:本身就是标注帧(`labeledXY` / `labeledTh`),或刚被标成锚点。 +- `1`:刚和地图/标注帧配准成功(`LidarMap` 成功后会把 `compared.l_step = 1`)。 +- 正常递推:新关键帧 `l_step = 旧关键帧.l_step + lstepInc`。 +- TightCoupler 提交时:有参考关键帧则 `reference.l_step + 1`;没有则 `latest.l_step + 3`。 +- `9999`:未定位、手动设位、或与标注图断开。这是 `Frame` / 初始 `CartLocation` 的默认值。 + +**越小越好、越可信。** +`AIImplementationNote.md` 里“越小越不确定”与源码相反,不要采用。 + +内部用途包括: + +- TightCoupler 边权:`l_step > 10 → 1`,`> 5 → 2`,`> 2 → 3`,否则 `4`;标注帧权 1000。 +- 图优化用 `1/(l_step+0.01)` 当权。 +- `l_step` 大时 `LidarMap` 更容易走全局配准(`forceGRegStep`、`GregThresK * l_step`)。 +- `l_step > 1000` 且孤立的关键帧可被删掉。 + +源码 TODO 也写过:希望将来“去掉 `l_step`,改用误差圆”。当前对外接口仍是这个整数。 + +### 4.2 为什么原地自转会从 2~4 升到几十、上百 + +自转本身不会改公式,但会让 **`lstepInc` 连续被惩罚**,再在切关键帧时一次性加到 `l_step` 上。 + +`LidarOdometry` 里常见加项: + +| 条件 | `lstepInc` 增量 | +|---|---| +| 帧间隔过大 | `+3`~`+20` | +| 时间落后 > 1 s | 可到 `+1000` 量级并重启局部图 | +| 有效点太少 | `+3` | +| 掩膜后点过少 | `+10` | +| 帧间序贯配准失败 | `+5` | +| 局部里程计分过低 | `+15` | +| 历史分偏低 | `+1`~`+15` | +| 局部图重启 / 相位锁差 | `+2` | +| 上一帧能提交、这一帧不能 | `+100` | +| 离开 hard 区域 | 默认再 `+20` | + +原地自转时典型连锁是:旋转导致重叠变差 → 分数掉 → `lstepInc` 累加 → 因“新点变多 / 超时 / restart”切关键帧 → `新 l_step = 旧值 + lstepInc`。 +若此时地图匹配也失败,TightCoupler 按 `latest.l_step + 3` 继续推高。 +所以 2~4 很快可以变成几十,失败恢复前看到上百是符合实现的。 + +匹配一旦重新成功,关键帧会被改回 `l_step = 1`,输出也会掉下来。 + +### 4.3 有没有官方阈值 + +**没有写给控制程序的官方阈值表。** 下面是源码内部实际在用的分档,可作控制侧初值,现场仍要按地图和雷达标定。 + +| `l_step` | 源码含义 | 给控制程序的建议 | +|---|---|---| +| `0` | 标注锚点 | 最可信 | +| `1`~`2` | 刚贴上地图 / 离锚点很近 | **正常,接受** | +| `3`~`5` | TightCoupler 已降权 | 可用,开始警惕跳变 | +| `6`~`10` | 权更低;地图更倾向全局配准 | **退化,降低信任 / 收紧预测** | +| `11`~`98` | 最低权;曾从不稳定区回到 `2` 时会打工作区快照 | **明显退化,不宜做精细控制** | +| `≥ 99` | TightCoupler 允许关键帧被推得更狠 | 按不可靠处理 | +| `≥ 1000` | 孤立帧可删 | 基本断开 | +| `9999` | 未定位 / 手动设位 / 断开 | **不可用,应安全停止或等待重定位** | + +Detour 自己判断“车是否静止可做全局重定位”时用:`l_step > 2` 且 TightCoupler 速度估计很小。这是内部策略,不是对外状态机。 + +--- + +## 5. 坐标跳变与重定位行为(优先) + +### 5.1 重定位、回环、失败恢复后,`x/y/theta` 会不会永久跳变 + +**会。跳变是设计行为,不是毛刺。** + +会改当前输出的情况: + +1. **地图配准成功**:`LidarMap` 把当前关键帧改到匹配位姿,并 `l_step = 1`,再交给 TightCoupler。下一帧 `CartLocation` 跟着新参考走,表现为一次台阶。 +2. **全局重定位**(`/relocalize` 或 UI Relocalize):定位器进入 `relocalizing`,按全图关键帧搜索(`source = 9`)。第一次更好的匹配会 `TightCoupler.Reset`,位姿被拉到地图上,通常是大幅度永久跳变。 +3. **回环 + `GraphOptimizer`**:关键帧 `x/y/th` 被就地改写。当前参考帧若被挪动,后续融合位姿跟着变。优化有动量平滑,但仍可能出现肉眼可见的台阶。 +4. **手动 `/setLocation`**:直接改 `CartLocation.latest` 并重置融合窗口。 +5. **匹配长期失败后突然恢复**:从里程计漂过的位置一下子贴回地图,跳变幅度等于累计漂移。 + +没有“只在内部跳、对外插值抹平”的保证。控制程序必须自己做跳变连续化或拒绝。 + +### 5.2 跳变后还在原来的地图坐标系吗 + +**同一张已加载地图内:是。** +跳的是车在这张图里的估计,不是换了一套轴。 + +会换坐标系的只有:换图(`/loadMap`)、`Remapper`(GNSS/外参映射)、或手动把车标到另一个锚点。这些不是普通重定位。 + +### 5.3 有没有“正在重定位 / 定位丢失 / 地图坐标调整”标志 + +**定位结果包里没有这些标志。** + +内部有、但**不随 `getPos` / `DetourPos` 下发**: + +| 内部量 | 作用 | 是否对外 | +|---|---|---| +| `Locator.relocalizing` / `relocalized` | 地图层正在/已经全局搜 | 否 | +| `G.IsSettingPosition` | 正在手动设位 | 否(`/getStat` 的 `globalStat` 里能看到) | +| `G.paused` | 定位暂停 | 否(同上,或调 `/pause` `/resume`) | +| `CartLocation.unstable` | 本帧掩膜过狠、场景不稳定 | **仅 HTTP**:`error = "Unstable"`。DObject 当前推送的 `error` 被写成空串 | +| `l_step` 升到很大 / `9999` | 实际的“丢了” | 是,但这是间接指标 | +| 图优化改关键帧 | “地图坐标调整” | 无单独标志 | + +HTTP `/getPos` 仅有的显式错误: + +- `"Timeout"`:`st_time` 已超过 500 ms +- `"Unstable"`:`latest.unstable == true` + +没有 `"Relocalizing"`、`"Lost"`、`"MapAdjusted"`。 +`/getStat` 可拉到各模块 `StatusMember`(雷达间隔、里程计状态、TC 状态等),但不是每帧位姿附属字段,也不适合当硬实时互锁。 + +控制侧应自己构造状态: + +- **疑似丢失**:`error` 为 Timeout/Unstable,或 `l_step ≥ 99`,或 `tick` 长期不涨。 +- **疑似重定位/回环跳变**:相邻两帧 `x/y/th` 突变,同时 `l_step` 突然掉回 1~2。 +- **地图在拧**:跳变较缓、持续多帧,且 `l_step` 并不爆掉。 + +--- + +## 6. 可用的定位质量接口(优先) + +### 6.1 除 `l_step` 外还能拿到什么 + +**位姿包几乎只有 `l_step` + HTTP 的 `error`。** + +| 信息 | 有没有 | 说明 | +|---|---|---| +| 匹配得分 | 对控制程序:无 | 在 `LidarOdometry` / `LidarMap` 内部(`score`、`phaselocker_score`),不下发 | +| 协方差 | 对控制程序:无 | `Frame.errXX/errXY/errYY` 已预留,**未填进 `/getPos` 或 `DetourLocation`** | +| 置信度 | 间接 | 就是 `l_step`;源码 TODO 想换成误差圆,尚未做 | +| 定位状态 | 很弱 | HTTP:`Timeout` / `Unstable`;DObject:`error` 目前恒为空 | +| 错误码 | 无枚举 | 只有上述字符串 | +| 系统状态 | 有,但是慢接口 | `GET /getStat` → 布局/里程计/定位器/TC/GO/`G.paused`/`G.IsSettingPosition` | + +因此控制程序**不能**指望每帧拿到匹配分或协方差。 + +### 6.2 Detour 实际用什么条件接受一帧(可当作官方内部规则) + +源码里“接受并提交”的条件是分层的,没有单独的对外规范文档: + +1. **里程计层**(`LidarOdometry.updateLocation`) + - 分数过低会把 `strength` 压下去,甚至不把 `reference` 挂上。 + - 掩膜过狠 → `unstable = true`。 + - 点太少、序贯/局部配准失败 → 不切健康关键帧,并加大 `lstepInc`。 +2. **融合层**(`TightCoupler.CommitLocation`) + - 传感器处于 `bad variance` / `bad trace` → 直接丢弃,返回 `null`。 + - 丢弃后该源会被禁一段时间(约 1~2 s)。 +3. **地图层**(`LidarMap`) + - `result.score < ScoreThres` 丢弃。 + - 相对已有位姿的 `xy/th` 偏差超过按 `l_step` 放大的门限则丢弃(防止乱跳)。 + - 落到无效区域丢弃。 +4. **HTTP 出口** + - 缓存超过 500 ms → `Timeout`。 + - `unstable` → `Unstable`。 + +### 6.3 建议控制程序如何接受/拒绝一帧 + +源码没有写给 `MultiWheelC` 的官方判据。按上面的内部规则,建议: + +**接受(正常闭环)** + +- HTTP:无 `error`(DObject:至少 `tick` 在前进)。 +- `l_step ≤ 5`。 +- `tick` 新鲜(HTTP:`now - tick < 300 ms` 较稳妥;DObject:换算成 ms 后同样看提交间隔)。 +- 相对上一接受帧:位移/转角不超过本底盘短周期能达到的上限。 + +**降级(短时预测、降低增益、禁止精细对位)** + +- `6 ≤ l_step ≤ 10`,或偶发 Timeout 后立刻恢复。 +- 原地自转期间 `l_step` 爬升但 `tick` 仍在更新。 + +**拒绝并安全停止 / 等待** + +- `error == "Timeout"` 持续,或 `error == "Unstable"`。 +- `l_step ≥ 99`(含 `9999`)。 +- 单帧出现与运动学不符的永久台阶(尤其伴随 `l_step` 从很大突然回到 1):先当重定位跳变,做连续化或刹停,不要直接当编码器。 + +**不要做的事** + +- 不要用 `l_step` 当 ICP 迭代次数或“正在计算中”。 +- 不要假设 `theta ∈ [-180, 180]`。 +- 不要用 `tick` 做多车时间同步主时钟。 +- 不要假设 DObject 的 `error` 会带 Timeout/Unstable(当前实现是空的)。 + +--- + +## 对 `StateEstimation` 的直接含义 + +清单里最优先的 2 / 4 / 5 / 6,对应控制侧应这样定: + +1. **时间同步** + - 先确认 `getCartLocation` 走 HTTP 还是 `DetourPos`。两条通道的 `tick` **单位和语义都不同**。 + - 单车:用 `tick` 估延迟、做自转短时预测。 + - 多车:另选同步时钟。 + +2. **自转短时预测** + - 自转时有效更新可能变稀,`l_step` 会从个位数爬到几十上百。 + - 这是质量变差,不是接口卡死。预测窗口应随 `tick` 变老、`l_step` 变大而缩短。 + +3. **跳变连续化** + - 重定位、回环、失败恢复都会造成**同地图下的永久台阶**。 + - 没有“正在改图”标志;用位姿差分 + `l_step` 回落来识别。 + +4. **安全停止** + - 硬条件:`Timeout` / `Unstable` / `l_step ≥ 99` / `tick` 停更。 + - `l_step` 建议按 `≤5` 正常、`6–10` 退化、`>10` 不可用于精细控制。 + +--- + +## 源码锚点 + +| 主题 | 位置 | +|---|---| +| 对外 JSON / Timeout / Unstable | `DetourCore/Location.cs`:`ConstructRet`、`FormatPosition` | +| HTTP 路由 | `DetourCore/WebAPI.cs`:`/getPos`、`/setLocation`、`/relocalize`、`/getStat` | +| DObject 推送与 `tick=DateTime.Now.Ticks` | `DetourCore/Algorithms/TightCoupler.cs`:`DetourLocation`、`CommitLocation` | +| `l_step` 定义 | `DetourCore/Types/Frame.cs` | +| 车体中心变换、提交缓存 | `TightCoupler.CommitLocation` | +| 时钟 | `DetourCore/G.cs`:`DetourWatch.TimeStampMillis` | +| 角度回绕 | `DetourCore/LessMath.cs`:`normalizeTh` | +| 自转时 `l_step` 被加大 | `DetourCore/Algorithms/LidarOdometry.cs`(`lstepInc`) | +| 匹配成功后的位姿跳变 | `DetourCore/LocatorTypes/LidarMap.cs`(loop / relocalize) | +| 回环拧图 | `DetourCore/Algorithms/GraphOptimizer.cs` | +| 全局重定位入口 | `DetourCore/DetourLib.cs`:`Relocalize()` | +| 单位缩放 | `DetourCore/Configuration.cs`:`GuruOptions.inputScale / biasX / biasY` | + +--- + +## 修订记录 + +- 2026-08-24:按当前 Detour 源码逐条答复原《Detour 信息确认清单》。 diff --git a/docs/architecture.md b/docs/architecture.md index 3e20c9e..b3ad42a 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -89,19 +89,33 @@ MovementTest / MotionPlanExecutor `TrajectoryTrackingMovement` 默认从 `PilotDefinition.Conf` 读取车辆级参数,同时保留少量动作级覆盖字段;横向控制器可通过 `LateralControllerFactory` 替换,纵向控制器当前固定创建为 `PidLongitudinalController`。 -## 车队纯计算调用链 +## 车队组件与尚未贯通的执行链 ```text -FleetState - → FleetController - → PathTrackingCore.Compute() - → GcpKinematics.ToBodyTwist() - → FleetMotionCommand(参考点为车队原点) - → FleetKinematics.Decompose(FleetLayout, command) - → FleetMemberCommand[](各成员真实车体系Twist) +夹紧且静止时的成员世界位姿快照 + → FleetLayoutCapture.Capture() + → 初始FleetPoseInWorld + 不可变FleetLayout + +成员状态样本 FleetMemberStateSample[] + → FleetStateEstimator.Estimate() + → FleetState + FleetMemberLayoutError[] + → FleetCoordinator.ExecuteCycle() + → FleetController(虚拟中心轨迹闭环和固定β_fleet) + → 相对布局误差统一速度缩放 + → FleetKinematics.Decompose() + → FleetMemberCommandCorrector + → FleetMemberCommand[] + +车队动作主要滚动方向β_fleet + → FleetPreparationCoordinator(换算每车β_i并等待全员Ready) + → FleetMemberAgent(本车停车准备、舵轮到位、激活、Execute/Stop) ``` -这条链已经覆盖虚拟中心轨迹闭环和确定性刚体速度分解,但尚未接入车队状态估计、通信/时间对齐、相对布局纠偏、共同能力限幅、安全降级和成员底盘发送。 +`FleetLayoutCapture` 只负责固定布局的几何计算:车队原点X/Y取成员车体中心的算术平均,车队Yaw取主车Yaw,再把各成员世界位姿反变换为 `VehicleLayout.PoseInFleet`。它不读取通信或Detour,也不负责静止/夹紧确认、时间对齐和布局激活。 + +上述类目前是可以独立构造和测试的组件,并没有正式的车队任务运行入口把两条链串起来。缺少的外层需要负责布局原子激活、成员状态实际采集与时间对齐、准备/激活状态机、每周期协调、安全门控、成员命令分发、任务完成与取消。`FleetCoordinator` 生成零速或故障结果不等于实车已经停车;只有运行层把结果送到各车 `FleetMemberAgent.Execute()` 或 `Stop()` 后才会影响底盘。 + +实际部署为每车独立电脑,因此主车还需要状态/命令通信,从车需要本地命令超时看门狗。无线串口初始化可以后接,但消息契约、任务号、心跳/有效期和本地失联停车语义必须在运行层接入前明确。 ## 状态数据流 diff --git a/docs/decisions.md b/docs/decisions.md index 01b3d00..315db7c 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -97,6 +97,8 @@ - `MultiWheelC.Tests/FleetKinematicsTests.cs` 已覆盖整体平移、绕车队中心旋转、绕成员车旋转和停止四个数学场景。 - `MultiWheelC/Fleet/FleetState.cs` 保存车队虚拟中心的世界位姿、同一点的世界系/车队系速度、状态采样时间和速度有效性;`FleetPoseInWorld.Yaw` 定义车队 `+X` 方向,两份速度只是同一物理速度的不同坐标表达。 - `FleetState.SampleTimestampSeconds` 采用主车/协调器生成聚合快照时的本机单调时间。成员本机时钟和Detour `tick` 的同步属于未来接收/状态估计层职责,不阻塞使用人工构造 `FleetState` 开发纯车队控制器。 +- 当前无法直接获得被搬运车辆中心,因此 `FleetLayoutCapture.Capture()` 已确定用成员车体中心X/Y的算术平均定义车队原点,用指定主车Yaw定义车队朝向;主车缺失时拒绝采集,不做隐式降级。 +- 布局采集只返回采集时刻的 `FleetPoseInWorld` 与不可变 `FleetLayout`,不读取Detour/通信,也不负责夹紧、静止、时间对齐或原子激活。6个布局采集数学场景已通过。 ### 14. 原地自转保留绝对航向与轮组相对角两种反馈模式 @@ -109,22 +111,25 @@ - `PathTrackingContext` 只携带受控刚体的车体系速度、速度有效性、轨迹投影和周期控制量,不依赖 `VehicleState` 或 `FleetState`。 - `PathTrackingCore` 集中实现投影连续性、保护/终点策略、曲率预瞄、横纵向控制和GCP分配;`ParkingGeometricController` 与 `FleetController` 分别组合该核心,负责各自的状态适配和输出边界,不通过继承复制控制流程。 -- `FleetController` 第一版只闭环车队虚拟中心,并将GCP结果转换成车队原点处的 `FleetMotionCommand`;成员速度继续由 `FleetKinematics.Decompose()` 确定性分解。 +- `FleetController` 第一版只闭环车队虚拟中心,并支持固定 `β_fleet`:实际纵向速度沿β投影,GCP结果从运动坐标系旋转到车队坐标系后形成车队原点处的 `FleetMotionCommand`;成员速度继续由 `FleetKinematics.Decompose()` 确定性分解。 +- `FleetStateEstimator` 已根据固定 `FleetLayout` 和时间对齐目标时刻反算、融合车队中心,并输出每车 `FleetMemberLayoutError`;成员样本的实际采集和跨电脑时间处理仍属于外层接收链。 +- `FleetCoordinator` 已串联状态估计、虚拟中心控制、布局误差警告区间内的统一速度缩放、刚体分解和 `FleetMemberCommandCorrector` 小范围纠偏;越过停止阈值时返回故障和零速成员命令,但尚无正式运行层把该结果送到实车。 +- `FleetPreparationCoordinator` 已按 `beta_i = beta_fleet - theta_i` 生成成员准备目标,并通过任务号和全员Ready形成统一激活屏障;`FleetMemberAgent` 已封装本车停车准备、舵轮到位确认、激活、命令校验和底盘执行。两者尚未接入同一个车队任务生命周期,也未接入跨电脑通信。 - 控制算法的可替换性继续由 `ILateralController`、`ILongitudinalController` 组合注入;状态源、通信、底盘发送和成员协调不进入纯核心。 -- `MultiWheelC.Tests` 已覆盖8个Stanley前进/倒车符号场景、6个车队控制周期场景和4个刚体分解场景;统一构建与打包通过。 +- `MultiWheelC.Tests` 已覆盖8个Stanley前进/倒车符号场景、8个车队控制周期场景、6个布局采集场景和4个刚体分解场景;统一构建与打包通过。 ## 已经确认但尚未实施 - 路线顺序:先完成单车闭环和停车功能验证,再正式实施多车通信、编队和协同控制。来源:`README.md`。 -- 当前已完成车队布局模型、虚拟中心状态模型、虚拟中心轨迹控制和纯运动学分解,尚未形成可运行的多车链路:布局采集/激活、车队状态估计、通信、成员纠偏和安全协调仍未接入业务流程。 -- 布局生命周期区分夹紧前后的语义:夹紧前的预设布局只用于引导车辆就位;车辆夹紧且静止后,应同步读取成员位姿,选择车队参考系并创建新的不可变 `FleetLayout`,再由上层协调器原子激活。共同搬运期间的相对位姿变化属于状态误差,不能通过修改 `FleetLayout` 吸收;松开车辆后清除激活布局。具体采集和激活接口尚未实施。 +- 当前多车的布局、状态估计、中心控制、刚体分解、成员纠偏、β准备屏障和本车执行代理均已有代码组件,但尚未形成可运行的多车链路。仍缺少车队任务运行入口、布局原子激活、成员状态实际采集/时间对齐、跨电脑通信、命令分发和可实际触发停车的安全执行链。 +- 布局生命周期区分夹紧前后的语义:夹紧前的预设布局只用于引导车辆就位;车辆夹紧且静止后,应同步取得同一世界坐标系下的成员位姿,调用 `FleetLayoutCapture` 创建新的不可变布局,再由上层协调器原子激活。共同搬运期间的相对位姿变化属于状态误差,不能通过修改 `FleetLayout` 吸收;松开车辆后清除激活布局。实际数据采集和激活接口尚未实施。 - 多车共同搬运不能只闭环车队中心:整体位姿误差与成员相对布局误差必须分开估计和约束,否则成员误差可能相互抵消而使平均中心看似正确。 - 计划采用分层职责:车队控制器产生参考点 `FleetTwist`,分配层依据成员 `VehicleLayout` 计算每车真实车体系 `BodyTwist`,单车层继续负责β变换、GCP和本车四轮解算。 - 第一版采用确定性的虚拟刚体速度分配,不先引入QP/HQP:若成员在车队系中的固定布局为位置 `(x_i,y_i)`、朝向 `theta_i`,则成员中心在车队系中的速度为 `(Vx-omega*y_i, Vy+omega*x_i, omega)`,再通过 `R(-theta_i)` 转到本车体系后交给 `SendBodyTwist()`。QP/HQP只在需要同时调整车队参考速度、处理成员能力差异、松弛约束或严格任务优先级时再引入。 -- “按状态最差车辆协调速度”采用车队共同可行性和统一缩放表达:普通能力受限时由所有成员约束确定共同速度比例;任一成员报警、通信超时、状态不可用或刚体误差越界时整队停车。时间戳、心跳、命令有效期和本地超时停车属于第一版安全契约,延迟预测补偿可以后续增加。 +- “按状态最差车辆协调速度”第一步已经对成员相对布局误差实现警告阈值至停止阈值之间的统一速度缩放。成员报警、通信超时、夹紧异常、状态持续不可用等整队停车条件仍需由真实运行层统一执行;时间戳、心跳、命令有效期和从车本地超时停车属于第一版安全契约,延迟预测补偿可以后续增加。 - 虚拟车队使用固定在车队坐标系中的对称前后GCP,把横向控制结果转换成车队原点 `FleetTwist`;这些点不是物理轮轴,也不直接参与单车四轮解算。横向控制器与GCP到Twist转换必须使用同一控制点半径;具体车辆级配置值和实车验证仍待完成。 - 每辆成员车都应作为反馈来源,但反馈职责必须分层:成员Detour位姿用于融合车队整体位姿和检查相对布局,单车轮速/舵角用于确认命令执行偏差,电机电流、扭矩或力传感信息用于负载与内力监控。相对位姿接近目标并不能证明没有内力,因此不能只依靠刚性连接或位姿误差判断负载均衡。 -- 第一版不把每车β作为复杂优化变量:车队动作先明确主要滚动方向 `beta_fleet`(如正常0°、斜行45°、横移90°),成员按固定布局朝向换算 `beta_i = beta_fleet - theta_i`,并利用180°等效和有符号速度选择方便的本地表示。β是单车执行坐标系,不改变刚体分配得到的真实车体系 `BodyTwist`,也不会让各车命令数值相同;仅允许在全车停车时准备和激活,全部成员舵轮到位后通过同步屏障释放非零命令。只有出现复杂布局、整段方向变化、限位余量或频繁反号问题时,才增加轨迹级β候选搜索。 +- 第一版不把每车β作为复杂优化变量:`FleetController` 已支持固定的车队主要滚动方向 `beta_fleet`(如正常0°、斜行45°、横移90°)及其控制坐标转换;`FleetPreparationCoordinator` 已按布局换算成员 `beta_i`,并采用180°等效轴保持在方便的本地表示范围。β是单车执行坐标系,不改变刚体分配得到的真实车体系 `BodyTwist`,也不会让各车命令数值相同。当前缺的是把停车预对齐、全员Ready和统一激活接入真实运行链;只有出现复杂布局、整段方向变化、限位余量或频繁反号问题时,才增加轨迹级β候选搜索。 - 旧版参考项目采用固定双车布局:各车由 `carWorld ∘ layout⁻¹` 反推车队中心,再对位置和圆周航向求平均;路径控制器以该虚拟中心跟踪轨迹。同时它可按 `fleetTarget ∘ layout_i` 生成每车理想位姿,并叠加Detour布局纠偏和邻车两腿检测纠偏,因此并非只控制平均中心。来源:`原版停车机器人/parkingrobot/ClumsyPilot/PilotDefinition.cs`、`ChassisController.cs`。 - 旧版 `SetOriginBias(layoutX, layoutY, layoutTh)` 是把各车真实轮子统一表达在车队虚拟坐标系中,属于固定编队布局变换。旧版联动显式区分常规、蟹行和绕车队中心旋转三类模式;蟹行角可由动作或遥控给出任意值(`FleetCrabWalk` 默认45°),并在运动前以零速度对齐舵轮、运行时使用180°等效和轮速反号,但没有根据整段轨迹和每车约束自主求解β的统一规划过程。给定简单蟹行动作时,它与新版固定β可能产生相同的实际轮子姿态和车辆运动。 - 旧版自动 `FleetCurveWalk`、`FleetCrabWalk` 会先以零速度下发初始GCP角,等待成员新鲜、布局正确、命令可行、舵轮到位和从车应用新序列后才开始运动;原地旋转通过 `RotateWheelsAligned` 和 `FleetMotionReleased` 做整队释放。普通手动入口仍有 `SendMotion` 本车舵轮未对齐时速度置零的门控,但不保证与自动动作相同的车队级同步屏障。 diff --git a/docs/interfaces.md b/docs/interfaces.md index 44e9bf8..8157797 100644 --- a/docs/interfaces.md +++ b/docs/interfaces.md @@ -36,6 +36,17 @@ `FleetState.SampleTimestampSeconds` 表示主车/协调器生成该车队状态快照时的本机单调时间,不是Detour全局时间。各成员电脑的本机时钟和Detour `tick` 当前不能直接互相比较;未来接收层应另行保存来源时间并完成新鲜度和时间对齐。 +### `FleetLayoutCapture` + +文件:`MultiWheelC/Fleet/FleetLayoutCapture.cs`。 + +- `FleetMemberPose`:用于布局采集的车号和成员世界位姿输入。 +- `FleetLayoutCaptureResult`:同时返回采集时刻的 `FleetPoseInWorld` 和固定的 `FleetLayout`;车队当前世界位姿不存入布局。 +- `Capture(members, leaderVehicleId)`:车队原点X/Y取成员车体中心的算术平均,Yaw取主车Yaw,并通过 `inverse(FleetPoseInWorld) ∘ VehiclePoseInWorld` 得到每车 `PoseInFleet`。 +- 空成员、非法或重复车号、非有限位姿、主车不存在均拒绝采集;主车缺失时不使用其他车辆降级代替。 + +该接口是纯几何计算,调用者必须在外部保证成员位姿处于同一世界坐标系,并完成夹紧、静止、数据新鲜度和时间对齐检查;布局的存储与原子激活也不属于该类。 + ## 轨迹契约 文件:`MultiWheelC/Trajectory/`。 @@ -133,7 +144,7 @@ Vβ = cos(β)·Vx_body + sin(β)·Vy_body 状态暂时不可用时,外层调用 `PauseForUnavailableState()` 保留当前轨迹与投影连续性;明确失败或取消分别使用 `Fail()`、`Cancel()`。 -`ParkingGeometricController` 是单车适配层,负责读取 `IVehicleStateProvider` 并通过 `GcpCommandExecutor` 发送实体底盘命令。`FleetController` 是车队虚拟中心适配层,使用 `FleetState.FleetPoseInWorld` 和 `TwistAtFleetOriginInFleet` 调用同一核心,再将GCP结果转换为车队原点处的 `FleetMotionCommand`。 +`ParkingGeometricController` 是单车适配层,负责读取 `IVehicleStateProvider` 并通过 `GcpCommandExecutor` 发送实体底盘命令。`FleetController` 是车队虚拟中心适配层,使用 `FleetState.FleetPoseInWorld` 和 `TwistAtFleetOriginInFleet` 调用同一核心。构造参数 `motionDirectionInFleetRadians` 定义固定的 `β_fleet`:核心按该方向投影实际纵向速度,GCP结果先解释为运动坐标系Twist,再通过 `R(β_fleet)` 转换成车队坐标系下、车队原点处的 `FleetMotionCommand`。`β_fleet=0` 保持常规前向语义;当前控制器不负责运行中切换β。 当前速度闭环和执行边界的语义并不完全相同:纵向PID与Stanley实际速度分母使用 `Vβ`(Stanley也可按配置改用参考速度),而 `GcpMotionCommand.SpeedMetersPerSecond` 和旧版 `SendMotion.speed` 表示带行驶方向符号的车体中心平移速度模长。正常圆弧理想跟踪时 `Vy=0`,两者相等;只有横向误差共同转角产生非零 `Vy` 时,模长与 `Vβ` 才相差余弦因子。当前最大命令速度仍限制最终发送的模长。 @@ -198,6 +209,7 @@ Vrear = (Vx, Vy - ωR) ## M/C IO与MCU边界 - C层 `PilotDefinition` 和M层 `DiverCartDefinition` 使用 `[AsUpperIO]`/`[AsLowerIO]` 对齐夹臂命令、驱动使能、位置反馈和车号等字段。 +- M层 `WheelSpeedDiagnosticLogger` 每次记录生成 `_can.csv` 和 `_snapshot.csv`:前者按CAN回调时刻保存八电机速度/位置与四舵角事件,后者按最多50Hz保存目标/实际舵角、目标角速度、PID/前馈/合成差速、限幅前后电机命令、速度/位置/电流反馈及各事件的本机单调时间、序号和数据年龄。MATLAB辨识时可使用 `TargetTh` 作为参考、`TotalDiff` 或 `Sent*` 作为执行输入、`ActualTh` 作为输出;左右轮公共/差速通道由方向统一后的左右命令和反馈在分析侧组合。 - `DiverCartDefinition.CommunicationInit()` 默认通过Windows `COM4`、`1,000,000 baud` 打开MCU桥;`MCUPort` 是可配置初始化参数。 - MCU内部配置为逻辑端口0:CAN `500,000 bit/s`;逻辑端口1~3:串口 `9,600 bit/s`。`MCURoutine.BatteryPortIndex = 3` 指MCU桥逻辑端口,不等同于Windows `COM3`。 - CAN命令/反馈范围集中在 `MCURoutine.cs`:驱动命令 `0x201~0x20A`,速度/位置反馈 `0x281~0x28A`,状态 `0x181~0x18A`,舵角 `0x18B~0x18E`,远程帧 `0x701~0x70A`。 diff --git a/docs/progress.md b/docs/progress.md index 73fd53f..b697734 100644 --- a/docs/progress.md +++ b/docs/progress.md @@ -1,6 +1,6 @@ # 当前进展 -更新日期:2026-08-21。这里只保存当前状态,不作为完整开发历史。 +更新日期:2026-08-24。这里只保存当前状态,不作为完整开发历史。 ## 已完成/已接入 @@ -21,7 +21,7 @@ - 停车控制参数集中到 `Configuration/PilotConfig.ParkingControl.cs`。 - `PathTrackingContext` 已解除对单车 `VehicleState` 的依赖;`PathTrackingCore` 统一单车与车队的投影、保护/终点策略、横纵向控制和GCP分配,`ParkingGeometricController` 保留单车状态读取与实体命令执行职责。 - `MultiWheelC.Tests` 已提供不依赖实车的Stanley前进/倒车横向符号回归,8个场景通过;该项目不进入正式解决方案和打包脚本。 -- `Shared/Fleet` 已加入不可变 `FleetLayout`、成员/车队命令模型和确定性 `FleetKinematics`;`MultiWheelC/Fleet` 已加入虚拟中心 `FleetState` 和复用 `PathTrackingCore` 的纯计算 `FleetController`。6个车队控制周期场景和4个刚体分解场景通过。 +- `Shared/Fleet` 已加入不可变 `FleetLayout`、成员/车队命令模型和确定性 `FleetKinematics`;`MultiWheelC/Fleet` 已具备 `FleetLayoutCapture`、`FleetStateEstimator`、固定 `β_fleet` 的 `FleetController`、`FleetMemberCommandCorrector`、`FleetCoordinator`、`FleetPreparationCoordinator` 和 `FleetMemberAgent`。这些组件覆盖布局采集、车队中心/成员误差估计、中心轨迹闭环、统一速度缩放、刚体分解、小范围成员纠偏、成员β准备屏障和本车命令执行边界,但尚未由正式车队任务运行入口贯通。 - 本次建立工作区/项目AGENTS导航和 `docs/` 按需知识库。 以上表示代码入口存在,不表示全部实车工况已经验收。 @@ -32,14 +32,15 @@ - 暂时冻结普通运动跳变阈值和30°/s、40°/s²自转参数,等待Detour接口语义后再决定是否实施自转结束后的条件化仅位置连续化或调整航向恢复策略。 - Detour对接最小问题已整理到 `docs/detour-information-checklist.md`,不要求取得源码。 - 验证非零β运动系,当前已有45°蟹行直线入口;曲线蟹行仍需设计实验。 -- 多车共同搬运已完成布局模型、虚拟中心状态、虚拟中心轨迹闭环和纯刚体速度分解;下一步处理夹紧后布局采集/原子激活、车队状态估计、通信和安全协调,并把成员命令接入各车 `SendBodyTwist()`。QP/HQP不作为第一版前置条件。 +- 多车共同搬运的核心算法和本车执行组件已基本具备,当前重点不再是增加孤立算法文件,而是建立完整车队任务运行链:布局激活→β准备→全员Ready→统一激活→周期状态估计与协调→安全门控→成员命令分发→完成/故障/取消。没有这层调用者时,`FleetCoordinator` 的零速输出或任何独立安全判定都不会自动让实车停车。QP/HQP不作为第一版前置条件。 - β在多车中定位为单车执行坐标系而非车队核心优化量:常规、斜行和横移动作先确定车队主要滚动方向,各车按布局朝向换算本地β,停车预对齐并经车队同步屏障统一释放。轨迹级β搜索只作为机械余量或复杂方向变化下的后续增强。 ## 阻塞/待确认 - Clumsy/Medulla正式宿主、插件部署和配置持久化说明未纳入仓库。 - 完整停车业务流程和验收指标未确认。 -- 多车通信协议、统一时间轴、车队参考点选取、夹紧后布局采集方法、刚体误差阈值和故障降级策略未确认;已确认运行布局应在夹紧后生成不可变快照并由上层整体激活。 +- 多车通信协议、统一时间轴、成员状态实际采集方式、布局原子激活接口、刚体误差实车阈值、夹紧/报警状态来源和故障降级策略未确认;车队参考点和纯几何采集方法已经确定,运行布局应在夹紧后生成不可变快照并由上层整体激活。 +- 实际部署为每车独立电脑。主车需要成员状态接收和命令分发,从车必须具备本地命令超时停车;仅依赖主车广播停止不能覆盖通信中断场景。 - 最新实车实验数据对控制周期与舵轮滞后的结论尚未沉淀为可复核结果。 - Detour `l_step` 精确定义、显式重定位/坐标重置状态和部署端MDCS恢复策略待确认;当前不能把 `l_step<4` 当作唯一有效性条件。 - Detour `getCartLocation()` 的位姿坐标系、`tick` 采样/解算/发布语义、是否已有独立连续里程计或定位状态接口,以及部署版本和实际里程计/SLAM配置待确认。 @@ -52,6 +53,7 @@ 2. 在Detour信息返回前不继续全局放宽状态估计边界,也不提高自转角速度/角加速度;现有偶发定位不可用保持安全停车。 3. 为轮组里程计自转CSV补充请求角度、内部积分角、完成/超时/手动停止原因,按固定目标角重复验证误差和重复性;绝对航向任务继续保留Detour模式,不用轮组积分冒充世界航向。 4. 为轨迹插值/投影、坐标变换、状态跳变候选和终点策略继续补充不依赖宿主的数学回归测试。 -5. 设计车队建立生命周期:预设布局引导就位,夹紧静止后同步采集成员位姿,创建并原子激活新的 `FleetLayout`,松开后清除;车队参考系和采样同步方法需先明确。 -6. 建立车队状态与执行边界:将时间对齐后的成员状态聚合为 `FleetState`,把 `FleetKinematics` 的成员命令接入各车 `SendBodyTwist()`;通信、成员纠偏和底盘发送不塞回 `PathTrackingCore`,也不直接启用 `#if false` 旧多车代码。 -7. 在接入通信前定义车队状态时间对齐、心跳/命令有效期、共同速度缩放、成员故障整队停车和舵轮准备同步屏障。 +5. 先建立车队任务运行入口,把布局原子激活、`FleetPreparationCoordinator`、`FleetCoordinator` 和成员执行结果串成明确的生命周期;不要再增加没有运行消费者的独立安全判定器。 +6. 定义最小通信数据契约:成员状态、成员准备/执行状态、任务号、主车命令、心跳和命令有效期。无线串口初始化可后接,但运行层不能假设主车能直接调用另一台电脑上的 `FleetMemberAgent`。 +7. 接入成员状态实际来源和主车接收时间轴,形成 `FleetMemberStateSample[]`;再把 `FleetCoordinator` 输出按车号分发到各车 `FleetMemberAgent.Execute()`。 +8. 在真实执行链内实现安全门控:可恢复状态下持续下发零速并保留任务;硬故障时锁存任务失败、整队停止;每辆从车独立实现命令超时停车。随后补充无通信模拟的端到端测试,再进行低速双车实车验证。 diff --git a/output/C/CommonUsage.dll b/output/C/CommonUsage.dll index 403ea8bb61054b2090b3fc4177dee1463119ec71..2c0496a776efe6684628a7be9d924752630e9421 100644 GIT binary patch delta 29618 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

Vv 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 delta 29579 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 diff --git a/output/C/MultiWheelC.pdb b/output/C/MultiWheelC.pdb index b41c738f080c7279dabc56fbfe91a339a7e3db2b..0106fc90a4ab54783b2f368b84f7c2cd9942787c 100644 GIT binary patch delta 34198 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�BGvIHs-yfj0_L~-0|0cN|xFOdn$YC*}Uf16l@rAL`z#_wxm zN(w{)`Nb{08nCPBPJR{&=FLeTIlCe(VN{vj&+h|1eU zRfedYB{r>Bs`g{XKsD7ll=?o3D*-QTiOL62+KwntOK0}uy~Z>P#u#pYqSPu@IuE5T zQ1V%fF97jfqJPC;wVESdcGne7lk{zjtXpYYDDT{4E#rrILeM)gqo8+kH$k#BeD#OE z!i*iW!;F{hFe>a7p=vFM|KKaEZ4_Hu%u~FMDhtN>2Ju3G4JJOq@x^yx7=A4lE4cRw zR&XbW*$y>k&QK_c6O${SJh8~Y{DsDecSt88iC-fW-SmBxd7KR!{hoH1hox0&q;-+b z;H1j_Y8_NFQA*f@K(-#`7Z^Q$)Yhi2@@PN>A;A=Fukh8Cgo1$=Oo@DhiI*PjEkZ$C zqruRnP-}XZf~uW+n!B%Xa@g^;GflDMZ_aeF^Sy)2SmqKhT$%QYFo7--M%{RJ&?C80 z6yCq$Udr6kLx$Qd6zyUyyb?2dwWkbnW7d`u>}cl%n1{I)cUk?BoVh=GsM6O?zG4cd zVG6LYp|FYjJ{xLsIk8}wy4bKLaAzg!vX(r|%Gh?Rk-w#4gs2)Ks!BxFZc+7^sQS0q z5-zs9B^t)?#CJleTrR5pMYT(*KBd$yC1q2nQf*S|ZKC0Bu{Bz3ouD)vj1(g=0!Jk9 za)E80Sjx)t}@OwrDqKHME)CZSY)lrG~{ERfO(g@ z9lAUTo9Dt|j$0brZr%^-jkVTZ`?y_ec9+OxsbLsA9SEHt`Qy$&(V<`Opwt zngnwN-pl8^819jQ9Oz43J=;wVMq<87IJTS0KpWm==gy(uN@6Ebsr9f&y$hwlq}5`mz(R*xG8b2H7oH(Jquw7ji*#&EWp>C> zU`*oJ2Il*tNIi^2f{kn@w$Wj-GzJQrQbf6uU%q zq*A?2skuj~JtXR0c8N_B)w|WrTt(MBeE_%Iq14XMssd|x2qoBXL#9`gGElLlb05V@ z>%M8@c_ak8+Y0vx=Mo_Vdl`3Oc?!XuF@n*8y!&yN2*1mu@PO2-@xO|MMOz-3;5wzE zjiTO%vQ!RKs(f%h^S)C3yr?ya+D$#xEy$;`3krb62R)1LrLbEGrcmxvpuz4b$yuT!4Wtc%R}8Zj^wlbxp`P?QMrw`0T9 z75%xTB&e>NsW7hy7M1U#ajSQsi`HxswSH-;Yb)E4hx=7@2E1kLu1f{GmKf6sDMPU( zVZ%uQrewSk&Qmd#Ba=S<(CK|lGc1^*F}{O%(Y+xmM<|tVMWQ!ijz=2&*B@mq@e;^m zRW=Fs(1<(XiA&}xyGcRb@l~Gn6($&vz{#T?amiD-BpCf4Ym9rjb??~G%k!~I$q)DJ zs~4a>c@OR0Jt{nnD`Q#Yvnb?QJ=x~9?-%2E?!-nJhg}eS!eSEx(U1b09GjTKO^Rj3 zq|^*{Rd!Q%z@7;(2Wt-IL@pNktlS6V*0?nU4J~h$y+XS4F@=5=->C*ucPwc)g$O6x zgU_R^A`2ULkBoAccO{6URr9 z==Rw5DEe;V=3F{+91DT96atOSn~@NuFLu#f9OSgnlM{ZI*6d84-Cmi1dmv?k1+!HO z-QSP) zRMZ_6n=s?w5cLH@{XkT95U$ERQq(s^^-)p%g{bK!YLKh|Pyt<1AaDU7xShA9Qu)T^k&+w=ArbK^yV}=oK=LrN`_Maj}fvU0c zWb75(3$9JS``|jmX_Cvv(@X0eFP4?Irp5M(ZnzOPY$0(sA5Wd^xB)@gP~@qz%-G{j zmiG!lz0pz#4&z*J73zmdrCq6dUQz2g``w)VN@R~Du-+T9=i@CG{}}1b*_&r^_MQC= z*<%L~&)Z*5_LI@5;WXWyeP2WNn#|s!RNYY2Es>&ADd&E>r@x~Awe0lqGq13xmrI|_ z(Z!YYND->u##h|qD=etne%!#rhan^eNnp10nk>WQv9CUTVtox(rtzIaFyCw8G{&l6 z1C73oEc8c$@}X9SQ{J$@jCqXAuD)^7?eD&y7}$S0EEFUDAG3?IS728L1Gvwz0Thgx zPUcO4e6xwcg^i?wGhFPHUsftN%gh$J^UOt_I3zMJmRneJe#b;Cj!VmY{RDPZ$Hg z_uxfgq3-|R3fr>A%f$dUZ8*ZfylGVi@s1t$XXsC!DS&S%a9|%~nuPD=dAI6o#u+zG zo9w)2mScWy%WP_dV{DwBWl)Q z%k!tYP2GzIQs2gciir{*Qla*-n!ys@_sF%#-67l|y)68b19}(XZY)M{7vc2<|9zae z|DUF$%Ue_TlEatziVWU%=}IDtk5GEpDq_qqGtB)|MDEpj(7AV)KP#1sl&Van`jS$! zVKTa@sKmkTO&e}b*o-3}eXETggL2zkW~I01|>*wA+;&=y(x@;kRtr)HDXWenowJO*>hEq2zyS&w0!h1FR z@@8klO}#7>>Km3QEBV|0AZi~x*F7#=mLL(N;K9WxzAdPni}eo^l@;e(Sc&v@bK8Sj z;5!2>J$5|?rIwb;7_8;;Cdd~PNui=P^OAZyCs_<5d$Bd1ZJAWVI5aIS_8q9b_V+^9 zSl*F^LhrwiB1WUPpoLJG@&=j@B`_NFlL_o=&}|cWPsM$i_f&Fx_jXSv{d!6^K;DI# z2Vo6FmrC!{jdL4i$j!xr+_&aR#pryPw#E}jke&HK1 zo@cOgx02j^qB7(qs}iKM#(iA7)_tP8zH6v@0J*D`SiCS_;Ryr|YFz3a9M*s^EI;ua zhHI4ti+zXTo_&gXNWW>vy)pKp3%D|HfaA|6KrL;gV2<`uwUO}x;Q&Mh&P$?u$0deTX&II4APW=Tsc_5TF+YWEl`95T%112dM6e$;CTIoV;PgV}t5kjZFT}T`Bf8whktz z4JX35NtC-KE)Jf&+XBs#Y!wkcnK+Zwccpx0qwh+^ywR(1G;5}o;tJG&U2%=zq}V#l z09=AV^9&qEnbUEzqIAQ?RKZdZz{buHRriWbJH)mrVtbR=u~h7g5<7>BTZ8re=Mmgk zRS(4WRH^<@sks}^Ge1$Pdx%ZfMg3B-IZABC(akc^Fj=X;OWCqh+4QBd?LlR`Yrd+g zhtNWmW6?q>d`QqiK5y11Qk1J5wq}^P(BjxDxSL9#@{@U5#DLaAV0tg;@VC)=b7F>* z#|!Sslq(5)o&=mnSJ7gWsU`ZTM-WXpF=bR-n z{afdEvkO7%(Oj6H0#cD)2mKIMjKf6cpMsEhJ;Z;G`&c$vv=Qn-p}r?7U83@Ws9GSZ z{ub5wc=&gU=hC`Kih4x}Qft&kw*8c}9bFakHSR80;A9D{E6)x23W> zW#VyFOCh?5%6+2pX;Jy5sEg!93nw1DYT=+uRB58>dAtuIs?TGO5I$DD3+1T_##(}7 zMmd^W*Gbr8GvUT0iuWh@Wq*H)>#olO*=T9hu!rGUT`R-6_Z^cM zXv$TO?F}`H9invaU1pIX?%w-}SuAPK$;!8=S|5fQU*9{o%m?i#?m2hCB7Bv&d%4*v z&}?l`Oq`!#uNlVgcwh~PSMS?<)h6P_{d+CGqN6yz7w-+kixYb%`HGyF|0$c!$U4J$ z?vk%KE5rkPYy89*@!+{v{ls)3?%kUhfUED_n;9TB!sKTIM6c+Roco*Dhhff+QM$|9 zW=q8a_0-;=K;aUn_wEQ3>%~KR{e#33ab|CM5N^gE-g_-bj1!OSO%E2`Le6qC;jsgs z&Gg`9XYa;fF;|@1`(Cim4rs;jU@@(ed8DBSc(}+sHJ*ee`Rd(ch{*fu{xY+{eRBTs(IwMto})&z`%py@)o8=g&QsAS^<(-`kWZVs1(5 zBF#xoaKI{2)jL4m+u@T#UY7CV3JyQ?{Q*`BGFJ_fZ~5F2)ESW!g8h6)z2>;fv*h>kiM+s2ZriH0aK zi3vtijEU(cny4iH5@VXi6irNd?{ipivhVwS-}}$Ub=~)K?&tI}XJ*chZat;@{+zZh z-g<8sQN#+OZ-x`CF(aH;zMy1oaT(!n-U1>mY{aNMDo5DP!~I4L=mYDA6rUc0&YE31 z75eL;%OwAgy7pi9$LWkOuO<(uxFuhOo5qCik2bjwF@#YBO$63xh#r^V(@-jf!qFA6 z8(4Vy$#d=JV61V1KP?_>_uw_1EV;D zL~~#(VV{6K0sABDeb`<`MgxozRl{zAJq>#S*4@M?*d$S3*gV*^u-jo@gZ%(j>%z#} zMWR8l`LG*dABH^#dlA;)%E-@EveG~V#<)sU3%dpOb=db|&2Efh+$1W2T?Bg+_7tqv z9R<5flm$B!wib3P>}A*+u$?^^C3;9y3|kKSIP7uQA7Ssq#(6TbcuKSZ_F+$}L>CbF z91b@x^vFx1fv{s?*TL?9{Q$NJ)*quC;Vn@|^ zcKjvLcRiBm4)8lbJ(I`)^Z=52CRr&1fqY;l@HB7^xD9y6CQ%R&4O9XffN60_^c>JT z9zNhQ@ICN1a5N!_x+Nx2IdD8NnN9)Lq!fA>Sd^SX%Yl{2sdO2*4crC(PPV3!UrH*q z1=<6NKtEt2FfFAQ%>rHrLQ{KDGLQ$X0JZ{8rl!-|z>k1AEuGSU(ZCX5ZCVD|fiD56 zS8p-{i9kBg2gn7c19PmPa$qS?4XgzY0#564E;V56)3p4_iqkU-u@Zwlsx(iIr_oWKpEHHYUFRcSkj^pK8{pij( zKl**VAF&C3WCFZ_AfO#E22g+x0OLeIiU(Ez?*P95*^~TeCg3vJkNN|TPeqzSKiUDr zPxB-HB0nks762=O?ZD$j{?r6ao$gO%*6F+z{4a#oP7k3sfD6FKz~{hq;9KA);2vNu zZcaN(*igD&97^AcuqXr+M)zlgk-a30Cd~|^gTM_SY*rYh&kCnJVEineHk=O5M*o|$ zwWp@p?Wtf+d$IwwbGWxXJtQm-N6;H{y3kKR%G@}b1W2WEWCFZ^Hb58<1#|_9fH%3G z7e}wpi>KWA@w5im1Z)TP%uk?$z%TO?taKj%X+Z*+056~o5VjzZqJT7D2e7Lwk^U)* zrik)r8VpPZvKK~EE|3R|2MU2%KpC(Ur~%dkGO!EKEQ+R`K(8f82c%a-lTu-grW*(x zu8gK@z@eql^d-=7Su~9Wwg7(v!ONp52bc#O1)6|Afk`Xi0}cbXfp#b_2RHy+1IQLl zA;4bX6~MD9nyP?9Km%~aTGf?q0bbQzX&f-Gnh$q3T3_9b9aW=`@hFE`WXlx~&hO1fUm?4GaW^17m^7z;s{^P!22ws)4mY9iRYvfkVJypdNSu zI1PLb?A;JdF93Hp1Y7BE1aupN$qn$`=t0529H1On3RDAYfjU3|_5$r6@}PL27^nbt zJmgLdfX^m(3IfbPN1z*!0Q3T~fo;Hk;B~;G4(aNw?$if?8FemH3!DYc10MjFfF|Gu z@FVam@F%cvvkPqiUIH#`cBMPOm@Td}2`B<)17$!ZPz9_3HUZm#J-|WWEN~w9zzVtq zd;#19egb|6nCwa>z#9kx+5w$`oON} z0d2OU44`Pc8(9~FP6Ca<8^8tNW8iaOqvA%}fIYw=;0SOWI0d{0yaRj;TmilUegJ+2 z{sMG6+{hj92SR};AO=VP(t#Xc@D4XCjY41|Pz1~YP5|x?yHR(b09X$^12h5mfF-+7 z2{3WD8$Abn3PkO3qY=PNU>R^2I0O6wxa~Dj7%%}S1ZD!y_A=3Y*d=?dCbA+hw8liM zVK)L>fnC6U;0fR;&;YF5XQG#ZKLNAdM6tkVpwh0VoxrESHNf27CwH0e%PQfQ}4+ClCOH0Z~8I0s10C-Ah?!&EIguUrShdpz^kGh=)-3IOfbP#tr!0RB-5JG_mal;Ye zX5HzaJjJuEJkQf)3?;8eLuu(_a0L2=QQc!a1^)}99gl_4oWmle*;D5hPPK=5L^!QD z+Tsk1Ao*wnJ$#f$@V^Lp1bX8!+1u04E1DiX7EPytH-UGL)!*|B(X-5Y|A1Q_R{rAQ z#}eoyfTELI@Vc!8Y||C*zMWhk(-N+%+|i%L&IJlAg^Js&?F z9}WGcBmZ&euF&U%#$(1=IAY*<%aNcGx*PO)hvqMS-BtQ`=pNATJK`gtd#W@ZfGO5V z$EoyW#K%K_!1JSi$^jDK_}Eck8|Xxpo(r7>ebEsg0-dbV8=+I6KXb$vK&L`qb7=m6 zn+DzF(3#M^pudFX_0uXK9geRZ2?j!EK!4-V{H?aPN(Vw)R9cIUWU6!*#Am7WGU#mR zn~w5MJQr3fOXKrkoC4h^J{ImlOExu^PKcZuC1y9 zMzPq|0^6d%(JCDSJw~PZg*_JfH%IBZ{8DPsJbtoD^Y{W)fklXG(Y!K$hyDu)odRI|oo792doAV&g{ z7!@GQFQci*z@Ygb&)1@Tp_>4%HHcq~a3`P;TI)z}QE8q&9GHf9og+R4x`BaxnR$B6J2UR%fN+-S4N%Q-Gy2r~^nlI87PU)@x(%AoOstkO{ zs#Ka6P_4?)9lA!P`4z#nAEw|M;`kci+8;U!ammmtp#vOK#IJ%?*hgCQI==s|M#46Z z1iS&YPI`@#UhAaSIqCH*r?otO;<-VkdHEYv>8;%HkjlaJCRGN$XzHBwW+%PHNy{qz z2J&x(4smqQ1A5y7ZKYT^wm)!C7__3&3D7%Kny25%2DBEq7W!dyprr!dfn82|x0Bw} zsxkgN1AjPE7qHJs+nw|yss<>?zaKi%(L+2G(E*j_bAC{z%b*Vljg)-;`R?~FM(vi?lu)(O1S4A`mcv7YLls$z8x5V=f9(K}49GcfJo*bWcO7M(I^Q+*f zO7jAbsWgv&R@Hzk#MMK0b~G>;@z1F=@8EIhE)tHJ`5$+jXm$vl1#V!&c>rM&YaMEu&>2pr{Ehl~6Nx$u+-+{Ka3@LBG1*Zh>I_dYE^!rZw1E&%AP^I}A z`N%2#$85N@bxwH$E~+x{DfvXDc>$j~6>!N(Uv|=;sq*vkK38d8-W6tju*llOaaC2o z%UBv*$770CBJLV8bDav!Um|dbCUhEfA=2{8@*3iMIi|E7bdyT+d&d_lJrMd!D;(*L z41A-w4xQo9{IUB#Dvck!=qr^DhyI$4YE9n}`UV==lArhZ8z+6!Nn5{la(w5czgJaI zint$~;(v6~x198CC;ijEwUzGt+d)4&>0g}muTJ_mCw(mYA{+@@`pwjIC?u4odNIrTxUb`mxMTE=6VqH^9T=u&lP&G zBR#(zyQwrU&t0YY>$itW^Q*@5fwoc+9A0n?aTFL2?F~KDp}&Lnfga<~{HIc1=m`$Z zUnKmXr#Li!tZvarO8o7Y>#2z6drTbQ4_zqIWBmE;GoaOhI~#Nx=;@9E`$GppmpC-< zagdV^R_Ox7w^eC=_X|;J{+8KzaI$RpvswYF6G4w6*d`{ar>Gn=K z!bwLu=_rTh^^3b-2UP;TNII%CudtI!^Z3px&EvbMG>?x~X&&EIrFnczvljJ>26S^u z&|NhGJ1~(wpyxYAXf+DxsnW&Ju_~Pp9jDU#Z7N=+`SV7C(2o0mM>rBy3HV-~B#mpW z&;p%|2DUVS_bA0FJ{7vm(Lnx4mnMyG)%;n3>l(!K!wSCUdPx&#Wy}3P4UTkFu+mWg zuOP!o_jb~K(BPKzosd4qDZa0h?x#x6PeA%ZTU!d?jsZ>y2C6h4kzA>uwL*TTGsvle z!A^RJlOF1%he-w2)&luPG2AJ^2vvn`5TEB1KT;L%iTF`YdbE=slM_^$pBYV5X@1!jNCBE~_ zo%9SRUE-u?I_cR``_}S#1LvqTZ;*AK$}v?-R4GNaW-#GiuvDc3kfB=Y&>GJd=_-}} z(iJbWD$RGwO;V@U^e?**ZB}UBs-2oA)33z=wZ=a|vrmqDF-Ajw<*WfA0SpVTs=1D~vKQt&HN)bbMF>*3e?G zmQEwqNc(sX=w}`0Crv!1JKkp{3dT@r=o(l{Ztnau9}hkMB508nNe$E$j7<^ICi(<> zhYP*VcMv**qFeZmXdCpFY@i3uA?+Y zoB17={=pb93N`bJxnJY(BW!I=^aa13{*`UK@Gy9BPK~>$M2YC1h7MyHX(QY z-Ayo#D-cVx9BYMH=`m#1IwBfH#1bAsidbR?#S$a*8{dkdJSG+(zV1TXHS{D-Q?xV; zVI9>YY!Kxzu>vH@5NXzm-ZxL*R5Nd!s~AOpv23mTv2b*hi`MB$gX%Hs=$Wf%qr0P} zHDcj3&-5ZOT5Zv29X>PT&595nzV}OXOf1-UF%i6}9O{XCUo@9bpN4M9Y*^xa`?s% zX|Qo&nygxJW~rl-NN5m)j7unpuY;-B30&x7v6nSx-ie0Bm6}p z+K6zF;9%itD`q-Gd|VkSj^M+nFY=mc4Vu!9mZ609l#Qm~%OEr*iW(7%2X2J%c_L!* zGXzp%vllyx^#Xud(1t0;W6NsEnWimGZDsX z21?V=FJd1I5ySo=dW^vq9zK1HuA+$&U9@7IYiK-XMN5?!a2@&JmZPT{cnq`znT_;| z*g%@ZU_OMfE8Rn8d_;hLxYGqNK0-k*Pnrq#q6x_5O&*wIADV||`BDv5gCA`}qy6zK zBVKoCHR^3cuNtj*x1kB>cMu)LOb1gmhNUgF!JviE&j^Q7HkuVid%)r3j*87R98GCQ zOL4nuFK)LHWJfrXV!=^lK`%SdU4%P|Pg^@t2c+*zsn{#K&`n&l(G-hrbfq&I?7uNo zhI?H%iU4<~Bj6r{kKXVpZCkANSki*yXfr(VWC7!MP4p&_e#C~8L@y$oOdG)|^bY!$ zO8dZR_$8kI0)H2Sj&C1PSq8m|^u5J~)<^6a1L-}CfpsWtL57z5I^R|$v8`&vwyG7| z>i=s)eFPVtPVAco$BxOjTdnZu#jG2s5Zy462QEkxO$58}-jl0U>|$>8K7>2g#s${0C!Q8p{57Ox^aB{TG4xC;9$}1h6JzE|e}Qp4 z)taUyY~>kR1P^QIHZtRrXB5h4IhcO|%>B(*#Bz)lqc_Ajtwp0X^dgoU2@fOg!I!*P zl9)`9G7_vKcQMA82jpD|mc-kXh9da;msVUzcw)hF)6+{>Xt>vjOR+0hqUp$t53WTK z!@!IVqDn~|v}ouvq}LK}mQFN6FB)N>sVK!rAA?PzG8dYKuq#~!yNO1-W9eJ@fUk$k zlZJ!6#Mc1cIAGux&pj0FORKS-{ph^7v+;hn^wJ$+ji^Q|s?pI*jFVn`18$&$D9uPY z=n_82!PO+uOPE9r9mgPO>3LicIy&r$`t`&gn+S|GVte6fS{^=|HyP(=2rVtem7=3h#gxfNkNz{vH-3UO^9pXG zXrgyTL8H-XCLYKn@w}#?Lx@G&MVce%8KY;htx6;#tfB1)<97hT3a)iVFM+X;#de#A ztx2Luh}BR6!niQeNj(4HBRBkU){0*8y^Ck&%cS`Odps~<+rdZXVySA)+}{TajfsXz z6e5;k53rUNAXZ1?#4`LtOwc58E%3ZL+K;fFs?aQh=&+HjrAX=_23ev98T1Yh&!!RC zjN)Njax{Ybo5NaaBc_IX)L|n20|TSiu@7PiV-0C&8Y*t4|M39O^f z;nCAgOc`!b2xF5$Urkhp=DO2;_&vxKv+GIQFyLOqJBDitrTO5?7`~`05yrj7ov%OI z2+_j7h?P7A9!4W^5#mV~Rca^`9)ozYGg1O7z}IgW6&G<^auv5FH!4Fl?)03P(5;B| z6#KltV=TLi(F$qans8w=%E3rr|M5f{HDb|e#iG-Zuh@v{k<>u5MYiQ)F1Mj^SZ?rZ zNQOs?pW%4ZxrYglM7z;Y4P8e{l!j&7^2*Wt9CZkzi+{v`@+Gk=p#QvjJeeS2^Un-8 zYD16lqp4W)1JNgmQotHIiIiAA2U0ZfO6Zek*|^buG` zSHXHZ4>r&ZT;5p!t{4gv%|?q{XgFH!O8;OIqFZ7AJfv~y2AfXes41paA3=?{{b^8be@_>;5-*+*S_A#(yfqWnq zNCxnxvwtG&Bw#WyPx=^#HJ5P!^EnP#zNWp>Pk7+M$C-W|F%8-_HfEqldNzW8=-C8z zi?v7wniFdS=fv5;PsBA!`29a9z6oMMJZTJcA-({-J;4SJNVJ1zB{qT&C!W!0=?g#7 z8fa{i1w1}ETdSojes+Z4OTLcqXMQ%Ff#Oo^g3WpZy_jMF`=l0t<5Fyb?cgP;2lQIH z}n*>tOA7RX4$}Jv+Urq>_%{0ip9-9-{x4{kfyH<;Wd5j;QGFeV3Y$+ z??>(i`kkte2L zFnJp3^T8H`twRdH?T6aHGlts1aVg|&An)PiZKTZM7KD)oj5J`R0b>e$3{*1G=3}IF zBO4Jmjk2134U|8sK(Gyr`2**TZWQ4raQ0a8Gtlj^X7G@F3)n5T0DLmv2JSV^4qi5{ z5nMm634CLm*&pf0H-Se^pa27HnP3)d0slRr0Nj0|O|ac6Orzi?!PJIFo5BA~vVgNE z7l7-h*ude1cJSK5MsVn~Ch*tOD9}Koip*e4hu{LiHo3L+vnc)0JFbZwQS3nbZ^#W>-ew3NP*UBtl^ak8(p*a$F_k|Yl#zh5S zX^9P7xWo=_U(pEORM7<(bg0q{zFcVmTQ@E(fVsBR1`c0l2M=G?1pa23xq}!| z!3E&Qm)pP>mp6j*Rx}Aebu`ef6=v|Y6&7%iwE&!MwShNV?cj@6>SUm;HVar=RREq_ zWdmQXw1eZUDUC3nRyA>vV(yIUtL@;plt%D3)lJ~;HBDU%^kWT0b3b*(M65D{yRNo? zUt3)O4y?6-`_|gQYx*_{ZUX18p%`2jYt7)mS_?R4T><#Ux`G}CTD8GyhxvI!0bX5= z581&Oa4@zP5yrp3gvT6@6~3tee7VvF*4Np=Xd>7ry-6@7@RXKB0~Ktxfsb#tgOLXO z5%wV_JMiFkxG0^mV=Dr5{WuFCn zxw4?IRa6gw9Z+y17&{mEBfGgD9#tQ)fU#MEPd#E8z+)*_jEZ0yVxU`xXow4~K4ck+ z-alp;>O!86*@xi~`>=hO3%NYiG~7T#k2Vc=p|759%rj8MvBo?X8g>kKG1<2$sLi|u zr8A2P%ZsLsrNyNSX2Z-bEu1o2&MTVmATGZ-F5eM%v1pW>H9bpyY5Hz?T5%WoKyiue zKf_Conen!4E(wsAmW-3XC<&_%pXsiZGv?Z5P3cPgoT9R_DaG=4rA6|pdA;N>=LN`t z^NZv)^Hb#W^V`bC1!L+LEy!i^rLsa@`QnnYa(PX8jQn2tYwkWj{Mw`>+&}hA#!k~PkmD5S*hM@`CF3wt+k(= zWgF~TRz77xd3I?T6_(1UY=QE1Tcqq?^+NqORe>7WxavLmk5%2}o~uLT39D1&q}oyP zleHo8`?YuF3v0^d32UbqOXtj)GI!eOC35EUK>60%Npk+WjqW9Lrxh(hks?m^T0csz zS|1_5zkYFjzYSr`oVDcGyE~4>w7au6IlWKqsL!IJb{;HvIVf_2Y2NyP=a*;HuiEIV zH$Ra(?XwexPL+!y2YSEoQu(Few7a9HKffdBnaNmJ6V4UO&&%!2?*_cFwbO~PBe_3) zTX@{}mL~9rg3rsBrhoXX>-~a1Vmo$}Gq#$oKIXpJZ(4_Rt&DuF{fv}1mwx<3e#C*{ zKX-gDt70L|`EzG&Kw#h5MMdR#Q>GV{SL7|6SF~VJNm=QFZiQuT6PVV;C%k*g>b12a z%}>Mx9lF;y@6WHQu0FMSK=F2yXNT#V58p3%GPkx*Rn2>!yEhk8KBc@!l~>0z?~)U? zWk=M0V(xXfV&Bv=-#?oi{fGT*;F3peMUUxDch`P&Dfn9X(JLd|kl);v z4Leiz*xn2Fs62T40N7jd&h3esw6(qE54Kxi%VmEh1-3yRuJnTaS*}xZG->N%y8E%wqk0sD_Z^Vt|MbZ_?e*j3cXmc&|Q*P~=_@594{Snm1Hm zU-Q+7B$ue;6`!2#ImEK!>~C$753zIk8_v)47+`-(KK5`BvTTf%FFc&d1M_6xT|;@` zxIBH=AdT@MU-|ehJUu-$M*ewM2JALDes?zPMY(c!md3a#M1E!WDBYAzGd9hWgZ8BB zrmSAO=|y?`o)i)KOWxTWs!NkU*^|b7bro`(z1g}cbtmgylPB-Z;GxY--oLlE2=$S_ z-kYhLvU$zsO>)9&-BS)w8$lzgL^JXLs!HU*B~PH=TLM zdZaSOZHj05u6H)X=Ub-@ynExFC;Of(uiLS;pxPrqT9a!jC>%L#K$|IaFWkH`KK1BxJ@$=%b<({v z7ybzyeCq2x9|gJPzA^Iq6{qw!BK@MeZoGQrpz=+K|FJHMUv{mo+0^i+-zSe-&ugYf z7ry)4#pGYteU;pC#PGtuW|nLSi2XU>sUJIj>it^A_^`6B{uApKPHuO^p1Y`=C7`$*0kf4|!J$L0Ft2mcJxdaz^u z^~Yb1)Faf8C|^1Ir-299^Re|!uT5smqu%ny3mRsV@4uBJ4?O?2zOyTJd|9avdApox zHSCq&>bJjhfF&ieV;-!LEI)Gk3vSpN}beK}3zWaFgNFL?KTO==3yj5-@B zX9TArPL-Tia;kF_r!Fby5yT+B^}{HAuQXNVA~RZ`%J+Y3hEo6KC7q$Ag#RJ)f2%Yv z7-i=riRw8`tB?AkgXH1pKuf>!um7U!75;zfS9ALuoogN$1!aw|;{`U4QT^JR16|q% z^Aef|GXZg;*Nz6rw|^cS)l#dvmH&N^r~VSdyjzmCOobxbf6Xo~f-VZJ%Z0NTH7j|AZAku~K|8D9Hts5eP~T2Dw!w8^Lbm>M`k+o)re< zMIC)5V}LZth_C3T>Pg9$ST|*Z#3GefC6Pr*i98)uUUpKS9L1RVBoaACJR@sw@-3XLv>* z-f4!fw~R)H?}wCq8kWb(lyw>wr37l(OhfSmp85%8t(J8Opin)!h2tfWsS`30KI2mU z*0K@GI34S%>7ylOmyX#pQ?#BMPd1y`o?@$~vD$8IT>)F)k*$A-ZF-K?9VV&j`v4}@ zyd$leB-OqpZCEdD87OUiohd(cz@Z1L9--9eS?4atar(ikC;qFg5t0#I(u+1oqa|Yq z8>=S|<&K_pVBSiQffdCB^V+2hX4`;@x{_3V2mcgPT2&*hx;GqWDXe<8szl|q2lG`< z8(6ATeMc4b@TsymC)i*Pg#M;el*^N3U>-h-v;i+MOtDfeLA!d4ceE0|8ad+{72(O-w>%LB#YGU1so@ZA!c+OVpR}@UzN1PnID%vGRT8IZqbdWhVDu zH!)p^WQ^2Iz`v%JvW#da@*9{htMUzCxgzg9#pJ~%NUJ(3#a=A6_o_^^CLFC{!zBEG z*+GjY;d4Yc-Z#_n8yYfxQv8DH(uUzzH-A!$5Ym8K`nGmaZ`msmZ0_B7s zt71h;vOimleeuB!AZLVf%AZZdMcg)ky`?Wl*|wufcmVU?-iFO(3zgC~Y%g1+cm%R6 zwpbY+$hxp4%CbP#2j+Aj%hOjNOVuL99>ju_xFA-{DwJJ8tUy`Y7PMuDtvIIjEC@1T37Rp4 zecZX})K8e`fx>hjEKHYS!gS4RjvFmZN^j>Br$Ls`zUu(SWl^Bc|(U(?62ZpHmgwCkp^e- ziiWq-SUD5PoA0QKlAF$wr9!K+I-PA|rAj~srroCGXRzY%);pbQPE-$84c9W*aK@?{ zdRiF%5o5KImc>F?jWRZiwPP!l$}H9~VilTSwG+(`lw6`*Y=T# zX%Z!4u++^3pETfdnPgk1)bwLkwqDWnXUo_I#nvCIcBAr5e^$vJQVIvKL2Q$9bO7rb zP=^w#&zqPwOEPxHPoWiFJcXuuB?*0G=hvEk~y!`mSADfxv zn(XAhW|GNHHVBLq1V;K92}ijFmz@|(0s~1b(}pQcf`I{G2$F)|=|(6FYzqu5%pfJq zhn8V#7=Amf9a&ZNtcsCu8LW=rS_}S`7ObBzpDF3sOwG91_{}XiOwBAf`K{R4tT_3( zIC;3tOwBFXEX+;$*f}k^*sV-k6dGW(5a7i3tfNy4+h7d7D7k(3puYn1LBAd5gSv*4 zMyWda*V4{A$(Vmer6rFSu&H0#VTghMlkWe&^j#k%Y~@rDlkk8NRgegRQ%C;8tJ^oi+kV(d^}e*9 zux3P!KfI#LL4HNnx}?D18o{!WirqjD4N|0orqzQFlY*w_f?%0vgvJkQSN>)FCdq=o z`VE-inKcA4q$?AzjDOfM!kaNenGqVbD;eXl2IpZqjwa3&-{EF?b%U?ll+d4kB1f5PoB?j07q@qKXr00&bG`-mlG{y`c$3#tJV z38#uL*4~k*IkgGnO>saXZrwUgJOHCcvV;Cb@`REbh9<-WgU|m%NYaiNQZV_h$rref zND-@HJ6ip_NMHGs_=Kq7L`WjCNyIURO=)DWP=+v5Xyj zXN)*axI6|7N=-OV+z51rkXHr_pcLtgOC&auIvmCzY#&qbKnHAJ32ekOZ17Tqq&9g- zw+M+9@Px(mu}b2)CB#wwo28o?WY z?D^={dZyqqo+@ciDxMiHnH`_2Ic!=GZ;}%a3^)sfL$TS*DS5EI3}sEJ=ip@aaMSg-{lGkgq4%=sZRA`AqHYJHJ0C^8b7 zY;*Y`v%Cxh9}7a*h058-@=K?%CL&S#UP`f;;!ygC)xPSG;)bBBeO)2Lg{5TFPUuoo za?QTx9j;NEbY(2(zmVo0{+zN5TMotpW~5uhHoFpCX43?xs9)few0Ca4K;JY_lW`)(=||+fcPzw;4nqL53s484>trQvT9mE`O1`vV|*he*4) z%Y56{wH?{}vKLfIUl2ik{=k(!hydyzP7C`$SdD&}CV&)O789A~yMm>Kxh=gcxeoS4 zN~n$qWWW3QSp$>O?4*xG1M@TGsj07paBN%|qAXf6rj)MY7X~v}c19X3RCCyCJH;>G zhv3W{6~FKd!kJks29U&*B>+k6cdqfHV61Jq2*fN<>AG&j!j!;ouO(B(N{k3I4?f(A zfgwIpJ1`xP?3rk&@rO_qJiM9*NU4^yc#<;kZi_2U^l;RX@?F^JO_FdD7 zJp9UMyGw{RealVHtA+}<>|SbGh!FkkXPOfbh#@vJjD{cG+Y!v?xzqks_l1Dac?#`o zg$+aZkBKssmv?;I5nATCuf}I`jlvQ72#Fd;X1;JqhJw-1fp#k!laZO;7447K#^_eJ zi@8ps%!l{$d*gw6ir|{TA5guQIpdf)7`=tD1qv387?D4E7M6DGOd6;f#dzkNO)ge; z?7SK=i+}VwQ_BX+6q&0n?CPlWW13d=3egwLw#1D6d1vqq;#u{M9w~T+@dMob*%^lM zrTM!Fa`t270Dd@5xBmjkdf(0s+mnKGPU?z2HUE@^#G*E?3=^)-S2 zhtL+we{~fNMe{fX$jziYp*ruKJ$D}Fd(-}^;4UX~XTvm|s_B7)b* z-FrWBfEYL;*=pUpl94UpRnOc?JGdPpE8&H@`BL^D#F?e?TD5hm9jNbqPDNpk(eiH6 z`7u1m@R(eRrJgV09fcA_&0vvI%2p`V3&w`2NkP)lrr6oUhRONe`jDeAcO*Jzopi18 zK$FBIESD0`_}cTpq=2p>nfbd&KUr9*XK1d^#t0yb^*rc{q{EbP@L}`)jY!!fL_m1Z zH^PEBRQu25zZAp)b+Xv}eXs z0Z>IV)7~T%fz13#IFEX0sPXq%4aW6n(8>hZ$=^N%L&Ai`53mJJ-~u$5y2dg$S8p{OK&EH)199pCEs!y?7bIsgw*1eY0K;E@`+A$yNTA{ zyI%Q31Eu5R(8iIh!XK8u@b+nJ)rS5x0cjj^F{??9NNG&utYqjkH%Nab3hpe(NNI1t zLVsj2hvucFB5L7((jWClN0miRou?AXEP4SrCA9(6Yzuj@@x&b3c~}r zX!HNldwUS(AwNd0gbyztC8>AIKBV`Pi(vD7v_Sw$EnE3t@)D1o^Lm*rTUmp?t7Fde zWOFFGugS0A!{yCA6?4DjB{kK=!L}st)=(P|!>v}ksUfYnfZ(N30jbUtKR=%Cl$ zWEhBi|4Lqx>!mick9%8<;>!!))e*8KDXyYA^BMP+3SL-OoR$| zZKD~Q@c~@*^RnQliuMdA&TTh}uPA(1Pl$+^__X>0E%Dd)Vbdf(UcLZ7UQFNvB11$J z#mTF46I5s34Jg35okeL^6Q9A)H|x3DpDF*=C6 zH&4uYI0c~554waP<&FGe+tg3^g0qTk1h+#c!LHLU2;(2Cik5m!E=eczt@TroibWd4 zJcj~@lG*^X*A-sm>%aiD5D^IxhcWIWS{|D`=tLucWuWRq=5JGh?h=c%3lHNjI9A9S zIpU`xov3`T>x$P>gD9GTU9;)F{B__~sMV&r$&VQ01dmbR2{aGwTd1 zW4-5=P-EGpVC6MJiobJYjp{}sal+>9j#Onzc`SQ_#-Zi>zB=7W%gXECX+auvi&73K zyTppd#dbp2`Gtn~u{32j_-~wcsCj^wczzAc@cp^Qhw5C)t(2#j?Qu5J26CK7Swbho z9a?~}xcf|t(CNcYI_w+Mz=AeJI{f(QNSmH|*Z0+? zrO4?6#@VuJ9xT$99=g#qwr^p~?5=n|U|M>k`9vRY@hRokd>p25dN$U9M$t}O9qNH#O_}iZ8DYtAZQqXTKoKri2R>kw((an?)K0`e_MBdj`5KQlyXgjVLIwcrt@G1z zIkb3%yCRRd5w^{qMwBzgff&oyZi^Z^Xlx2?mNbYerAxK|khJv|3-3wU{bK7}@`%G{ zg=#hP2op7kk1Z;kvGmJSzzBvz@l;h`yrv*`S!?E$9vqC~8vx%G9I~YM35DC-`Tt&G#h*$kbTE%?%e z20;O$zrm?}?4n%~{fj$kIZD$E%yLZKssCYq&c%%y)_s=;L5QFS~JW zLRe1F0B-X`D?3tzahmhNkWttGmc;Zwr!yr!1ImlXPlF8oyXaGn#&mc{5o<Y5N<^2-|sq)Eq(If5(rsqim!J7KB#UB=E{=JDPJ{ z2=fgx&hI=CVKG#_9Zln{qXumra+|apjO|2mM=rdL27KAfO9d|sVf;4Ldn5U!6IwP& zMm2EDuM8A^Dc=|3qOXY zC}7X_&x^vbB}#?Kt>g?@f7>TgTn?feXngyJ!)F|BOO8iZ`$LuZ3e-6?!Y0fbuQgMJ z;+qGAIBCqB|5Xk3QYAMCxAhwuW!ros<=9v}r7w0(OW^0dpsUJhp&}9I^K>eKMkWzp zF^|sc{6IV{f_i=WXhsF`fyMd!agRzd;5W9J82-P7Za+4|>6&kR*{!c1^-8Y)232GC zXoTC#)y=7!iSb5VC}r$obw!e6x!#aqHoKUmi^cJ@#9VQz))YVOAr0CsQ z0<%{LVaWp-n-pk5$HQcKjZKL1L@HrwKKp8*P0$uSqWACDg2)QJ;dig=a4Paze_f@i zY}{w>Ert!#?`^5j8A*C)QeSv~gJ%bJnC0Fq|KUt0zu-o1(+C+MxTFrLj@Rk z15>ZSvO%bS)nE8`XM?;h0h}BvA*(A;RmU}b|G;ua_U7gzYJWjBZyYy_Mic;3QUuX> z=2Z&+2qqPIcVe$_w0S{a&L|jTxs~3wYw7+5V%H9s2?_**U*N_!tIr=<6w& z4Iej+{n4MVrF)zU;Tzgj5?jE-O*C3f@wKj*m?QGM_n1A0;%n4$6pROz;zNNYRTaX# z_n_N5mZSHm^x7j4{*YL*qW!Pr`!BAAcV82QX zx<*7Iv0o<@Q_KN$CfLj>_AhLU&<#}Cc4~%i)AmN7K-5Br6!)!%aUM0`MZ{n1uNYu6 zfA31cW~P|heV!h>`mncklQ9Z8Wh5*Oy2C=f09*Ypr*LkKh`1j=Zu6M782&HzH*Gpsi+_}B1|Kn?LXN%0

Vv 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 delta 29579 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 b(7mW!S?8Ri5Fa|l4cO`NDPJpVtL*Z9=!!=O zx}Zd{U`0_uWfd&g5qm=c7sal)YhA_vex7qCnFRmu`}V)SKi8G}JonSya^Ca4?zE&Q0 z6THW<8s2wnYjYE0S`>-_zhjs}XBxR`snMYHa#Nv|w5PFJ$#-#T&J!>mR&rd3AQV8Q z#)nE?+Us0Ceon!!N_HB1J<;SliIle75lZ#;@#>9eh6h@nXl)P4$cEAIFKGZNX9SO75caA_=QoCQ|mouIUF(_4w(+$iNp47IoHLw z+F>b8RfFxusiozG%m@SrHFyay@8y?X8XQ=JQs*|6B8-j3=F*=}Zey2}&<68>u3>hA zdH9=o*k~R$nTH$A!%gO4Gar&ew-|@YJ`E>UILViUekbyh8dz_Zvjr~NaV6!rl9=z! zFHIm-3$YI6+=>I0#FMH9S@cabH73jHaoom11>S8lq7MAK%vo4V>98p+i>zPzy4`NK&lHkzO+mjtGVut|QiJl0coj7QLjmGBQ zh2dV_UZr6xT2EO!Cv-DcR+54GrlcI#LQ9dkLzOD3WznkiDW#gPL`ex<9<9w5$19*h zqMUdzB{AR)l*U=5`9jNyjNuiz;T7;H(^5(lU+7*g-7G5zv)fm0X1=eZR>4~!a;_q8 zQE4WjU$?O>C3L@ecmM~g+0VmYS|R>E_!oPNqx^lH{^xQ4PHjhoffT8TDDjr?x$yl_ z2_*}x^z57l=TdJeJ9n*)FZ6&>-zPa-<}HgdMwQJY!q+`2B_xd?XNnr+4l(;i4RR-l zoH|tva;t@;gK*o0WP@-p6E!D(>T4Uhn#P-b618$~x$#Ax%#4*CCn>lJ;>0{OyzZRP zYRJYfeHQh22;pYinhs;A7`ulhDR&yX`})%Ff@Nc(EnB9C!W92+h}>A{Q-gOK$NHv* z?-8?}&^xDxFAzYwgx<~X@YpSaObNZ!;BD{-^dKq$3zR_H{1e-+W4meP6I(s16UX0(wzTUp2`AFzj zVD#ELl9>uugh#?~B}-U8Z$C3k?HFic(&R^_cS!@~CNajZBY4zqy7ReP(=IK6uqD^3W*tRZ1F-WoH^(LF58niJwM zol0D-x7Lhvc8_Dl31OJbaFJ_?1H1#wFjx05R&)sqqom+WD{i27pc&`x9>{4q0@<=M1V-Y@KW#?Ih z&qCP*i}1iH8*ULE4rSFA;a)E*w#Y_fUTr~mh<8Y7EKf>u1837uKzbky)9 z?@6_fOAY^E{GTwgPZ+Y@2V>ZO!Z15w0G%*2PB`Z$oXu{hscV;C?uj%g<9Jv}tn=1& zZIL~41>+Kz7DX$hMbQdrQM5uD6s?d3MJuF1rXtL

Nq#6zw7{idIOAIu%`8^q{Qe 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 diff --git a/output/M/MedullaAdapter.pdb b/output/M/MedullaAdapter.pdb index 2f446aaa7bfcada1d635fd8c7f64a79d4c4583a4..1f8a518bb3ce3dd00550f108d61dd4846860c17b 100644 GIT binary patch delta 10472 zcmcIqdt6l2+J4ubVJ1(=fM3^&ERk-IcC z6)$Cqcgjnp;?XqgWR}^5jyh(gnU&ocj0GkD znSoA}4b%Y#fDeK10GA*q@(t3_5a3zh8lVW)Q8!=|Fb$X;>`beGSAv~QbP|OdfJ=xo z4G7WGXdnfc3>bkKz*=Avunjl?oCmsu>M0zU0?Y>%051Snf!~0$VR|wQ(o+-gH4q=J zr%6Bo&^1C&YXD1xNl!f@mDCs52^bkl;?10AE}af(0_R>j~bCB*kVXiqew1JM#40fxs& zG!B>vnD{Xk$CGgqMa4_>bi9K66BJYfJO{i4><9h{tba^F<;e=F16}|=0RqM;=qbQE zML|WtTA)X&fY|d&>>A>qN!;LY67kRT_!3h8K?tZ z2YvwjCMjq#unag3{0A5?SwRKBR^UsZce;YofI8q+;0oZDp`aL`6xaZq$xzXsfO3k8 zHUSf-s;GFXNkt2%si@wlBDX9R%?BEQdDB(onysR)*=h;__5vO`d`dOspQE9bz&c=I7Z{SKq1iy#3=PEtwLr~G4LuKR1r7lh0G6*IFXw!olz)^InU59W9-yRX zVZ@rd=Ty)}QO3NX)?L7(Kto*%n)f&?(VFt0j1(f(7*C>A(5q~^7WaTQ9fgRw z0N1PGe+}gkHoXSg6R{ySy%stVdNA}0h=0+RkGHqFU7P3_3~SmA^bYh|JDm&tBJ_G& zg0;}=pf}jG9~xN?y~(C`!oLA}i%s(mG(x{@)9E(766KImo8BL3cvA z8?X@xw%Zc8L2vqt-fX9%Fp*pAbRptjveQn`FSlv5Pve2DFf`d3D1&|ldbdqiKyQO? zw)1a?K49l>f_}r!zXSTHoqs3vaXbGm=u^^sCSx+UeJz&)Mny&>s=5VgBI>55REVF5n>a$9DP<^e1-ub?8s+^c&Eh z+4NE5dlUL|JAD}Xf}K7BeThugRnIFNh2gR-pf7X_^cQye81xl8{SW9b?euZzuk7>* z=&$YcThLeS^hxMzCOg9^7{0O7Z$n?V)2FEeeQVPkR=3H=_lsm+jq9mW|L?$`ptk$~&F(0dUaf+SoMQ_wZ&-+}j`HPHOi z7yh%*E;h|K93R+eZ^V3Pr@w{&9Ca{JCtC$23?Ct&P4mm{{9p9PxIo+d4T%2)+RIk| zBgB7dr#nNpV(Zf8*Ft{|v}wNU`4?aRZ3Ybt7yc4((N1&!CA)+h(1AA1?;G=>E%0}? z8_;EFZ=3!AF<(IY*z`H*D<&8WHp6ao@k{6+oAyG$S9W?V^w-eAZSiQ3>kw!@ntGcK zg?5HMX^S5O?TRwL^YQp_=w}h@18uqrLj(-`!|!(2>@>eue`BW&(AVvBZ|HCBG{4o} zu+zN$cXs+Q=$oXy*IswDPq*w01_b;EI?~pmU^|TtQy<_DToprXe%^sU?eqZXJ7_S< z=I5in3$$rIOMG+Nu5teP=L?)%Mn!xFO#QL_W)u&WgdKYnVYiRD&R5fYwYCV$V%|%# za+sJ@wa8qFmL>XCwEwB#Q^MZGgo8vy!jvFPy^%WzoZ03Pv?Md z6QjpbL82*0t)=xy?MQEcokRo9f?Wi=(k9s5#0WeIFFyF(6%B{utV{GC(YddXR80qA z(a>IWPD`ti-;vg#>_pXI9j%AgnLYyRhtt1ta3L?8p|*5m5hT%2*tIlAgmTu?A~CY_ zqDg--)-P1@T(7PHQE+HT4U?9zhevBpC_7Os$~uZd*_jeh*3)pc+~QSgdJLi`O#=H; z5_0>|Q4CE%qcA8XO#wTI0jjABVl=kF@)0w5_=n%laR)(aMjl{^tY_{;SQ&K_lancW zx=}=OW?~v8>Ssa@ybTD)N;J>!8r(e^b_us9?(K*U{eRi>{y!UN@3dU%9U?b)yZif! z>9CIR;bmL6-jt0AV00PF3Aan!L>TSE3=;)ldKle-1uq<8+BP7D(GtwFL?4UgcN}FU zJ&m#h6`-u5S5a2eMwB)50?JydL)nquN7;$qL>c!?G4V^$ijo$aMCEd@isr(tCZnkQ z4^eqL*pYU_;zX-N<(Z;ezl%lNMVz}3EM~mP!s0*-78U)%TcO^V2S)S7a(PEAxR1ej zR~9XLh!*|$mJnCB7@sRl5(SItdr72NkIIbjY6p8Pyx9By%@U7pF=3bJ5+W6J5M5N# z43r&cE6OUun<-jx5d+(fvX)N6?nra^me`5`=lp zY0gjs*mGDkIDMEA+-s;Ae0o?TSoKH?xbzVVw>(0wYH}P-u3G9i+#t#Zlv9QqQ9c@J zM){R!a|dLIZ3HifYXO@a<1IKm5pQr4lPuUM*etjO+%&euO-rjDv!FaVnL6@FgJ2`r zdz=yXPrq?ylncRHnmw)&WlCuQXQf!catgVtNtbE><5UVZayA7S-L;gS+5!ng#q>8hNUz!$bpk)Wm4;{E0?z^F%ZF z+Qde%&!iS`$|MVT;Uwy$rZ*=Uz&}nhMdRQ<*$6gHHiOqqZUnbZZUJ{nw}3~dlb4#F zOgDhHrALE5O*ewo8D?;JMk6>kqXqn2h6Q{)gF36}rwjx5+e|}eE&Z7pjq>6tMsV!Z zMzC>O3pm?oG2!s5(cmqn1w47W5zMk%z%OT8z%DtKE^3;ZOI_7;GuHqfm=_Js&ohGW z=9$4*J>dB>TEJ6hT7-o^FL9a#M}t3|X%yVjO--5k)Ll($@{QfGK3nn|A%4x5!wt8b z3iFHdD{^yEOLKGOem%yx&zYHom-rp zOJ%v)x%p4zrnc$qlH!W8lEQmBE4yNLR^j-WNx69yDY;o?e{-bd&zSjO53dqmhJ1E) zdRViGO85K9i?d40XO>jR(|wmrwv8t#kMeSJbMi{c=46%SKviUw&B(1t$*RbO$jQ&k zvqenL%ASRyty;=`)u7s|$({ZFWwK7e`23>W@`|jYQnHP?-SF2z|J`$M)a|b9*=1$9 z#TD%a`z&ItHkS!aw)xs8qP@lBTqzJij8pq*z|idyBRlizz1w3#++LpNlMAs&{i&%zg4=9cgw| zywu0(_|t{IK3?wT7<1^CGt1((YM{6U`&MY2KR!tMpegH+R4MS&8}Zg}uu|=gG!?n+#sv_sz-~`gqL1Ub4rA*RPFy zYem%hE*@WRET7}p>6dTkeP-1?%lN3qL4v`FI^5Hnq;Y)!m6Y?LY{`_1!b6zLABMLLai zMXEWoGOXLVg$MMO{QM((YBztmYTYM3V~TuLMde;AtF}eno?n!ioHugc6SwxPn3}B_ zuSxB8+db^{4JE@SCY@b5C2#kL98+s+*M?_K8Yf<^JzY|KX-Cq&)n_)J+Wtq~oW!1A zH)a3cdbZbZH+?=V+;V=hPkCPG)x~cOoO#Fc-IhMB`3c*nxNkpy`opkUvs-r_-XA?` z+lqsi3dg;%`ttStS1)esQ|bKpval}cimP`6I!&8%C#>e!O}~Q8mUm{oygv1#f4|Tv zr}Nj%t8~Ae`}yOlWJyR)S=aRT$hCn**Y@NLKF~Zb zbcbKZRJJRf?V8PYnb@wyY}Z=0Ye(~tNjnst4{)%3#m%=fes*}E?_goG!}J?!uLsp@ zq3AqWThNsql>H0FWB*ZA*D?=nr5buRB1i{c((irX; z2Ei~w()e%#|IURC*D`6Sq|uR|UWIKg%nL3Az@E^odi*^Hld_+ZLMaqK*-^NXya?a* z{TE^>5_M-O%Kt`uQ|yeU@lybH;rKF7g|`lDy_tj^Dz>9|SyYnz%@a%6b$QO5F+Bs= z{>5znb#`DBJMaoSsAdQA*ul5hAwPDgh8_Bny}n+y%$eCUTY4=z1a63a|FGVL|e0HTO~Es)6O-tdk5`3M$O0QwQuN9F&*wpShYhg zfaB^wBTj-6uwkH)BSE7UffC;VB{_k{B!R{*1wHmYJ&MtHcafia>QQZXt!D(fXg(xg zddkZ*G?I7s627qYR`NYF-e&kIQ&XCR)!$!328q-PkO%o|@K%H?Lg#>2yw1dQl`gCb ze+yaF30C!+R25}S_VdG&^^i!zlX()pUE;}1_hqYH%j!C^x@1`o~^xW zwruw$tMA9^H?jIlY>~TEpJq+g<*&)`y3sb!_P+Ibz(5xtU`qnol0vp*leGAXHCy0c zv$ZE{?^>@1BwL=qmLFxyZ?gtdu(Z6~nl1L>+1k7IpmVU|LnbFOc_EVzODpbJlTCbh zvi7bandxt5bfuB4{FJToV5<_Pl}oJIW<5Mxd)FRx4p!e_YjW6{jcm;)(i*P;_==d- znCy}{%iqn{%h4tmmv!^lx}T+WTdgtm^5yy7@?6+A6tN9oNgGxV7{cqWfZaoGGP&zE z)=L{-wHnt7qXovzYoyI5t;Q|)j4$n$Ui#c>+$oHSW_R7z6Vle3R^xtQG{Ly-U($As z)p%4Gc|%R#N;^7Pjc?yG?)+2Q)z@nLKp1)Jdt9VFQC4HCFs4?y>-PCc`;x83E5cY0 z_@YnBkmW<2U94Uw(#aBgG&CYcz68jZztuB0_qSN?sjF}vX!^SRYkDzn-i`mr}*daSF}G)I_{LtsjtYHk{e;dhmTYM0p_ zftXwV2$YZ2cJCMP-yiy!+cA|1@v=`{PnIc1*R5yI%9rYzJ731L#Z%I_QYQ(&fXMB&=^J#p`iTUh=-xJ7#FCb4&_<2IZuz*~szY_c5 zo|3$JNuXoHMKUEIr}=sLgC+H*fg^eO4V*<+zW3y}CQ0KU#VIRw(ohxYbgmjQKQDQ9 z#Rh|^DxKIEW`2iN#Y(PZt;!ergR44+q3SBhvs+u$QOtajRYgfIWUe2DW~&^u*brj% z;FnnJUC=HCD=Sqj6CIa#FYRQK9zhQz{4AuC(p1=^;vVbFZ+^~FIwv@6B)s_P!sfW= zHE&DQQ2kcPvnmbKfc}TEDa^c5l;@WA?JaL5LG4eXsjY0dbMhha{ zXy|U^#*c))^8Fu~JNKRMy{x$*@sqi0f4zO;_XqRm)o$?>V!r}fM#Qm=!!{nKX3*37VwSqqR>bKbq30TuK;x$12qDA0U5ySZM zn_9IsQXe20NCPr~SApfgT3`!s9QX*R-_A(Uz;M65wRYU&9L08)WWU<@!3C(Qj-r53^dY%RsjK>l>w^O7MvBGI;*K0kPX;?#lSJ( zBS0IgrZ6A{mVt`y=4R9SW3{g=$kPoZ}J_59P zhI&x=Fb_%qh7PxQ(AUEuMtD#mPytvnJSZU3gG`xPiURfkb;NZ^I%+vmM@xa#z$Rb^ zuooCRN=MIt_E|bA1S){bz@=;*-35Nl7VX7PO?7jeCCSQAl|EcejiravpeClGB3V|^ zh8!K;0iFW?%Beb~nWMJ^2M{eJA6h^vnPvvA^5?oUoGF0NixA&~a*|6gh7LmAwl2K{ zx)*du=tZc%)Rj-%Ef%}!qtHuUXbYWzvGj#OVt&h@m%9=ygI*53!lgse$qHz@OK(Sf zCG;AX76VuXz0Rf6TzWmUxVQCo=?&1e$U+q9GB&~pM!6wiM}keR1pd&g|3j~F)19&7 z*1G9&sK3rldqJ;v(<#s!pf`*B=$~?djWD*kIvfwZ33`W1i}+^fU2gF$(0knCTcP*6 z#kWBpa*J<=KI|5+ggy!_`ln=I2aFF~6@=aiecYvoK)(Zh!cFgjKIx{bpijB!-O#7q z^d9IlZh9~DS;AE-exieYFwVJE*bjZ)O&@^%&`lqNzTncE(EbqgMVH2-lir2C>=u6y z`ih%A41JX>&a)oRO*#VOnyZ4)4(N~E^ik;RZu))bkKObK(4V;JW6+EqBh-1G_P zn-(|YB#h78^eOVATP}SZXZ>mDYM1taJ_G%^OE<+MTj+bxQxOyA%vtFBu6SeUb8b2v zONjH(mhW8^#APLnAE4WyvK{yk`iU!k8u|kCGnbwZebG(Vg}&sbzec{x(2P0vup0V` zn-*8uRr0gcR1n5BT#?Tk%tM2Zpt&o-Rm88m={nG#P+(155B(|dyuP^BZ@6hJqv)oa z7V*!-`Tx9usBp_I;T#O$xvquSSm@h`tK4Q(4Xt)*ad*4}t##>r*u|ei>s`7w;&QJJ7*BXfJ3nx|uF*fcAzyAsQfVg!V;Q+}VWofu4`L4WREs`$CJKxS4(7 zrp2xJft&6JZFxxgng)$veCMW3&_6)?xe|)=;<-kDgw-eggp;Q42&E6^dmpCF8g-$^&!ht6aW&9e;7`{zt3pVh7S_F-jNv z%AL~JLu7MkM7CIzar_%$Lu8a)jzpQ$ZiINTG1g{oSQ%y_L4JrQx3@K znB*+y%LaobV=00}?PbjkNT;IX7`m3Qg2c>b%C_fGW;7l3IlV43{HKG}pUj5&i=U@t z(ST7g8gQ~BwVo~^wI_WG_L3cVOZJiMOV{B0xO)3(9(`gzriBQ1+tJ9=He%@`mY6J5k9Blvl`1*poYH5@%9gS{miX{DT5 zec5F$7^kPEyiWb_{_u6w7ml7%WM>0W_M#yu8>kRvZyJiSk%~3S%XKDLvLG5$E*Ohl z%tK9Yfi-eYT8f0PbInieCx(dli5o6a76hZAU{211wHz*^?s9)zLR*H#i}(pi@_=Odd-!c^=d2q>v`gV(p%?d7%X^M!3=-K znM2eL%;=fiRq=8!#KZ9*jhxz98GR@x`!&ic@3k0KhoRl25Xpz*2>s(C{a5VIz7!~!yVPSL}4LJP(A8$oq zHN7o6#ybc)hKY{r$${c^2Q^dW!CWsh+(%nRO{8B8#w}ku#m=Qvb6Ir?0*s=Og406` zLPen%oSL4Y?Cm<26q!yibDcSHnoe}AOHUdbCqj&lwL*0<8kCFLq8BkZl;^~VP8gM% zo#&%pyg_IS_2^-g0VQ4B=^4$=6l-Tj6Gq}CgPLJ4?AA6zlE?ZYrlwumpYdG4Rl&7n zX|3YI3F0aW)0p6FZ5@SjcMr3SCLp>~n}PCIt*u~vq#Ya*>5xt}xFixwDJ|WKG=W1R z&5|>~iEXU1Y?tf+FKAOO%cK@%6Zl~pv*ZlvSS33&S~9jH4=ts)Gl8eJvx0B5bAYSb zSA&B(kXB2@9ZcZc9n2PNI!D>Ts%QteD7qT_aWv`h))!+2uaC(9J7OH*u#RTEJXW4s zn%U9hDazHdOa?feOkh=KGdKdQr*@q)@Q6Cv*$NJcw1fZX>;N~7tp@jtB_E5Hro@_j zv=rRM3{LNo0d5*=1)u3+2W#UT;E8e7!ighaEqQe%Up)nMHOaCG<>amzC_7@TC~r1f z{g5HS4lYS_fW5j`gWu?G@|XKqa)xB9zt$qg1rgZS?ysk(eH|zt=vOVnR7*AhPwj86 zrKcJFGf+MU*3-5AR+KXa*uh5!IKWQ^RD;J2qyW*%B-!j@JsliqN4YH70ltu24Gu`5 zK%7IVDJE=IrkKHZQ!>EK2U)?ngY4j4gB;**233P!8cac28aCJjE+1?LpB$V4{(Z0& z+~yTKIOi1yc-bq};ES(Nu$DAKOyEvK%;2#@GQi7*Siu*D*um)EflXLyHF$6;)z*?N z)db#_Y6f3V%>eT>E4WRX9h{No0GFjzgAb=s9qjgWs-vgN=_ZsjhMK{(hgrcLhTFln zhC9F!BdD(2E8t-nX0RsH4&IX4*MUu~k&b#=N*z@VemIKiYpGe53H*AN85|Os0X~;y z1#io?ONSb2DK5thely1oUXxP|zMi9;2>Dq#-MDvESd)89o1Z-@d(7+E%8r-jgym#s zXXT8~eCJ@K^7FIvCZ~+a&7L$lGj{?_2J*8f z$|leAx13*99(I$NdZ*7?d?YS5py7Z#I=3W;(FU0Aroa&kPbz0XCiapQfmb_QJBlv07qElg!A5?j^zNfP2FNS{qUF0{PkMET>am(e6 zTUT`c$N7lLxk-Pci+zYb3`aSNa+siNXQnm3t@mO;^^UI!ohyHmeEpYW`kvzC;wEaG3fj*OZQRtL-rJA6gF(hLN%tHdkzlh74~exoTg2D#@WvH+}u9C zRI{#jtgY?l*GdN#&p0t<<2F@$-n7@)mvy^;GV~hUzTuUUeLqxhYCB@c`_q3s`{CBo zob5sHwyiTXU}cNjzfI3wu3W9ywJT>w#qhOHE1Dhr_@6CaHN@R6jyjT*Y*@Ua7q?uQ z`p=5Qi*>bp{F0&5?&gdspWo8Uc=p@iTYfKvq&J+jt^Kg_C$~ekcdv>)JF4%T-K|DE zD*V;w)`rk=`|dW}qlxM~(M$8wp&Os|{d9cKhie`kUy)bMvRA(LhP~qdf!b=2g>zaxBTdVrzeaV=vDrUkk z#_UxKCr)C_sCZ7=!TCVNG0CLdm{i*miq^4Q*Ge=rc7H7|D>E0@Y38^-V@8Iu%Ku}O zJz~TFZ~KO!uNFwsiR&Uo5^1!8(SqwtHAXuaNnF=J7{!yr(Iy5?V_s#Sd`g2)ZffP~ zR6DCyUi-)2>PND@Wo+-aY~SD5zHMy37u)}Lw*NFc(3~BZsoeX=s|`o z$L^Wu5zJ`b6tW(`t0uD@Q1afq63&r5oa_8WfBsmZutJ@l>4$Qi^)Ru30kYii)T>oo2P6Ii6H{i{|g4irKViBrQpyW#egujaDtB)mv%p2eke&ZM;XDf2M6- zROv-K+taSawEGV2%coWcexXAh>D{UH-XS{tJK+Fz0mV-Tbvpt|Bv4W}>W29@@>Vuk zyESj14~oXHtXsU92S(M2@V7^>7{8XyE2E%!Q=((UsJAG0N&=O#B2AcyV`Yj@O$K!k zr`psTfANUw24?ePwpq+}lH0mC+Z?EA6T-28ZdTK#k0+U&ZHm5NGlsJn%lQm{XPZ+s zZDc<$+Pvte_%JJpVkMJ#@k3{u>osj;Kh6K7pIH@bwt>y=#b-I3ZN8{!Bl~%&rp=3f z=H#+D_u1Sge9jVQo1bdh$bMezgBSBDi)UpASlLrvmMhy7scYK&<$f!#&C2Jo@(+1= zqO(n{nl^vA-zvUg3$odQwR}OH2z=~jMU7o;0(=%7XN$Y=Mc+I9u;;myb45NrOZKs) zt@)C>5uHSv4l?#fQGj9DWxniRPBTuLV`c;xR@~z&eVt~H8gtb%Zhy&X_Lt^L)Ldia zYdSg2RB2v;xvnW+H_&O0l&0utLkGSg(`k;aF*o(#nLCzHO<~ESBa?n3Z|Fa%l@Wqxmpv4bb3b6jqB{i#feP%%i}A?Oeone$X6$Ww4@U zevImh+ht399uRLfSg3Id<6%1fcTVZVbOn00tBO^H@m;r_S=WoK4K>tJW}RJ=bwTAXXgNQ0%4wZ;S?_+v-_tv- zi!SSMLw>lI(-LRA$aQ1{Kk~NIx&lJvw~J#iGmiDl04um3BYv>xH4OV-t~*q`;3b2Cfj4Se*hMqT`q3nop@ z&TW-ACUbP&_(_w;jG7ew-=8Asn+Hs&fPP&LFPyrC^S4 zofw?;yRPWcdao+(ZGYClYKE{4LnR+^Jn^EfC0{{4xZ5a8=QM1f!qF$D!h@i$DqKe| zs2&cp!soUaXJFRZ+e7s0lj)W0hXJ9xj3=AJ>44M>tx)ZO?%zzhJPp;Fe zTIvewu|7I7s{PeeOBHGmU$u1wfh>UaW7gfQ@F**q%8IUWn=y#Vr;Y8Pa%XOc(z>*M zpzW-lF*DcUHmfeMp2W?V*)A&?r4N~}(z~qO+eh!k!u|2h6oJOd!?Mv0{^B_-*9e!C zym@c2aOKB&3BCTj-pDp`|AI#L6O`qF%<5L5Vq<94LaIo)F+{equEtbZlwzBo7=y>1 zn*6-23q8adgcCDi{tR1cJPjYnut$P**x!NT?p_|xwSHC%P49tJZz^5O zXAX{d8Aa=A>|0;#TY24aorVom7X)(r5pB>V>SzKF3cwdJT(JiBH!NV7EtKOULVQor z^az@o#1mayvaY59%5WvPLlVA;&Pe7#)>3CTR8BgT80MWHvTG@(~iwi=7{4pD@8|g({?Wx6ALcJ{` jv0gvLb73RaUun58iS<$@ENtL002vG0D$2rCd@K1kP>|R- diff --git a/ref/CommonUsage.dll b/ref/CommonUsage.dll index 403ea8bb61054b2090b3fc4177dee1463119ec71..2c0496a776efe6684628a7be9d924752630e9421 100644 GIT binary patch delta 29618 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

Vv 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 delta 29579 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 GkuV3{