Mercurial Hosting > traffic-intelligence
diff python/prediction.py @ 352:72aa44072093
safety analysis script with option for prediction method
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 27 Jun 2013 01:35:47 -0400 |
parents | 7e9ad2d9d79c |
children | 41e31d8c4383 |
line wrap: on
line diff
--- a/python/prediction.py Thu Jun 27 00:25:51 2013 -0400 +++ b/python/prediction.py Thu Jun 27 01:35:47 2013 -0400 @@ -80,11 +80,16 @@ maxSpeed = self.maxSpeed)] class NormalAdaptationPredictionParameters(PredictionParameters): - def __init__(self, maxSpeed, nPredictedTrajectories, maxAcceleration, maxSteering):#, useFeatures = False - PredictionParameters.__init__(self, 'normal adaptation', maxSpeed) + def __init__(self, maxSpeed, nPredictedTrajectories, maxAcceleration, maxSteering, useFeatures = False): + if useFeatures: + name = 'point set normal adaptation' + else: + name = 'normal adaptation' + PredictionParameters.__init__(self, name, maxSpeed) self.nPredictedTrajectories = nPredictedTrajectories self.maxAcceleration = maxAcceleration self.maxSteering = maxSteering + self.useFeatures = useFeatures self.accelerationDistribution = lambda: random.triangular(-self.maxAcceleration, self.maxAcceleration, 0.) self.steeringDistribution = lambda: random.triangular(-self.maxSteering, @@ -92,17 +97,25 @@ def __str__(self): return PredictionParameters.__str__(self)+' {0} {1} {2}'.format(self.nPredictedTrajectories, - self.maxAcceleration, - self.maxSteering) + self.maxAcceleration, + self.maxSteering) def generatePredictedTrajectories(self, obj, instant): predictedTrajectories = [] + if self.useFeatures: + features = [f for f in obj.features if f.existsAtInstant(instant)] + positions = [f.getPositionAtInstant(instant) for f in features] + velocities = [f.getVelocityAtInstant(instant) for f in features] + else: + positions = [obj.getPositionAtInstant(instant)] + velocities = [obj.getVelocityAtInstant(instant)] for i in xrange(self.nPredictedTrajectories): - predictedTrajectories.append(PredictedTrajectoryNormalAdaptation(obj.getPositionAtInstant(instant), - obj.getVelocityAtInstant(instant), - self.accelerationDistribution, - self.steeringDistribution, - maxSpeed = self.maxSpeed)) + for initialPosition,initialVelocity in zip(positions, velocities): + predictedTrajectories.append(PredictedTrajectoryNormalAdaptation(initialPosition, + initialVelocity, + self.accelerationDistribution, + self.steeringDistribution, + maxSpeed = self.maxSpeed)) return predictedTrajectories class PointSetPredictionParameters(PredictionParameters):