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