una-auxme / paf

MIT License
6 stars 0 forks source link

[Feature]: Implement Velocity Controller to also actively Brake #136

Closed hellschwalex closed 9 months ago

hellschwalex commented 10 months ago

Description

Since the current implementation of the velocity controller only includes a PID for throttling ( accelerating the car) and uses the included frictions of the simulation to brake, which is not good enough to control the velocity especially on jumping to lower max_velocities, BRAKING-functionality needs to be included.

Implement new Controller for the brake-inputs of carla:

Definition of Done

hellschwalex commented 10 months ago

Compared so far:

Why are 2 and 3 so similar:

hellschwalex commented 10 months ago

Since a braking PID controller with I and D parts will badly interact with the throttlePID controller ( and since braking is alot simpler considering that the vehicle model already de-accelerates alot and stable when no throttle is used) a simple P-Controller will be used for braking. This will increase the general velocity controlling alot, while hardly interacting with the already well tuned throttlePID. Since a P-Controller brakes only proportionally to the (negative) velocity error with maximum braking being = 1, the Kp of this controller can be tuned to get the velocity error point where we stop fully braking. E.G. if we want to slow down braking at v_err = -3 m/s (around 10km/h over target velocity) we just set Kp = 1 / v_err. (while braking = 0 at target velocity and below).

hellschwalex commented 9 months ago

For now the negative-throttle solution is implemented, as it has the most predictable outcome while highly improving braking times without interfering with other controllers since there are none (as a braking-PID would do).