-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.py
73 lines (54 loc) · 2.46 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from argparse import ArgumentParser
import logging
import platform
from people_guidance.pipeline import Pipeline
from people_guidance.utils import init_logging
# Need to fix this properly
if platform.uname().machine == 'armv7l':
is_rpi = True
else:
is_rpi = False
from people_guidance.modules.drivers_module import DriversModule
from people_guidance.modules.reprojection_module import ReprojectionModule
from people_guidance.modules.position_module import PositionModule
from people_guidance.modules.feature_tracking_module import FeatureTrackingModule
from people_guidance.modules.position_estimation_module import PositionEstimationModule
if not is_rpi:
from people_guidance.modules.visualization_module import VisualizationModule
if __name__ == '__main__':
init_logging()
# Arguments for different hardware configuration cases
parser = ArgumentParser()
parser.add_argument('--record', '-c',
help='Path of folder where to record dataset to',
type=str,
default='')
parser.add_argument('--replay', '-p',
help='Path of folder where to replay dataset from',
type=str,
default='')
parser.add_argument('--deploy', '-d',
help='Deploy the pipeline on a raspberry pi.',
action='store_true')
parser.add_argument('--visualize', '-v',
help='Turn on visualisation',
action='store_true')
parser.add_argument('--save_visualization','-s',
help='Save visualization to file',
type=str,
default='')
args = parser.parse_args()
pipeline = Pipeline(args, log_level=logging.INFO)
# Handles hardware drivers and interfaces
pipeline.add_module(DriversModule, log_level=logging.WARNING)
if not args.record:
# Handles IMU data to compute a position estimation
pipeline.add_module(PositionModule, log_level=logging.WARNING)
# Handles feature tracking
pipeline.add_module(FeatureTrackingModule, log_level=logging.WARNING)
# Handles reprojection
pipeline.add_module(ReprojectionModule, log_level=logging.WARNING)
# If argument is specified we start visualization
if args.visualize:
pipeline.add_module(VisualizationModule, log_level=logging.WARNING)
pipeline.start()