public NavigableRegionsManager(VisibilityGraphsParameters parameters, List<PlanarRegion> regions) { this.parameters = parameters == null ? new DefaultVisibilityGraphParameters() : parameters; setPlanarRegions(regions); }
public VisibilityGraphPathPlanner(String prefix, FootstepPlannerParameters footstepPlannerParameters, VisibilityGraphsParameters visibilityGraphsParameters, YoVariableRegistry parentRegistry) { super(prefix, footstepPlannerParameters, parentRegistry); this.navigableRegionsManager = new NavigableRegionsManager(visibilityGraphsParameters); }
@Override public VisibilityGraphsParameters getVisibilityGraphsParameters() { return new DefaultVisibilityGraphParameters(); } }
public void set(VisibilityGraphsParameters parameters) { setMaxInterRegionConnectionLength(parameters.getMaxInterRegionConnectionLength()); setNormalZThresholdForAccessibleRegions(parameters.getNormalZThresholdForAccessibleRegions()); setRegionOrthogonalAngle(parameters.getRegionOrthogonalAngle()); setExtrusionDistance(parameters.getExtrusionDistance()); setExtrusionDistanceIfNotTooHighToStep(parameters.getExtrusionDistanceIfNotTooHighToStep()); setTooHighToStepDistance(parameters.getTooHighToStepDistance()); setClusterResolution(parameters.getClusterResolution()); setExplorationDistanceFromStartGoal(parameters.getExplorationDistanceFromStartGoal()); setPlanarRegionMinArea(parameters.getPlanarRegionMinArea()); setPlanarRegionMinSize(parameters.getPlanarRegionMinSize()); setSearchHostRegionEpsilon(parameters.getSearchHostRegionEpsilon()); }
public static NavigableRegion createNavigableRegion(PlanarRegion region, List<PlanarRegion> otherRegions, VisibilityGraphsParameters parameters) { PlanarRegionFilter planarRegionFilter = parameters.getPlanarRegionFilter(); double orthogonalAngle = parameters.getRegionOrthogonalAngle(); double clusterResolution = parameters.getClusterResolution(); NavigableExtrusionDistanceCalculator navigableCalculator = parameters.getNavigableExtrusionDistanceCalculator(); ObstacleExtrusionDistanceCalculator obstacleCalculator = parameters.getObstacleExtrusionDistanceCalculator(); ObstacleRegionFilter obstacleRegionFilter = parameters.getObstacleRegionFilter(); return createNavigableRegion(region, otherRegions, orthogonalAngle, clusterResolution, obstacleRegionFilter, planarRegionFilter, navigableCalculator, obstacleCalculator); }
public static void assertConnectionsEqual(Connection connectionExpected, Connection connectionActual, double epsilon) { assertConnectionPointsEqual(connectionExpected.getSourcePoint(), connectionActual.getSourcePoint(), epsilon); assertConnectionPointsEqual(connectionExpected.getTargetPoint(), connectionActual.getTargetPoint(), epsilon); }
private void runTest(PlanarRegionsList planarRegionsList) { Point3D start = new Point3D(); Point3D goal = new Point3D(2.0, -1.0, 0.0); NavigableRegionsManager navigableRegionsManager = new NavigableRegionsManager(planarRegionsList.getPlanarRegionsAsList()); List<Point3DReadOnly> path = navigableRegionsManager.calculateBodyPathWithOcclusions(start, goal); if(visualize) { visualize(path, planarRegionsList, start, goal); } }
public static void main(String[] args) throws Exception { VisibilityGraphsFrameworkTest test = new VisibilityGraphsFrameworkTest(); String prefix = "unitTestData/testable/"; test.setup(); test.runAssertionsOnDataset(dataset -> test.runAssertionsWithoutOcclusion(dataset), prefix + "20171218_205120_BodyPathPlannerEnvironment"); test.tearDown(); } }
public YoVisibilityGraphParameters(VisibilityGraphsParameters defaults, YoVariableRegistry parentRegistry) { set(defaults); parentRegistry.addChild(registry); }
private void runTest(Point3D start, Point3D goal, PlanarRegionsList regions, OcclusionMethod occlusionMethod, double maxAllowedSolveTime) { runTest(start, goal, regions, occlusionMethod, maxAllowedSolveTime, defaultMarchingSpeedInMetersPerTick); }
private String calculateAndTestVizGraphsBodyPath(String datasetName, Point3D start, Point3D goal, PlanarRegionsList planarRegionsList) { return calculateAndTestVizGraphsBodyPath(datasetName, start, goal, planarRegionsList, null); }
private String fail(String datasetName, String message) { return assertTrue(datasetName, message, false); }
@After public void tearDown() throws Exception { if (VISUALIZE) { stop(); ui = null; messager = null; } }
@Test(timeout = 30000) @ContinuousIntegrationTest(estimatedDuration = 0.0) public void testVisibilityGraphWithOcclusion() { runTest(occludedEnvironmentWithAGoalPlane); }
private VisibilityGraphsParameters getVisibilityGraphsParameters() { return new DefaultVisibilityGraphParameters(); }
private static VisibilityGraphsParameters createTestParameters() { return new DefaultVisibilityGraphParameters(); }
@Override public VisibilityGraphsParameters getVisibilityGraphsParameters() { return new DefaultVisibilityGraphParameters(); } }
@Override public VisibilityGraphsParameters getVisibilityGraphsParameters() { return new DefaultVisibilityGraphParameters(); }
public VisibilityGraphsParametersProperty(Object bean, String name) { this(bean, name, new DefaultVisibilityGraphParameters()); }
public FootstepPlannerUI(Stage primaryStage, JavaFXMessager messager) throws Exception { this(primaryStage, messager, new DefaultFootstepPlanningParameters(), new DefaultVisibilityGraphParameters()); }