Mercurial Hosting > traffic-intelligence
comparison python/prediction.py @ 350:7e9ad2d9d79c
added new parameters in safety analysis script
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 27 Jun 2013 00:18:39 -0400 |
parents | 124f85c6cfae |
children | 72aa44072093 |
comparison
equal
deleted
inserted
replaced
349:e3f910c26fae | 350:7e9ad2d9d79c |
---|---|
78 def generatePredictedTrajectories(self, obj, instant): | 78 def generatePredictedTrajectories(self, obj, instant): |
79 return [PredictedTrajectoryConstant(obj.getPositionAtInstant(instant), obj.getVelocityAtInstant(instant), | 79 return [PredictedTrajectoryConstant(obj.getPositionAtInstant(instant), obj.getVelocityAtInstant(instant), |
80 maxSpeed = self.maxSpeed)] | 80 maxSpeed = self.maxSpeed)] |
81 | 81 |
82 class NormalAdaptationPredictionParameters(PredictionParameters): | 82 class NormalAdaptationPredictionParameters(PredictionParameters): |
83 def __init__(self, maxSpeed, nPredictedTrajectories, maxAcceleration, maxSteering): | 83 def __init__(self, maxSpeed, nPredictedTrajectories, maxAcceleration, maxSteering):#, useFeatures = False |
84 PredictionParameters.__init__(self, 'normal adaptation', maxSpeed) | 84 PredictionParameters.__init__(self, 'normal adaptation', maxSpeed) |
85 self.nPredictedTrajectories = nPredictedTrajectories | 85 self.nPredictedTrajectories = nPredictedTrajectories |
86 self.maxAcceleration = maxAcceleration | 86 self.maxAcceleration = maxAcceleration |
87 self.maxSteering = maxSteering | 87 self.maxSteering = maxSteering |
88 self.accelerationDistribution = lambda: random.triangular(-self.maxAcceleration, | 88 self.accelerationDistribution = lambda: random.triangular(-self.maxAcceleration, |
105 maxSpeed = self.maxSpeed)) | 105 maxSpeed = self.maxSpeed)) |
106 return predictedTrajectories | 106 return predictedTrajectories |
107 | 107 |
108 class PointSetPredictionParameters(PredictionParameters): | 108 class PointSetPredictionParameters(PredictionParameters): |
109 # todo generate several trajectories with normal adaptatoins from each position (feature) | 109 # todo generate several trajectories with normal adaptatoins from each position (feature) |
110 def __init__(self, maxSpeed): | 110 def __init__(self, nPredictedTrajectories, maxSpeed): |
111 PredictionParameters.__init__(self, 'point set', maxSpeed) | 111 PredictionParameters.__init__(self, 'point set', maxSpeed) |
112 self.nPredictedTrajectories = nPredictedTrajectories | |
112 | 113 |
113 def generatePredictedTrajectories(self, obj, instant): | 114 def generatePredictedTrajectories(self, obj, instant): |
114 predictedTrajectories = [] | 115 predictedTrajectories = [] |
115 features = [f for f in obj.features if f.existsAtInstant(instant)] | 116 features = [f for f in obj.features if f.existsAtInstant(instant)] |
116 positions = [f.getPositionAtInstant(instant) for f in features] | 117 positions = [f.getPositionAtInstant(instant) for f in features] |
117 velocities = [f.getVelocityAtInstant(instant) for f in features] | 118 velocities = [f.getVelocityAtInstant(instant) for f in features] |
118 for initialPosition,initialVelocity in zip(positions, velocities): | 119 for i in xrange(self.nPredictedTrajectories): |
119 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, | 120 for initialPosition,initialVelocity in zip(positions, velocities): |
120 maxSpeed = self.maxSpeed)) | 121 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, |
122 maxSpeed = self.maxSpeed)) | |
121 return predictedTrajectories | 123 return predictedTrajectories |
122 | 124 |
123 class EvasiveActionPredictionParameters(PredictionParameters): | 125 class EvasiveActionPredictionParameters(PredictionParameters): |
124 def __init__(self, maxSpeed, nPredictedTrajectories, minAcceleration, maxAcceleration, maxSteering, useFeatures = False): | 126 def __init__(self, maxSpeed, nPredictedTrajectories, minAcceleration, maxAcceleration, maxSteering, useFeatures = False): |
125 if useFeatures: | 127 if useFeatures: |
150 positions = [obj.getPositionAtInstant(instant)] | 152 positions = [obj.getPositionAtInstant(instant)] |
151 velocities = [obj.getVelocityAtInstant(instant)] | 153 velocities = [obj.getVelocityAtInstant(instant)] |
152 for i in xrange(self.nPredictedTrajectories): | 154 for i in xrange(self.nPredictedTrajectories): |
153 for initialPosition,initialVelocity in zip(positions, velocities): | 155 for initialPosition,initialVelocity in zip(positions, velocities): |
154 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, | 156 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, |
155 initialVelocity, | 157 initialVelocity, |
156 moving.NormAngle(self.accelerationDistribution(), | 158 moving.NormAngle(self.accelerationDistribution(), |
157 self.steeringDistribution()), | 159 self.steeringDistribution()), |
158 maxSpeed = self.maxSpeed)) | 160 maxSpeed = self.maxSpeed)) |
159 return predictedTrajectories | 161 return predictedTrajectories |
160 | 162 |
161 class SafetyPoint(moving.Point): | 163 class SafetyPoint(moving.Point): |
162 '''Can represent a collision point or crossing zone | 164 '''Can represent a collision point or crossing zone |
163 with respective safety indicator, TTC or pPET''' | 165 with respective safety indicator, TTC or pPET''' |