comparison scripts/safety-analysis.py @ 948:584b9405e494

added safety analysis parameters for motion patterns
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 21 Jul 2017 12:11:55 -0400
parents e5970606066f
children d6c1c05d11f5
comparison
equal deleted inserted replaced
947:053484e08947 948:584b9405e494
54 prototypes = storage.loadPrototypesFromSqlite(params.databaseFilename) 54 prototypes = storage.loadPrototypesFromSqlite(params.databaseFilename)
55 else: 55 else:
56 prototypes = storage.loadPrototypesFromSqlite(args.prototypeDatabaseFilename) 56 prototypes = storage.loadPrototypesFromSqlite(args.prototypeDatabaseFilename)
57 for p in prototypes: 57 for p in prototypes:
58 p.getMovingObject().computeCumulativeDistances() 58 p.getMovingObject().computeCumulativeDistances()
59 predictionParameters = prediction.PrototypePredictionParameters(prototypes, params.nPredictedTrajectories, 2., 0.4, 'cityblock', 10, params.constantSpeedPrototypePrediction, params.useFeaturesForPrediction) 59 predictionParameters = prediction.PrototypePredictionParameters(prototypes, params.nPredictedTrajectories, params.maxLcssDistance, params.minLcssSimilarity, params.lcssMetric, params.minFeatureTime, params.constantSpeedPrototypePrediction, params.useFeaturesForPrediction)
60 # else: 60 # else:
61 # no else required, since parameters is required as argument 61 # no else required, since parameters is required as argument
62 62
63 # evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed, 63 # evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed,
64 # params.nPredictedTrajectories, 64 # params.nPredictedTrajectories,
66 # params.maxExtremeAcceleration, 66 # params.maxExtremeAcceleration,
67 # params.maxExtremeSteering, 67 # params.maxExtremeSteering,
68 # params.useFeaturesForPrediction) 68 # params.useFeaturesForPrediction)
69 69
70 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp')) 70 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp'))
71 # if params.useFeaturesForPrediction:
72 # features = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'feature') # needed if normal adaptation
73 # for obj in objects:
74 # obj.setFeatures(features)
75 71
76 interactions = events.createInteractions(objects) 72 interactions = events.createInteractions(objects)
77 for inter in interactions: 73 for inter in interactions:
74 print('processing interaction {}'.format(inter.getNum())
78 inter.computeIndicators() 75 inter.computeIndicators()
79 if not args.noMotionPrediction: 76 if not args.noMotionPrediction:
80 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses, debug = True) 77 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses)
81 78
82 if args.computePET: 79 if args.computePET:
83 for inter in interactions: 80 for inter in interactions:
84 inter.computePET(params.collisionDistance) 81 inter.computePET(params.collisionDistance)
85 82