diff trafficintelligence/prediction.py @ 1215:1b472cddf9b1

updated reading by interpolating missing frames
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 05 May 2023 22:52:25 -0400
parents 01c24c1cdb70
children ca70a79688ae
line wrap: on
line diff
--- a/trafficintelligence/prediction.py	Thu May 04 22:30:32 2023 -0400
+++ b/trafficintelligence/prediction.py	Fri May 05 22:52:25 2023 -0400
@@ -558,9 +558,9 @@
                     
                     if collisionTimeInterval.empty():
                         if computeCZ:
-                            crossingZones = [SafetyPoint(intersection, 1., timeInterval1.distance(timeInterval2))]
+                            crossingZones.append(SafetyPoint(intersection, 1., timeInterval1.distance(timeInterval2)))
                     else:
-                        collisionPoints = [SafetyPoint(intersection, 1., collisionTimeInterval.center())]
+                        collisionPoints.append(SafetyPoint(intersection, 1., collisionTimeInterval.center()))
     
         if debug and intersection is not None:
             from matplotlib.pyplot import plot, figure, axis, title
@@ -586,7 +586,10 @@
     def computeCrossingsCollisionsAtInstant(self, currentInstant, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, *kwargs):
         'TODO compute pPET'
         collisionPoints = []
-        crossingZones = []
+        if computeCZ:
+            crossingZones = []
+        else:
+            crossingZones = None
 
         if self.useCurvilinear:
             pass # Lionel
@@ -600,7 +603,7 @@
             if not moving.Point.parallel(v1, v2):
                 ttc = moving.Point.timeToCollision(p1, p2, v1, v2, collisionDistanceThreshold)
                 if ttc is not None:
-                    collisionPoints = [SafetyPoint((p1+(v1*ttc)+p2+(v2*ttc))*0.5, 1., ttc)]
+                    collisionPoints.append(SafetyPoint((p1+(v1*ttc)+p2+(v2*ttc))*0.5, 1., ttc))
                 else:
                     pass # compute pPET
         return collisionPoints, crossingZones
@@ -616,7 +619,10 @@
     def computeCrossingsCollisionsAtInstant(self, currentInstant, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, *kwargs):
         'TODO compute pPET'
         collisionPoints = []
-        crossingZones = []
+        if computeCZ:
+            crossingZones = []
+        else:
+            crossingZones = None
 
         if self.useCurvilinear:
             pass # Lionel
@@ -629,7 +635,7 @@
             if not moving.Point.parallel(v1, v2):
                 ttc = moving.Point.timeToCollisionPoly(poly1, v1, poly2, v2)
                 if ttc is not None:
-                    collisionPoints = [SafetyPoint((obj1.getPositionAtInstant(currentInstant)+(v1*ttc)+obj2.getPositionAtInstant(currentInstant)+(v2*ttc))*0.5, 1., ttc)]
+                    collisionPoints.append(SafetyPoint((obj1.getPositionAtInstant(currentInstant)+(v1*ttc)+obj2.getPositionAtInstant(currentInstant)+(v2*ttc))*0.5, 1., ttc))
                 else:
                     pass # compute pPET
         return collisionPoints, crossingZones