Skip to content

Commit 7eb950c

Browse files
committed
slightly different decollision strategy
1 parent 4c6befa commit 7eb950c

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/jaeger/kaiju.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,15 @@ def decollide(
211211
if robot_grid.isCollided(robot_id):
212212
if robot_grid.robotDict[robot_id].isOffline:
213213
continue
214+
alpha_save = robot_grid.robotDict[robot_id].alpha
215+
beta_save = robot_grid.robotDict[robot_id].beta
214216
robot_grid.decollideRobot(robot_id)
215-
decollided.append(robot_id) # Even if we failed it may have moved.
216-
if robot_grid.isCollided(robot_id):
217-
raise JaegerError(f"Failed decolliding positioner {robot_id}.")
217+
if not robot_grid.isCollided(robot_id):
218+
decollided.append(robot_id) # moving this robot worked
219+
else:
220+
# return robot to original spot and hope a different robot
221+
# decollision fixes the problem
222+
robot_grid.robotDict[robot_id].setAlphaBeta(alpha_save, beta_save)
218223

219224
# Second pass. If still collided, try a grid decollision.
220225
if len(robot_grid.getCollidedRobotList()) > 0:

0 commit comments

Comments
 (0)