def run(): mylidar = RPLidar(PORT_NAME, baudrate=115200) # info = mylidar.get_info() # print(info) # health = mylidar.get_health() # print(health) aver2 = 0 mylidar_scan = [] for y in range(0, 15): for i, scan in enumerate( mylidar.iter_scans(scan_type='normal', max_buf_meas=60000)): #print('%d: Got %d measures' % (i, len(scan))) # mylidar_scan.append(scan) if i > 10: break for i in range(len(mylidar_scan)): #aantal rondes som = [] #print("Len lidarscan i : ", len(mylidar_scan[i])) for row in mylidar_scan[i]: #aantal metingen in het rondje #mylist = mylidar_scan[i][j] # print(mylist[2]) if 86.5 < row[1] < 89 and 150 < row[2] < 300: som.append(row[2]) #print(row) som = np.array(som) print('som: ', som) aver = np.mean(som) # stats.mode() print("avg: ", aver) ''' total2 = len(mylidar_scan) aver2 = aver + aver2 aver2 = aver2/ total2 print("total aver: ",aver2)''' mylidar.clean_input() mylidar.stop() mylidar.stop_motor() mylidar.disconnect()
def find_exact_vanes(self, lower_angle_L, lower_angle_R, upper_angle_L, upper_angle_R, lower_distance_L, lower_distance_R, upper_distance_L, upper_distance_R): mylidar = RPLidar("COM3", baudrate=115200) mylidar_scan = [] total_average_left_vane = [] total_average_right_vane = [] total_average_angle_left_vane = [] total_average_angle_right_vane = [] for y in range(0, 20): for i, scan in enumerate(mylidar.iter_scans(scan_type='normal', max_buf_meas=60000)): # scan_type='normal', max_buf_meas=60000 mylidar_scan.append(scan) if i > 10: break for i in range(len(mylidar_scan)): # aantal rondes left_vane = [] right_vane = [] for j in range(len(mylidar_scan[i])): # aantal metingen in het rondje my_list = mylidar_scan[i][j] if lower_angle_L < my_list[1] < upper_angle_L and lower_distance_L < my_list[2] < upper_distance_L: left_vane.append(my_list) elif lower_angle_R < my_list[1] < upper_angle_R and lower_distance_R < my_list[2] < upper_distance_R: right_vane.append(my_list) # print("arr_avg: ", arr_avg) if left_vane: left_vane = np.array(left_vane) average_left_vane = np.mean(left_vane[:, 2]) average_angle_left_vane = np.mean(left_vane[:, 1]) total_average_left_vane.append(average_left_vane) total_average_angle_left_vane.append(average_angle_left_vane) print("Average left", average_left_vane) if right_vane: right_vane = np.array(right_vane) average_right_vane = np.mean(right_vane[:, 2]) average_angle_right_vane = np.mean(right_vane[:, 1]) total_average_right_vane.append(average_right_vane) total_average_angle_right_vane.append(average_angle_right_vane) print("Average right", average_right_vane) mylidar.clean_input() grand_total_left = np.mean(total_average_left_vane) grand_total_right = np.mean(total_average_right_vane) grand_total_left_angle = np.mean(total_average_angle_left_vane) grand_total_right_angle = np.mean(total_average_angle_right_vane) print("totaal links:", grand_total_left) print("totaal rechts:", grand_total_right) print("totaal hoek links:", grand_total_left_angle) print("totaal hoek rechts:", grand_total_right_angle) mylidar.stop() mylidar.stop_motor() mylidar.disconnect() return grand_total_left, grand_total_right, grand_total_left_angle, grand_total_right_angle
def run(lower_angle_L, lower_angle_R, upper_angle_L, upper_angle_R, lower_distance_L, lower_distance_R, upper_distance_L, upper_distance_R): mylidar = RPLidar(PORT_NAME, baudrate=115200) total = 0 arr_avg_L = [] arr_avg_R = [] avg_angle_L = [] avg_angle_R = [] mylidar_scan = [] angle_L = 0 angle_R = 0 dist_L = 0 dist_R = 0 for y in range(0, 15): for i, scan in enumerate( mylidar.iter_scans(scan_type='normal', max_buf_meas=60000)): # print('%d: Got %d measures' % (i, len(scan))) # mylidar_scan.append(scan) if i > 10: break for i in range(len(mylidar_scan)): # aantal rondes # print("Len lidarscan i : ", len(mylidar_scan[i])) for j in range(len( mylidar_scan[i])): # aantal metingen in het rondje mylist = mylidar_scan[i][j] # print(mylist[2]) if lower_angle_L < mylist[ 1] < upper_angle_L and lower_distance_L < mylist[ 2] < upper_distance_L: dist_L = mylist[2] angle_L = mylist[1] total = 1 elif lower_angle_R < mylist[ 1] < upper_angle_R and lower_distance_R < mylist[ 2] < upper_distance_R: dist_R = mylist[2] angle_R = mylist[1] total = 1 if total == 1: # aver = som / total avg_angle_L.append(angle_L) avg_angle_R.append(angle_R) arr_avg_L.append(dist_L) arr_avg_R.append(dist_R) total = 0 # print("arr_avg: ", arr_avg) arr_mean_L = np.mean(arr_avg_L) arr_mean_R = np.mean(arr_avg_R) arr_avg_angle_L = np.mean(avg_angle_L) arr_avg_angle_R = np.mean(avg_angle_R) print("Average Left: ", arr_mean_L) print("Average Right: ", arr_mean_R) mylidar.clean_input() mylidar.stop() mylidar.stop_motor() mylidar.disconnect() return arr_mean_L, arr_mean_R, arr_avg_angle_L, arr_avg_angle_R
import pygame from pygame.locals import * from rplidar import RPLidar from math import sin, cos, pi #from time import sleep def sleep(a): pass lidar = RPLidar("/dev/ttyUSB0") lidar.clean_input() lidar.start_motor() lidar.start() lidar.stop_motor() lidar.stop() def degrees(a): return a * pi / 180 pygame.init() WIDTH = 600 HEIGHT = 600 screen = pygame.display.set_mode((WIDTH * 2, HEIGHT)) def scanWalls(closeDist, farDist): a = 0