def run_for_plotting(): # run params N = 200 time = 0.02 speed = 2.0 # motion distance is equal to speed (we assume time = 1) # the controller ( P, I, D, dt ) #pid_controller = controller.PID_Controller(0.4, 0.001, 0.01, time) # why does this work so well? pid_controller = controller.PID_Controller(0.0, 0.0, 0.01, time) #pid_controller = controller.PID_Controller(0.2, 0.001, 0.01, time) pid_controller = controller.PID_Controller(0.5, 0.038, 0.0108, time) #build the track mytrack = track.get_track_1() line_seg_track = track.convert_to_line_segs(mytrack) track.write_to_file(mytrack, 'generated_files/track.csv') # create the car mycar = model.build_default_car(time, speed) mycar.write_to_file('generated_files/car_data.csv') # Main program pos_out, sense_out = model.run(N, time, pid_controller, line_seg_track, mycar, speed) f_Pos = open('generated_files/run_output.csv','w') for pos in pos_out: f_Pos.write("%s\n" % (pos)) f_Pos.close() f_Sense = open('generated_files/sense_output.csv','w') for pos in sense_out: f_Sense.write("%s\n" % (pos)) f_Sense.close()
def run_twiddle(): # run params N = 200 time = 0.02 speed = 2.0 # motion distance is equal to speed (we assume time = 1) pid_params = [.2,.001,.01] step_sizes = [.01,.0005,.001] mytrack = track.get_track_1() line_seg_track = track.convert_to_line_segs(mytrack) TH = TwiddleHelper(N, line_seg_track, time, speed) twiddle.do_twiddle(TH, pid_params, step_sizes, .0001)