Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 3.10)

project(BOS CXX C CUDA)

set(CMAKE_CXX_STANDARD 20)
Expand All @@ -10,19 +11,17 @@ set(CMAKE_CUDA_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_ARCHITECTURES 87)
set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20")
set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20")
set(CMAKE_CUDA_FLAGS "--expt-relaxed-constexpr")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

option(ENABLE_CLANG_TIDY "Enable clang-tidy for static analysis" ON)

include_directories(/usr/local/cuda/include)
link_directories(/usr/local/cuda/lib64)

find_package(wpilib REQUIRED)
find_package(OpenCV REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(vpi REQUIRED)
find_package(CUDAToolkit REQUIRED)

add_subdirectory(third_party/json)
add_subdirectory(third_party/971apriltag)
Expand Down
8 changes: 7 additions & 1 deletion scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,11 @@ if [ "$(pwd)" != "/bos" ]; then
cp -r constants /bos
fi
git submodule update --init --progress --depth 1
cmake -DENABLE_CLANG_TIDY=OFF -DCMAKE_BUILD_TYPE=Release -B "$BUILD_DIR" -G Ninja .
ARCH=$(uname -m)
echo "$ARCH"
if [[ "$ARCH" == "x86_64" ]]; then
cmake -DENABLE_CLANG_TIDY=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B "$BUILD_DIR" -G Ninja .
else
cmake -DENABLE_CLANG_TIDY=OFF -DCMAKE_BUILD_TYPE=Release -B "$BUILD_DIR" -G Ninja .
fi
cmake --build "$BUILD_DIR"
14 changes: 1 addition & 13 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,7 @@ add_subdirectory(gamepiece)
add_subdirectory(localization)
add_subdirectory(calibration)
add_subdirectory(yolo)
add_subdirectory(test)
add_subdirectory(pathing)

add_executable(main_bot_main main_bot_main.cc)
target_link_libraries(main_bot_main PRIVATE camera localization utils)

add_executable(second_bot_main second_bot_main.cc)
target_link_libraries(second_bot_main PRIVATE camera localization utils)

add_executable(unambiguous_second unambiguous_second.cc)
target_link_libraries(unambiguous_second PRIVATE ${OpenCV_LIBS} apriltag ntcore camera nlohmann_json::nlohmann_json Eigen3::Eigen localization utils)

add_executable(unambiguous_first unambiguous_first.cc)
target_link_libraries(unambiguous_first PRIVATE ${OpenCV_LIBS} apriltag ntcore camera nlohmann_json::nlohmann_json Eigen3::Eigen localization utils)
add_subdirectory(test)

set(CMAKE_CXX_CLANG_TIDY "")
2 changes: 1 addition & 1 deletion src/localization/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)

add_library(localization gpu_apriltag_detector.cc opencv_apriltag_detector.cc run_localization.cc nvidia_apriltag_detector.cc square_solver.cc joint_solver.cc multi_tag_solver.cc position_receiver.cc unambiguous_estimator.cc simulation_sender.cc networktable_sender.cc)
target_link_libraries(localization PUBLIC 971apriltag utils camera wpilibc wpiutil vpi absl::status)
target_link_libraries(localization PUBLIC 971apriltag utils camera wpilibc wpiutil absl::status)
2 changes: 1 addition & 1 deletion src/localization/gpu_apriltag_detector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ auto GPUAprilTagDetector::GetTagDetections(
try {
CHECK(timestamped_frame.frame.channels() == 3);
cv::Mat gray;
cv::cvtColor(timestamped_frame.frame, gray, cv::COLOR_BGR2YUV_YUY2);
cv::cvtColor(timestamped_frame.frame, gray, cv::COLOR_BGR2YUV_YUYV);
cv::Mat mat_ = ToMat(gray);
absl::Status detection_status = gpu_detector_->Detect(mat_.data, nullptr);
if (!detection_status.ok()) {
Expand Down
7 changes: 4 additions & 3 deletions src/test/integration_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ target_link_libraries(apriltag_detect_test PRIVATE cscore camera localization ut
add_executable(intrinsics_test intrinsics_test.cc)
target_link_libraries(intrinsics_test PRIVATE camera utils)

add_executable(yolo_test yolo_test.cc)
target_link_libraries(yolo_test PRIVATE camera yolo utils)

add_executable(path_plan_test path_plan_test.cc)
target_link_libraries(path_plan_test PRIVATE utils)

Expand All @@ -27,3 +24,7 @@ target_link_libraries(networktable_performance_test PRIVATE utils localization)

add_executable(pva_test pva_test.cc)
target_link_libraries(pva_test PRIVATE utils localization vpi)

find_package(CUDAToolkit REQUIRED)
add_executable(yolo_test yolo_test.cc)
target_link_libraries(yolo_test PRIVATE camera yolo utils CUDA::cudart)
4 changes: 1 addition & 3 deletions src/test/unit_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ add_executable(general_solver_test general_solver_test.cc)
target_link_libraries(general_solver_test PRIVATE localization utils GTest::gtest_main)

add_executable(matrix matrix.cc)
target_link_libraries(matrix PRIVATE localization utils GTest::gtest_main)
target_link_libraries(matrix PRIVATE localization utils GTest::gtest_main CUDA::cudart)

include(GoogleTest)
gtest_discover_tests(multi_tag_test)
gtest_discover_tests(square_solve_test)
2 changes: 1 addition & 1 deletion src/utils/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
add_library(utils timer.cc nt_utils.cc camera_utils.cc log.cc constants_from_json.cc transform.cc)
target_link_libraries(utils PUBLIC wpilibc nlohmann_json::nlohmann_json absl::log absl::check absl::flags absl::flags_parse apriltag ntcore vpi)
target_link_libraries(utils PUBLIC wpilibc nlohmann_json::nlohmann_json absl::log absl::check absl::flags absl::flags_parse apriltag ntcore)

if(!ENABLE_CLANG_TIDY)
target_precompile_headers(utils PUBLIC pch.h)
Expand Down
4 changes: 3 additions & 1 deletion src/yolo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
find_package(CUDAToolkit REQUIRED)
add_library(yolo yolo.cc)
target_link_libraries(yolo PRIVATE nvinfer nvinfer_plugin cudart utils)
target_link_libraries(yolo PRIVATE nvinfer nvinfer_plugin CUDA::cudart utils)

7 changes: 4 additions & 3 deletions src/yolo/yolo.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
#include <cmath>
#include <iomanip>
#include <iostream>
#include <opencv2/core/cuda.hpp>
#include <opencv2/cudaarithm.hpp>
#include <opencv2/opencv.hpp>
#include <ostream>
#include <vector>
#include "opencv2/cudawarping.hpp"
#include "src/utils/pch.h"
#include <opencv2/core/cuda.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/cudawarping.hpp>
#include <opencv2/cudaarithm.hpp>

namespace yolo {
auto loadEngineFile(const std::string& filename) -> std::vector<char> {
Expand Down
18 changes: 8 additions & 10 deletions third_party/971apriltag/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
cmake_minimum_required(VERSION 3.10)

include_directories(. /usr/local/cuda/include ${OpenCV_INCLUDE_DIRS})
add_compile_options(-march=armv8-a+simd)

find_package(wpilib REQUIRED)
enable_language(CUDA)

include_directories(. ${OpenCV_INCLUDE_DIRS})

add_library(971apriltag_dep)
target_sources(971apriltag_dep
Expand All @@ -15,12 +10,11 @@ target_sources(971apriltag_dep
set_target_properties(971apriltag_dep PROPERTIES LINKER_LANGUAGE C)

add_library(971apriltag_cuda_dep cuda.cc)
target_link_libraries(971apriltag_cuda_dep PUBLIC apriltag absl::log absl::check 971apriltag_dep cudart)
target_link_libraries(971apriltag_cuda_dep PUBLIC apriltag absl::log absl::check 971apriltag_dep)
set_source_files_properties(threshold.cc PROPERTIES LANGUAGE CUDA)


add_library(971apriltag_threshold_dep threshold.cc fatal_neon_threshold.cc)
target_link_libraries(971apriltag_threshold_dep PUBLIC apriltag absl::log absl::check 971apriltag_dep)
target_link_libraries(971apriltag_threshold_dep PUBLIC absl::log absl::check 971apriltag_dep)

add_library(971apriltag
apriltag.cc
Expand All @@ -30,9 +24,13 @@ add_library(971apriltag
points.cc
)

target_link_libraries(971apriltag PUBLIC apriltag 971apriltag_cuda_dep 971apriltag_threshold_dep absl::log absl::check absl::status 971apriltag_dep)
target_link_libraries(971apriltag PUBLIC apriltag 971apriltag_cuda_dep 971apriltag_threshold_dep absl::log absl::check absl::status 971apriltag_dep CUDA::cudart CUDA::cudart_static)
set_source_files_properties(labeling_allegretti_2019_BKE.cc apriltag_detect.cc apriltag.cc line_fit_filter.cc points.cc PROPERTIES LANGUAGE CUDA)

add_executable(test test.cc)
target_link_libraries(test PRIVATE CUDA::cudart)
set_source_files_properties(test.cc PROPERTIES LANGUAGE CUDA)

target_compile_options(971apriltag PRIVATE -w)
target_compile_options(971apriltag_dep PRIVATE -w)
target_compile_options(971apriltag_threshold_dep PRIVATE -w)
Loading
Loading