-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsweep_type.py
More file actions
51 lines (44 loc) · 2.34 KB
/
sweep_type.py
File metadata and controls
51 lines (44 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import numpy as np
def sweep_1d(angle_start, angle_end, angle_increment):
angle_increment *= np.sign(angle_end-angle_start)
measurement_angles = list(np.arange(angle_start, angle_end+angle_increment*0.1, angle_increment)) # Using angle_end+angle_increment*0.1 to ensure angle_end is always included
return measurement_angles
def lat_long_lattice_A_2d(angle1_start, angle1_end, angle1_increment, angle2_start, angle2_end, angle2_increment, angle2_sweep_switching=True):
"""
Follows latitude longitude lines with (0,0) being the north pole.
Type A = for every increment made by angle1, a full sweep of angle2 is made.
"""
measurement_angles=[]
angles1 = np.arange(angle1_start, angle1_end+angle1_increment*0.001, angle1_increment)
angles2 = np.arange(angle2_start, angle2_end+angle2_increment*0.001, angle2_increment)
if angle2_sweep_switching:
angles2 = np.flip(angles2)
for angle1 in angles1:
if angle2_sweep_switching:
angles2 = np.flip(angles2)
for angle2 in angles2:
measurement_angles.append([angle1, angle2])
return measurement_angles
def lat_long_lattice_B_2d(angle1_start, angle1_end, angle1_increment, angle2_start, angle2_end, angle2_increment, angle1_sweep_switching=True):
"""
Follows latitude longitude lines with (0,0) being the north pole.
Type A = for every increment made by angle2, a full sweep of angle1 is made
"""
measurement_angles=[]
angles1 = np.arange(angle1_start, angle1_end+angle1_increment*0.1, angle1_increment)
angles2 = np.arange(angle2_start, angle2_end+angle2_increment*0.1, angle2_increment)
if angle1_sweep_switching:
angles1 = np.flip(angles2)
for angle2 in angles2:
if angle1_sweep_switching:
angles1 = np.flip(angles2)
for angle1 in angles1:
measurement_angles.append([angle1, angle2])
return measurement_angles
def fast_1d(angle1_start:float, angle1_end:float):
max_velocity = 20
return (angle1_start,angle1_end,max_velocity,None,None,None)
def fast_spiral_2d(angle1_start:float, angle1_end:float, spin_count:int):
max_velocity = 20
angle2_end = 360*spin_count
return (angle1_start,angle1_end,max_velocity/(angle2_end/(angle1_end-angle1_start)),0,angle2_end,max_velocity)