def __init__(self, datadir, ppi, writeData=False): # Initialise data parameters self.ppi = ppi self.ppi.set_velocity(0, 0) self.img = np.zeros([240, 320, 3], dtype=np.uint8) self.aruco_img = np.zeros([240, 320, 3], dtype=np.uint8) self.previous_time = -1 # Set up subsystems camera_matrix, dist_coeffs, scale, baseline = self.getCalibParams( datadir) # Control subsystem self.keyboard = Keyboard.Keyboard(self.ppi) # SLAM subsystem self.pibot = Robot.Robot(baseline, scale, camera_matrix, dist_coeffs) self.aruco_det = aruco.aruco_detector(self.pibot, marker_length=0.07) self.slam = Slam.Slam(self.pibot) # Optionally record input data to a dataset if writeData: self.data = dh.DatasetWriter('test') else: self.data = None self.output = dh.OutputWriter('system_output')
def __init__(self, args): self.folder = 'pibot_dataset/' if not os.path.exists(self.folder): os.makedirs(self.folder) else: shutil.rmtree(self.folder) os.makedirs(self.folder) # Initialise data parameters if args.play_data: self.pibot = dh.DatasetPlayer("record") else: self.pibot = PenguinPi(args.ip, args.port) # ckpt = "" self.ekf = self.init_ekf(args.calib_dir, args.ip) self.aruco_det = aruco.aruco_detector(self.ekf.robot, marker_length=0.07) if args.save_data: self.data = dh.DatasetWriter('record') else: self.data = None self.output = dh.OutputWriter('workshop_output') self.command = { 'motion': [0, 0], 'inference': False, 'output': False, 'save_inference': False, 'save_image': False } self.quit = False self.pred_fname = '' self.request_recover_robot = False self.file_output = None self.ekf_on = False self.double_reset_comfirm = 0 self.image_id = 0 self.notification = 'Press ENTER to start SLAM' # self.count_down = 300 self.start_time = time.time() self.control_clock = time.time() # self.detector_output = np.zeros([240, 320], dtype=np.uint8) self.img = np.zeros([240, 320, 3], dtype=np.uint8) self.aruco_img = np.zeros([240, 320, 3], dtype=np.uint8) if args.ckpt == "": self.detector = None self.network_vis = cv2.imread('pics/rvss_8bit/detector_splash.png') else: self.detector = Detector(args.ckpt, use_gpu=False) self.network_vis = np.ones((240, 320, 3)) * 100 self.bg = pygame.image.load('pics/gui_mask.jpg')
def __init__(self, datadir, ppi): # Initialise self.ppi = ppi self.ppi.set_velocity(0, 0) self.img = np.zeros([240, 320, 3], dtype=np.uint8) self.aruco_img = np.zeros([240, 320, 3], dtype=np.uint8) # Keyboard teleoperation components # Get camera / wheel calibration info for SLAM camera_matrix, dist_coeffs, scale, baseline = self.getCalibParams( datadir) # SLAM components self.pibot = Robot.Robot(baseline, scale, camera_matrix, dist_coeffs) self.aruco_det = aruco.aruco_detector(self.pibot, marker_length=0.1) self.slam = Slam.Slam(self.pibot)