blob: 59139e16907d07fef5cb065f86000b0b35d7a57b [file] [log] [blame]
Brian Silverman2ccf8c52016-03-15 00:22:26 -04001load('/tools/build_rules/protobuf', 'proto_cc_library')
2load('/aos/build/queues', 'queue_library')
3
4queue_library(
5 name = 'vision_queue',
Austin Schuhc65b0ea2016-03-16 22:09:19 -07006 visibility = ['//visibility:public'],
Brian Silverman2ccf8c52016-03-15 00:22:26 -04007 srcs = [
8 'vision.q',
9 ],
10)
11
12proto_cc_library(
13 name = 'vision_data',
14 src = 'vision_data.proto',
15)
16
17proto_cc_library(
18 name = 'calibration',
19 src = 'calibration.proto',
20)
21
22_calibration_values_embedded_before = '''
23#include "y2016/vision/stereo_geometry.h"
24
25#include <string>
26
27#include "third_party/protobuf/src/google/protobuf/text_format.h"
28
29namespace y2016 {
30namespace vision {
31namespace {
32
33const ::std::string kEmbeddedContents ='''
34
35_calibration_values_embedded_after = ''';
36
37} // namespace
38
39CalibrationFile EmbeddedCalibrationFile() {
40 CalibrationFile r;
41 ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
42 return r;
43}
44
45} // namespace vision
46} // namespace y2016'''
47
48genrule(
49 name = 'embed_calibration_pb',
50 srcs = [
51 'calibration.pb',
52 ],
53 outs = [
54 'stereo_geometry_embedded.cc',
55 ],
56 cmd = '\n'.join([
57 'echo \'%s\' > $@' % _calibration_values_embedded_before,
58 'cat $(location :calibration.pb) | sed \'s/"/\\\\"/g ; s/^/"/g ; s/$$/\\\\n"/g\' >> $@',
59 'echo \'%s\' >> $@' % _calibration_values_embedded_after,
60 ]),
61)
62
63cc_library(
64 name = 'stereo_geometry',
65 hdrs = [
66 'stereo_geometry.h',
67 ],
68 srcs = [
69 'stereo_geometry.cc',
70 'stereo_geometry_embedded.cc',
71 ],
72 deps = [
73 ':calibration',
74 '//aos/common/logging',
75 '//aos/vision/math:vector',
76 ],
77)
78
Parker Schuh2cd173d2017-01-28 00:12:01 -080079cc_binary(name = 'target_sender',
80 srcs = ['target_sender.cc'],
81 deps = [
82 '//aos/common:time',
83 '//aos/common/logging:logging',
84 '//aos/common/logging:implementations',
85 '//aos/vision/image:reader',
86 '//aos/vision/image:jpeg_routines',
87 '//aos/vision/image:image_stream',
88 '//y2016/vision:blob_filters',
89 '//aos/vision/events:udp',
90 '//aos/vision/events:epoll_events',
91 '//aos/vision/events:socket_types',
92 ':stereo_geometry',
93 ':vision_data',
94 ':calibration',
95 ]
96)
97
98cc_library(name = "blob_filters",
99 srcs = ["blob_filters.cc"],
100 hdrs = ["blob_filters.h"],
101 deps = [
102 "//aos/vision/math:vector",
103 "//aos/vision/math:segment",
104 "//aos/vision/blob:range_image",
105 "//aos/vision/blob:threshold",
106 "//aos/vision/blob:find_blob",
107 "//aos/vision/blob:hierarchical_contour_merge",
108 "//aos/vision/blob:codec",
109 ],
110)
111
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400112cc_binary(
113 name = 'target_receiver',
114 srcs = [
115 'target_receiver.cc',
116 ],
Austin Schuhc65b0ea2016-03-16 22:09:19 -0700117 visibility = ['//visibility:public'],
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400118 deps = [
119 '//aos/common/logging',
120 '//aos/common/logging:queue_logging',
121 '//aos/linux_code:init',
122 '//aos/common:time',
123 '//aos/vision/events:udp',
124 ':vision_queue',
125 ':vision_data',
126 ':stereo_geometry',
127 '//y2016:constants',
Brian Silvermanbc831182016-04-16 02:06:09 -0400128 '//frc971/control_loops/drivetrain:drivetrain_queue',
129 '//aos/common:mutex',
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400130 ],
131)