annotate scripts/safety-analysis.py @ 350:7e9ad2d9d79c

added new parameters in safety analysis script
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 27 Jun 2013 00:18:39 -0400
parents c64a4f889b97
children 891858351bcb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
328
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
1 #! /usr/bin/env python
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
2
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
3 import utils, storage, prediction, events
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
4
337
dc2e68e936c7 work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 335
diff changeset
5 import sys, argparse
328
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
6
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
7 import matplotlib.pyplot as plt
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
8 import numpy as np
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
9
337
dc2e68e936c7 work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 335
diff changeset
10 parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene')
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
11 parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file')
348
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
12 #parser.add_argument('--maxspeed', dest = 'maxSpeed', help = 'maximum speed when predicting future motion (km/h)', default = 50, type = int)
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
13 #parser.add_argument('--time-horizon', dest = 'maxSpeed', help = 'maximum speed when predicting future motion (km/h)', default = 50, type = int)
337
dc2e68e936c7 work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 335
diff changeset
14 args = parser.parse_args()
348
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
15
328
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
16 # TODO work on the way to indicate an interaction definition
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
17
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
18 # if False: # test if there is a configuration file?
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
19 params = utils.TrackingParameters()
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
20 params.loadConfigFile(args.configFilename)
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
21
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
22 # parameters for prediction methods
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
23 constantVelocityPredictionParameters = prediction.ConstantPredictionParameters(params.maxPredictedSpeed)
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
24
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
25 normalAdaptationPredictionParameters = prediction.NormalAdaptationPredictionParameters(params.maxPredictedSpeed,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
26 params.nPredictedTrajectories,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
27 params.maxAcceleration,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
28 params.maxSteering)
343
74e437ab5f11 first version of indicator loading code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 338
diff changeset
29
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
30 featurePredictionParameters = prediction.PointSetPredictionParameters(params.maxPredictedSpeed, params.nPredictedTrajectories)
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
31
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
32 evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
33 params.nPredictedTrajectories,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
34 params.minAcceleration,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
35 params.maxAcceleration,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
36 params.maxSteering,
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
37 False)
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
38
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
39 featureEvasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
40 params.nPredictedTrajectories,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
41 params.minAcceleration,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
42 params.maxAcceleration,
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
43 params.maxSteering,
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
44 True)
333
c9201f6b143a moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 328
diff changeset
45
328
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
46
335
3950bfe22768 added functions to export trajectories to csv
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 334
diff changeset
47
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
48 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'object')
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
49 # features = storage.loadTrajectoriesFromSqlite('amherst-10.sqlite','feature') # needed if normal adaptation
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
50
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
51 interactions = events.createInteractions(objects)
344
14a2405f54f8 slight modification to safety analysis and generalized script to delete computed data (objects and interactions)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 343
diff changeset
52 for inter in interactions:
343
74e437ab5f11 first version of indicator loading code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 338
diff changeset
53 inter.computeIndicators()
350
7e9ad2d9d79c added new parameters in safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
54 inter.computeCrossingsCollisions(constantVelocityPredictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones)
343
74e437ab5f11 first version of indicator loading code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 338
diff changeset
55
74e437ab5f11 first version of indicator loading code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 338
diff changeset
56 storage.saveIndicators(params.databaseFilename, interactions)
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
57
348
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
58 # if display:
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
59 # plt.figure()
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
60 # plt.axis('equal')
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
61 # for inter in interactions[:2]:
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
62 # for collisionPoints in inter.collisionPoints.values():
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
63 # for cp in collisionPoints:
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 344
diff changeset
64 # plot([cp.x], [cp.y], 'x')
335
3950bfe22768 added functions to export trajectories to csv
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 334
diff changeset
65
3950bfe22768 added functions to export trajectories to csv
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 334
diff changeset
66 # for the demo, output automatically a map
338
f3aceea2afbb first safety analysis script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 337
diff changeset
67 # possibility to process longitudinal coords only
328
5e43b7389c25 script for safety analysis
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
68