blob: c4d472b558116dcf679a4c389105c51abae7a99a [file] [log] [blame]
Austin Schuhf9724442018-10-28 20:30:21 -07001load("@com_google_protobuf//:protobuf.bzl", "cc_proto_library")
Alex Perrycb7da4b2019-08-28 19:35:56 -07002load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Brian Silverman7a7c24d2018-09-01 17:49:09 -07003load("//tools/build_rules:gtk_dependent.bzl", "gtk_dependent_cc_binary", "gtk_dependent_cc_library")
Brian Silverman2ccf8c52016-03-15 00:22:26 -04004
Alex Perrycb7da4b2019-08-28 19:35:56 -07005flatbuffer_cc_library(
6 name = "vision_fbs",
Brian Silverman7a7c24d2018-09-01 17:49:09 -07007 srcs = [
Alex Perrycb7da4b2019-08-28 19:35:56 -07008 "vision.fbs",
Brian Silverman7a7c24d2018-09-01 17:49:09 -07009 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070010 gen_reflections = 1,
Brian Silverman7a7c24d2018-09-01 17:49:09 -070011 visibility = ["//visibility:public"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040012)
13
Austin Schuhf9724442018-10-28 20:30:21 -070014cc_proto_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070015 name = "vision_data",
Austin Schuhf9724442018-10-28 20:30:21 -070016 srcs = ["vision_data.proto"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040017)
18
Austin Schuhf9724442018-10-28 20:30:21 -070019cc_proto_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070020 name = "calibration",
Austin Schuhf9724442018-10-28 20:30:21 -070021 srcs = ["calibration.proto"],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040022)
23
Brian Silverman7a7c24d2018-09-01 17:49:09 -070024_calibration_values_embedded_before = """
Brian Silverman2ccf8c52016-03-15 00:22:26 -040025#include "y2016/vision/stereo_geometry.h"
26
27#include <string>
28
Austin Schuhf9724442018-10-28 20:30:21 -070029#include "external/com_google_protobuf/src/google/protobuf/text_format.h"
Brian Silverman2ccf8c52016-03-15 00:22:26 -040030
31namespace y2016 {
32namespace vision {
33namespace {
34
Brian Silverman7a7c24d2018-09-01 17:49:09 -070035const ::std::string kEmbeddedContents ="""
Brian Silverman2ccf8c52016-03-15 00:22:26 -040036
Brian Silverman7a7c24d2018-09-01 17:49:09 -070037_calibration_values_embedded_after = """;
Brian Silverman2ccf8c52016-03-15 00:22:26 -040038
39} // namespace
40
41CalibrationFile EmbeddedCalibrationFile() {
42 CalibrationFile r;
43 ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
44 return r;
45}
46
47} // namespace vision
Brian Silverman7a7c24d2018-09-01 17:49:09 -070048} // namespace y2016"""
Brian Silverman2ccf8c52016-03-15 00:22:26 -040049
50genrule(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070051 name = "embed_calibration_pb",
52 srcs = [
53 "calibration.pb",
54 ],
55 outs = [
56 "stereo_geometry_embedded.cc",
57 ],
58 cmd = "\n".join([
59 "echo '%s' > $@" % _calibration_values_embedded_before,
60 "cat $(location :calibration.pb) | sed 's/\"/\\\\\"/g ; s/^/\"/g ; s/$$/\\\\n\"/g' >> $@",
61 "echo '%s' >> $@" % _calibration_values_embedded_after,
62 ]),
Brian Silverman2ccf8c52016-03-15 00:22:26 -040063)
64
65cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070066 name = "stereo_geometry",
67 srcs = [
68 "stereo_geometry.cc",
69 "stereo_geometry_embedded.cc",
70 ],
71 hdrs = [
72 "stereo_geometry.h",
73 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070074 deps = [
75 ":calibration",
John Park33858a32018-09-28 23:05:48 -070076 "//aos/logging",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070077 "//aos/vision/math:vector",
78 ],
Brian Silverman2ccf8c52016-03-15 00:22:26 -040079)
80
Austin Schuh9d92e6b2017-10-17 01:19:38 -070081cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070082 name = "target_sender",
83 srcs = ["target_sender.cc"],
84 restricted_to = [
85 "//tools:k8",
86 "//tools:armhf-debian",
87 ],
88 deps = [
89 ":calibration",
90 ":stereo_geometry",
91 ":vision_data",
John Park33858a32018-09-28 23:05:48 -070092 "//aos/logging",
93 "//aos/logging:implementations",
Austin Schuhf9724442018-10-28 20:30:21 -070094 "//aos/time",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070095 "//aos/vision/events:epoll_events",
96 "//aos/vision/events:socket_types",
97 "//aos/vision/events:udp",
98 "//aos/vision/image:image_stream",
99 "//aos/vision/image:jpeg_routines",
100 "//aos/vision/image:reader",
101 "//y2016/vision:blob_filters",
102 ],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800103)
104
Austin Schuh9d92e6b2017-10-17 01:19:38 -0700105cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700106 name = "blob_filters",
107 srcs = ["blob_filters.cc"],
108 hdrs = ["blob_filters.h"],
109 restricted_to = [
110 "//tools:k8",
111 "//tools:armhf-debian",
112 ],
113 visibility = ["//visibility:public"],
114 deps = [
115 "//aos/vision/blob:codec",
116 "//aos/vision/blob:find_blob",
117 "//aos/vision/blob:hierarchical_contour_merge",
118 "//aos/vision/blob:range_image",
119 "//aos/vision/blob:threshold",
120 "//aos/vision/math:segment",
121 "//aos/vision/math:vector",
122 ],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800123)
124
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400125cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700126 name = "target_receiver",
127 srcs = [
128 "target_receiver.cc",
129 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700130 visibility = ["//visibility:public"],
131 deps = [
132 ":stereo_geometry",
133 ":vision_data",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700134 ":vision_fbs",
Austin Schuhf9724442018-10-28 20:30:21 -0700135 "//aos:init",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700136 "//aos/events:shm_event_loop",
John Park33858a32018-09-28 23:05:48 -0700137 "//aos/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",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700141 "//frc971/control_loops:control_loops_fbs",
142 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700143 "//y2016:constants",
144 ],
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400145)
Parker Schuhd7db83d2017-02-08 20:49:15 -0800146
147gtk_dependent_cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700148 name = "debug_receiver",
149 srcs = ["debug_receiver.cc"],
Brian Silvermane594a182019-03-24 16:23:23 -0700150 restricted_to = [
151 "//tools:k8",
152 "//tools:armhf-debian",
153 ],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700154 visibility = ["//visibility:public"],
155 deps = [
156 ":blob_filters",
157 ":calibration",
158 ":stereo_geometry",
159 ":vision_data",
160 "//aos/vision/blob:codec",
161 "//aos/vision/blob:range_image",
162 "//aos/vision/blob:stream_view",
163 "//aos/vision/debug:debug_window",
164 "//aos/vision/events:epoll_events",
165 "//aos/vision/events:gtk_event",
166 "//aos/vision/events:socket_types",
167 "//aos/vision/events:tcp_client",
168 "//aos/vision/image:image_types",
169 "//aos/vision/image:jpeg_routines",
170 ],
Parker Schuhd7db83d2017-02-08 20:49:15 -0800171)