From f98434494c3949ca20b6ca75b1121049051d778f Mon Sep 17 00:00:00 2001 From: Michael Jansen <mjansen4857@gmail.com> Date: Tue, 7 Jan 2025 23:25:06 -0500 Subject: [PATCH] Avoid division by zero in python --- .../pathplannerlib/trajectory.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pathplannerlib-python/pathplannerlib/trajectory.py b/pathplannerlib-python/pathplannerlib/trajectory.py index 71642598..66f41028 100644 --- a/pathplannerlib-python/pathplannerlib/trajectory.py +++ b/pathplannerlib-python/pathplannerlib/trajectory.py @@ -578,12 +578,13 @@ def _forwardAccelPass(states: List[PathPlannerTrajectoryState], config: RobotCon for m in range(config.numModules): prevRotDelta = state.moduleStates[m].angle - prevState.moduleStates[m].angle modVel = state.moduleStates[m].speed - dt = nextState.moduleStates[m].deltaPos / modVel + if modVel != 0.0: + dt = nextState.moduleStates[m].deltaPos / modVel - if math.isfinite(dt): - realMaxDT = max(realMaxDT, dt) - if abs(prevRotDelta.degrees()) < 60: - maxDT = max(maxDT, dt) + if math.isfinite(dt): + realMaxDT = max(realMaxDT, dt) + if abs(prevRotDelta.degrees()) < 60: + maxDT = max(maxDT, dt) if maxDT == 0.0: maxDT = realMaxDT @@ -674,13 +675,14 @@ def _reverseAccelPass(states: List[PathPlannerTrajectoryState], config: RobotCon for m in range(config.numModules): prevRotDelta = state.moduleStates[m].angle - states[i - 1].moduleStates[m].angle modVel = state.moduleStates[m].speed - dt = nextState.moduleStates[m].deltaPos / modVel + if modVel != 0.0: + dt = nextState.moduleStates[m].deltaPos / modVel - if math.isfinite(dt): - realMaxDT = max(realMaxDT, dt) + if math.isfinite(dt): + realMaxDT = max(realMaxDT, dt) - if abs(prevRotDelta.degrees()) < 60: - maxDT = max(maxDT, dt) + if abs(prevRotDelta.degrees()) < 60: + maxDT = max(maxDT, dt) if maxDT == 0.0: maxDT = realMaxDT