Skip to content

Commit fffc61c

Browse files
committed
testing - on par with priority in empty area
1 parent bd36185 commit fffc61c

File tree

2 files changed

+17
-284
lines changed

2 files changed

+17
-284
lines changed

PathPlanning/TimeBasedPathPlanning/ConflictBasedSearch.py

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,11 @@
2121
from PathPlanning.TimeBasedPathPlanning.ConstraintTree import AgentId, AppliedConstraint, ConstraintTree, ConstraintTreeNode, ForkingConstraint
2222
import time
2323

24-
# TODO: dont include this
25-
from constraint_tree_viz import visualize_cbs_tree
2624
class ConflictBasedSearch(MultiAgentPlanner):
2725

2826

29-
# TODO: remove ConstraintTree from return
3027
@staticmethod
31-
def plan(grid: Grid, start_and_goals: list[StartAndGoal], single_agent_planner_class: SingleAgentPlanner, verbose: bool = False) -> tuple[list[StartAndGoal], list[NodePath], ConstraintTree]:
28+
def plan(grid: Grid, start_and_goals: list[StartAndGoal], single_agent_planner_class: SingleAgentPlanner, verbose: bool = False) -> tuple[list[StartAndGoal], list[NodePath]]:
3229
"""
3330
Generate a path from the start to the goal for each agent in the `start_and_goals` list.
3431
Returns the re-ordered StartAndGoal combinations, and a list of path plans. The order of the plans
@@ -101,7 +98,7 @@ def plan(grid: Grid, start_and_goals: list[StartAndGoal], single_agent_planner_c
10198
for constraint in all_constraints:
10299
print(f"\t{constraint}")
103100
print(f"Final cost: {constraint_tree_node.cost}")
104-
return (start_and_goals, paths.values(), constraint_tree)
101+
return (start_and_goals, paths.values())
105102

106103
if verbose:
107104
print(f"Adding new constraint tree node with constraint: {new_constraint_tree_node.constraint}")
@@ -169,20 +166,20 @@ def main():
169166
# start_and_goals = [StartAndGoal(i, Position(1, 2*i), Position(19, 19-i)) for i in range(4)]
170167

171168
# generate random start and goals
172-
# start_and_goals: list[StartAndGoal] = []
173-
# for i in range(40):
174-
# start = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
175-
# goal = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
176-
# while any([start_and_goal.start == start for start_and_goal in start_and_goals]):
177-
# start = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
178-
# goal = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
169+
start_and_goals: list[StartAndGoal] = []
170+
for i in range(40):
171+
start = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
172+
goal = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
173+
while any([start_and_goal.start == start for start_and_goal in start_and_goals]):
174+
start = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
175+
goal = Position(np.random.randint(0, grid_side_length), np.random.randint(0, grid_side_length))
179176

180-
# start_and_goals.append(StartAndGoal(i, start, goal))
177+
start_and_goals.append(StartAndGoal(i, start, goal))
181178

182179
# hallway cross
183-
start_and_goals = [StartAndGoal(0, Position(6, 10), Position(13, 10)),
184-
StartAndGoal(1, Position(11, 10), Position(6, 10)),
185-
StartAndGoal(2, Position(13, 10), Position(7, 10))]
180+
# start_and_goals = [StartAndGoal(0, Position(6, 10), Position(13, 10)),
181+
# StartAndGoal(1, Position(11, 10), Position(6, 10)),
182+
# StartAndGoal(2, Position(13, 10), Position(7, 10))]
186183

187184
# temporary obstacle
188185
# start_and_goals = [StartAndGoal(0, Position(15, 14), Position(15, 16))]
@@ -196,15 +193,15 @@ def main():
196193
num_obstacles=250,
197194
obstacle_avoid_points=obstacle_avoid_points,
198195
# obstacle_arrangement=ObstacleArrangement.TEMPORARY_OBSTACLE,
199-
obstacle_arrangement=ObstacleArrangement.HALLWAY,
196+
# obstacle_arrangement=ObstacleArrangement.HALLWAY,
200197
# obstacle_arrangement=ObstacleArrangement.NARROW_CORRIDOR,
201-
# obstacle_arrangement=ObstacleArrangement.NONE,
198+
obstacle_arrangement=ObstacleArrangement.NONE,
202199
# obstacle_arrangement=ObstacleArrangement.ARRANGEMENT1,
203200
# obstacle_arrangement=ObstacleArrangement.RANDOM,
204201
)
205202

206203
start_time = time.time()
207-
start_and_goals, paths, constraint_tree = ConflictBasedSearch.plan(grid, start_and_goals, SafeIntervalPathPlanner, verbose)
204+
start_and_goals, paths = ConflictBasedSearch.plan(grid, start_and_goals, SafeIntervalPathPlanner, verbose)
208205
# start_and_goals, paths = ConflictBasedSearch.plan(grid, start_and_goals, SpaceTimeAStar, verbose)
209206

210207
runtime = time.time() - start_time
@@ -218,8 +215,7 @@ def main():
218215
if not show_animation:
219216
return
220217

221-
visualize_cbs_tree(constraint_tree.expanded_nodes, constraint_tree.nodes_to_expand)
222-
# PlotNodePaths(grid, start_and_goals, paths)
218+
PlotNodePaths(grid, start_and_goals, paths)
223219

224220
if __name__ == "__main__":
225221
main()

PathPlanning/TimeBasedPathPlanning/constraint_tree_viz.py

Lines changed: 0 additions & 263 deletions
This file was deleted.

0 commit comments

Comments
 (0)