|
| str | test.key = '' |
| bool | test.running = False |
| bool | test.streaming = False |
| bool | test.print_stream_frames = True |
| bool | test.stream_expected = True |
| bool | test.first_frame = True |
| dict | test.runs = {} |
| int | test.run_count = 0 |
| str | test.frame_buffer = "" |
| int | test.control_mode = 0 |
| int | test.driving_mode = 0 |
| int | test.effort = 0 |
| int | test.setpoint = 0 |
| float | test.kp = 0.0 |
| float | test.ki = 0.0 |
| float | test.k_line = 0.0 |
| bool | test.first = True |
| bool | test.done = False |
| | test.queue = local_queue.Queue() |
| bool | test.queuing = False |
| bool | test.creating_run = False |
| str | test.test_origin = "manual" |
| dict | test.control_mode_dict = {0: "effort", 1: "velocity", 2: "line following"} |
| dict | test.driving_mode_dict = {0: "straight", 1: "pivot", 2: "arc"} |
| str | test.user_prompt |
| int | test.GEAR_RATIO = 3952/33 |
| int | test.CPR_MOTOR = 12 |
| int | test.CPR_WHEEL = GEAR_RATIO*CPR_MOTOR |
| int | test.RAD_PER_COUNT = 2 * math.pi / CPR_WHEEL |
| int | test.WHEEL_RADIUS_MM = 35 |
| | test.exist_ok |
| | test.ser = Serial('COM3', baudrate=115200, timeout=1) |
| | test.selected = input("Enter choice (e, v, l, or q to quit): ") |
| | test.key_in = input("Enter effort key (0-9 or 'a' for 100%) or percent (0-100): ").strip() |
| | test.eff_val = key_to_eff(key_in) |
| str | test.line = 'e' + eff_to_key(effort) |
| | test.gains = input("Enter setpoint (mm/s), Kp, and Ki separated by a comma (e.g., 40,1.5,0.1): ") |
| | test.sp_str |
| | test.kp_str |
| | test.ki_str |
| | test.setpoint_mm_s = float(sp_str) |
| int | test.setpoint_rad_s = setpoint_mm_s / WHEEL_RADIUS_MM |
| | test.setpoint_scaled = int(setpoint_rad_s * 100) |
| | test.kp_scaled = int(kp * 100) |
| | test.ki_scaled = int(ki * 100) |
| | test.k_line_str |
| | test.target_str |
| | test.target_scaled = int(setpoint_rad_s * 100) |
| | test.k_line_scaled = int(k_line * 100) |
| | test.eff = input("Enter effort test in the following format: start, end, step (e.g., 0,100,10): ") |
| | test.start_str |
| | test.end_str |
| | test.step_str |
| | test.start = int(start_str) |
| | test.end = int(end_str) |
| | test.step = int(step_str) |
| | test.csv_dir = os.path.join('runs', 'csvs') |
| | test.plots_dir = os.path.join('runs', 'plots') |
| | test.df1 = meta.get('motor_data') |
| | test.df2 = meta.get('obsv_data', None) |
| | test.df = pd.concat([df1, df2], axis=1) |
| str | test.run_code = 'E' |
| str | test.driving_code = "STR" |
| str | test.base_name = f"{run_name}_{run_code}_{driving_code}" |
| | test.csv_name = os.path.join(csv_dir, base_name + ".csv") |
| list | test.cols = ["_time", "_left_pos", "_right_pos", "_left_vel", "_right_vel", "_obsv_time", "_obsv_left_vel", "_obsv_right_vel", "_obsv_s", "_obsv_yaw"] |
| | test.index |
| | test.next_test = queue.dequeue() |
| | test.mode = next_test[0] |
| str | test.mode_name = "effort" |
| | test.params = None |
| int | test.sample_size = 200 |
| str | test.run_name = f'run{run_count}' |
| | test.chunk = ser.read(ser.in_waiting or 1).decode() |
| str | test.frame = frame_buffer[start+3 : end] |
| | test.idx_str |
| | test.time_s |
| | test.left_pos |
| | test.right_pos |
| | test.left_vel |
| | test.right_vel |
| | test.idx = int(idx_str) |