comparison python/prediction.py @ 466:e891a41c6c75

name change in prediction.py
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 05 Mar 2014 17:47:26 -0500
parents dcc821b98efc
children 08b67c9baca2
comparison
equal deleted inserted replaced
465:16fe64136506 466:e891a41c6c75
45 self.predictedSpeedOrientations = {0: moving.NormAngle.fromPoint(initialVelocity)} 45 self.predictedSpeedOrientations = {0: moving.NormAngle.fromPoint(initialVelocity)}
46 46
47 def getControl(self): 47 def getControl(self):
48 return self.control 48 return self.control
49 49
50 class PredictedTrajectoryNormalAdaptation(PredictedTrajectory): 50 class PredictedTrajectoryPrototype(PredictedTrajectory):
51 '''Random small adaptation of vehicle control ''' 51 '''Predicted trajectory that follows a prototype trajectory
52 The prototype is in the format of a moving.Trajectory: it could be
53 1. an observed trajectory (extracted from video)
54 2. a generic polyline (eg the road centerline) that a vehicle is supposed to follow
55
56 Prediction can be done
57 1. at constant speed (the instant speed of the user'''
58
59 def __init__(self)
60
61 class PredictedTrajectoryRandomControl(PredictedTrajectory):
62 '''Random vehicle control: suitable for normal adaptation'''
52 def __init__(self, initialPosition, initialVelocity, accelerationDistribution, steeringDistribution, probability = 1., maxSpeed = None): 63 def __init__(self, initialPosition, initialVelocity, accelerationDistribution, steeringDistribution, probability = 1., maxSpeed = None):
53 '''Constructor 64 '''Constructor
54 accelerationDistribution and steeringDistribution are distributions 65 accelerationDistribution and steeringDistribution are distributions
55 that return random numbers drawn from them''' 66 that return random numbers drawn from them'''
56 self.accelerationDistribution = accelerationDistribution 67 self.accelerationDistribution = accelerationDistribution
243 else: 254 else:
244 positions = [obj.getPositionAtInstant(instant)] 255 positions = [obj.getPositionAtInstant(instant)]
245 velocities = [obj.getVelocityAtInstant(instant)] 256 velocities = [obj.getVelocityAtInstant(instant)]
246 for i in xrange(self.nPredictedTrajectories): 257 for i in xrange(self.nPredictedTrajectories):
247 for initialPosition,initialVelocity in zip(positions, velocities): 258 for initialPosition,initialVelocity in zip(positions, velocities):
248 predictedTrajectories.append(PredictedTrajectoryNormalAdaptation(initialPosition, 259 predictedTrajectories.append(PredictedTrajectoryRandomControl(initialPosition,
249 initialVelocity, 260 initialVelocity,
250 self.accelerationDistribution, 261 self.accelerationDistribution,
251 self.steeringDistribution, 262 self.steeringDistribution,
252 maxSpeed = self.maxSpeed)) 263 maxSpeed = self.maxSpeed))
253 return predictedTrajectories 264 return predictedTrajectories
254 265
255 class PointSetPredictionParameters(PredictionParameters): 266 class PointSetPredictionParameters(PredictionParameters):
256 # todo generate several trajectories with normal adaptatoins from each position (feature) 267 # todo generate several trajectories with normal adaptatoins from each position (feature)
257 def __init__(self, nPredictedTrajectories, maxSpeed): 268 def __init__(self, nPredictedTrajectories, maxSpeed):