Mercurial Hosting > traffic-intelligence
diff scripts/safety-analysis.py @ 357:e5fe0e6d48a1
corrected bug computing TTC (resp. pPET) if there is no collision point (resp. crossing zone)
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 11 Jul 2013 00:07:47 -0400 |
parents | 72aa44072093 |
children | 619ae9a9a788 |
line wrap: on
line diff
--- a/scripts/safety-analysis.py Wed Jul 10 18:22:45 2013 -0400 +++ b/scripts/safety-analysis.py Thu Jul 11 00:07:47 2013 -0400 @@ -1,15 +1,19 @@ #! /usr/bin/env python -import utils, storage, prediction, events +import utils, storage, prediction, events, moving import sys, argparse import matplotlib.pyplot as plt import numpy as np +# todo: very slow if too many predicted trajectories +# add computation of probality of unsucessful evasive action + parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene') parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file') parser.add_argument('--prediction-method', dest = 'predictionMethod', help = 'prediction method (constant velocity, normal adaptation, point set prediction)', choices = ['cv', 'na', 'ps']) +parser.add_argument('--display-cp', dest = 'displayCollisionPoints', help = 'display collision points') args = parser.parse_args() params = utils.TrackingParameters() @@ -50,17 +54,18 @@ obj.setFeatures(features) interactions = events.createInteractions(objects) -for inter in interactions[:1]: +for inter in interactions: inter.computeIndicators() inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones) storage.saveIndicators(params.databaseFilename, interactions) -if False: +if args.displayCollisionPoints: plt.figure() - plt.axis('equal') + allCollisionPoints = [] for inter in interactions: for collisionPoints in inter.collisionPoints.values(): - for cp in collisionPoints: - plt.plot([cp.x], [cp.y], 'x') + allCollisionPoints += collisionPoints + moving.Point.plotAll(allCollisionPoints) + plt.axis('equal')