diff --git a/patches/livox_sdk.patch b/patches/livox_sdk.patch index fe33a0f..1851bbb 100644 --- a/patches/livox_sdk.patch +++ b/patches/livox_sdk.patch @@ -1,49 +1,24 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 05f84c5..4fb6f31 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,7 +1,9 @@ --cmake_minimum_required(VERSION 3.0) -+cmake_minimum_required(VERSION 3.5) - - project(livox_sdk2) - -+find_package(ament_cmake REQUIRED) +diff --git a/package.xml b/package.xml +new file mode 100644 +index 0000000..ffdf3ce +--- /dev/null ++++ b/package.xml +@@ -0,0 +1,18 @@ ++ ++ ++ ++ livox_sdk2 ++ 1.3.1 ++ ++ Livox SDK2: official C++ library for Livox LiDAR sensors. ++ Provides the livox_sdk2 ament target consumed by livox_ros_driver2. ++ ++ Livox ++ Apache-2.0 + - set(CMAKE_CXX_STANDARD 11) - - message(STATUS "main project dir: " ${PROJECT_SOURCE_DIR}) -@@ -18,3 +20,9 @@ endif(UNIX) - - add_subdirectory(sdk_core) - add_subdirectory(samples) ++ ament_cmake + -+# Export the installed headers/libraries so ament packages (e.g. livox_ros_driver2) -+# find the SDK from the colcon install space via CMAKE_PREFIX_PATH. -+ament_export_include_directories(include) -+ament_export_libraries(livox_lidar_sdk_shared) -+ament_package() -diff --git a/sdk_core/comm/define.h b/sdk_core/comm/define.h -index 0872328..28d989b 100644 ---- a/sdk_core/comm/define.h -+++ b/sdk_core/comm/define.h -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - #include "livox_lidar_def.h" - -diff --git a/sdk_core/logger_handler/file_manager.h b/sdk_core/logger_handler/file_manager.h -index 242a431..14cd76a 100644 ---- a/sdk_core/logger_handler/file_manager.h -+++ b/sdk_core/logger_handler/file_manager.h -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - namespace livox { - namespace lidar { ++ ++ ament_cmake ++ ++ diff --git a/patches/unilidar_sdk2.patch b/patches/unilidar_sdk2.patch index 81d7f5f..f094a4b 100644 --- a/patches/unilidar_sdk2.patch +++ b/patches/unilidar_sdk2.patch @@ -1,3 +1,6 @@ +diff --git a/unitree_lidar_ros/src/unitree_lidar_ros/COLCON_IGNORE b/unitree_lidar_ros/src/unitree_lidar_ros/COLCON_IGNORE +new file mode 100644 +index 0000000..e69de29 diff --git a/unitree_lidar_ros2/src/unitree_lidar_ros2/CMakeLists.txt b/unitree_lidar_ros2/src/unitree_lidar_ros2/CMakeLists.txt index 041ef0d..dd57d47 100644 --- a/unitree_lidar_ros2/src/unitree_lidar_ros2/CMakeLists.txt @@ -37,15 +40,12 @@ index 041ef0d..dd57d47 100644 install(TARGETS diff --git a/unitree_lidar_ros2/src/unitree_lidar_ros2/package.xml b/unitree_lidar_ros2/src/unitree_lidar_ros2/package.xml -index 74539aa..69bb645 100644 +index 74539aa..8b186d8 100644 --- a/unitree_lidar_ros2/src/unitree_lidar_ros2/package.xml +++ b/unitree_lidar_ros2/src/unitree_lidar_ros2/package.xml -@@ -15,14 +15,15 @@ - rclcpp - std_msgs +@@ -17,10 +17,11 @@ sensor_msgs -- -+ + pcl_conversions - pcl + libpcl-all-dev @@ -56,12 +56,8 @@ index 74539aa..69bb645 100644 ament_cmake - -- -+ -\ No newline at end of file diff --git a/unitree_lidar_sdk/CMakeLists.txt b/unitree_lidar_sdk/CMakeLists.txt -index 80af9c9..0d9a334 100644 +index 80af9c9..00725ea 100644 --- a/unitree_lidar_sdk/CMakeLists.txt +++ b/unitree_lidar_sdk/CMakeLists.txt @@ -1,39 +1,14 @@ @@ -114,35 +110,24 @@ index 80af9c9..0d9a334 100644 -target_link_libraries(set_to_udp_mode libunilidar_sdk2.a ) \ No newline at end of file +ament_package() -\ No newline at end of file diff --git a/unitree_lidar_sdk/package.xml b/unitree_lidar_sdk/package.xml -index ef88d9a..68ab313 100644 ---- a/unitree_lidar_sdk/package.xml +new file mode 100644 +index 0000000..ef88d9a +--- /dev/null +++ b/unitree_lidar_sdk/package.xml -@@ -1,15 +1,15 @@ - - - -- unitree_lidar_sdk -- 0.0.0 -- Unitree LiDAR SDK (prebuilt static library and headers) -- jo -- BSD-3-Clause -+ unitree_lidar_sdk -+ 0.0.0 -+ Unitree LiDAR SDK (prebuilt static library and headers) -+ jo -+ BSD-3-Clause - -- ament_cmake -+ ament_cmake - -- -- ament_cmake -- -- -+ -+ ament_cmake -+ +@@ -0,0 +1,15 @@ ++ ++ ++ ++ unitree_lidar_sdk ++ 0.0.0 ++ Unitree LiDAR SDK (prebuilt static library and headers) ++ jo ++ BSD-3-Clause ++ ++ ament_cmake ++ ++ ++ ament_cmake ++ + -\ No newline at end of file diff --git a/setup_upstream.sh b/setup_upstream.sh new file mode 100755 index 0000000..cb3dce5 --- /dev/null +++ b/setup_upstream.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# +# setup_upstream.sh — fetch the upstream sources agv_pro_ros2 depends on +# and apply any required patches. +# +# Sources are declared in upstream.jazzy.repos and cloned under src/upstream/. +# Patches in patches/ are applied idempotently (already-applied patches are +# silently skipped). +# +# Usage: +# ./setup_upstream.sh +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$REPO_ROOT" + +echo "[setup_upstream] importing sources into src/upstream ..." +mkdir -p src/upstream + +# Reset working-tree changes in already-cloned repos so that vcs import can +# pull upstream updates without hitting dirty-working-tree conflicts. +# Use -x so that gitignored files (e.g. generated package.xml) are also removed. +# Patches are re-applied unconditionally after the import step below. +for repo_dir in src/upstream/*/; do + if [[ -d "${repo_dir}/.git" ]]; then + git -C "${repo_dir}" checkout -- . 2>/dev/null || true + git -C "${repo_dir}" clean -fdx 2>/dev/null || true + fi +done + +vcs import src/upstream < upstream.jazzy.repos + +echo "[setup_upstream] applying patches ..." +bash patches/apply_patches.sh + +echo "[setup_upstream] done." diff --git a/upstream.jazzy.repos b/upstream.jazzy.repos index 5e5abcb..94368d8 100644 --- a/upstream.jazzy.repos +++ b/upstream.jazzy.repos @@ -2,33 +2,33 @@ repositories: FAST_LIO: type: git url: https://github.com/hku-mars/FAST_LIO.git - version: ROS2 + version: a4743b095409588842a5b30ddfa27e29d2f99164 livox_ros_driver2: type: git url: https://github.com/Livox-SDK/livox_ros_driver2.git - version: master + version: 13eb05e4e6dd7a765b934d0c5fd6236676a57b49 livox_sdk: type: git url: https://github.com/Livox-SDK/Livox-SDK2.git - version: master + version: 68ae1e1dc77f61f03c95d7c2809831e198d0aedd Lslidar_ROS2_driver: type: git url: https://github.com/Lslidar/Lslidar_ROS2_driver.git - version: LS-S1_V1.0 + version: e23139673c34c51d07053837910020aaa81736fa pcd2pgm: type: git url: https://github.com/LihanChen2004/pcd2pgm.git - version: main + version: 885561552baae33685e59eef41a5d8c996538702 point_lio_ros2: type: git url: https://github.com/dfloreaa/point_lio_ros2.git - version: main + version: a8e2d0d5090af97ead8dd4fac3d37cf3dbb33ff7 slam_gmapping: type: git url: https://github.com/Project-MANAS/slam_gmapping.git - version: eloquent-devel + version: 3c3de50c071d2c64ffe516e1ed84a574fc447b97 unilidar_sdk2: type: git url: https://github.com/unitreerobotics/unilidar_sdk2.git - version: main + version: 0e3c51f512e6b8ff60b8c32f160b412cb48445c2