Mercurial Hosting > traffic-intelligence
comparison python/prediction.py @ 290:df58d361f19e
refactoring of Interval and TimeInterval using class methods (intersection, union)
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 29 Jan 2013 18:23:47 -0500 |
parents | e56c34c1ebac |
children | 9f81218e497a |
comparison
equal
deleted
inserted
replaced
289:e56c34c1ebac | 290:df58d361f19e |
---|---|
202 for et1 in predictedTrajectories1: | 202 for et1 in predictedTrajectories1: |
203 for et2 in predictedTrajectories2: | 203 for et2 in predictedTrajectories2: |
204 t, p1, p2 = computeCollisionTime(et1, et2, collisionDistanceThreshold, timeHorizon) | 204 t, p1, p2 = computeCollisionTime(et1, et2, collisionDistanceThreshold, timeHorizon) |
205 | 205 |
206 if t <= timeHorizon: | 206 if t <= timeHorizon: |
207 collisionPoints.append(SafetyPoint((p1+p2).multiply(0.5), currentInstant, et1.probability*et2.probability, t)) | 207 collisionPoints.append(SafetyPoint((p1+p2).multiply(0.5), et1.probability*et2.probability, t)) |
208 else: # check if there is a crossing zone | 208 else: # check if there is a crossing zone |
209 # TODO? zone should be around the points at which the traj are the closest | 209 # TODO? zone should be around the points at which the traj are the closest |
210 # look for CZ at different times, otherwise it would be a collision | 210 # look for CZ at different times, otherwise it would be a collision |
211 # an approximation would be to look for close points at different times, ie the complementary of collision points | 211 # an approximation would be to look for close points at different times, ie the complementary of collision points |
212 cz = None | 212 cz = None |
247 commonTimeInterval = timeInterval | 247 commonTimeInterval = timeInterval |
248 else: | 248 else: |
249 commonTimeInterval = obj1.commonTimeInterval(obj2) | 249 commonTimeInterval = obj1.commonTimeInterval(obj2) |
250 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors | 250 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors |
251 print(obj1.num, obj2.num, i) | 251 print(obj1.num, obj2.num, i) |
252 collisionPoints[i], crossingZones[i] = computeCrossingsCollisionsAtInstant(obj1, obj2, predictionParameters, collisionDistanceThreshold, timeHorizon, debug) | 252 collisionPoints[i], crossingZones[i] = computeCrossingsCollisionsAtInstant(i, obj1, obj2, predictionParameters, collisionDistanceThreshold, timeHorizon, debug) |
253 | 253 |
254 return collisionPoints, crossingZones | 254 return collisionPoints, crossingZones |
255 | 255 |
256 def computeCollisionProbability(obj1, obj2, predictionParameters, collisionDistanceThreshold, timeHorizon, debug = False, timeInterval = None): | 256 def computeCollisionProbability(obj1, obj2, predictionParameters, collisionDistanceThreshold, timeHorizon, debug = False, timeInterval = None): |
257 '''Computes only collision probabilities | 257 '''Computes only collision probabilities |