mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 10:29:19 +02:00
ai braking logic tweaks
This commit is contained in:
14
Driver.cpp
14
Driver.cpp
@@ -1375,7 +1375,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
if( ( mvOccupied->Vel < v )
|
if( ( mvOccupied->Vel < v )
|
||||||
|| ( v == 0.0 ) ) {
|
|| ( v == 0.0 ) ) {
|
||||||
// if we're going slower than the target velocity and there's enough room for safe stop, speed up
|
// if we're going slower than the target velocity and there's enough room for safe stop, speed up
|
||||||
auto const brakingdistance = fBrakeDist * braking_distance_multiplier( v );
|
auto const brakingdistance { 1.2 * fBrakeDist * braking_distance_multiplier( v ) };
|
||||||
if( brakingdistance > 0.0 ) {
|
if( brakingdistance > 0.0 ) {
|
||||||
// maintain desired acc while we have enough room to brake safely, when close enough start paying attention
|
// maintain desired acc while we have enough room to brake safely, when close enough start paying attention
|
||||||
// try to make a smooth transition instead of sharp change
|
// try to make a smooth transition instead of sharp change
|
||||||
@@ -5672,11 +5672,11 @@ TController::UpdateSituation(double dt) {
|
|||||||
|| ( VelNext > vel - 40.0 ) ) ?
|
|| ( VelNext > vel - 40.0 ) ) ?
|
||||||
fBrake_a0[ 0 ] * 0.8 :
|
fBrake_a0[ 0 ] * 0.8 :
|
||||||
-fAccThreshold )
|
-fAccThreshold )
|
||||||
/ braking_distance_multiplier( VelNext ) ) {
|
/ ( 1.2 * braking_distance_multiplier( VelNext ) ) ) {
|
||||||
AccDesired = std::max( -0.06, AccDesired );
|
AccDesired = std::max( -0.1, AccDesired );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
if( AccDesired < -0.1 ) {
|
||||||
// i orientuj się szybciej, jeśli hamujesz
|
// i orientuj się szybciej, jeśli hamujesz
|
||||||
ReactionTime = 0.25;
|
ReactionTime = 0.25;
|
||||||
}
|
}
|
||||||
@@ -5775,11 +5775,11 @@ TController::UpdateSituation(double dt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// yB: usunięte różne dziwne warunki, oddzielamy część zadającą od wykonawczej
|
// yB: usunięte różne dziwne warunki, oddzielamy część zadającą od wykonawczej zwiekszanie predkosci
|
||||||
// zwiekszanie predkosci
|
|
||||||
// Ra 2F1H: jest konflikt histerezy pomiędzy nastawioną pozycją a uzyskiwanym
|
// Ra 2F1H: jest konflikt histerezy pomiędzy nastawioną pozycją a uzyskiwanym
|
||||||
// przyspieszeniem - utrzymanie pozycji powoduje przekroczenie przyspieszenia
|
// przyspieszeniem - utrzymanie pozycji powoduje przekroczenie przyspieszenia
|
||||||
if( ( AccDesired - AbsAccS > 0.01 ) ) {
|
if( ( AccDesired > -0.1 ) // don't add power if not asked for actual speed-up
|
||||||
|
&& ( AccDesired - AbsAccS > 0.025 ) ) {
|
||||||
// jeśli przyspieszenie pojazdu jest mniejsze niż żądane oraz...
|
// jeśli przyspieszenie pojazdu jest mniejsze niż żądane oraz...
|
||||||
if( vel < (
|
if( vel < (
|
||||||
VelDesired == 1.0 ? // work around for trains getting stuck on tracks with speed limit = 1
|
VelDesired == 1.0 ? // work around for trains getting stuck on tracks with speed limit = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user