Skip to content
Merged
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
13 changes: 12 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
cmake_minimum_required(VERSION 3.10)

if(POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif()
Comment on lines +3 to +5

if(POLICY CMP0146)
# Keep compatibility with packages that still use FindCUDA.
cmake_policy(SET CMP0146 OLD)
endif()

set(CMAKE_CUDA_COMPILER "/usr/local/cuda-12.6/bin/nvcc")

project(BOS CXX C CUDA)
Expand All @@ -22,6 +31,8 @@ option(ENABLE_CLANG_TIDY "Enable clang-tidy for static analysis" ON)
include_directories(/usr/local/cuda/include)
link_directories(/usr/local/cuda/lib64)

add_compile_options(-march=armv8-a+simd)

find_package(wpilib REQUIRED)
find_package(OpenCV REQUIRED)
find_package(Eigen3 REQUIRED)
Expand All @@ -36,9 +47,9 @@ include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
)
FetchContent_MakeAvailable(googletest)

add_compile_options(-Wno-psabi)
add_subdirectory(src)

1 change: 1 addition & 0 deletions Testing/Temporary/CTestCostData.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
3 changes: 3 additions & 0 deletions Testing/Temporary/LastTest.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Start testing: May 20 04:14 UTC
----------------------------------------------------------
End testing: May 20 04:14 UTC
2 changes: 1 addition & 1 deletion scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ else
fi

git submodule update --init --progress --depth 1
cmake -DENABLE_CLANG_TIDY=OFF -DCMAKE_BUILD_TYPE=Release -B "$BUILD_DIR" -G Ninja .
cmake -Wno-dev -DENABLE_CLANG_TIDY=OFF -DCMAKE_BUILD_TYPE=Release -B "$BUILD_DIR" -G Ninja .
cmake --build "$BUILD_DIR"
13 changes: 1 addition & 12 deletions scripts/run_tests.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
#!/bin/bash

DIR="build/src/test/unit_test"
FAILED=0

for file in "$DIR"/*; do
if [[ -x "$file" && -f "$file" ]]; then
echo "Running $file"
"$file" || FAILED=1
fi
done

exit $FAILED

ctest --test-dir build/src/test/unit_test --output-on-failure
11 changes: 6 additions & 5 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16...4.0)


include_directories(${CMAKE_SOURCE_DIR})

Expand All @@ -22,15 +23,15 @@ 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 pathing)
target_link_libraries(main_bot_main PRIVATE utils localization pathing camera)

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

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)
target_link_libraries(unambiguous_second PRIVATE utils localization pathing camera)

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 pathing)
target_link_libraries(unambiguous_first PRIVATE utils localization pathing camera)

set(CMAKE_CXX_CLANG_TIDY "")
36 changes: 29 additions & 7 deletions src/calibration/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,33 @@
cmake_minimum_required(VERSION 3.10)

add_executable(intrinsics_calibrate intrinsics_calibrate.cc intrinsics_calibrate_lib.cc)
target_link_libraries(intrinsics_calibrate PRIVATE camera utils)
add_executable(IntrinsicsCalibrate intrinsics_calibrate.cc intrinsics_calibrate_lib.cc)
target_sources(IntrinsicsCalibrate
PRIVATE
intrinsics_calibrate.cc
intrinsics_calibrate_lib.cc
)
Comment on lines +1 to +6
target_link_libraries(IntrinsicsCalibrate
PRIVATE
camera
utils
)

add_executable(frame_shower frame_shower.cc)
target_link_libraries(frame_shower PRIVATE camera utils)
target_sources(frame_shower
PRIVATE
frame_shower.cc
)
target_link_libraries(frame_shower
PRIVATE
camera
utils
)

add_executable(focus_calibrate focus_calibrate.cc)
target_link_libraries(focus_calibrate PRIVATE camera utils)

target_sources(focus_calibrate
PRIVATE
focus_calibrate.cc
)
target_link_libraries(focus_calibrate
PRIVATE
camera
utils
)
92 changes: 89 additions & 3 deletions src/camera/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,89 @@
add_library(camera cscore_streamer.cc disk_camera.cc cv_camera.cc select_camera.cc camera_source.cc write_frame.cc camera_constants.cc multi_camera_source.cc)
target_sources(camera PRIVATE uvc_camera.cc)
target_link_libraries(camera PRIVATE utils absl::status uvc)
add_library(CscoreStreamer)
target_sources(CscoreStreamer
PRIVATE
cscore_streamer.cc
)
target_link_libraries(CscoreStreamer PRIVATE
utils
)

add_library(DiskCamera)
target_sources(DiskCamera
PRIVATE
disk_camera.cc
)
target_link_libraries(DiskCamera PRIVATE
utils
)

add_library(CvCamera)
target_sources(CvCamera
PRIVATE
cv_camera.cc
write_frame.cc
write_frame.cc
)
target_link_libraries(CvCamera PRIVATE
utils
)

add_library(SelectCamera)
target_sources(SelectCamera
PRIVATE
select_camera.cc
)
target_link_libraries(SelectCamera PRIVATE
DiskCamera
CvCamera
utils
)

add_library(CameraSource)
target_sources(CameraSource
PRIVATE
camera_source.cc
)
target_link_libraries(CameraSource PRIVATE
utils
)

add_library(CameraConstants)
target_sources(CameraConstants
PRIVATE
camera_constants.cc
)
target_link_libraries(CameraConstants PRIVATE
utils
)

add_library(MultiCameraSource)
target_sources(MultiCameraSource
PRIVATE
multi_camera_source.cc
)
target_link_libraries(MultiCameraSource PRIVATE
utils
)

add_library(UVCCamera)
target_sources(UVCCamera
PRIVATE
uvc_camera.cc
)
target_link_libraries(UVCCamera PRIVATE
uvc
absl::status
utils
Comment on lines +73 to +76
)

add_library(camera INTERFACE)
target_link_libraries(camera INTERFACE
CscoreStreamer
DiskCamera
CvCamera
SelectCamera
CameraSource
CameraConstants
MultiCameraSource
UVCCamera
)
117 changes: 113 additions & 4 deletions src/localization/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,114 @@
cmake_minimum_required(VERSION 3.10)
add_library(GPUApriltagDetector)
target_sources(GPUApriltagDetector
PRIVATE
gpu_apriltag_detector.cc
)
target_link_libraries(GPUApriltagDetector PRIVATE
971apriltag
utils
)
Comment on lines +1 to +9

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_sources(localization PRIVATE multi_camera_detector.cc)
target_link_libraries(localization PUBLIC 971apriltag utils camera wpilibc wpiutil vpi absl::status)
add_library(OpencvApriltagDetector)
target_sources(OpencvApriltagDetector
PRIVATE
opencv_apriltag_detector.cc
)
target_link_libraries(OpencvApriltagDetector PRIVATE
utils
)

add_library(NvidiaApriltagDetector)
target_sources(NvidiaApriltagDetector
PRIVATE
nvidia_apriltag_detector.cc
)
target_link_libraries(NvidiaApriltagDetector PRIVATE
utils
)

add_library(SquareSolver)
target_sources(SquareSolver
PRIVATE
square_solver.cc
)
target_link_libraries(SquareSolver PRIVATE
utils
)

add_library(JointSolver)
target_sources(JointSolver
PRIVATE
joint_solver.cc
)
target_link_libraries(JointSolver PRIVATE
utils
)

add_library(MultitagSolver)
target_sources(MultitagSolver
PRIVATE
multi_tag_solver.cc
)
target_link_libraries(MultitagSolver PRIVATE
utils
SquareSolver
)

add_library(PositionReceiver)
target_sources(PositionReceiver
PRIVATE
position_receiver.cc
)
target_link_libraries(PositionReceiver PRIVATE
utils
)

add_library(UnambiguousEstimator)
target_sources(UnambiguousEstimator
PRIVATE
unambiguous_estimator.cc
)
target_link_libraries(UnambiguousEstimator PRIVATE
SquareSolver
MultitagSolver
utils
)

add_library(SimulationSender)
target_sources(SimulationSender
PRIVATE
simulation_sender.cc
)
target_link_libraries(SimulationSender PRIVATE
utils
)

add_library(NetworktableSender)
target_sources(NetworktableSender
PRIVATE
networktable_sender.cc
)
target_link_libraries(NetworktableSender PRIVATE
utils
)

add_library(localization)
target_sources(localization
PRIVATE
run_localization.cc
multi_camera_detector.cc
)
target_link_libraries(localization PRIVATE
GPUApriltagDetector
OpencvApriltagDetector
NvidiaApriltagDetector
SquareSolver
JointSolver
MultitagSolver
PositionReceiver
UnambiguousEstimator
SimulationSender
NetworktableSender
utils
camera
)
Comment on lines +95 to +114
12 changes: 10 additions & 2 deletions src/pathing/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
add_library(pathing pathfinding.cc splines.cc controller.cc)
target_link_libraries(pathing PUBLIC wpilibc wpiutil ntcore nlohmann_json::nlohmann_json utils localization ${OpenCV_LIBS})
add_library(pathing)
target_sources(pathing PRIVATE
pathfinding.cc
splines.cc
controller.cc
)
target_link_libraries(pathing PRIVATE
utils
localization
)
5 changes: 4 additions & 1 deletion src/test/unit_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
include(GoogleTest)
enable_testing()

add_executable(joint_solve_test joint_solve_test.cc)
Expand All @@ -18,6 +19,8 @@ target_link_libraries(matrix PRIVATE localization utils GTest::gtest_main)
add_executable(pathing_test pathing_test.cc)
target_link_libraries(pathing_test PRIVATE pathing utils nlohmann_json::nlohmann_json GTest::gtest_main)

include(GoogleTest)
gtest_discover_tests(joint_solve_test)
gtest_discover_tests(multi_tag_test)
gtest_discover_tests(square_solve_test)
gtest_discover_tests(general_solver_test)
# gtest_discover_tests(pathing_test)
23 changes: 21 additions & 2 deletions src/utils/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
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)
add_library(utils)
target_sources(utils
PRIVATE
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
)

if(!ENABLE_CLANG_TIDY)
target_precompile_headers(utils PUBLIC pch.h)
Expand Down
Loading
Loading