diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ececf4c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.14) +project(odomety VERSION 0.1.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +include(GNUInstallDirs) + +find_package(Boost REQUIRED) + +add_library(odom_differential + src/odom_differential.cpp +) +target_include_directories(odom_differential + PUBLIC + $ + $ + ${Boost_INCLUDE_DIRS} +) +target_compile_options(odom_differential PRIVATE -Wall -Wextra -Wpedantic) + +add_executable(odomety_demo + src/main.cpp +) +target_link_libraries(odomety_demo PRIVATE odom_differential) +target_compile_options(odomety_demo PRIVATE -Wall -Wextra -Wpedantic) + +enable_testing() + +add_executable(odomety_test + test/odom_differential_test.cpp +) +target_link_libraries(odomety_test PRIVATE odom_differential) +target_compile_options(odomety_test PRIVATE -Wall -Wextra -Wpedantic) + +add_test(NAME odom_differential_test COMMAND odomety_test) + +# --------------------------------------------------------------------------- +# Install +# --------------------------------------------------------------------------- +install(TARGETS odom_differential odomety_demo + EXPORT odometyTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp" +) + +install(EXPORT odometyTargets + FILE odometyTargets.cmake + NAMESPACE odomety:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/odomety +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/odometyConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/odometyConfig.cmake" +"include(CMakeFindDependencyMacro) +find_dependency(Boost REQUIRED) +include(\"\${CMAKE_CURRENT_LIST_DIR}/odometyTargets.cmake\") +") + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/odometyConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/odometyConfigVersion.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/odomety +) diff --git a/README.md b/README.md index 690e932..23a6874 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,135 @@ # odomety +Thư viện C++ ước lượng odometry cho robot **differential drive** (2 bánh chủ động). + +Từ vận tốc góc bánh xe, **encoder ticks**, hoặc lệnh `v`/`ω`, thư viện tích phân pose 2D `(x, y, θ)` và vận tốc `(v, ω)` theo thời gian. + +## Tính năng + +- Cập nhật từ vận tốc góc bánh trái/phải `[rad/s]` +- Cập nhật từ cumulative encoder ticks (`Encoder_Measurement`-style) +- Cập nhật trực tiếp từ lệnh tuyến tính/góc `[m/s]`, `[rad/s]` +- Tích phân exact (và Runge–Kutta bậc 2 khi gần đi thẳng) +- Làm mượt vận tốc bằng rolling mean (Boost Accumulators) +- Demo và unit test kèm theo + +## Yêu cầu + +- CMake ≥ 3.14 +- C++17 +- Boost (header: Accumulators, Function) + +## Cấu trúc + +``` +odomety/ +├── include/odometry/odom_differential.h +├── src/odom_differential.cpp +├── src/main.cpp # demo +├── test/odom_differential_test.cpp +└── CMakeLists.txt +``` + +## Build + +```bash +cd odomety +cmake -S . -B build +cmake --build build +``` + +Chạy demo: + +```bash +./build/odomety_demo +``` + +Chạy test: + +```bash +cd build && ctest --output-on-failure +# hoặc +./build/odomety_test +``` + +## Cài đặt (tùy chọn) + +```bash +sudo cmake --install build --prefix /path/to/install +``` + +Trong project khác: + +```cmake +find_package(odomety REQUIRED) +target_link_libraries(your_target PRIVATE odomety::odom_differential) +``` + +## Cách dùng + +### Từ vận tốc bánh + +```cpp +#include + +differential::Odometry odom(/*velocity_rolling_window_size=*/10); + +odom.setWheelParams( + /*wheel_separation=*/0.5, // [m] + /*left_wheel_radius=*/0.09, // [m] + /*right_wheel_radius=*/0.09 // [m] +); + +odom.init(/*time_sec=*/t0); +odom.updateWheel(left_omega, right_omega, t); // [rad/s] +``` + +### Từ encoder ticks (khuyến nghị khi có đếm xung) + +```cpp +odom.setWheelParams(0.5, 0.09, 0.09); +odom.setEncoderParams(/*ticks_per_revolution=*/4096); // phía bánh, sau gearbox +odom.init(t0); + +// Cumulative tick counts (unwrap overflow về int64 monotonic trước khi gọi) +odom.updateTicks(left_ticks, right_ticks, t); // lần đầu chỉ seed, trả về false + +double x = odom.getX(); +double y = odom.getY(); +double yaw = odom.getHeading(); +double v = odom.getLinear(); +double w = odom.getAngular(); +``` + +Công thức nội bộ mỗi bước: + +- `Δs_L/R = 2π · r_L/R · Δn_L/R / N_L/R` +- `Δs = (Δs_L + Δs_R) / 2` +- `Δθ = (Δs_R − Δs_L) / b` + +### Từ lệnh vận tốc (open-loop) + +```cpp +odom.updateOdom(linear_mps, angular_rps, t); +``` + +## API chính + +| Hàm | Mô tả | +|---|---| +| `init(time)` | Reset pose/vận tốc/tick seed và gắn timestamp | +| `setWheelParams(sep, r_l, r_r)` | Khoảng cách bánh và bán kính | +| `setEncoderParams(N)` / `setEncoderParams(N_l, N_r)` | CPR phía bánh | +| `updateWheel(ω_l, ω_r, time)` | Cập nhật từ vận tốc góc bánh | +| `updateTicks(n_l, n_r, time)` | Cập nhật từ cumulative encoder ticks | +| `updateOdom(v, ω, time)` | Cập nhật từ lệnh vận tốc | +| `getX/Y/Heading/Linear/Angular()` | Đọc trạng thái hiện tại | + +## Ghi chú + +- `updateWheel` / `updateTicks` trả về `false` nếu `dt < 0.0001` s. +- `updateTicks`: lần gọi đầu sau `init` chỉ lưu tick trước đó (seed), không tích phân. +- `updateTicks` trả về `false` nếu chưa gọi `setEncoderParams` (CPR ≤ 0). +- Tick phải là đếm **phía bánh** (sau gearbox). Overflow counter phần cứng cần unwrap về `int64` monotonic. +- Đơn vị thời gian là giây (epoch hoặc monotonic, miễn nhất quán). +- Pose mặc định sau `init`: `(0, 0, 0)`. diff --git a/Testing/Temporary/CTestCostData.txt b/Testing/Temporary/CTestCostData.txt new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/Testing/Temporary/CTestCostData.txt @@ -0,0 +1 @@ +--- diff --git a/Testing/Temporary/LastTest.log b/Testing/Temporary/LastTest.log new file mode 100644 index 0000000..0785b72 --- /dev/null +++ b/Testing/Temporary/LastTest.log @@ -0,0 +1,3 @@ +Start testing: Jul 13 13:27 +07 +---------------------------------------------------------- +End testing: Jul 13 13:27 +07 diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..d4b56d9 --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,436 @@ +# This is the CMakeCache file. +# For build in directory: /home/robotics/HiepLM/odomety/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//The directory containing a CMake configuration file for Boost. +Boost_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0 + +//Path to a file. +Boost_INCLUDE_DIR:PATH=/usr/include + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH= + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=etc + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=odomety + +//Value Computed by CMake +CMAKE_PROJECT_VERSION:STATIC=0.1.0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MAJOR:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MINOR:STATIC=1 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_PATCH:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_TWEAK:STATIC= + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//The directory containing a CMake configuration file for boost_headers. +boost_headers_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0 + +//Value Computed by CMake +odomety_BINARY_DIR:STATIC=/home/robotics/HiepLM/odomety/build + +//Value Computed by CMake +odomety_SOURCE_DIR:STATIC=/home/robotics/HiepLM/odomety + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: Boost_DIR +Boost_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/robotics/HiepLM/odomety/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=16 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/robotics/HiepLM/odomety +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.16 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding Boost +FIND_PACKAGE_MESSAGE_DETAILS_Boost:INTERNAL=[/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake][c ][v1.71.0()] +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local +//ADVANCED property for variable: boost_headers_DIR +boost_headers_DIR-ADVANCED:INTERNAL=1 + diff --git a/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..5e64670 --- /dev/null +++ b/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake @@ -0,0 +1,88 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "11.4.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..15e5c0f Binary files /dev/null and b/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/build/CMakeFiles/3.16.3/CMakeSystem.cmake b/build/CMakeFiles/3.16.3/CMakeSystem.cmake new file mode 100644 index 0000000..8b384d4 --- /dev/null +++ b/build/CMakeFiles/3.16.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.15.0-139-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.15.0-139-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-5.15.0-139-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "5.15.0-139-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..69cfdba --- /dev/null +++ b/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,660 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out b/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out new file mode 100755 index 0000000..b1cfa74 Binary files /dev/null and b/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out differ diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..2e09231 --- /dev/null +++ b/build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/robotics/HiepLM/odomety") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robotics/HiepLM/odomety/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/CMakeFiles/CMakeOutput.log b/build/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..af4f275 --- /dev/null +++ b/build/CMakeFiles/CMakeOutput.log @@ -0,0 +1,240 @@ +The system is: Linux - 5.15.0-139-generic - x86_64 +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/robotics/HiepLM/odomety/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out" + +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_36e2e/fast && /usr/bin/make -f CMakeFiles/cmTC_36e2e.dir/build.make CMakeFiles/cmTC_36e2e.dir/build +make[1]: Entering directory '/home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_36e2e.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_36e2e.dir/testCXXCompiler.cxx.o -c /home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_36e2e +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_36e2e.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_36e2e.dir/testCXXCompiler.cxx.o -o cmTC_36e2e +make[1]: Leaving directory '/home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp' + + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_cde80/fast && /usr/bin/make -f CMakeFiles/cmTC_cde80.dir/build.make CMakeFiles/cmTC_cde80.dir/build +make[1]: Entering directory '/home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -v -o CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-2ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-2ubuntu1~20.04) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_cde80.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccrimoRq.s +GNU C++17 (Ubuntu 11.4.0-2ubuntu1~20.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++17 (Ubuntu 11.4.0-2ubuntu1~20.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 9a55a23eecc346a189dae569855eff82 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/' + as -v --64 -o CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccrimoRq.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.' +Linking CXX executable cmTC_cde80 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cde80.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_cde80 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-2ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-2ubuntu1~20.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_cde80' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_cde80.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cctPT9qQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_cde80 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_cde80' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_cde80.' +make[1]: Leaving directory '/home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp' + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/11] + add: [/usr/include/x86_64-linux-gnu/c++/11] + add: [/usr/include/c++/11/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/11/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11] + collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_cde80/fast && /usr/bin/make -f CMakeFiles/cmTC_cde80.dir/build.make CMakeFiles/cmTC_cde80.dir/build] + ignore line: [make[1]: Entering directory '/home/robotics/HiepLM/odomety/build/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-2ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-2ubuntu1~20.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_cde80.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccrimoRq.s] + ignore line: [GNU C++17 (Ubuntu 11.4.0-2ubuntu1~20.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++17 (Ubuntu 11.4.0-2ubuntu1~20.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 9a55a23eecc346a189dae569855eff82] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccrimoRq.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_cde80] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cde80.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_cde80 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-2ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-PfdVzN/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-2ubuntu1~20.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_cde80' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_cde80.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cctPT9qQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_cde80 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cctPT9qQ.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_cde80] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [CMakeFiles/cmTC_cde80.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + diff --git a/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets-noconfig.cmake b/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets-noconfig.cmake new file mode 100644 index 0000000..32a0659 --- /dev/null +++ b/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets-noconfig.cmake @@ -0,0 +1,28 @@ +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Import target "odomety::odom_differential" for configuration "" +set_property(TARGET odomety::odom_differential APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(odomety::odom_differential PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libodom_differential.a" + ) + +list(APPEND _IMPORT_CHECK_TARGETS odomety::odom_differential ) +list(APPEND _IMPORT_CHECK_FILES_FOR_odomety::odom_differential "${_IMPORT_PREFIX}/lib/libodom_differential.a" ) + +# Import target "odomety::odomety_demo" for configuration "" +set_property(TARGET odomety::odomety_demo APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(odomety::odomety_demo PROPERTIES + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/bin/odomety_demo" + ) + +list(APPEND _IMPORT_CHECK_TARGETS odomety::odomety_demo ) +list(APPEND _IMPORT_CHECK_FILES_FOR_odomety::odomety_demo "${_IMPORT_PREFIX}/bin/odomety_demo" ) + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) diff --git a/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets.cmake b/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets.cmake new file mode 100644 index 0000000..351ebbc --- /dev/null +++ b/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets.cmake @@ -0,0 +1,101 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) + message(FATAL_ERROR "CMake >= 2.6.0 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.6) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_targetsDefined) +set(_targetsNotDefined) +set(_expectedTargets) +foreach(_expectedTarget odomety::odom_differential odomety::odomety_demo) + list(APPEND _expectedTargets ${_expectedTarget}) + if(NOT TARGET ${_expectedTarget}) + list(APPEND _targetsNotDefined ${_expectedTarget}) + endif() + if(TARGET ${_expectedTarget}) + list(APPEND _targetsDefined ${_expectedTarget}) + endif() +endforeach() +if("${_targetsDefined}" STREQUAL "${_expectedTargets}") + unset(_targetsDefined) + unset(_targetsNotDefined) + unset(_expectedTargets) + set(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT "${_targetsDefined}" STREQUAL "") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n") +endif() +unset(_targetsDefined) +unset(_targetsNotDefined) +unset(_expectedTargets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target odomety::odom_differential +add_library(odomety::odom_differential STATIC IMPORTED) + +set_target_properties(odomety::odom_differential PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;/usr/include;${_IMPORT_PREFIX}/include" +) + +# Create imported target odomety::odomety_demo +add_executable(odomety::odomety_demo IMPORTED) + +set_target_properties(odomety::odomety_demo PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" +) + +# Load information for each installed configuration. +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/odometyTargets-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(target ${_IMPORT_CHECK_TARGETS} ) + foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} ) + if(NOT EXISTS "${file}" ) + message(FATAL_ERROR "The imported target \"${target}\" references the file + \"${file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + unset(_IMPORT_CHECK_FILES_FOR_${target}) +endforeach() +unset(_IMPORT_CHECK_TARGETS) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..dcfc424 --- /dev/null +++ b/build/CMakeFiles/Makefile.cmake @@ -0,0 +1,59 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.16.3/CMakeSystem.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfigVersion.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config.cmake" + "/usr/share/cmake-3.16/Modules/BasicConfigVersion-SameMajorVersion.cmake.in" + "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakePackageConfigHelpers.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.16/Modules/FindBoost.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.16/Modules/GNUInstallDirs.cmake" + "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake" + "/usr/share/cmake-3.16/Modules/WriteBasicConfigVersionFile.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "odometyConfigVersion.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/odomety_test.dir/DependInfo.cmake" + "CMakeFiles/odomety_demo.dir/DependInfo.cmake" + "CMakeFiles/odom_differential.dir/DependInfo.cmake" + ) diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 new file mode 100644 index 0000000..901dcd9 --- /dev/null +++ b/build/CMakeFiles/Makefile2 @@ -0,0 +1,164 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robotics/HiepLM/odomety + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robotics/HiepLM/odomety/build + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/odomety_test.dir/all +all: CMakeFiles/odomety_demo.dir/all +all: CMakeFiles/odom_differential.dir/all + +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: + +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/odomety_test.dir/clean +clean: CMakeFiles/odomety_demo.dir/clean +clean: CMakeFiles/odom_differential.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/odomety_test.dir + +# All Build rule for target. +CMakeFiles/odomety_test.dir/all: CMakeFiles/odom_differential.dir/all + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/depend + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=5,6 "Built target odomety_test" +.PHONY : CMakeFiles/odomety_test.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/odomety_test.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/odomety_test.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 0 +.PHONY : CMakeFiles/odomety_test.dir/rule + +# Convenience name for target. +odomety_test: CMakeFiles/odomety_test.dir/rule + +.PHONY : odomety_test + +# clean rule for target. +CMakeFiles/odomety_test.dir/clean: + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/clean +.PHONY : CMakeFiles/odomety_test.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/odomety_demo.dir + +# All Build rule for target. +CMakeFiles/odomety_demo.dir/all: CMakeFiles/odom_differential.dir/all + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/depend + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=3,4 "Built target odomety_demo" +.PHONY : CMakeFiles/odomety_demo.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/odomety_demo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/odomety_demo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 0 +.PHONY : CMakeFiles/odomety_demo.dir/rule + +# Convenience name for target. +odomety_demo: CMakeFiles/odomety_demo.dir/rule + +.PHONY : odomety_demo + +# clean rule for target. +CMakeFiles/odomety_demo.dir/clean: + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/clean +.PHONY : CMakeFiles/odomety_demo.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/odom_differential.dir + +# All Build rule for target. +CMakeFiles/odom_differential.dir/all: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/depend + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=1,2 "Built target odom_differential" +.PHONY : CMakeFiles/odom_differential.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/odom_differential.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/odom_differential.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 0 +.PHONY : CMakeFiles/odom_differential.dir/rule + +# Convenience name for target. +odom_differential: CMakeFiles/odom_differential.dir/rule + +.PHONY : odom_differential + +# clean rule for target. +CMakeFiles/odom_differential.dir/clean: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/clean +.PHONY : CMakeFiles/odom_differential.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..2b1c2dd --- /dev/null +++ b/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,10 @@ +/home/robotics/HiepLM/odomety/build/CMakeFiles/install/strip.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/install/local.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/install.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/list_install_components.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/rebuild_cache.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_test.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_demo.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/edit_cache.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/test.dir +/home/robotics/HiepLM/odomety/build/CMakeFiles/odom_differential.dir diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/odom_differential.dir/CXX.includecache b/build/CMakeFiles/odom_differential.dir/CXX.includecache new file mode 100644 index 0000000..eb2f9b0 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/CXX.includecache @@ -0,0 +1,30 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../include/odometry/odom_differential.h +cstdint +- +math.h +- +boost/accumulators/accumulators.hpp +- +boost/accumulators/statistics/stats.hpp +- +boost/accumulators/statistics/rolling_mean.hpp +- +boost/function.hpp +- + +/home/robotics/HiepLM/odomety/src/odom_differential.cpp +functional +- +iostream +- +odometry/odom_differential.h +- + diff --git a/build/CMakeFiles/odom_differential.dir/DependInfo.cmake b/build/CMakeFiles/odom_differential.dir/DependInfo.cmake new file mode 100644 index 0000000..87695db --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/DependInfo.cmake @@ -0,0 +1,21 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/robotics/HiepLM/odomety/src/odom_differential.cpp" "/home/robotics/HiepLM/odomety/build/CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/odom_differential.dir/build.make b/build/CMakeFiles/odom_differential.dir/build.make new file mode 100644 index 0000000..b33c1e3 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robotics/HiepLM/odomety + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robotics/HiepLM/odomety/build + +# Include any dependencies generated for this target. +include CMakeFiles/odom_differential.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/odom_differential.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/odom_differential.dir/flags.make + +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o: CMakeFiles/odom_differential.dir/flags.make +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o: ../src/odom_differential.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o -c /home/robotics/HiepLM/odomety/src/odom_differential.cpp + +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/odom_differential.dir/src/odom_differential.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robotics/HiepLM/odomety/src/odom_differential.cpp > CMakeFiles/odom_differential.dir/src/odom_differential.cpp.i + +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/odom_differential.dir/src/odom_differential.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robotics/HiepLM/odomety/src/odom_differential.cpp -o CMakeFiles/odom_differential.dir/src/odom_differential.cpp.s + +# Object files for target odom_differential +odom_differential_OBJECTS = \ +"CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o" + +# External object files for target odom_differential +odom_differential_EXTERNAL_OBJECTS = + +libodom_differential.a: CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o +libodom_differential.a: CMakeFiles/odom_differential.dir/build.make +libodom_differential.a: CMakeFiles/odom_differential.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library libodom_differential.a" + $(CMAKE_COMMAND) -P CMakeFiles/odom_differential.dir/cmake_clean_target.cmake + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/odom_differential.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/odom_differential.dir/build: libodom_differential.a + +.PHONY : CMakeFiles/odom_differential.dir/build + +CMakeFiles/odom_differential.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/odom_differential.dir/cmake_clean.cmake +.PHONY : CMakeFiles/odom_differential.dir/clean + +CMakeFiles/odom_differential.dir/depend: + cd /home/robotics/HiepLM/odomety/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build/CMakeFiles/odom_differential.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/odom_differential.dir/depend + diff --git a/build/CMakeFiles/odom_differential.dir/cmake_clean.cmake b/build/CMakeFiles/odom_differential.dir/cmake_clean.cmake new file mode 100644 index 0000000..961075c --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o" + "libodom_differential.a" + "libodom_differential.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/odom_differential.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/odom_differential.dir/cmake_clean_target.cmake b/build/CMakeFiles/odom_differential.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..48fb94e --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libodom_differential.a" +) diff --git a/build/CMakeFiles/odom_differential.dir/depend.internal b/build/CMakeFiles/odom_differential.dir/depend.internal new file mode 100644 index 0000000..dd30056 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/depend.internal @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o + ../include/odometry/odom_differential.h + /home/robotics/HiepLM/odomety/src/odom_differential.cpp diff --git a/build/CMakeFiles/odom_differential.dir/depend.make b/build/CMakeFiles/odom_differential.dir/depend.make new file mode 100644 index 0000000..e816bcb --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/depend.make @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o: ../include/odometry/odom_differential.h +CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o: ../src/odom_differential.cpp + diff --git a/build/CMakeFiles/odom_differential.dir/flags.make b/build/CMakeFiles/odom_differential.dir/flags.make new file mode 100644 index 0000000..19759b8 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -Wall -Wextra -Wpedantic -std=c++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/robotics/HiepLM/odomety/include + diff --git a/build/CMakeFiles/odom_differential.dir/link.txt b/build/CMakeFiles/odom_differential.dir/link.txt new file mode 100644 index 0000000..bb9db00 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc libodom_differential.a CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o +/usr/bin/ranlib libodom_differential.a diff --git a/build/CMakeFiles/odom_differential.dir/progress.make b/build/CMakeFiles/odom_differential.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/build/CMakeFiles/odom_differential.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/build/CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o b/build/CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o new file mode 100644 index 0000000..3f39253 Binary files /dev/null and b/build/CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o differ diff --git a/build/CMakeFiles/odomety_demo.dir/CXX.includecache b/build/CMakeFiles/odomety_demo.dir/CXX.includecache new file mode 100644 index 0000000..a5bad5d --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/CXX.includecache @@ -0,0 +1,32 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../include/odometry/odom_differential.h +cstdint +- +math.h +- +boost/accumulators/accumulators.hpp +- +boost/accumulators/statistics/stats.hpp +- +boost/accumulators/statistics/rolling_mean.hpp +- +boost/function.hpp +- + +/home/robotics/HiepLM/odomety/src/main.cpp +iostream +- +odometry/odom_differential.h +- +chrono +- +thread +- + diff --git a/build/CMakeFiles/odomety_demo.dir/DependInfo.cmake b/build/CMakeFiles/odomety_demo.dir/DependInfo.cmake new file mode 100644 index 0000000..41ea74a --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/DependInfo.cmake @@ -0,0 +1,22 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/robotics/HiepLM/odomety/src/main.cpp" "/home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_demo.dir/src/main.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/robotics/HiepLM/odomety/build/CMakeFiles/odom_differential.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/odomety_demo.dir/build.make b/build/CMakeFiles/odomety_demo.dir/build.make new file mode 100644 index 0000000..37310d5 --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robotics/HiepLM/odomety + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robotics/HiepLM/odomety/build + +# Include any dependencies generated for this target. +include CMakeFiles/odomety_demo.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/odomety_demo.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/odomety_demo.dir/flags.make + +CMakeFiles/odomety_demo.dir/src/main.cpp.o: CMakeFiles/odomety_demo.dir/flags.make +CMakeFiles/odomety_demo.dir/src/main.cpp.o: ../src/main.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/odomety_demo.dir/src/main.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/odomety_demo.dir/src/main.cpp.o -c /home/robotics/HiepLM/odomety/src/main.cpp + +CMakeFiles/odomety_demo.dir/src/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/odomety_demo.dir/src/main.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robotics/HiepLM/odomety/src/main.cpp > CMakeFiles/odomety_demo.dir/src/main.cpp.i + +CMakeFiles/odomety_demo.dir/src/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/odomety_demo.dir/src/main.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robotics/HiepLM/odomety/src/main.cpp -o CMakeFiles/odomety_demo.dir/src/main.cpp.s + +# Object files for target odomety_demo +odomety_demo_OBJECTS = \ +"CMakeFiles/odomety_demo.dir/src/main.cpp.o" + +# External object files for target odomety_demo +odomety_demo_EXTERNAL_OBJECTS = + +odomety_demo: CMakeFiles/odomety_demo.dir/src/main.cpp.o +odomety_demo: CMakeFiles/odomety_demo.dir/build.make +odomety_demo: libodom_differential.a +odomety_demo: CMakeFiles/odomety_demo.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable odomety_demo" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/odomety_demo.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/odomety_demo.dir/build: odomety_demo + +.PHONY : CMakeFiles/odomety_demo.dir/build + +CMakeFiles/odomety_demo.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/odomety_demo.dir/cmake_clean.cmake +.PHONY : CMakeFiles/odomety_demo.dir/clean + +CMakeFiles/odomety_demo.dir/depend: + cd /home/robotics/HiepLM/odomety/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_demo.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/odomety_demo.dir/depend + diff --git a/build/CMakeFiles/odomety_demo.dir/cmake_clean.cmake b/build/CMakeFiles/odomety_demo.dir/cmake_clean.cmake new file mode 100644 index 0000000..a9699ca --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/odomety_demo.dir/src/main.cpp.o" + "odomety_demo" + "odomety_demo.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/odomety_demo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/odomety_demo.dir/depend.internal b/build/CMakeFiles/odomety_demo.dir/depend.internal new file mode 100644 index 0000000..492003e --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/depend.internal @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odomety_demo.dir/src/main.cpp.o + ../include/odometry/odom_differential.h + /home/robotics/HiepLM/odomety/src/main.cpp diff --git a/build/CMakeFiles/odomety_demo.dir/depend.make b/build/CMakeFiles/odomety_demo.dir/depend.make new file mode 100644 index 0000000..e614606 --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/depend.make @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odomety_demo.dir/src/main.cpp.o: ../include/odometry/odom_differential.h +CMakeFiles/odomety_demo.dir/src/main.cpp.o: ../src/main.cpp + diff --git a/build/CMakeFiles/odomety_demo.dir/flags.make b/build/CMakeFiles/odomety_demo.dir/flags.make new file mode 100644 index 0000000..19759b8 --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -Wall -Wextra -Wpedantic -std=c++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/robotics/HiepLM/odomety/include + diff --git a/build/CMakeFiles/odomety_demo.dir/link.txt b/build/CMakeFiles/odomety_demo.dir/link.txt new file mode 100644 index 0000000..ee047cc --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ CMakeFiles/odomety_demo.dir/src/main.cpp.o -o odomety_demo libodom_differential.a diff --git a/build/CMakeFiles/odomety_demo.dir/progress.make b/build/CMakeFiles/odomety_demo.dir/progress.make new file mode 100644 index 0000000..8c8fb6f --- /dev/null +++ b/build/CMakeFiles/odomety_demo.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_2 = 4 + diff --git a/build/CMakeFiles/odomety_demo.dir/src/main.cpp.o b/build/CMakeFiles/odomety_demo.dir/src/main.cpp.o new file mode 100644 index 0000000..f498737 Binary files /dev/null and b/build/CMakeFiles/odomety_demo.dir/src/main.cpp.o differ diff --git a/build/CMakeFiles/odomety_test.dir/CXX.includecache b/build/CMakeFiles/odomety_test.dir/CXX.includecache new file mode 100644 index 0000000..963a951 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/CXX.includecache @@ -0,0 +1,32 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../include/odometry/odom_differential.h +cstdint +- +math.h +- +boost/accumulators/accumulators.hpp +- +boost/accumulators/statistics/stats.hpp +- +boost/accumulators/statistics/rolling_mean.hpp +- +boost/function.hpp +- + +/home/robotics/HiepLM/odomety/test/odom_differential_test.cpp +cmath +- +cstdlib +- +iostream +- +odometry/odom_differential.h +- + diff --git a/build/CMakeFiles/odomety_test.dir/DependInfo.cmake b/build/CMakeFiles/odomety_test.dir/DependInfo.cmake new file mode 100644 index 0000000..bc8621b --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/DependInfo.cmake @@ -0,0 +1,22 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/robotics/HiepLM/odomety/test/odom_differential_test.cpp" "/home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/robotics/HiepLM/odomety/build/CMakeFiles/odom_differential.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/odomety_test.dir/build.make b/build/CMakeFiles/odomety_test.dir/build.make new file mode 100644 index 0000000..dfd1bf4 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robotics/HiepLM/odomety + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robotics/HiepLM/odomety/build + +# Include any dependencies generated for this target. +include CMakeFiles/odomety_test.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/odomety_test.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/odomety_test.dir/flags.make + +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o: CMakeFiles/odomety_test.dir/flags.make +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o: ../test/odom_differential_test.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o -c /home/robotics/HiepLM/odomety/test/odom_differential_test.cpp + +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robotics/HiepLM/odomety/test/odom_differential_test.cpp > CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.i + +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robotics/HiepLM/odomety/test/odom_differential_test.cpp -o CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.s + +# Object files for target odomety_test +odomety_test_OBJECTS = \ +"CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o" + +# External object files for target odomety_test +odomety_test_EXTERNAL_OBJECTS = + +odomety_test: CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o +odomety_test: CMakeFiles/odomety_test.dir/build.make +odomety_test: libodom_differential.a +odomety_test: CMakeFiles/odomety_test.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/robotics/HiepLM/odomety/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable odomety_test" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/odomety_test.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/odomety_test.dir/build: odomety_test + +.PHONY : CMakeFiles/odomety_test.dir/build + +CMakeFiles/odomety_test.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/odomety_test.dir/cmake_clean.cmake +.PHONY : CMakeFiles/odomety_test.dir/clean + +CMakeFiles/odomety_test.dir/depend: + cd /home/robotics/HiepLM/odomety/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build /home/robotics/HiepLM/odomety/build/CMakeFiles/odomety_test.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/odomety_test.dir/depend + diff --git a/build/CMakeFiles/odomety_test.dir/cmake_clean.cmake b/build/CMakeFiles/odomety_test.dir/cmake_clean.cmake new file mode 100644 index 0000000..4a700a5 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o" + "odomety_test" + "odomety_test.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/odomety_test.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/odomety_test.dir/depend.internal b/build/CMakeFiles/odomety_test.dir/depend.internal new file mode 100644 index 0000000..a0c9773 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/depend.internal @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o + ../include/odometry/odom_differential.h + /home/robotics/HiepLM/odomety/test/odom_differential_test.cpp diff --git a/build/CMakeFiles/odomety_test.dir/depend.make b/build/CMakeFiles/odomety_test.dir/depend.make new file mode 100644 index 0000000..11e5bb2 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/depend.make @@ -0,0 +1,6 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o: ../include/odometry/odom_differential.h +CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o: ../test/odom_differential_test.cpp + diff --git a/build/CMakeFiles/odomety_test.dir/flags.make b/build/CMakeFiles/odomety_test.dir/flags.make new file mode 100644 index 0000000..19759b8 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -Wall -Wextra -Wpedantic -std=c++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/robotics/HiepLM/odomety/include + diff --git a/build/CMakeFiles/odomety_test.dir/link.txt b/build/CMakeFiles/odomety_test.dir/link.txt new file mode 100644 index 0000000..21927ff --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o -o odomety_test libodom_differential.a diff --git a/build/CMakeFiles/odomety_test.dir/progress.make b/build/CMakeFiles/odomety_test.dir/progress.make new file mode 100644 index 0000000..3a86673 --- /dev/null +++ b/build/CMakeFiles/odomety_test.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 5 +CMAKE_PROGRESS_2 = 6 + diff --git a/build/CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o b/build/CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o new file mode 100644 index 0000000..6d88e3d Binary files /dev/null and b/build/CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o differ diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +6 diff --git a/build/CTestTestfile.cmake b/build/CTestTestfile.cmake new file mode 100644 index 0000000..e10ab9d --- /dev/null +++ b/build/CTestTestfile.cmake @@ -0,0 +1,8 @@ +# CMake generated Testfile for +# Source directory: /home/robotics/HiepLM/odomety +# Build directory: /home/robotics/HiepLM/odomety/build +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(odom_differential_test "/home/robotics/HiepLM/odomety/build/odomety_test") +set_tests_properties(odom_differential_test PROPERTIES _BACKTRACE_TRIPLES "/home/robotics/HiepLM/odomety/CMakeLists.txt;37;add_test;/home/robotics/HiepLM/odomety/CMakeLists.txt;0;") diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..8842e49 --- /dev/null +++ b/build/Makefile @@ -0,0 +1,328 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robotics/HiepLM/odomety + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robotics/HiepLM/odomety/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test + +.PHONY : test/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles /home/robotics/HiepLM/odomety/build/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robotics/HiepLM/odomety/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named odomety_test + +# Build rule for target. +odomety_test: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 odomety_test +.PHONY : odomety_test + +# fast build rule for target. +odomety_test/fast: + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/build +.PHONY : odomety_test/fast + +#============================================================================= +# Target rules for targets named odomety_demo + +# Build rule for target. +odomety_demo: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 odomety_demo +.PHONY : odomety_demo + +# fast build rule for target. +odomety_demo/fast: + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/build +.PHONY : odomety_demo/fast + +#============================================================================= +# Target rules for targets named odom_differential + +# Build rule for target. +odom_differential: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 odom_differential +.PHONY : odom_differential + +# fast build rule for target. +odom_differential/fast: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/build +.PHONY : odom_differential/fast + +src/main.o: src/main.cpp.o + +.PHONY : src/main.o + +# target to build an object file +src/main.cpp.o: + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/src/main.cpp.o +.PHONY : src/main.cpp.o + +src/main.i: src/main.cpp.i + +.PHONY : src/main.i + +# target to preprocess a source file +src/main.cpp.i: + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/src/main.cpp.i +.PHONY : src/main.cpp.i + +src/main.s: src/main.cpp.s + +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.cpp.s: + $(MAKE) -f CMakeFiles/odomety_demo.dir/build.make CMakeFiles/odomety_demo.dir/src/main.cpp.s +.PHONY : src/main.cpp.s + +src/odom_differential.o: src/odom_differential.cpp.o + +.PHONY : src/odom_differential.o + +# target to build an object file +src/odom_differential.cpp.o: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/src/odom_differential.cpp.o +.PHONY : src/odom_differential.cpp.o + +src/odom_differential.i: src/odom_differential.cpp.i + +.PHONY : src/odom_differential.i + +# target to preprocess a source file +src/odom_differential.cpp.i: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/src/odom_differential.cpp.i +.PHONY : src/odom_differential.cpp.i + +src/odom_differential.s: src/odom_differential.cpp.s + +.PHONY : src/odom_differential.s + +# target to generate assembly for a file +src/odom_differential.cpp.s: + $(MAKE) -f CMakeFiles/odom_differential.dir/build.make CMakeFiles/odom_differential.dir/src/odom_differential.cpp.s +.PHONY : src/odom_differential.cpp.s + +test/odom_differential_test.o: test/odom_differential_test.cpp.o + +.PHONY : test/odom_differential_test.o + +# target to build an object file +test/odom_differential_test.cpp.o: + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.o +.PHONY : test/odom_differential_test.cpp.o + +test/odom_differential_test.i: test/odom_differential_test.cpp.i + +.PHONY : test/odom_differential_test.i + +# target to preprocess a source file +test/odom_differential_test.cpp.i: + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.i +.PHONY : test/odom_differential_test.cpp.i + +test/odom_differential_test.s: test/odom_differential_test.cpp.s + +.PHONY : test/odom_differential_test.s + +# target to generate assembly for a file +test/odom_differential_test.cpp.s: + $(MAKE) -f CMakeFiles/odomety_test.dir/build.make CMakeFiles/odomety_test.dir/test/odom_differential_test.cpp.s +.PHONY : test/odom_differential_test.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... install/local" + @echo "... install" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... odomety_test" + @echo "... odomety_demo" + @echo "... edit_cache" + @echo "... test" + @echo "... odom_differential" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" + @echo "... src/odom_differential.o" + @echo "... src/odom_differential.i" + @echo "... src/odom_differential.s" + @echo "... test/odom_differential_test.o" + @echo "... test/odom_differential_test.i" + @echo "... test/odom_differential_test.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/Testing/Temporary/CTestCostData.txt b/build/Testing/Temporary/CTestCostData.txt new file mode 100644 index 0000000..1faa4e1 --- /dev/null +++ b/build/Testing/Temporary/CTestCostData.txt @@ -0,0 +1,2 @@ +odom_differential_test 2 0.000749667 +--- diff --git a/build/Testing/Temporary/LastTest.log b/build/Testing/Temporary/LastTest.log new file mode 100644 index 0000000..91ed8d8 --- /dev/null +++ b/build/Testing/Temporary/LastTest.log @@ -0,0 +1,19 @@ +Start testing: Jul 22 10:27 +07 +---------------------------------------------------------- +1/1 Testing: odom_differential_test +1/1 Test: odom_differential_test +Command: "/home/robotics/HiepLM/odomety/build/odomety_test" +Directory: /home/robotics/HiepLM/odomety/build +"odom_differential_test" start time: Jul 22 10:27 +07 +Output: +---------------------------------------------------------- +All tests passed. + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"odom_differential_test" end time: Jul 22 10:27 +07 +"odom_differential_test" time elapsed: 00:00:00 +---------------------------------------------------------- + +End testing: Jul 22 10:27 +07 diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake new file mode 100644 index 0000000..86b64ee --- /dev/null +++ b/build/cmake_install.cmake @@ -0,0 +1,99 @@ +# Install script for directory: /home/robotics/HiepLM/odomety + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/home/robotics/HiepLM/odomety/build/libodom_differential.a") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/robotics/HiepLM/odomety/build/odomety_demo") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/odomety_demo") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/home/robotics/HiepLM/odomety/include/" FILES_MATCHING REGEX "/[^/]*\\.h$" REGEX "/[^/]*\\.hpp$") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety/odometyTargets.cmake") + file(DIFFERENT EXPORT_FILE_CHANGED FILES + "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety/odometyTargets.cmake" + "/home/robotics/HiepLM/odomety/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets.cmake") + if(EXPORT_FILE_CHANGED) + file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety/odometyTargets-*.cmake") + if(OLD_CONFIG_FILES) + message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety/odometyTargets.cmake\" will be replaced. Removing files [${OLD_CONFIG_FILES}].") + file(REMOVE ${OLD_CONFIG_FILES}) + endif() + endif() + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety" TYPE FILE FILES "/home/robotics/HiepLM/odomety/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets.cmake") + if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^()$") + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety" TYPE FILE FILES "/home/robotics/HiepLM/odomety/build/CMakeFiles/Export/lib/cmake/odomety/odometyTargets-noconfig.cmake") + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/odomety" TYPE FILE FILES + "/home/robotics/HiepLM/odomety/build/odometyConfig.cmake" + "/home/robotics/HiepLM/odomety/build/odometyConfigVersion.cmake" + ) +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/robotics/HiepLM/odomety/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/build/install_manifest.txt b/build/install_manifest.txt new file mode 100644 index 0000000..f848f73 --- /dev/null +++ b/build/install_manifest.txt @@ -0,0 +1,7 @@ +/usr/local/lib/libodom_differential.a +/usr/local/bin/odomety_demo +/usr/local/include/odometry/odom_differential.h +/usr/local/lib/cmake/odomety/odometyTargets.cmake +/usr/local/lib/cmake/odomety/odometyTargets-noconfig.cmake +/usr/local/lib/cmake/odomety/odometyConfig.cmake +/usr/local/lib/cmake/odomety/odometyConfigVersion.cmake \ No newline at end of file diff --git a/build/libodom_differential.a b/build/libodom_differential.a new file mode 100644 index 0000000..391acdf Binary files /dev/null and b/build/libodom_differential.a differ diff --git a/build/odometyConfig.cmake b/build/odometyConfig.cmake new file mode 100644 index 0000000..f22f211 --- /dev/null +++ b/build/odometyConfig.cmake @@ -0,0 +1,3 @@ +include(CMakeFindDependencyMacro) +find_dependency(Boost REQUIRED) +include("${CMAKE_CURRENT_LIST_DIR}/odometyTargets.cmake") diff --git a/build/odometyConfigVersion.cmake b/build/odometyConfigVersion.cmake new file mode 100644 index 0000000..6d8dd2a --- /dev/null +++ b/build/odometyConfigVersion.cmake @@ -0,0 +1,51 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, +# but only if the requested major version is the same as the current one. +# The variable CVF_VERSION must be set before calling configure_file(). + + +set(PACKAGE_VERSION "0.1.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if("0.1.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") + else() + set(CVF_VERSION_MAJOR "0.1.0") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() + + +# if the installed project requested no architecture check, don't perform the check +if("FALSE") + return() +endif() + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/build/odomety_demo b/build/odomety_demo new file mode 100755 index 0000000..00dfee7 Binary files /dev/null and b/build/odomety_demo differ diff --git a/build/odomety_test b/build/odomety_test new file mode 100755 index 0000000..9eeb16d Binary files /dev/null and b/build/odomety_test differ diff --git a/include/odometry/odom_differential.h b/include/odometry/odom_differential.h new file mode 100644 index 0000000..03f7c2f --- /dev/null +++ b/include/odometry/odom_differential.h @@ -0,0 +1,204 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace differential +{ + namespace bacc = boost::accumulators; + + /** + * \brief The Odometry class handles odometry readings + * (2D pose and velocity with related timestamp) + */ + class Odometry + { + public: + + /// Integration function, used to integrate the odometry: + typedef boost::function IntegrationFunction; + + /** + * \brief Constructor + * Timestamp will get the current time value + * Value will be set to zero + * \param velocity_rolling_window_size Rolling window size used to compute the velocity mean + */ + Odometry(size_t velocity_rolling_window_size = 10); + + /** + * \brief Initialize the odometry + * \param time Current time + */ + void init(const double &time); + + /** + * \brief Updates the odometry class with latest wheel angular velocities + * \param left_vel Left wheel angular velocity [rad/s] + * \param right_vel Right wheel angular velocity [rad/s] + * \param time Current time + * \return true if the odometry is actually updated + */ + bool updateWheel(double left_vel, double right_vel, const double &time); + + /** + * \brief Updates odometry from cumulative encoder tick counts + * + * Converts tick deltas to wheel arc lengths, then integrates pose with the + * same exact/RK2 path as updateWheel. The first call after init() only + * seeds the previous tick counts and returns false. + * + * Caller should unwrap hardware counter overflow into a monotonic int64 + * cumulative count before calling. + * + * \param left_ticks Cumulative left wheel ticks (after gearbox, wheel side) + * \param right_ticks Cumulative right wheel ticks (after gearbox, wheel side) + * \param time Current time [s] + * \return true if the odometry is actually updated + */ + bool updateTicks(std::int64_t left_ticks, std::int64_t right_ticks, const double &time); + + /** + * \brief Updates the odometry class with latest velocity command + * \param linear Linear velocity [m/s] + * \param angular Angular velocity [rad/s] + * \param time Current time + */ + void updateOdom(double linear, double angular, const double &time); + + /** + * \brief heading getter + * \return heading [rad] + */ + double getHeading() const + { + return heading_; + } + + /** + * \brief x position getter + * \return x position [m] + */ + double getX() const + { + return x_; + } + + /** + * \brief y position getter + * \return y position [m] + */ + double getY() const + { + return y_; + } + + /** + * \brief linear velocity getter + * \return linear velocity [m/s] + */ + double getLinear() const + { + return linear_; + } + + /** + * \brief angular velocity getter + * \return angular velocity [rad/s] + */ + double getAngular() const + { + return angular_; + } + + /** + * \brief Sets the wheel parameters: radius and separation + * \param wheel_separation Separation between left and right wheels [m] + * \param left_wheel_radius Left wheel radius [m] + * \param right_wheel_radius Right wheel radius [m] + */ + void setWheelParams(double wheel_separation, double left_wheel_radius, double right_wheel_radius); + + /** + * \brief Sets encoder resolution for both wheels (same CPR) + * \param ticks_per_revolution Ticks per wheel revolution (wheel side) + */ + void setEncoderParams(double ticks_per_revolution); + + /** + * \brief Sets encoder resolution per wheel + * \param left_ticks_per_revolution Left wheel ticks per revolution + * \param right_ticks_per_revolution Right wheel ticks per revolution + */ + void setEncoderParams(double left_ticks_per_revolution, double right_ticks_per_revolution); + + /** + * \brief Velocity rolling window size setter + * \param velocity_rolling_window_size Velocity rolling window size + */ + void setVelocityRollingWindowSize(size_t velocity_rolling_window_size); + + private: + + /// Rolling mean accumulator and window: + typedef bacc::accumulator_set > RollingMeanAcc; + typedef bacc::tag::rolling_window RollingWindow; + + /** + * \brief Integrates the velocities (linear and angular) using 2nd order Runge-Kutta + * \param linear Linear displacement [m] + * \param angular Angular displacement [rad] + */ + void integrateRungeKutta2(double linear, double angular); + + /** + * \brief Integrates the velocities (linear and angular) using exact method + * \param linear Linear displacement [m] + * \param angular Angular displacement [rad] + */ + void integrateExact(double linear, double angular); + + /** + * \brief Reset linear and angular accumulators + */ + void resetAccumulators(); + + /// Current timestamp: + double timestamp_; + + /// Current pose: + double x_; // [m] + double y_; // [m] + double heading_; // [rad] + + /// Current velocity: + double linear_; // [m/s] + double angular_; // [rad/s] + + /// Wheel kinematic parameters [m]: + double wheel_separation_; + double left_wheel_radius_; + double right_wheel_radius_; + + /// Encoder resolution [ticks / wheel revolution]: + double left_ticks_per_revolution_; + double right_ticks_per_revolution_; + + /// Previous cumulative tick counts for delta computation: + bool ticks_initialized_; + std::int64_t left_ticks_prev_; + std::int64_t right_ticks_prev_; + + /// Rolling mean accumulators for the linear and angular velocities: + size_t velocity_rolling_window_size_; + RollingMeanAcc linear_acc_; + RollingMeanAcc angular_acc_; + + /// Integration function, used to integrate the odometry: + IntegrationFunction integrate_fun_; + }; +} diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..24b9dfe --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +#include + +int main() +{ + differential::Odometry odom(10); + odom.setWheelParams(/*wheel_separation=*/0.5, /*left_wheel_radius=*/0.09, /*right_wheel_radius=*/0.09); + + const auto now = std::chrono::system_clock::now(); + double t = std::chrono::duration(now.time_since_epoch()).count(); // seconds since epoch + odom.init(t); + + // Constant wheel angular velocities [rad/s] + const double left_vel = 2.0; + const double right_vel = 1.0; + + for (int i = 0; i < 20; ++i) + { + const auto now = std::chrono::system_clock::now(); + t = std::chrono::duration(now.time_since_epoch()).count(); + + odom.updateWheel(left_vel, right_vel, t); + + std::cout << "t=" << t + << " x=" << odom.getX() + << " y=" << odom.getY() + << " heading=" << odom.getHeading() + << " v=" << odom.getLinear() + << " w=" << odom.getAngular() + << "\n"; + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + return 0; +} diff --git a/src/odom_differential.cpp b/src/odom_differential.cpp new file mode 100644 index 0000000..e481a84 --- /dev/null +++ b/src/odom_differential.cpp @@ -0,0 +1,199 @@ +#include +#include +#include + +namespace differential +{ + namespace bacc = boost::accumulators; + + Odometry::Odometry(size_t velocity_rolling_window_size) + : timestamp_(0.0) + , x_(0.0) + , y_(0.0) + , heading_(0.0) + , linear_(0.0) + , angular_(0.0) + , wheel_separation_(0.0) + , left_wheel_radius_(0.0) + , right_wheel_radius_(0.0) + , left_ticks_per_revolution_(0.0) + , right_ticks_per_revolution_(0.0) + , ticks_initialized_(false) + , left_ticks_prev_(0) + , right_ticks_prev_(0) + , velocity_rolling_window_size_(velocity_rolling_window_size) + , linear_acc_(RollingWindow::window_size = velocity_rolling_window_size) + , angular_acc_(RollingWindow::window_size = velocity_rolling_window_size) + { + } + + void Odometry::init(const double &time) + { + resetAccumulators(); + timestamp_ = time; + x_ = 0.0; + y_ = 0.0; + heading_ = 0.0; + linear_ = 0.0; + angular_ = 0.0; + ticks_initialized_ = false; + left_ticks_prev_ = 0; + right_ticks_prev_ = 0; + integrate_fun_ = std::bind(&Odometry::integrateExact, this, std::placeholders::_1, std::placeholders::_2); + } + + bool Odometry::updateWheel(double left_vel, double right_vel, const double &time) + { + /// We cannot integrate with very small time intervals: + const double dt = (time - timestamp_); + if (dt < 0.0001) + return false; + + /// Convert wheel angular velocity [rad/s] to linear velocity [m/s]: + const double left_wheel_lin_vel = left_vel * left_wheel_radius_; + const double right_wheel_lin_vel = right_vel * right_wheel_radius_; + + /// Compute robot linear and angular velocity: + const double linear = (right_wheel_lin_vel + left_wheel_lin_vel) * 0.5; + const double angular = (right_wheel_lin_vel - left_wheel_lin_vel) / wheel_separation_; + + /// Integrate odometry using displacement over dt: + integrate_fun_(linear * dt, angular * dt); + + timestamp_ = time; + + /// Estimate speeds using a rolling mean to filter them out: + linear_acc_(linear); + angular_acc_(angular); + + linear_ = bacc::rolling_mean(linear_acc_); + angular_ = bacc::rolling_mean(angular_acc_); + return true; + } + + bool Odometry::updateTicks(std::int64_t left_ticks, std::int64_t right_ticks, const double &time) + { + if (!ticks_initialized_) + { + left_ticks_prev_ = left_ticks; + right_ticks_prev_ = right_ticks; + timestamp_ = time; + ticks_initialized_ = true; + return false; + } + + if (left_ticks_per_revolution_ <= 0.0 || right_ticks_per_revolution_ <= 0.0) + return false; + + /// We cannot integrate with very small time intervals: + const double dt = (time - timestamp_); + if (dt < 0.0001) + return false; + + const std::int64_t left_delta = left_ticks - left_ticks_prev_; + const std::int64_t right_delta = right_ticks - right_ticks_prev_; + left_ticks_prev_ = left_ticks; + right_ticks_prev_ = right_ticks; + + /// Tick delta → wheel rotation [rad] → arc length [m]: + const double left_wheel_phi = + (2.0 * M_PI * static_cast(left_delta)) / left_ticks_per_revolution_; + const double right_wheel_phi = + (2.0 * M_PI * static_cast(right_delta)) / right_ticks_per_revolution_; + + const double left_ds = left_wheel_phi * left_wheel_radius_; + const double right_ds = right_wheel_phi * right_wheel_radius_; + + /// Differential-drive displacement: + const double linear_ds = (right_ds + left_ds) * 0.5; + const double angular_dth = (right_ds - left_ds) / wheel_separation_; + + integrate_fun_(linear_ds, angular_dth); + + timestamp_ = time; + + /// Estimate speeds using a rolling mean to filter them out: + const double linear = linear_ds / dt; + const double angular = angular_dth / dt; + linear_acc_(linear); + angular_acc_(angular); + + linear_ = bacc::rolling_mean(linear_acc_); + angular_ = bacc::rolling_mean(angular_acc_); + return true; + } + + void Odometry::updateOdom(double linear, double angular, const double &time) + { + /// Save last linear and angular velocity: + linear_ = linear; + angular_ = angular; + + /// Integrate odometry: + const double dt = (time - timestamp_); + timestamp_ = time; + integrate_fun_(linear * dt, angular * dt); + } + + void Odometry::setWheelParams(double wheel_separation, double left_wheel_radius, double right_wheel_radius) + { + wheel_separation_ = wheel_separation; + left_wheel_radius_ = left_wheel_radius; + right_wheel_radius_ = right_wheel_radius; + } + + void Odometry::setEncoderParams(double ticks_per_revolution) + { + setEncoderParams(ticks_per_revolution, ticks_per_revolution); + } + + void Odometry::setEncoderParams(double left_ticks_per_revolution, double right_ticks_per_revolution) + { + left_ticks_per_revolution_ = left_ticks_per_revolution; + right_ticks_per_revolution_ = right_ticks_per_revolution; + } + + void Odometry::setVelocityRollingWindowSize(size_t velocity_rolling_window_size) + { + velocity_rolling_window_size_ = velocity_rolling_window_size; + + resetAccumulators(); + } + + void Odometry::integrateRungeKutta2(double linear, double angular) + { + const double direction = heading_ + angular * 0.5; + + /// Runge-Kutta 2nd order integration: + x_ += linear * cos(direction); + y_ += linear * sin(direction); + heading_ += angular; + } + + /** + * \brief Other possible integration method provided by the class + * \param linear + * \param angular + */ + void Odometry::integrateExact(double linear, double angular) + { + if (fabs(angular) < 1e-6) + integrateRungeKutta2(linear, angular); + else + { + /// Exact integration (should solve problems when angular is zero): + const double heading_old = heading_; + const double r = linear/angular; + heading_ += angular; + x_ += r * (sin(heading_) - sin(heading_old)); + y_ += -r * (cos(heading_) - cos(heading_old)); + } + } + + void Odometry::resetAccumulators() + { + linear_acc_ = RollingMeanAcc(RollingWindow::window_size = velocity_rolling_window_size_); + angular_acc_ = RollingMeanAcc(RollingWindow::window_size = velocity_rolling_window_size_); + } + +} // namespace differential diff --git a/test/odom_differential_test.cpp b/test/odom_differential_test.cpp new file mode 100644 index 0000000..ea55d0a --- /dev/null +++ b/test/odom_differential_test.cpp @@ -0,0 +1,244 @@ +#include +#include +#include +#include + +namespace +{ +int g_failures = 0; + +void expect_true(bool condition, const char *expr, const char *file, int line) +{ + if (!condition) + { + std::cerr << "FAIL: " << file << ":" << line << " " << expr << "\n"; + ++g_failures; + } +} + +void expect_near(double actual, double expected, double tolerance, + const char *expr, const char *file, int line) +{ + if (std::fabs(actual - expected) > tolerance) + { + std::cerr << "FAIL: " << file << ":" << line << " " << expr + << " (actual=" << actual << ", expected=" << expected + << ", tolerance=" << tolerance << ")\n"; + ++g_failures; + } +} + +#define EXPECT_TRUE(expr) expect_true((expr), #expr, __FILE__, __LINE__) +#define EXPECT_NEAR(actual, expected, tolerance) \ + expect_near((actual), (expected), (tolerance), #actual, __FILE__, __LINE__) + +void test_initial_state_after_init() +{ + differential::Odometry odom(10); + odom.setWheelParams(0.5, 0.09, 0.09); + odom.init(100.0); + + EXPECT_NEAR(odom.getX(), 0.0, 1e-9); + EXPECT_NEAR(odom.getY(), 0.0, 1e-9); + EXPECT_NEAR(odom.getHeading(), 0.0, 1e-9); + EXPECT_NEAR(odom.getLinear(), 0.0, 1e-9); + EXPECT_NEAR(odom.getAngular(), 0.0, 1e-9); +} + +void test_straight_line_motion() +{ + differential::Odometry odom(1); + const double wheel_radius = 0.09; + const double wheel_separation = 0.5; + odom.setWheelParams(wheel_separation, wheel_radius, wheel_radius); + + double t = 0.0; + odom.init(t); + + const double wheel_vel = 2.0; // [rad/s] + const double dt = 0.1; + const int steps = 10; + + for (int i = 0; i < steps; ++i) + { + t += dt; + EXPECT_TRUE(odom.updateWheel(wheel_vel, wheel_vel, t)); + } + + const double linear_vel = wheel_radius * wheel_vel; + const double expected_x = linear_vel * dt * steps; + + EXPECT_NEAR(odom.getY(), 0.0, 1e-6); + EXPECT_NEAR(odom.getHeading(), 0.0, 1e-6); + EXPECT_NEAR(odom.getX(), expected_x, 1e-6); + EXPECT_NEAR(odom.getLinear(), linear_vel, 1e-3); + EXPECT_NEAR(odom.getAngular(), 0.0, 1e-3); +} + +void test_turn_motion() +{ + differential::Odometry odom(1); + const double wheel_radius = 0.09; + const double wheel_separation = 0.5; + odom.setWheelParams(wheel_separation, wheel_radius, wheel_radius); + + double t = 0.0; + odom.init(t); + + const double left_vel = 2.0; // [rad/s] + const double right_vel = 1.0; // [rad/s] + const double dt = 0.1; + + t += dt; + EXPECT_TRUE(odom.updateWheel(left_vel, right_vel, t)); + + const double left_lin = wheel_radius * left_vel; + const double right_lin = wheel_radius * right_vel; + const double expected_linear = (right_lin + left_lin) * 0.5; + const double expected_angular = (right_lin - left_lin) / wheel_separation; + const double expected_heading = expected_angular * dt; + const double expected_x = expected_linear * dt; + + EXPECT_NEAR(odom.getHeading(), expected_heading, 1e-6); + EXPECT_NEAR(odom.getX(), expected_x, 1e-6); + EXPECT_NEAR(odom.getLinear(), expected_linear, 1e-3); + EXPECT_NEAR(odom.getAngular(), expected_angular, 1e-3); +} + +void test_update_rejects_small_dt() +{ + differential::Odometry odom(1); + odom.setWheelParams(0.5, 0.09, 0.09); + + double t = 1.0; + odom.init(t); + + const double linear_before = odom.getLinear(); + const double angular_before = odom.getAngular(); + EXPECT_TRUE(!odom.updateWheel(1.0, 1.0, t + 1e-5)); + EXPECT_NEAR(odom.getLinear(), linear_before, 1e-9); + EXPECT_NEAR(odom.getAngular(), angular_before, 1e-9); + EXPECT_NEAR(odom.getX(), 0.0, 1e-9); +} + +void test_update_open_loop() +{ + differential::Odometry odom(1); + odom.setWheelParams(0.5, 0.09, 0.09); + + double t = 0.0; + odom.init(t); + + const double linear = 0.2; + const double angular = 0.0; + const double dt = 0.5; + + t += dt; + odom.updateOdom(linear, angular, t); + + EXPECT_NEAR(odom.getLinear(), linear, 1e-9); + EXPECT_NEAR(odom.getAngular(), angular, 1e-9); + EXPECT_NEAR(odom.getX(), linear * dt, 1e-6); + EXPECT_NEAR(odom.getY(), 0.0, 1e-6); + EXPECT_NEAR(odom.getHeading(), 0.0, 1e-6); +} + +void test_zero_velocity_keeps_pose() +{ + differential::Odometry odom(1); + odom.setWheelParams(0.5, 0.09, 0.09); + odom.init(0.0); + + EXPECT_TRUE(odom.updateWheel(0.0, 0.0, 0.1)); + EXPECT_NEAR(odom.getX(), 0.0, 1e-9); + EXPECT_NEAR(odom.getY(), 0.0, 1e-9); + EXPECT_NEAR(odom.getHeading(), 0.0, 1e-9); + EXPECT_NEAR(odom.getLinear(), 0.0, 1e-9); + EXPECT_NEAR(odom.getAngular(), 0.0, 1e-9); +} + +void test_ticks_seed_then_straight() +{ + differential::Odometry odom(1); + const double wheel_radius = 0.09; + const double wheel_separation = 0.5; + const double ticks_per_rev = 4096.0; + odom.setWheelParams(wheel_separation, wheel_radius, wheel_radius); + odom.setEncoderParams(ticks_per_rev); + odom.init(0.0); + + // First sample only seeds previous ticks. + EXPECT_TRUE(!odom.updateTicks(1000, 1000, 0.0)); + EXPECT_NEAR(odom.getX(), 0.0, 1e-9); + + // One full wheel revolution on both sides → forward 2*pi*r + const std::int64_t delta = static_cast(ticks_per_rev); + EXPECT_TRUE(odom.updateTicks(1000 + delta, 1000 + delta, 1.0)); + + const double expected_x = 2.0 * M_PI * wheel_radius; + EXPECT_NEAR(odom.getY(), 0.0, 1e-6); + EXPECT_NEAR(odom.getHeading(), 0.0, 1e-6); + EXPECT_NEAR(odom.getX(), expected_x, 1e-6); + EXPECT_NEAR(odom.getLinear(), expected_x / 1.0, 1e-3); + EXPECT_NEAR(odom.getAngular(), 0.0, 1e-3); +} + +void test_ticks_turn_in_place() +{ + differential::Odometry odom(1); + const double wheel_radius = 0.09; + const double wheel_separation = 0.5; + const double ticks_per_rev = 4096.0; + odom.setWheelParams(wheel_separation, wheel_radius, wheel_radius); + odom.setEncoderParams(ticks_per_rev); + odom.init(0.0); + + EXPECT_TRUE(!odom.updateTicks(0, 0, 0.0)); + + // Left backward, right forward by the same arc → pure rotation. + const double arc = 0.1; // [m] + const std::int64_t delta = static_cast( + (arc / (2.0 * M_PI * wheel_radius)) * ticks_per_rev); + + EXPECT_TRUE(odom.updateTicks(-delta, delta, 0.2)); + + const double expected_heading = (2.0 * arc) / wheel_separation; + EXPECT_NEAR(odom.getX(), 0.0, 1e-4); + EXPECT_NEAR(odom.getY(), 0.0, 1e-4); + EXPECT_NEAR(odom.getHeading(), expected_heading, 1e-3); +} + +void test_ticks_rejects_unset_encoder_params() +{ + differential::Odometry odom(1); + odom.setWheelParams(0.5, 0.09, 0.09); + odom.init(0.0); + + EXPECT_TRUE(!odom.updateTicks(0, 0, 0.0)); // seed + EXPECT_TRUE(!odom.updateTicks(10, 10, 0.1)); // CPR not set + EXPECT_NEAR(odom.getX(), 0.0, 1e-9); +} + +} // namespace + +int main() +{ + test_initial_state_after_init(); + test_straight_line_motion(); + test_turn_motion(); + test_update_rejects_small_dt(); + test_update_open_loop(); + test_zero_velocity_keeps_pose(); + test_ticks_seed_then_straight(); + test_ticks_turn_in_place(); + test_ticks_rejects_unset_encoder_params(); + + if (g_failures == 0) + { + std::cout << "All tests passed.\n"; + return EXIT_SUCCESS; + } + + std::cerr << g_failures << " test(s) failed.\n"; + return EXIT_FAILURE; +}