From 4fd58f5623265c42666d33da5e4a6ed477f17421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B0=E4=B8=80?= <473867143@qq.com> Date: Wed, 6 Mar 2024 17:21:14 +0800 Subject: [PATCH] first commit --- CMakeLists.txt | 51 + build/.ninja_deps | Bin 0 -> 61864 bytes build/.ninja_log | 2 + build/CATKIN_IGNORE | 0 build/CMakeCache.txt | 1380 +++++++++++++++++ build/CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 9064 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 9248 bytes build/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../3.10.2/CompilerIdC/CMakeCCompilerId.c | 598 +++++++ build/CMakeFiles/3.10.2/CompilerIdC/a.out | Bin 0 -> 9248 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 576 +++++++ build/CMakeFiles/3.10.2/CompilerIdCXX/a.out | Bin 0 -> 9424 bytes build/CMakeFiles/CMakeError.log | 42 + build/CMakeFiles/CMakeOutput.log | 569 +++++++ build/CMakeFiles/TargetDirectories.txt | 131 ++ build/CMakeFiles/cmake.check_cache | 1 + build/CMakeFiles/feature_tests.bin | Bin 0 -> 13288 bytes build/CMakeFiles/feature_tests.c | 34 + build/CMakeFiles/feature_tests.cxx | 405 +++++ .../octomapping.dir/src/tools.cpp.o | Bin 0 -> 521624 bytes build/CTestConfiguration.ini | 115 ++ build/CTestCustom.cmake | 2 + build/CTestTestfile.cmake | 7 + build/Testing/20240306-0744/Test.xml | 34 + build/Testing/TAG | 2 + .../Temporary/LastTest_20240306-0744.log | 3 + build/atomic_configure/.rosinstall | 2 + build/atomic_configure/_setup_util.py | 304 ++++ build/atomic_configure/env.sh | 16 + build/atomic_configure/local_setup.bash | 8 + build/atomic_configure/local_setup.sh | 9 + build/atomic_configure/local_setup.zsh | 8 + build/atomic_configure/setup.bash | 8 + build/atomic_configure/setup.sh | 96 ++ build/atomic_configure/setup.zsh | 8 + build/build.ninja | 1079 +++++++++++++ .../catkin_generated/version/package.cmake | 24 + build/catkin_generated/env_cached.sh | 16 + .../catkin_generated/generate_cached_setup.py | 30 + .../catkin_generated/installspace/.rosinstall | 2 + .../installspace/_setup_util.py | 304 ++++ build/catkin_generated/installspace/env.sh | 16 + .../installspace/local_setup.bash | 8 + .../installspace/local_setup.sh | 9 + .../installspace/local_setup.zsh | 8 + .../installspace/octomapping.pc | 8 + .../octomappingConfig-version.cmake | 14 + .../installspace/octomappingConfig.cmake | 223 +++ .../catkin_generated/installspace/setup.bash | 8 + build/catkin_generated/installspace/setup.sh | 96 ++ build/catkin_generated/installspace/setup.zsh | 8 + build/catkin_generated/ordered_paths.cmake | 1 + build/catkin_generated/package.cmake | 16 + .../pkg.develspace.context.pc.py | 8 + .../pkg.installspace.context.pc.py | 8 + build/catkin_generated/setup_cached.sh | 14 + .../stamps/octomapping/_setup_util.py.stamp | 304 ++++ .../interrogate_setup_dot_py.py.stamp | 255 +++ .../stamps/octomapping/package.xml.stamp | 40 + .../stamps/octomapping/pkg.pc.em.stamp | 8 + build/cmake_install.cmake | 161 ++ build/compile_commands.json | 67 + build/devel/.catkin | 1 + build/devel/.rosinstall | 2 + build/devel/_setup_util.py | 304 ++++ build/devel/cmake.lock | 0 build/devel/env.sh | 16 + build/devel/lib/pkgconfig/octomapping.pc | 8 + build/devel/local_setup.bash | 8 + build/devel/local_setup.sh | 9 + build/devel/local_setup.zsh | 8 + build/devel/setup.bash | 8 + build/devel/setup.sh | 96 ++ build/devel/setup.zsh | 8 + .../cmake/octomappingConfig-version.cmake | 14 + .../octomapping/cmake/octomappingConfig.cmake | 223 +++ build/gtest/CTestTestfile.cmake | 7 + build/gtest/cmake_install.cmake | 45 + build/gtest/googlemock/CTestTestfile.cmake | 7 + build/gtest/googlemock/cmake_install.cmake | 45 + .../googlemock/gtest/CTestTestfile.cmake | 6 + .../googlemock/gtest/cmake_install.cmake | 39 + build/rules.ninja | 140 ++ config/px4_config.yaml | 262 ++++ config/px4_pluginlists.yaml | 33 + config/px4_sender.yaml | 20 + config/rviz_config.rviz | 406 +++++ include/global_planner.h | 148 ++ include/occupy_map.h | 91 ++ include/tools.h | 11 + launch/amov-50C-3.launch | 27 + launch/octomapping_ground.launch | 26 + launch/octomapping_onboard.launch | 51 + launch/rs_t265.launch | 65 + launch/tf_transform.launch | 23 + package.xml | 40 + src/global_planner.cpp | 278 ++++ src/global_planner_node.cpp | 20 + src/occupy_map.cpp | 283 ++++ src/tools.cpp | 6 + 102 files changed, 10093 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 build/.ninja_deps create mode 100644 build/.ninja_log create mode 100644 build/CATKIN_IGNORE create mode 100644 build/CMakeCache.txt create mode 100644 build/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 build/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 build/CMakeFiles/3.10.2/CompilerIdC/a.out create mode 100644 build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 build/CMakeFiles/3.10.2/CompilerIdCXX/a.out create mode 100644 build/CMakeFiles/CMakeError.log create mode 100644 build/CMakeFiles/CMakeOutput.log create mode 100644 build/CMakeFiles/TargetDirectories.txt create mode 100644 build/CMakeFiles/cmake.check_cache create mode 100755 build/CMakeFiles/feature_tests.bin create mode 100644 build/CMakeFiles/feature_tests.c create mode 100644 build/CMakeFiles/feature_tests.cxx create mode 100644 build/CMakeFiles/octomapping.dir/src/tools.cpp.o create mode 100644 build/CTestConfiguration.ini create mode 100644 build/CTestCustom.cmake create mode 100644 build/CTestTestfile.cmake create mode 100644 build/Testing/20240306-0744/Test.xml create mode 100644 build/Testing/TAG create mode 100644 build/Testing/Temporary/LastTest_20240306-0744.log create mode 100644 build/atomic_configure/.rosinstall create mode 100755 build/atomic_configure/_setup_util.py create mode 100755 build/atomic_configure/env.sh create mode 100644 build/atomic_configure/local_setup.bash create mode 100644 build/atomic_configure/local_setup.sh create mode 100644 build/atomic_configure/local_setup.zsh create mode 100644 build/atomic_configure/setup.bash create mode 100644 build/atomic_configure/setup.sh create mode 100644 build/atomic_configure/setup.zsh create mode 100644 build/build.ninja create mode 100644 build/catkin/catkin_generated/version/package.cmake create mode 100755 build/catkin_generated/env_cached.sh create mode 100644 build/catkin_generated/generate_cached_setup.py create mode 100644 build/catkin_generated/installspace/.rosinstall create mode 100755 build/catkin_generated/installspace/_setup_util.py create mode 100755 build/catkin_generated/installspace/env.sh create mode 100644 build/catkin_generated/installspace/local_setup.bash create mode 100644 build/catkin_generated/installspace/local_setup.sh create mode 100644 build/catkin_generated/installspace/local_setup.zsh create mode 100644 build/catkin_generated/installspace/octomapping.pc create mode 100644 build/catkin_generated/installspace/octomappingConfig-version.cmake create mode 100644 build/catkin_generated/installspace/octomappingConfig.cmake create mode 100644 build/catkin_generated/installspace/setup.bash create mode 100644 build/catkin_generated/installspace/setup.sh create mode 100644 build/catkin_generated/installspace/setup.zsh create mode 100644 build/catkin_generated/ordered_paths.cmake create mode 100644 build/catkin_generated/package.cmake create mode 100644 build/catkin_generated/pkg.develspace.context.pc.py create mode 100644 build/catkin_generated/pkg.installspace.context.pc.py create mode 100755 build/catkin_generated/setup_cached.sh create mode 100755 build/catkin_generated/stamps/octomapping/_setup_util.py.stamp create mode 100644 build/catkin_generated/stamps/octomapping/interrogate_setup_dot_py.py.stamp create mode 100644 build/catkin_generated/stamps/octomapping/package.xml.stamp create mode 100644 build/catkin_generated/stamps/octomapping/pkg.pc.em.stamp create mode 100644 build/cmake_install.cmake create mode 100644 build/compile_commands.json create mode 100644 build/devel/.catkin create mode 100644 build/devel/.rosinstall create mode 100755 build/devel/_setup_util.py create mode 100644 build/devel/cmake.lock create mode 100755 build/devel/env.sh create mode 100644 build/devel/lib/pkgconfig/octomapping.pc create mode 100644 build/devel/local_setup.bash create mode 100644 build/devel/local_setup.sh create mode 100644 build/devel/local_setup.zsh create mode 100644 build/devel/setup.bash create mode 100644 build/devel/setup.sh create mode 100644 build/devel/setup.zsh create mode 100644 build/devel/share/octomapping/cmake/octomappingConfig-version.cmake create mode 100644 build/devel/share/octomapping/cmake/octomappingConfig.cmake create mode 100644 build/gtest/CTestTestfile.cmake create mode 100644 build/gtest/cmake_install.cmake create mode 100644 build/gtest/googlemock/CTestTestfile.cmake create mode 100644 build/gtest/googlemock/cmake_install.cmake create mode 100644 build/gtest/googlemock/gtest/CTestTestfile.cmake create mode 100644 build/gtest/googlemock/gtest/cmake_install.cmake create mode 100644 build/rules.ninja create mode 100644 config/px4_config.yaml create mode 100644 config/px4_pluginlists.yaml create mode 100644 config/px4_sender.yaml create mode 100644 config/rviz_config.rviz create mode 100644 include/global_planner.h create mode 100644 include/occupy_map.h create mode 100644 include/tools.h create mode 100644 launch/amov-50C-3.launch create mode 100644 launch/octomapping_ground.launch create mode 100644 launch/octomapping_onboard.launch create mode 100644 launch/rs_t265.launch create mode 100644 launch/tf_transform.launch create mode 100644 package.xml create mode 100644 src/global_planner.cpp create mode 100644 src/global_planner_node.cpp create mode 100644 src/occupy_map.cpp create mode 100644 src/tools.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2fcec8c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 2.8.3) +project(octomapping) + +set(CMAKE_BUILD_TYPE "Release") +set(CMAKE_CXX_FLAGS "-std=c++11") +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g") + +find_package(Eigen3 REQUIRED) +find_package(PCL 1.7 REQUIRED) +find_package(catkin REQUIRED COMPONENTS + roscpp + rospy + std_msgs + sensor_msgs + geometry_msgs + nav_msgs + pcl_ros + visualization_msgs + prometheus_msgs + ) + + +catkin_package( + INCLUDE_DIRS include + LIBRARIES Global_Planning + # DEPENDS system_lib +) + +include_directories( + SYSTEM + include + ${catkin_INCLUDE_DIRS} + ${Eigen3_INCLUDE_DIRS} + ${PCL_INCLUDE_DIRS} + ${PROJECT_SOURCE_DIR}/include + ~/Prometheus/Modules/common/include + ) +link_directories(${PCL_LIBRARY_DIRS}) + + +add_executable(octomapping + src/global_planner_node.cpp + src/global_planner.cpp + src/occupy_map.cpp + src/tools.cpp + ) + +target_link_libraries(octomapping + ${catkin_LIBRARIES} + ${PCL_LIBRARIES} + ) \ No newline at end of file diff --git a/build/.ninja_deps b/build/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..adef3f856d1517edae4ffb0984fcfe487511cc70 GIT binary patch literal 61864 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