

def iterate(self, snapshot):
    vehicle_speed = snapshot['vehicle_speed']
    steering_wheel_angle = snapshot['steering_wheel_angle']
    wheel_angle = (steering_wheel_angle / 13.33)
    wheel_angle_rad = math.radians(wheel_angle)
    calc_angle = (- wheel_angle_rad)
    if (wheel_angle < 0):
        calc_angle = (calc_angle - (math.pi / 2))
    else:
        calc_angle = (calc_angle + (math.pi / 2))
    turning_circumference_km = (0.028 * math.tan(calc_angle))
    current_time = datetime.now()
    time_delta = (current_time - self.last_calc)
    time_step = (time_delta.seconds + (float(time_delta.microseconds) / 1000000))
    self.last_calc = current_time
    distance = (time_step * (vehicle_speed / 3600))
    delta_heading = (((distance / turning_circumference_km) * 2) * math.pi)
    temp_heading = (self.data + delta_heading)
    while (temp_heading >= (2 * math.pi)):
        temp_heading = (temp_heading - (2 * math.pi))
    while (temp_heading < 0):
        temp_heading = (temp_heading + (2 * math.pi))
    self.data = temp_heading

dataset/ETHPy150Open openxc/openxc-vehicle-simulator/data/heading_calc.py HeadingCalc.iterate/original