diff scripts/safety-analysis.py @ 881:8ba82b371eea

work on storing PET
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 14 Mar 2017 17:48:40 -0400
parents 6d89520e269f
children e2452abba0e7
line wrap: on
line diff
--- a/scripts/safety-analysis.py	Tue Mar 14 17:10:35 2017 -0400
+++ b/scripts/safety-analysis.py	Tue Mar 14 17:48:40 2017 -0400
@@ -14,7 +14,8 @@
 parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file', required = True)
 parser.add_argument('-n', dest = 'nObjects', help = 'number of objects to analyse', type = int)
 # TODO analyze only 
-parser.add_argument('--prediction-method', dest = 'predictionMethod', help = 'prediction method (constant velocity (vector computation), constant velocity, normal adaptation, point set prediction)', choices = ['cvd', 'cv', 'na', 'ps'])
+parser.add_argument('--prediction-method', dest = 'predictionMethod', help = 'prediction method (constant velocity (cvd: vector computation (approximate); cve: equation solving; cv: discrete time (approximate)), normal adaptation, point set prediction)', choices = ['cvd', 'cve', 'cv', 'na', 'ps'])
+parser.add_argument('--pet', dest = 'computePET', help = 'computes PET', action = 'store_true')
 parser.add_argument('--display-cp', dest = 'displayCollisionPoints', help = 'display collision points', action = 'store_true')
 parser.add_argument('--nthreads', dest = 'nProcesses', help = 'number of processes to run in parallel', type = int, default = 1)
 args = parser.parse_args()
@@ -32,8 +33,10 @@
 def steeringDistribution():
     return random.triangular(-params.maxNormalSteering, params.maxNormalSteering, 0.)
 
-if predictionMethod == 'cvd': # TODO add cve: constant velocity exact (Sohail's)
+if predictionMethod == 'cvd':
     predictionParameters = prediction.CVDirectPredictionParameters()
+if predictionMethod == 'cve':
+    predictionParameters = prediction.CVExactPredictionParameters()
 elif predictionMethod == 'cv':
     predictionParameters = prediction.ConstantPredictionParameters(params.maxPredictedSpeed)
 elif predictionMethod == 'na':
@@ -64,6 +67,10 @@
     inter.computeIndicators()
     inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses)
 
+if args.computePET:
+    for inter in Interactions:
+        inter.computePET()
+    
 storage.saveIndicators(params.databaseFilename, interactions)
 
 if args.displayCollisionPoints: