From 61157f8470367e3f120f757ee01d15965a44f18a Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Thu, 21 Jul 2022 11:32:37 +0200
Subject: [PATCH] VECTO-1615 and VECTO-1616: Braking ended in vehiclespeed
 being slightly below TargetSpeed. Added Tolerance of 0.1 km/h

---
 VectoCore/VectoCore/Configuration/Constants.cs               | 5 +++++
 .../Models/SimulationComponent/Impl/DefaultDriverStrategy.cs | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 4c781ca505..6e0c17a2a4 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -273,6 +273,11 @@ namespace TUGraz.VectoCore.Configuration
 
 			public static readonly Meter BrakeNextTargetDistance = 2.5.SI<Meter>();
 
+			/// <summary>
+			/// used in DriverModeBrake to detect if a vehicle is already below the speed of the brake trigger.
+			/// </summary>
+			public static readonly MeterPerSecond BrakeTriggerSpeedTolerance = 0.1.KMPHtoMeterPerSecond();
+			
 			public static readonly MeterPerSecond MinVelocityForCoast = 5.KMPHtoMeterPerSecond();
 
 			/// <summary>
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index db1c599c42..c2c71ef3ce 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -1147,7 +1147,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient,
 			bool prohibitOverspeed = false)
 		{
-			if (DataBus.VehicleInfo.VehicleSpeed.IsSmallerOrEqual(DriverStrategy.BrakeTrigger.NextTargetSpeed) && !DataBus.VehicleInfo.VehicleStopped) {
+			if (DataBus.VehicleInfo.VehicleSpeed.IsSmaller(DriverStrategy.BrakeTrigger.NextTargetSpeed, Constants.SimulationSettings.BrakeTriggerSpeedTolerance)
+				&& !DataBus.VehicleInfo.VehicleStopped) {
 				var retVal = HandleTargetspeedReached(absTime, ds, targetVelocity, gradient);
 				for (var i = 0; i < 3 && retVal == null; i++) {
 					retVal = HandleTargetspeedReached(absTime, ds, targetVelocity, gradient);
-- 
GitLab