Skip to content

Latest commit

 

History

History
36 lines (28 loc) · 1.22 KB

Prevent Zig-Zag.md

File metadata and controls

36 lines (28 loc) · 1.22 KB

Prevent Zig-Zag

Prevents zig-zag behavior by penalizing steering and encouraging the car to stay close to the centerline.

def reward_function(params):
    # Example of penalizing steering, which helps mitigate zig-zag behaviors

    # Read input parameters
    distance_from_center = params['distance_from_center']
    track_width = params['track_width']
    abs_steering = abs(params['steering_angle'])  # Only need the absolute steering angle

    # Calculate 3 marks that are farther and farther away from the center line
    marker_1 = 0.1 * track_width
    marker_2 = 0.25 * track_width
    marker_3 = 0.5 * track_width

    # Give higher reward if the car is closer to the centerline and vice versa
    if distance_from_center <= marker_1:
        reward = 1.0
    elif distance_from_center <= marker_2:
        reward = 0.5
    elif distance_from_center <= marker_3:
        reward = 0.1
    else:
        reward = 1e-3  # likely crashed/close to off track

    # Steering penalty threshold, change the number based on your action space setting
    ABS_STEERING_THRESHOLD = 15

    # Penalize reward if the car is steering too much
    if abs_steering > ABS_STEERING_THRESHOLD:
        reward *= 0.8

    return float(reward)