def main(): """Main function.""" logger = DummyLogger() box = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)] waypoint_generator = SimpleWaypointGenerator( SimpleWaypointGenerator.get_waypoints_from_file_name( 'control/paths/solid-state-depot.kmz')) waypoint_generator._waypoints.clear() for x, y in ((x_ * .005 + 10, y_ * .005 + 10) for x_, y_ in box): waypoint_generator._waypoints.append((x, y)) telemetry = DummyTelemetry( logger, waypoint_generator.get_current_waypoint( waypoint_generator._waypoints[0][0], waypoint_generator._waypoints[0][1])) driver = DummyDriver(telemetry, logger) command = Command( telemetry, driver, waypoint_generator, logger, sleep_time_milliseconds=1, ) command.run_course() command.start() while not waypoint_generator.done(): time.sleep(0.1) command.kill()
def benchmark_command_run_course_iterator(): """Benchmark the logic for driving the car.""" logger = DummyLogger() telemetry = Telemetry(logger) waypoint_generator = SimpleWaypointGenerator( SimpleWaypointGenerator.get_waypoints_from_file_name( 'paths/solid-state-depot.kmz')) driver = DummyDriver(telemetry, logger) command = Command(telemetry, driver, waypoint_generator, logger) iterations = 250 start = time.time() iterator = command._run_course_iterator() step = None for step in zip(range(iterations), iterator): pass assert step is not None assert step[0] == iterations - 1 end = time.time() print('{} iterations of Command._run_course_iterator, each took {:.5}'. format(iterations, (end - start) / float(iterations)))
def make_generator(waypoints=None): """Returns a KML waypoint generator.""" if waypoints is None: waypoints = [(1, 1), (5, 10)] return SimpleWaypointGenerator(waypoints)