public static PlanarRegionsList importPlanarRegionData(File dataFolder) { return PlanarRegionFileTools.importPlanarRegionData(dataFolder); } }
private void executeOnThread(PlanarRegionsListMessage planarRegionData) { Path folderPath = Paths.get(dataDirectoryPath.get() + File.separator + PlanarRegionFileTools.createDefaultTimeStampedFolderName()); PlanarRegionFileTools.exportPlanarRegionData(folderPath, PlanarRegionMessageConverter.convertToPlanarRegionsList(planarRegionData)); } }
public static List<String> listResourceDirectoryContents(Class<?> loadingClass, String relativePath) { try { return IOUtils.readLines(loadingClass.getClassLoader().getResourceAsStream(relativePath), StandardCharsets.UTF_8.name()); } catch (IOException e) { throw new RuntimeException(e.getMessage()); } }
/** * Generates a default timestamped name that can be used to generate automated and unique * folders. * * @return a {@code String} of the form: "20171201_163422_PlanarRegion". */ public static String createDefaultTimeStampedFolderName() { return getDate() + "_PlanarRegion"; }
/** * Load from the given data folder planar region data that has been previously exported via * {@link #exportPlanarRegionData(Path, PlanarRegionsList)}. * * @param dataFolder the data folder containing the files with the planar region data. * @return the planar regions if succeeded, {@code null} otherwise. */ public static PlanarRegionsList importPlanarRegionData(Class<?> loadingClass, Path dataFolderRelativePath) { try { PlanarRegionsList loadedRegions = importPlanarRegionDataInternal(filename -> fileFromClassPath(loadingClass, Paths.get(dataFolderRelativePath.toString(), filename))); if (loadedRegions == null) PrintTools.error(PlanarRegionFileTools.class, "Could not load the file: " + dataFolderRelativePath.toString()); return loadedRegions; } catch (IOException e) { e.printStackTrace(); return null; } }
private void requestNewData(ListView<String> listViewOwner, String datasetResourceName, MouseEvent event) { if (datasetResourceName == null) return; if (!hasListViewCellBeenDoubleClicked(event)) return; String filename = listViewOwner.getSelectionModel().getSelectedItem(); String selectedDatasetResource = datasetResourceName + "/" + filename; File file = PlanarRegionFileTools.getResourceFile(selectedDatasetResource); if (VisibilityGraphsIOTools.isVisibilityGraphsDataset(file)) { VisibilityGraphsUnitTestDataset dataset = VisibilityGraphsIOTools.loadDataset(getClass(), selectedDatasetResource); messager.submitMessage(UIVisibilityGraphsTopics.GlobalReset, true); messager.submitMessage(UIVisibilityGraphsTopics.PlanarRegionData, dataset.getPlanarRegionsList()); messager.submitMessage(UIVisibilityGraphsTopics.StartPosition, dataset.getStart()); messager.submitMessage(UIVisibilityGraphsTopics.GoalPosition, dataset.getGoal()); } else { PlanarRegionsList loadedPlanarRegions = VisibilityGraphsIOTools.importPlanarRegionData(file); messager.submitMessage(UIVisibilityGraphsTopics.GlobalReset, true); messager.submitMessage(UIVisibilityGraphsTopics.PlanarRegionData, loadedPlanarRegions); messager.submitMessage(UIVisibilityGraphsTopics.StartPosition, new Point3D()); messager.submitMessage(UIVisibilityGraphsTopics.GoalPosition, new Point3D()); } }
/** * Generates a default timestamped name that can be used to generate automated and unique * folders. * * @return a {@code String} of the form: "20171201_163422_VizGraphs". */ public static String createDefaultTimeStampedDatasetFolderName() { return PlanarRegionFileTools.getDate() + "_" + VIZ_GRAPHS_DATA_FOLDER_SUFFIX; }
/** * Loads either directly the planar regions from the given file, or from the first child * directory if the file is a visibility graphs dataset. * * @param inputFile the file to load the planar regions from. Can be an actual planar regions * data file or a visibility graphs dataset file. * @return the loaded planar regions or {@code null} if not able to load them. */ public static PlanarRegionsList importPlanarRegionData(File inputFile) { return PlanarRegionFileTools.importPlanarRegionData(adjustPlanarRegionsDataFile(inputFile)); }
public static boolean exportDataset(Path containingFolder, String datasetName, PlanarRegionsList planarRegionsList, Point3DReadOnly start, Point3DReadOnly goal) { File datasetFolder = new File(containingFolder + File.separator + datasetName); if (datasetFolder.exists()) return false; boolean success = datasetFolder.mkdir(); if (!success) return false; Path planarRegionsFolder = Paths.get(datasetFolder.getPath() + File.separator + PlanarRegionFileTools.createDefaultTimeStampedFolderName()); success = PlanarRegionFileTools.exportPlanarRegionData(planarRegionsFolder, planarRegionsList); if (!success) return false; success = exportParameters(datasetFolder, start, goal); if (!success) return false; return true; }
public static List<VisibilityGraphsUnitTestDataset> loadAllDatasets(Class<?> loadingClass) { List<String> childDirectories = PlanarRegionFileTools.listResourceDirectoryContents(loadingClass, TEST_DATA_URL); List<VisibilityGraphsUnitTestDataset> datasets = new ArrayList<>(); for (int i = 0; i < childDirectories.size(); i++) { PrintTools.info("trying to load:"); PrintTools.info(TEST_DATA_URL + "/" + childDirectories.get(i)); datasets.add(loadDataset(loadingClass, TEST_DATA_URL + "/" + childDirectories.get(i))); } return datasets; }
public static void main(String[] args) { JFileChooser fileChooser = new JFileChooser(new File(".")); int returnVal = fileChooser.showOpenDialog(new JFrame()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile().getParentFile(); PlanarRegionsList planarRegionsList = PlanarRegionFileTools.importPlanarRegionData(file); new ConstantPlanarRegionsPublisher(planarRegionsList).start(); } } }
public static boolean exportDataset(Path containingFolder, String datasetName, PlanarRegionsList planarRegionsList, Point3DReadOnly startPosition, QuaternionReadOnly startOrientation, Point3DReadOnly goalPosition, QuaternionReadOnly goalOrientation, FootstepPlannerType type, double timeout) { File datasetFolder = new File(containingFolder + File.separator + datasetName); if (datasetFolder.exists()) return false; boolean success = datasetFolder.mkdir(); if (!success) return false; Path planarRegionsFolder = Paths.get(datasetFolder.getPath() + File.separator + PlanarRegionFileTools.createDefaultTimeStampedFolderName()); success = PlanarRegionFileTools.exportPlanarRegionData(planarRegionsFolder, planarRegionsList); if (!success) return false; success = exportParameters(datasetFolder, startPosition, startOrientation, goalPosition, goalOrientation, type, timeout); if (!success) return false; return true; }
public static List<FootstepPlannerUnitTestDataset> loadAllFootstepPlannerDatasets(Class<?> loadingClass, String dataURL) { List<String> childDirectories = PlanarRegionFileTools.listResourceDirectoryContents(loadingClass, dataURL); List<FootstepPlannerUnitTestDataset> datasets = new ArrayList<>(); if (DEBUG && childDirectories.size() < 1) Assert.fail("Unable to find the directory contents."); for (int i = 0; i < childDirectories.size(); i++) { PrintTools.info("trying to load:"); PrintTools.info(dataURL + "/" + childDirectories.get(i)); datasets.add(loadDataset(loadingClass, dataURL + "/" + childDirectories.get(i))); } if (DEBUG && datasets.size() < 1) Assert.fail("Could not find any datasets."); return datasets; }
public static PlanarRegionsList importUsingFileChooser(Window ownerWindow) { DirectoryChooser directoryChooser = new DirectoryChooser(); File initialDirectory = new File("../../Data/PlanarRegion"); if (!initialDirectory.exists() || !initialDirectory.isDirectory()) initialDirectory = new File("."); directoryChooser.setInitialDirectory(initialDirectory); File result = directoryChooser.showDialog(ownerWindow); if (result == null) return null; else return PlanarRegionFileTools.importPlanarRegionData(result); }
planarRegionsList = PlanarRegionFileTools.importPlanarRegionData(clazz, expectedPlanarRegionsResourceName);
@ContinuousIntegrationTest(estimatedDuration = 0.1) @Test(timeout = 300000) @Ignore // Resource file does not seem to exist. public void testOcclusionsFromData() { FramePose3D startPose = new FramePose3D(worldFrame); startPose.setPosition(0.25, -0.25, 0.0); FramePose3D goalPose = new FramePose3D(worldFrame); goalPose.setPosition(2.75, 0.95, 0.0); BestEffortPlannerParameters parameters = new BestEffortPlannerParameters(); Path path = Paths.get(getClass().getClassLoader().getResource("PlanarRegions_20171114_090937").getPath()); PlanarRegionsList regions = PlanarRegionFileTools.importPlanarRegionData(path.toFile()); runTest(startPose, goalPose, regions, parameters, new DefaultVisibilityGraphParameters(), 2.0); }
private void loadAndSubmitPlanarRegions() { PlanarRegionsList loadedPlanarRegions = PlanarRegionFileTools.importPlanarRegionData(loadedFile); directoryChooser.setInitialDirectory(loadedFile.getParentFile()); if (loadedPlanarRegions != null) { if (VERBOSE) PrintTools.info(this, "Loaded planar regions, broadcasting data."); messager.submitMessage(UIVisibilityGraphsTopics.GlobalReset, true); messager.submitMessage(UIVisibilityGraphsTopics.PlanarRegionData, loadedPlanarRegions); messager.submitMessage(UIVisibilityGraphsTopics.StartPosition, new Point3D()); messager.submitMessage(UIVisibilityGraphsTopics.GoalPosition, new Point3D()); reloadMenuItem.setDisable(false); } else { if (VERBOSE) PrintTools.info(this, "Failed to load planar regions."); reloadMenuItem.setDisable(true); loadedFile = null; } } }