blob: a26c5075d9a3144cab52a4ef3087ac97d2906245 [file] [log] [blame]
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_py_library", "flatbuffer_ts_library")
load("@npm//@bazel/typescript:index.bzl", "ts_library")
flatbuffer_cc_library(
name = "calibration_fbs",
srcs = ["calibration.fbs"],
gen_reflections = 1,
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
)
flatbuffer_ts_library(
name = "calibration_ts_fbs",
srcs = ["calibration.fbs"],
target_compatible_with = ["@platforms//os:linux"],
)
flatbuffer_py_library(
name = "calibration_fbs_python",
srcs = [
"calibration.fbs",
],
namespace = "frc971.vision.calibration",
tables = [
"CalibrationData",
"CameraCalibration",
"TransformationMatrix",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
ts_library(
name = "vision_plotter",
srcs = ["vision_plotter.ts"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = [
":target_estimate_ts_fbs",
"//aos:configuration_ts_fbs",
"//aos/network/www:aos_plotter",
"//aos/network/www:colors",
"//aos/network/www:proxy",
"//aos/network/www:reflection_ts",
"@com_github_google_flatbuffers//reflection:reflection_ts_fbs",
"@com_github_google_flatbuffers//ts:flatbuffers_ts",
],
)
py_library(
name = "camera_definition",
srcs = [
"camera_definition.py",
],
deps = [
"//external:python-glog",
],
)
py_binary(
name = "create_calib_file",
srcs = [
"create_calib_file.py",
],
args = [
"calibration_data.h",
],
data = glob(["calib_files/*.json"]),
target_compatible_with = ["@platforms//os:linux"],
deps = [
":camera_definition",
"//external:python-glog",
"//y2022/vision:calibration_fbs_python",
"@bazel_tools//tools/python/runfiles",
"@opencv_contrib_nonfree_amd64//:python_opencv",
],
)
genrule(
name = "run_calibration_data",
outs = [
"calibration_data.h",
],
cmd = " ".join([
"$(location :create_calib_file)",
"$(location calibration_data.h)",
]),
target_compatible_with = ["@platforms//os:linux"],
tools = [
":create_calib_file",
],
)
cc_library(
name = "calibration_data",
hdrs = [
"calibration_data.h",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = [
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "camera_reader_lib",
srcs = [
"camera_reader.cc",
],
hdrs = [
"camera_reader.h",
"gpio.h",
],
data = [
"//y2022:aos_config",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":blob_detector_lib",
":calibration_data",
":calibration_fbs",
":geometry_lib",
":target_estimate_fbs",
":target_estimator_lib",
"//aos:flatbuffer_merge",
"//aos/events:event_loop",
"//aos/events:shm_event_loop",
"//aos/network:team_number",
"//frc971/vision:v4l2_reader",
"//frc971/vision:vision_fbs",
"//third_party:opencv",
"//y2022/localizer:localizer_output_fbs",
],
)
cc_binary(
name = "camera_reader",
srcs = [
"camera_reader_main.cc",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":camera_reader_lib",
"//aos:init",
"//aos/events:shm_event_loop",
],
)
cc_library(
name = "geometry_lib",
hdrs = [
"geometry.h",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
"//aos/util:math",
"//third_party:opencv",
"@com_github_google_glog//:glog",
],
)
cc_test(
name = "geometry_test",
srcs = [
"geometry_test.cc",
],
deps = [
":geometry_lib",
"//aos/testing:googletest",
],
)
cc_library(
name = "blob_detector_lib",
srcs = [
"blob_detector.cc",
],
hdrs = [
"blob_detector.h",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":geometry_lib",
"//aos/network:team_number",
"//aos/time",
"//third_party:opencv",
],
)
cc_library(
name = "target_estimator_lib",
srcs = [
"target_estimator.cc",
],
hdrs = [
"target_estimator.h",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":blob_detector_lib",
":calibration_fbs",
":target_estimate_fbs",
"//aos/logging",
"//aos/time",
"//frc971/control_loops:quaternion_utils",
"//third_party:opencv",
"//y2022:constants",
"@com_google_absl//absl/strings:str_format",
"@com_google_ceres_solver//:ceres",
"@org_tuxfamily_eigen//:eigen",
],
)
flatbuffer_cc_library(
name = "target_estimate_fbs",
srcs = ["target_estimate.fbs"],
gen_reflections = 1,
includes = [
":calibration_fbs_includes",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
)
flatbuffer_ts_library(
name = "target_estimate_ts_fbs",
srcs = ["target_estimate.fbs"],
target_compatible_with = ["@platforms//os:linux"],
deps = [
":calibration_ts_fbs",
],
)
cc_binary(
name = "viewer",
srcs = [
"viewer.cc",
],
data = [
"//y2022:aos_config",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":blob_detector_lib",
":calibration_data",
":target_estimator_lib",
"//aos:init",
"//aos/events:shm_event_loop",
"//frc971/vision:vision_fbs",
"//third_party:opencv",
],
)
cc_binary(
name = "viewer_replay",
srcs = [
"viewer_replay.cc",
],
data = [
"//y2022:aos_config",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
":blob_detector_lib",
"//aos:init",
"//aos/events:simulated_event_loop",
"//aos/events/logging:log_reader",
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops:profiled_subsystem_fbs",
"//frc971/control_loops/drivetrain:drivetrain_status_fbs",
"//frc971/input:joystick_state_fbs",
"//frc971/vision:vision_fbs",
"//third_party:opencv",
"//y2022/control_loops/superstructure:superstructure_status_fbs",
],
)
cc_binary(
name = "extrinsics_calibration",
srcs = [
"extrinsics_calibration.cc",
],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2022:__subpackages__"],
deps = [
"//aos:init",
"//aos/events/logging:log_reader",
"//frc971/control_loops:profiled_subsystem_fbs",
"//frc971/vision:extrinsics_calibration",
"//y2022/control_loops/superstructure:superstructure_status_fbs",
],
)
cc_binary(
name = "image_decimator",
srcs = ["image_decimator.cc"],
visibility = ["//y2022:__subpackages__"],
deps = [
"//aos:flatbuffers",
"//aos:init",
"//aos/events:shm_event_loop",
"//frc971/vision:vision_fbs",
],
)