Initial Commit (tested training, testing, and TRT conversion)

This commit is contained in:
Lu Junjie
2024-10-20 17:01:07 +08:00
parent 86d2f311f8
commit 5738088bae
221 changed files with 59249 additions and 6 deletions

View File

@@ -0,0 +1,29 @@
# Setup catkin simple
find_package(catkin_simple REQUIRED)
catkin_simple()
add_definitions(-std=c++17)
# Library and Executables
cs_add_library(${PROJECT_NAME} ${FLIGHTLIB_SOURCES})
target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
${BLAS_LIBRARIES}
${LAPACK_LIBRARIES}
${LAPACKE_LIBRARIES}
${OpenCV_LIBRARIES}
yaml-cpp
zmq
zmqpp
)
# Build tests
if(BUILD_TESTS)
catkin_add_gtest(flightlib_tests ${FLIGHTLIB_TEST_SOURCES})
target_link_libraries(flightlib_tests ${PROJECT_NAME} gtest gtest_main)
endif()
# Finish catkin simple
cs_install()
cs_export()

View File

@@ -0,0 +1,25 @@
# Download and unpack eigen at configure time
message(STATUS "Getting Eigen...")
configure_file(
cmake/eigen_download.cmake
${PROJECT_SOURCE_DIR}/externals/eigen/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/eigen
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "Download of Eigen failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/eigen
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "Build step for eigen failed: ${result}")
endif()
message(STATUS "Eigen downloaded!")
set(EIGEN_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/externals/eigen)

View File

@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.0.0)
project(eigen-external)
include(ExternalProject)
ExternalProject_Add(eigen
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG 3.3.4
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/eigen/eigen3"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
UPDATE_DISCONNECTED ON
)

View File

@@ -0,0 +1,37 @@
# Download and unpack googletest at configure time
message(STATUS "Getting gtests...")
configure_file(cmake/gtest_download.cmake ${PROJECT_SOURCE_DIR}/externals/googletest-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/googletest-download
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/googletest-download
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()
message(STATUS "gtests downloaded!")
# Prevent overriding the parent project's compiler/linker
# settings on Windows
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
# Add googletest directly to our build. This defines
# the gtest and gtest_main targets.
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/googletest-src
${PROJECT_SOURCE_DIR}/externals/googletest-build
EXCLUDE_FROM_ALL)
# The gtest/gtest_main targets carry header search path
# dependencies automatically when using CMake 2.8.11 or
# later. Otherwise we have to add them here ourselves.
if (CMAKE_VERSION VERSION_LESS 2.8.11)
include_directories("${gtest_SOURCE_DIR}/include")
endif()

View File

@@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.0.0)
project(googletest-download NONE)
include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG main
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/googletest-src"
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
UPDATE_DISCONNECTED ON
)

View File

@@ -0,0 +1,33 @@
# Download and unpack pybind11 at configure time
message(STATUS "Getting Pybind11...")
# set(PYBIND11_PYTHON_VERSION 3.6)
set(PYBIND11_PYTHON_VERSION ${PYTHON_VERSION_STRING})
configure_file(
cmake/pybind11_download.cmake
${PROJECT_SOURCE_DIR}/externals/pybind11-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/pybind11-download
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "Cmake Step for Pybind11 failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/pybind11-download
OUTPUT_QUIET)
if(result)
message(FATAL_ERROR "Build step for eigen failed: ${result}")
endif()
message(STATUS "Pybind11 downloaded!")
set(PYBIND11_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/externals/pybind11-src/include)
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/pybind11-src
EXCLUDE_FROM_ALL)
include_directories(SYSTEM "${PROJECT_SOURCE_DIR}/externals/pybind11-src/include")

View File

@@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 3.0.0)
project(pybind11-download)
include(ExternalProject)
ExternalProject_Add(pybind11
GIT_REPOSITORY https://cf.ghproxy.cc/https://github.com/pybind/pybind11
GIT_TAG master
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/pybind11-src"
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/pybind11-bin"
CONFIGURE_COMMAND ""
CMAKE_ARGS ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
UPDATE_DISCONNECTED ON
)

View File

@@ -0,0 +1,33 @@
# Download and unpack eigen at configure time
message(STATUS "Getting yaml-cpp...")
configure_file(
cmake/yaml_download.cmake
${PROJECT_SOURCE_DIR}/externals/yaml-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/yaml-download
OUTPUT_QUIET
ERROR_QUIET)
if(result)
message(FATAL_ERROR "CMake step for yaml-cpp failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/yaml-download
OUTPUT_QUIET
ERROR_QUIET)
if(result)
message(FATAL_ERROR "Build step for yaml failed: ${result}")
endif()
message(STATUS "Yaml downloaded!")
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/yaml-src
${PROJECT_SOURCE_DIR}/externals/yaml-build
EXCLUDE_FROM_ALL)
target_compile_options(yaml-cpp PUBLIC -fPIC -w)
include_directories(SYSTEM "${PROJECT_SOURCE_DIR}/externals/yaml-src/include")
link_directories("${PROJECT_SOURCE_DIR}/externals/yaml-build")

View File

@@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.0.0)
project(yaml-download)
include(ExternalProject)
ExternalProject_Add(yaml
GIT_REPOSITORY https://cf.ghproxy.cc/https://github.com/jbeder/yaml-cpp
GIT_TAG master
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/yaml-src"
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/yaml-bin"
CONFIGURE_COMMAND ""
CMAKE_ARGS "-DBUILD_TESTING=OFF -DYAML_CPP_INSTALL=OFF"
CMAKE_CACHE_ARGS -DBUILD_TESTING:BOOL=OFF -DYAML_CPP_INSTALLC:BOOL=ON
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
UPDATE_DISCONNECTED ON
)