Applied review changes

This commit is contained in:
Joel Moriana 2022-02-07 18:05:52 +01:00 committed by joel-mb
parent 51aac42a63
commit 87e674c76b
3 changed files with 10 additions and 39 deletions

View File

@ -35,7 +35,7 @@ void FAckermannController::ApplySettings(const FAckermannControllerSettings& Set
SpeedController.Kp = Settings.SpeedKp;
SpeedController.Ki = Settings.SpeedKi;
SpeedController.Kd = Settings.SpeedKd;
AccelerationController.Kp = Settings.AccelKp;
AccelerationController.Ki = Settings.AccelKi;
AccelerationController.Kd = Settings.AccelKd;
@ -93,35 +93,6 @@ void FAckermannController::RunLoop(FVehicleControl& Control) {
Control.Throttle = FMath::Clamp(Throttle, 0.0f, 1.0f);
Control.Brake = FMath::Clamp(Brake, 0.0f, 1.0f);
Control.bReverse = bReverse;
// // Debugging
// UE_LOG(LogCarla, Log, TEXT("[AckermannLog];%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%d;%f;%f;%f;%f"),
// DeltaTime,
// UserTargetPoint.Steer,
// UserTargetPoint.Speed,
// UserTargetPoint.Acceleration,
// UserTargetPoint.Jerk,
// VehicleSpeed,
// VehicleAcceleration,
// //VehiclePitch,
// Control.Steer,
// Control.Throttle,
// Control.Brake,
// Control.Gear,
// //SpeedController.Proportional,
// //SpeedController.Integral,
// //SpeedController.Derivative,
// SpeedControlAccelDelta,
// SpeedControlAccelTarget,
// //AccelerationController.Proportional,
// //AccelerationController.Integral,
// //AccelerationController.Derivative,
// AccelControlPedalDelta,
// AccelControlPedalTarget
// //BrakeUpperBorder,
// //ThrottleLowerBorder
// );
}
void FAckermannController::RunControlSteering() {
@ -137,7 +108,7 @@ bool FAckermannController::RunControlFullStop() {
Throttle = 0.0;
return true;
}
return false;
return false;
}
void FAckermannController::RunControlReverse() {
@ -163,7 +134,6 @@ void FAckermannController::RunControlReverse() {
}
}
void FAckermannController::RunControlSpeed() {
SpeedController.SetTargetPoint(TargetSpeed);
SpeedControlAccelDelta = SpeedController.Run(VehicleSpeed, DeltaTime);
@ -217,16 +187,17 @@ void FAckermannController::UpdateVehicleState(const ACarlaWheeledVehicle* Vehicl
LastVehicleSpeed = VehicleSpeed;
LastVehicleAcceleration = VehicleAcceleration;
// Update simulation state
DeltaTime = Vehicle->GetWorld()->GetDeltaSeconds();
// Update Vehicle state
VehicleSpeed = Vehicle->GetVehicleForwardSpeed() / 100.0f; // From cm/s to m/s
float CurrentAcceleration = (VehicleSpeed - LastVehicleSpeed) / DeltaTime;
// Apply an average filter for the acceleration.
VehicleAcceleration = (4.0f*LastVehicleAcceleration + CurrentAcceleration) / 5.0f;
}
void FAckermannController::UpdateVehiclePhysics(const ACarlaWheeledVehicle* Vehicle) {
VehicleMaxSteering = FMath::DegreesToRadians(Vehicle->GetMaximumSteerAngle());
}
}

View File

@ -1,4 +1,4 @@
// Copyright (c) 2021 Computer Vision Center (CVC) at the Universitat Autonoma
// Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma
// de Barcelona (UAB).
//
// This work is licensed under the terms of the MIT license.
@ -51,7 +51,7 @@ class PID
Integral = 0.0f;
Integral = FMath::Clamp(Integral, MinOutput, MaxOutput);
Derivative = 0.0f;
LastError = 0.0f;
LastInput = 0.0f;
}
@ -136,7 +136,7 @@ private:
// Internal control parameters
float SpeedControlAccelDelta = 0.0f;
float SpeedControlAccelTarget = 0.0f;
float AccelControlPedalDelta = 0.0f;
float AccelControlPedalTarget = 0.0f;
@ -151,4 +151,4 @@ private:
float LastVehicleSpeed = 0.0f; // [m/s]
float LastVehicleAcceleration = 0.0f; // [m/s2]
};
};

View File

@ -726,7 +726,7 @@ void ACarlaWheeledVehicle::ApplyVehiclePhysicsControl(const FVehiclePhysicsContr
{
Recorder->AddPhysicsControl(*this);
}
// Update physics in the Ackermann Controller
AckermannController.UpdateVehiclePhysics(this);
}