Mercurial Hosting > traffic-intelligence
comparison python/prediction.py @ 661:dc70d9e711f5
some method name change and new methods for features in objects (MovingObject) and methods to access indicator values in interactions
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 18 May 2015 13:53:25 +0200 |
parents | 335f6641bf7a |
children | 72174e66aba5 |
comparison
equal
deleted
inserted
replaced
660:994dd644f6ab | 661:dc70d9e711f5 |
---|---|
408 self.maxAcceleration, | 408 self.maxAcceleration, |
409 self.maxSteering) | 409 self.maxSteering) |
410 | 410 |
411 def generatePredictedTrajectories(self, obj, instant): | 411 def generatePredictedTrajectories(self, obj, instant): |
412 predictedTrajectories = [] | 412 predictedTrajectories = [] |
413 if self.useFeatures: | 413 if self.useFeatures and obj.hadFeatures(): |
414 features = [f for f in obj.features if f.existsAtInstant(instant)] | 414 features = [f for f in obj.getFeatures() if f.existsAtInstant(instant)] |
415 positions = [f.getPositionAtInstant(instant) for f in features] | 415 positions = [f.getPositionAtInstant(instant) for f in features] |
416 velocities = [f.getVelocityAtInstant(instant) for f in features] | 416 velocities = [f.getVelocityAtInstant(instant) for f in features] |
417 else: | 417 else: |
418 positions = [obj.getPositionAtInstant(instant)] | 418 positions = [obj.getPositionAtInstant(instant)] |
419 velocities = [obj.getVelocityAtInstant(instant)] | 419 velocities = [obj.getVelocityAtInstant(instant)] |
431 def __init__(self, maxSpeed): | 431 def __init__(self, maxSpeed): |
432 PredictionParameters.__init__(self, 'point set', maxSpeed) | 432 PredictionParameters.__init__(self, 'point set', maxSpeed) |
433 #self.nPredictedTrajectories = nPredictedTrajectories | 433 #self.nPredictedTrajectories = nPredictedTrajectories |
434 | 434 |
435 def generatePredictedTrajectories(self, obj, instant): | 435 def generatePredictedTrajectories(self, obj, instant): |
436 predictedTrajectories = [] | 436 predictedTrajectories = [] |
437 features = [f for f in obj.features if f.existsAtInstant(instant)] | 437 if obj.hasFeatures(): |
438 positions = [f.getPositionAtInstant(instant) for f in features] | 438 features = [f for f in obj.getFeatures() if f.existsAtInstant(instant)] |
439 velocities = [f.getVelocityAtInstant(instant) for f in features] | 439 positions = [f.getPositionAtInstant(instant) for f in features] |
440 #for i in xrange(self.nPredictedTrajectories): | 440 velocities = [f.getVelocityAtInstant(instant) for f in features] |
441 for initialPosition,initialVelocity in zip(positions, velocities): | 441 #for i in xrange(self.nPredictedTrajectories): |
442 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, | 442 for initialPosition,initialVelocity in zip(positions, velocities): |
443 maxSpeed = self.maxSpeed)) | 443 predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, |
444 return predictedTrajectories | 444 maxSpeed = self.maxSpeed)) |
445 return predictedTrajectories | |
446 else: | |
447 print('Object {} has no features'.format(obj.getNum())) | |
448 return None | |
445 | 449 |
446 class EvasiveActionPredictionParameters(PredictionParameters): | 450 class EvasiveActionPredictionParameters(PredictionParameters): |
447 def __init__(self, maxSpeed, nPredictedTrajectories, accelerationDistribution, steeringDistribution, useFeatures = False): | 451 def __init__(self, maxSpeed, nPredictedTrajectories, accelerationDistribution, steeringDistribution, useFeatures = False): |
448 '''Suggested acceleration distribution may not be symmetric, eg | 452 '''Suggested acceleration distribution may not be symmetric, eg |
449 lambda: random.triangular(self.minAcceleration, self.maxAcceleration, 0.)''' | 453 lambda: random.triangular(self.minAcceleration, self.maxAcceleration, 0.)''' |
461 def __str__(self): | 465 def __str__(self): |
462 return PredictionParameters.__str__(self)+' {0} {1} {2} {3}'.format(self.nPredictedTrajectories, self.minAcceleration, self.maxAcceleration, self.maxSteering) | 466 return PredictionParameters.__str__(self)+' {0} {1} {2} {3}'.format(self.nPredictedTrajectories, self.minAcceleration, self.maxAcceleration, self.maxSteering) |
463 | 467 |
464 def generatePredictedTrajectories(self, obj, instant): | 468 def generatePredictedTrajectories(self, obj, instant): |
465 predictedTrajectories = [] | 469 predictedTrajectories = [] |
466 if self.useFeatures: | 470 if self.useFeatures and obj.hasFeatures(): |
467 features = [f for f in obj.features if f.existsAtInstant(instant)] | 471 features = [f for f in obj.getFeatures() if f.existsAtInstant(instant)] |
468 positions = [f.getPositionAtInstant(instant) for f in features] | 472 positions = [f.getPositionAtInstant(instant) for f in features] |
469 velocities = [f.getVelocityAtInstant(instant) for f in features] | 473 velocities = [f.getVelocityAtInstant(instant) for f in features] |
470 else: | 474 else: |
471 positions = [obj.getPositionAtInstant(instant)] | 475 positions = [obj.getPositionAtInstant(instant)] |
472 velocities = [obj.getVelocityAtInstant(instant)] | 476 velocities = [obj.getVelocityAtInstant(instant)] |