blob: 3427973e8153b184fdab82f4ebf77bfbb940d9e7 [file] [log] [blame]
Austin Schuhf9724442018-10-28 20:30:21 -07001load("@com_google_protobuf//:protobuf.bzl", "cc_proto_library")
Brian Silverman7a7c24d2018-09-01 17:49:09 -07002load("//aos/build:queues.bzl", "queue_library")
3load("//tools/build_rules:gtk_dependent.bzl", "gtk_dependent_cc_binary", "gtk_dependent_cc_library")
Brian Silverman2ccf8c52016-03-15 00:22:26 -04004
5queue_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -07006 name = "vision_queue",
7 srcs = [
8 "vision.q",
9 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070010 visibility = ["//visibility:public"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040011)
12
Austin Schuhf9724442018-10-28 20:30:21 -070013cc_proto_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070014 name = "vision_data",
Austin Schuhf9724442018-10-28 20:30:21 -070015 srcs = ["vision_data.proto"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040016)
17
Austin Schuhf9724442018-10-28 20:30:21 -070018cc_proto_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070019 name = "calibration",
Austin Schuhf9724442018-10-28 20:30:21 -070020 srcs = ["calibration.proto"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040021)
22
Brian Silverman7a7c24d2018-09-01 17:49:09 -070023_calibration_values_embedded_before = """
Brian Silverman2ccf8c52016-03-15 00:22:26 -040024#include "y2016/vision/stereo_geometry.h"
25
26#include <string>
27
Austin Schuhf9724442018-10-28 20:30:21 -070028#include "external/com_google_protobuf/src/google/protobuf/text_format.h"
Brian Silverman2ccf8c52016-03-15 00:22:26 -040029
30namespace y2016 {
31namespace vision {
32namespace {
33
Brian Silverman7a7c24d2018-09-01 17:49:09 -070034const ::std::string kEmbeddedContents ="""
Brian Silverman2ccf8c52016-03-15 00:22:26 -040035
Brian Silverman7a7c24d2018-09-01 17:49:09 -070036_calibration_values_embedded_after = """;
Brian Silverman2ccf8c52016-03-15 00:22:26 -040037
38} // namespace
39
40CalibrationFile EmbeddedCalibrationFile() {
41 CalibrationFile r;
42 ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
43 return r;
44}
45
46} // namespace vision
Brian Silverman7a7c24d2018-09-01 17:49:09 -070047} // namespace y2016"""
Brian Silverman2ccf8c52016-03-15 00:22:26 -040048
49genrule(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070050 name = "embed_calibration_pb",
51 srcs = [
52 "calibration.pb",
53 ],
54 outs = [
55 "stereo_geometry_embedded.cc",
56 ],
57 cmd = "\n".join([
58 "echo '%s' > $@" % _calibration_values_embedded_before,
59 "cat $(location :calibration.pb) | sed 's/\"/\\\\\"/g ; s/^/\"/g ; s/$$/\\\\n\"/g' >> $@",
60 "echo '%s' >> $@" % _calibration_values_embedded_after,
61 ]),
Brian Silverman2ccf8c52016-03-15 00:22:26 -040062)
63
64cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070065 name = "stereo_geometry",
66 srcs = [
67 "stereo_geometry.cc",
68 "stereo_geometry_embedded.cc",
69 ],
70 hdrs = [
71 "stereo_geometry.h",
72 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070073 deps = [
74 ":calibration",
John Park33858a32018-09-28 23:05:48 -070075 "//aos/logging",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070076 "//aos/vision/math:vector",
77 ],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040078)
79
Austin Schuh9d92e6b2017-10-17 01:19:38 -070080cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070081 name = "target_sender",
82 srcs = ["target_sender.cc"],
83 restricted_to = [
84 "//tools:k8",
85 "//tools:armhf-debian",
86 ],
87 deps = [
88 ":calibration",
89 ":stereo_geometry",
90 ":vision_data",
John Park33858a32018-09-28 23:05:48 -070091 "//aos/logging",
92 "//aos/logging:implementations",
Austin Schuhf9724442018-10-28 20:30:21 -070093 "//aos/time",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070094 "//aos/vision/events:epoll_events",
95 "//aos/vision/events:socket_types",
96 "//aos/vision/events:udp",
97 "//aos/vision/image:image_stream",
98 "//aos/vision/image:jpeg_routines",
99 "//aos/vision/image:reader",
100 "//y2016/vision:blob_filters",
101 ],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800102)
103
Austin Schuh9d92e6b2017-10-17 01:19:38 -0700104cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700105 name = "blob_filters",
106 srcs = ["blob_filters.cc"],
107 hdrs = ["blob_filters.h"],
108 restricted_to = [
109 "//tools:k8",
110 "//tools:armhf-debian",
111 ],
112 visibility = ["//visibility:public"],
113 deps = [
114 "//aos/vision/blob:codec",
115 "//aos/vision/blob:find_blob",
116 "//aos/vision/blob:hierarchical_contour_merge",
117 "//aos/vision/blob:range_image",
118 "//aos/vision/blob:threshold",
119 "//aos/vision/math:segment",
120 "//aos/vision/math:vector",
121 ],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800122)
123
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400124cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700125 name = "target_receiver",
126 srcs = [
127 "target_receiver.cc",
128 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700129 visibility = ["//visibility:public"],
130 deps = [
131 ":stereo_geometry",
132 ":vision_data",
133 ":vision_queue",
Austin Schuhf9724442018-10-28 20:30:21 -0700134 "//aos:init",
Austin Schuh1bf8a212019-05-26 22:13:14 -0700135 "//aos/events:shm-event-loop",
John Park33858a32018-09-28 23:05:48 -0700136 "//aos/logging",
137 "//aos/logging:queue_logging",
Austin Schuhf9724442018-10-28 20:30:21 -0700138 "//aos/mutex",
139 "//aos/time",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700140 "//aos/vision/events:udp",
141 "//frc971/control_loops/drivetrain:drivetrain_queue",
142 "//y2016:constants",
143 ],
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400144)
Parker Schuhd7db83d2017-02-08 20:49:15 -0800145
146gtk_dependent_cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700147 name = "debug_receiver",
148 srcs = ["debug_receiver.cc"],
Brian Silvermane594a182019-03-24 16:23:23 -0700149 restricted_to = [
150 "//tools:k8",
151 "//tools:armhf-debian",
152 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700153 visibility = ["//visibility:public"],
154 deps = [
155 ":blob_filters",
156 ":calibration",
157 ":stereo_geometry",
158 ":vision_data",
159 "//aos/vision/blob:codec",
160 "//aos/vision/blob:range_image",
161 "//aos/vision/blob:stream_view",
162 "//aos/vision/debug:debug_window",
163 "//aos/vision/events:epoll_events",
164 "//aos/vision/events:gtk_event",
165 "//aos/vision/events:socket_types",
166 "//aos/vision/events:tcp_client",
167 "//aos/vision/image:image_types",
168 "//aos/vision/image:jpeg_routines",
169 ],
Parker Schuhd7db83d2017-02-08 20:49:15 -0800170)