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