(c, timestamp, log_file)
| 921 | |
| 922 | |
| 923 | def do_collision_statistics(c, timestamp, log_file): |
| 924 | actors = c.world.get_actors() |
| 925 | actors = [a for a in actors if is_car(a) or is_bike(a) or is_pedestrian(a)] |
| 926 | bounding_boxes = [carla.OccupancyMap(get_bounding_box_corners(actor)) for actor in actors] |
| 927 | collisions = [0 for _ in range(len(actors))] |
| 928 | |
| 929 | for i in range(len(actors) - 1): |
| 930 | if collisions[i] == 1: |
| 931 | continue |
| 932 | for j in range(i + 1, len(actors)): |
| 933 | if bounding_boxes[i].intersects(bounding_boxes[j]): |
| 934 | collisions[i] = 1 |
| 935 | collisions[j] = 1 |
| 936 | |
| 937 | log_file.write('{} {}\n'.format(timestamp, 0.0 if len(collisions) == 0 else float(sum(collisions)) / len(collisions))) |
| 938 | log_file.flush() |
| 939 | os.fsync(log_file) |
| 940 | |
| 941 | |
| 942 | def do_gamma(c, car_agents, bike_agents, pedestrian_agents, destroy_list): |
no test coverage detected