class Lidar(QThread): # Signal pour envoyer les scans newScansReceived = pyqtSignal(np.ndarray, np.ndarray, np.ndarray, np.ndarray) def __init__(self): super().__init__() self.lidar = RPLidar('COM12', baudrate=256000) #self.lidar = RPLidar('/dev/ttyUSB0', baudrate=256000) #self.connect() print('connexion avec le lidar') self.lidar.logger.setLevel(logging.DEBUG) consoleHandler = logging.StreamHandler() #self.lidar.logger.addHandler(consoleHandler) info = self.lidar.get_info() print(info) health = self.lidar.get_health() print(health) print("####################") time.sleep(2) self.continuer = True def run(self): gen = self.lidar.scan2ArrayFromLidar(45, 135, 225, 315) while self.continuer: radiusRight, thetaRight, radiusLeft, thetaLeft = next(gen) self.newScansReceived.emit(radiusRight, thetaRight, radiusLeft, thetaLeft) print("fin du thread Lidar") self.lidar.stop() self.lidar.stop_motor() self.lidar.disconnect()
lidar.logger.setLevel(logging.DEBUG) consoleHandler = logging.StreamHandler() #lidar.logger.addHandler(consoleHandler) try: info = lidar.get_info() print(info) health = lidar.get_health() print(health) print("####################") time.sleep(2) gen = lidar.scan2ArrayFromLidar(45, 135, 225, 315) i = 0 while True: radiusRight, thetaRight, radiusLeft, thetaLeft = next(gen) print(i) i += 1 # for i, scan in enumerate(lidar.scanAllDataFromLidar()): # print('=========================== %d: Got %d measures' % (i, len(scan))) # for (quality, angle, distance) in scan: # print(quality, angle, distance) # if i > 2: # break finally: lidar.stop() lidar.stop_motor()