From 7c1dcfd352b165b1dade372bc9dc09a1799c4ba0 Mon Sep 17 00:00:00 2001 From: duongtd Date: Tue, 28 Oct 2025 17:21:02 +0700 Subject: [PATCH] 1720_28102025 --- CMakeLists.txt | 4 +- build/CMakeCache.txt | 6 +- build/CMakeFiles/Makefile.cmake | 6 +- .../costmap_2d.dir/CXX.includecache | 154 ++++---- .../costmap_2d.dir/DependInfo.cmake | 6 +- .../CMakeFiles/costmap_2d.dir/depend.internal | 42 +- build/CMakeFiles/costmap_2d.dir/depend.make | 42 +- build/CMakeFiles/costmap_2d.dir/flags.make | 2 +- build/CMakeFiles/layers.dir/CXX.includecache | 106 ++++- build/CMakeFiles/layers.dir/DependInfo.cmake | 6 +- build/CMakeFiles/layers.dir/depend.internal | 12 + build/CMakeFiles/layers.dir/depend.make | 12 + build/CMakeFiles/layers.dir/flags.make | 2 +- .../layers.dir/plugins/inflation_layer.cpp.o | Bin 1088 -> 388800 bytes .../CMakeDirectoryInformation.cmake | 2 +- build/geometry_msgs_build/cmake_install.cmake | 2 +- build/liblayers.a | Bin 1304 -> 454302 bytes .../CMakeDirectoryInformation.cmake | 2 +- .../test_battery_state.dir/CXX.includecache | 28 +- .../test_battery_state.dir/DependInfo.cmake | 6 +- .../test_battery_state.dir/build.make | 10 +- .../test_battery_state.dir/depend.internal | 14 +- .../test_battery_state.dir/depend.make | 14 +- .../test_battery_state.dir/flags.make | 2 +- build/sensor_msgs_build/cmake_install.cmake | 2 +- .../CMakeDirectoryInformation.cmake | 2 +- build/std_msgs_build/cmake_install.cmake | 2 +- include/costmap_2d/inflation_layer.h | 373 +++++++----------- include/costmap_2d/layer.h | 6 +- include/costmap_2d/obstacle_layer.h | 177 +++++++++ plugins/inflation_layer.cpp | 66 ++-- 31 files changed, 663 insertions(+), 445 deletions(-) create mode 100644 include/costmap_2d/obstacle_layer.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c9ab2e0..2b76125 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,11 +5,11 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_POSITION_INDEPENDENT_CODE ON) if (NOT TARGET sensor_msgs) - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../sensor_msgs ${CMAKE_BINARY_DIR}/sensor_msgs_build) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../common_msgs/sensor_msgs ${CMAKE_BINARY_DIR}/sensor_msgs_build) endif() if (NOT TARGET geometry_msgs) - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../geometry_msgs ${CMAKE_BINARY_DIR}/geometry_msgs_build) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../common_msgs/geometry_msgs ${CMAKE_BINARY_DIR}/geometry_msgs_build) endif() # ---- Dependencies ---- diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt index bc1def4..5d86de7 100644 --- a/build/CMakeCache.txt +++ b/build/CMakeCache.txt @@ -247,7 +247,7 @@ costmap_2d_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/costmap_2d geometry_msgs_BINARY_DIR:STATIC=/home/duongtd/robotics_core/costmap_2d/build/geometry_msgs_build //Value Computed by CMake -geometry_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/geometry_msgs +geometry_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/common_msgs/geometry_msgs //Dependencies for the target layers_LIB_DEPENDS:STATIC=general;costmap_2d;general;Boost::system;general;Boost::thread; @@ -256,13 +256,13 @@ layers_LIB_DEPENDS:STATIC=general;costmap_2d;general;Boost::system;general;Boost sensor_msgs_BINARY_DIR:STATIC=/home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build //Value Computed by CMake -sensor_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/sensor_msgs +sensor_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/common_msgs/sensor_msgs //Value Computed by CMake std_msgs_BINARY_DIR:STATIC=/home/duongtd/robotics_core/costmap_2d/build/std_msgs_build //Value Computed by CMake -std_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/std_msgs +std_msgs_SOURCE_DIR:STATIC=/home/duongtd/robotics_core/common_msgs/std_msgs ######################## diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake index 7d9ac80..4e3e1bf 100644 --- a/build/CMakeFiles/Makefile.cmake +++ b/build/CMakeFiles/Makefile.cmake @@ -7,13 +7,13 @@ set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") # The top level Makefile was generated from the following files: set(CMAKE_MAKEFILE_DEPENDS "CMakeCache.txt" + "/home/duongtd/robotics_core/common_msgs/geometry_msgs/CMakeLists.txt" + "/home/duongtd/robotics_core/common_msgs/sensor_msgs/CMakeLists.txt" + "/home/duongtd/robotics_core/common_msgs/std_msgs/CMakeLists.txt" "../CMakeLists.txt" "CMakeFiles/3.16.3/CMakeCCompiler.cmake" "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" "CMakeFiles/3.16.3/CMakeSystem.cmake" - "/home/duongtd/robotics_core/geometry_msgs/CMakeLists.txt" - "/home/duongtd/robotics_core/sensor_msgs/CMakeLists.txt" - "/home/duongtd/robotics_core/std_msgs/CMakeLists.txt" "/usr/lib/cmake/eigen3/Eigen3Config.cmake" "/usr/lib/cmake/eigen3/Eigen3ConfigVersion.cmake" "/usr/lib/cmake/eigen3/Eigen3Targets.cmake" diff --git a/build/CMakeFiles/costmap_2d.dir/CXX.includecache b/build/CMakeFiles/costmap_2d.dir/CXX.includecache index 81711a5..30d8990 100644 --- a/build/CMakeFiles/costmap_2d.dir/CXX.includecache +++ b/build/CMakeFiles/costmap_2d.dir/CXX.includecache @@ -6,99 +6,79 @@ #IncludeRegexTransform: -../include/costmap_2d/observation.h -sensor_msgs/PointCloud2.h -- -geometry_msgs/Point.h -- +../include/costmap_2d/cost_values.h -../include/costmap_2d/observation_buffer.h +../include/costmap_2d/costmap_2d.h vector - -list -- -string -- -chrono -- -costmap_2d/observation.h -- -tf2/buffer_core.h -- -sensor_msgs/PointCloud2.h -- -geometry_msgs/PointStamped.h -- -geometry_msgs/Point.h +queue - boost/thread.hpp - - -/home/duongtd/robotics_core/costmap_2d/src/observation_buffer.cpp -costmap_2d/observation_buffer.h -- -tf2/convert.h -- -sensor_msgs/point_cloud2_iterator.h -- -cstdint +geometry_msgs/Point.h - -/home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h +../include/costmap_2d/costmap_layer.h +costmap_2d/layer.h +- +costmap_2d/layered_costmap.h +- + +../include/costmap_2d/footprint.h +geometry_msgs/Point32.h +- +geometry_msgs/Polygon.h +- +geometry_msgs/PolygonStamped.h +- +string.h +- +vector +- + +../include/costmap_2d/layer.h +costmap_2d/costmap_2d.h +- +costmap_2d/layered_costmap.h +- +string +- +tf2/buffer_core.h +- + +../include/costmap_2d/layered_costmap.h +costmap_2d/cost_values.h +- +costmap_2d/layer.h +- +costmap_2d/costmap_2d.h +- +vector +- +string +- + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h cmath - iostream - -/home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PointStamped.h +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h +vector +- +geometry_msgs/Point32.h +- + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h std_msgs/Header.h -/home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/std_msgs/Header.h -geometry_msgs/Point.h -/home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/geometry_msgs/Point.h - -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointCloud2.h -cstdint - -string -- -vector -- -std_msgs/Header.h -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/std_msgs/Header.h -sensor_msgs/PointField.h -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/sensor_msgs/PointField.h - -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointField.h -cstdint -- -string +geometry_msgs/Polygon.h - -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.h -sensor_msgs/PointCloud2.h -- -cstdarg -- -sstream -- -string -- -vector -- - -/home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.h -sensor_msgs/PointCloud2.h -- -cstdarg -- -string -- -vector -- -sensor_msgs/impl/point_cloud2_iterator.h -- - -/home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h +/home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h string - chrono @@ -106,3 +86,25 @@ chrono cstdint - +/home/duongtd/robotics_core/costmap_2d/src/costmap_layer.cpp +costmap_2d/costmap_layer.h +- + +/home/duongtd/robotics_core/costmap_2d/src/layer.cpp +costmap_2d/layer.h +/home/duongtd/robotics_core/costmap_2d/src/costmap_2d/layer.h + +/home/duongtd/robotics_core/costmap_2d/src/layered_costmap.cpp +costmap_2d/layered_costmap.h +- +costmap_2d/footprint.h +- +cstdio +- +string +- +algorithm +- +vector +- + diff --git a/build/CMakeFiles/costmap_2d.dir/DependInfo.cmake b/build/CMakeFiles/costmap_2d.dir/DependInfo.cmake index 6ea01ef..79efda2 100644 --- a/build/CMakeFiles/costmap_2d.dir/DependInfo.cmake +++ b/build/CMakeFiles/costmap_2d.dir/DependInfo.cmake @@ -27,9 +27,9 @@ set(CMAKE_TARGET_DEFINITIONS_CXX set(CMAKE_CXX_TARGET_INCLUDE_PATH "../include" "/usr/include/eigen3" - "/home/duongtd/robotics_core/sensor_msgs/include" - "/home/duongtd/robotics_core/std_msgs/include" - "/home/duongtd/robotics_core/geometry_msgs/include" + "/home/duongtd/robotics_core/common_msgs/sensor_msgs/include" + "/home/duongtd/robotics_core/common_msgs/std_msgs/include" + "/home/duongtd/robotics_core/common_msgs/geometry_msgs/include" ) # Targets to which this target links. diff --git a/build/CMakeFiles/costmap_2d.dir/depend.internal b/build/CMakeFiles/costmap_2d.dir/depend.internal index 9f3fb55..3dd7ffa 100644 --- a/build/CMakeFiles/costmap_2d.dir/depend.internal +++ b/build/CMakeFiles/costmap_2d.dir/depend.internal @@ -5,57 +5,57 @@ CMakeFiles/costmap_2d.dir/src/array_parser.cpp.o /home/duongtd/robotics_core/costmap_2d/src/array_parser.cpp CMakeFiles/costmap_2d.dir/src/costmap_2d.cpp.o ../include/costmap_2d/costmap_2d.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h /home/duongtd/robotics_core/costmap_2d/src/costmap_2d.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o ../include/costmap_2d/cost_values.h ../include/costmap_2d/costmap_2d.h ../include/costmap_2d/costmap_layer.h ../include/costmap_2d/layer.h ../include/costmap_2d/layered_costmap.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h /home/duongtd/robotics_core/costmap_2d/src/costmap_layer.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_math.cpp.o ../include/costmap_2d/costmap_math.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h /home/duongtd/robotics_core/costmap_2d/src/costmap_math.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/footprint.cpp.o ../include/costmap_2d/array_parser.h ../include/costmap_2d/costmap_math.h ../include/costmap_2d/footprint.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h + /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h /home/duongtd/robotics_core/costmap_2d/src/footprint.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point32.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Polygon.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PolygonStamped.h - /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o ../include/costmap_2d/cost_values.h ../include/costmap_2d/costmap_2d.h ../include/costmap_2d/layer.h ../include/costmap_2d/layered_costmap.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h /home/duongtd/robotics_core/costmap_2d/src/layer.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o ../include/costmap_2d/cost_values.h ../include/costmap_2d/costmap_2d.h ../include/costmap_2d/footprint.h ../include/costmap_2d/layer.h ../include/costmap_2d/layered_costmap.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h + /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h /home/duongtd/robotics_core/costmap_2d/src/layered_costmap.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point32.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Polygon.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PolygonStamped.h - /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o ../include/costmap_2d/observation.h ../include/costmap_2d/observation_buffer.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PointStamped.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointCloud2.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointField.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.h + /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h /home/duongtd/robotics_core/costmap_2d/src/observation_buffer.cpp - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h - /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PointStamped.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointCloud2.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointField.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.h - /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h diff --git a/build/CMakeFiles/costmap_2d.dir/depend.make b/build/CMakeFiles/costmap_2d.dir/depend.make index 04a1640..c832dfe 100644 --- a/build/CMakeFiles/costmap_2d.dir/depend.make +++ b/build/CMakeFiles/costmap_2d.dir/depend.make @@ -4,58 +4,58 @@ CMakeFiles/costmap_2d.dir/src/array_parser.cpp.o: ../src/array_parser.cpp CMakeFiles/costmap_2d.dir/src/costmap_2d.cpp.o: ../include/costmap_2d/costmap_2d.h +CMakeFiles/costmap_2d.dir/src/costmap_2d.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_2d.cpp.o: ../src/costmap_2d.cpp -CMakeFiles/costmap_2d.dir/src/costmap_2d.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../include/costmap_2d/cost_values.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../include/costmap_2d/costmap_2d.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../include/costmap_2d/costmap_layer.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../include/costmap_2d/layer.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../include/costmap_2d/layered_costmap.h +CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: ../src/costmap_layer.cpp -CMakeFiles/costmap_2d.dir/src/costmap_layer.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_math.cpp.o: ../include/costmap_2d/costmap_math.h +CMakeFiles/costmap_2d.dir/src/costmap_math.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/costmap_math.cpp.o: ../src/costmap_math.cpp -CMakeFiles/costmap_2d.dir/src/costmap_math.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: ../include/costmap_2d/array_parser.h CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: ../include/costmap_2d/costmap_math.h CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: ../include/costmap_2d/footprint.h +CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h +CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h +CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h +CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h +CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: ../src/footprint.cpp -CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h -CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point32.h -CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Polygon.h -CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PolygonStamped.h -CMakeFiles/costmap_2d.dir/src/footprint.cpp.o: /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o: ../include/costmap_2d/cost_values.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o: ../include/costmap_2d/costmap_2d.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o: ../include/costmap_2d/layer.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o: ../include/costmap_2d/layered_costmap.h +CMakeFiles/costmap_2d.dir/src/layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/layer.cpp.o: ../src/layer.cpp -CMakeFiles/costmap_2d.dir/src/layer.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../include/costmap_2d/cost_values.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../include/costmap_2d/costmap_2d.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../include/costmap_2d/footprint.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../include/costmap_2d/layer.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../include/costmap_2d/layered_costmap.h +CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h +CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h +CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h +CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h +CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: ../src/layered_costmap.cpp -CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h -CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point32.h -CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Polygon.h -CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PolygonStamped.h -CMakeFiles/costmap_2d.dir/src/layered_costmap.cpp.o: /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: ../include/costmap_2d/observation.h CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: ../include/costmap_2d/observation_buffer.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PointStamped.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointCloud2.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointField.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.h +CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: ../src/observation_buffer.cpp -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/Point.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/geometry_msgs/include/geometry_msgs/PointStamped.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointCloud2.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointField.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.h -CMakeFiles/costmap_2d.dir/src/observation_buffer.cpp.o: /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h diff --git a/build/CMakeFiles/costmap_2d.dir/flags.make b/build/CMakeFiles/costmap_2d.dir/flags.make index 7405334..6ac81f3 100644 --- a/build/CMakeFiles/costmap_2d.dir/flags.make +++ b/build/CMakeFiles/costmap_2d.dir/flags.make @@ -6,5 +6,5 @@ CXX_FLAGS = -fPIC -std=gnu++17 CXX_DEFINES = -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -CXX_INCLUDES = -I/home/duongtd/robotics_core/costmap_2d/include -I/usr/include/eigen3 -I/home/duongtd/robotics_core/sensor_msgs/include -I/home/duongtd/robotics_core/std_msgs/include -I/home/duongtd/robotics_core/geometry_msgs/include +CXX_INCLUDES = -I/home/duongtd/robotics_core/costmap_2d/include -I/usr/include/eigen3 -I/home/duongtd/robotics_core/common_msgs/sensor_msgs/include -I/home/duongtd/robotics_core/common_msgs/std_msgs/include -I/home/duongtd/robotics_core/common_msgs/geometry_msgs/include diff --git a/build/CMakeFiles/layers.dir/CXX.includecache b/build/CMakeFiles/layers.dir/CXX.includecache index cee5a8c..ec08f10 100644 --- a/build/CMakeFiles/layers.dir/CXX.includecache +++ b/build/CMakeFiles/layers.dir/CXX.includecache @@ -6,5 +6,109 @@ #IncludeRegexTransform: -/home/duongtd/robotics_core/costmap_2d/plugins/inflation_layer.cpp +../include/costmap_2d/cost_values.h + +../include/costmap_2d/costmap_2d.h +vector +- +queue +- +boost/thread.hpp +- +geometry_msgs/Point.h +- + +../include/costmap_2d/costmap_math.h +math.h +- +algorithm +- +vector +- +geometry_msgs/Point.h +- + +../include/costmap_2d/footprint.h +geometry_msgs/Point32.h +- +geometry_msgs/Polygon.h +- +geometry_msgs/PolygonStamped.h +- +string.h +- +vector +- + +../include/costmap_2d/inflation_layer.h +costmap_2d/layer.h +- +costmap_2d/layered_costmap.h +- +boost/thread.hpp +- +boost/dll/alias.hpp +- + +../include/costmap_2d/layer.h +costmap_2d/costmap_2d.h +- +costmap_2d/layered_costmap.h +- +string +- +tf2/buffer_core.h +- + +../include/costmap_2d/layered_costmap.h +costmap_2d/cost_values.h +- +costmap_2d/layer.h +- +costmap_2d/costmap_2d.h +- +vector +- +string +- + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h +cmath +- +iostream +- + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h +vector +- +geometry_msgs/Point32.h +- + +/home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h +std_msgs/Header.h +- +geometry_msgs/Polygon.h +- + +/home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h +string +- +chrono +- +cstdint +- + +/home/duongtd/robotics_core/costmap_2d/plugins/inflation_layer.cpp +algorithm +- +costmap_2d/inflation_layer.h +- +costmap_2d/costmap_math.h +- +costmap_2d/footprint.h +- +boost/thread.hpp +- diff --git a/build/CMakeFiles/layers.dir/DependInfo.cmake b/build/CMakeFiles/layers.dir/DependInfo.cmake index 6a44d8c..8e0f2b4 100644 --- a/build/CMakeFiles/layers.dir/DependInfo.cmake +++ b/build/CMakeFiles/layers.dir/DependInfo.cmake @@ -20,9 +20,9 @@ set(CMAKE_TARGET_DEFINITIONS_CXX set(CMAKE_CXX_TARGET_INCLUDE_PATH "../include" "/usr/include/eigen3" - "/home/duongtd/robotics_core/sensor_msgs/include" - "/home/duongtd/robotics_core/std_msgs/include" - "/home/duongtd/robotics_core/geometry_msgs/include" + "/home/duongtd/robotics_core/common_msgs/sensor_msgs/include" + "/home/duongtd/robotics_core/common_msgs/std_msgs/include" + "/home/duongtd/robotics_core/common_msgs/geometry_msgs/include" ) # Targets to which this target links. diff --git a/build/CMakeFiles/layers.dir/depend.internal b/build/CMakeFiles/layers.dir/depend.internal index 5636432..d22ebaa 100644 --- a/build/CMakeFiles/layers.dir/depend.internal +++ b/build/CMakeFiles/layers.dir/depend.internal @@ -2,4 +2,16 @@ # Generated by "Unix Makefiles" Generator, CMake Version 3.16 CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o + ../include/costmap_2d/cost_values.h + ../include/costmap_2d/costmap_2d.h + ../include/costmap_2d/costmap_math.h + ../include/costmap_2d/footprint.h + ../include/costmap_2d/inflation_layer.h + ../include/costmap_2d/layer.h + ../include/costmap_2d/layered_costmap.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h + /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h + /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h /home/duongtd/robotics_core/costmap_2d/plugins/inflation_layer.cpp diff --git a/build/CMakeFiles/layers.dir/depend.make b/build/CMakeFiles/layers.dir/depend.make index 8013d5e..9293b7c 100644 --- a/build/CMakeFiles/layers.dir/depend.make +++ b/build/CMakeFiles/layers.dir/depend.make @@ -1,5 +1,17 @@ # CMAKE generated file: DO NOT EDIT! # Generated by "Unix Makefiles" Generator, CMake Version 3.16 +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/cost_values.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/costmap_2d.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/costmap_math.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/footprint.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/inflation_layer.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/layer.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../include/costmap_2d/layered_costmap.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Point32.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/Polygon.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/geometry_msgs/include/geometry_msgs/PolygonStamped.h +CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o: ../plugins/inflation_layer.cpp diff --git a/build/CMakeFiles/layers.dir/flags.make b/build/CMakeFiles/layers.dir/flags.make index 7405334..6ac81f3 100644 --- a/build/CMakeFiles/layers.dir/flags.make +++ b/build/CMakeFiles/layers.dir/flags.make @@ -6,5 +6,5 @@ CXX_FLAGS = -fPIC -std=gnu++17 CXX_DEFINES = -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -CXX_INCLUDES = -I/home/duongtd/robotics_core/costmap_2d/include -I/usr/include/eigen3 -I/home/duongtd/robotics_core/sensor_msgs/include -I/home/duongtd/robotics_core/std_msgs/include -I/home/duongtd/robotics_core/geometry_msgs/include +CXX_INCLUDES = -I/home/duongtd/robotics_core/costmap_2d/include -I/usr/include/eigen3 -I/home/duongtd/robotics_core/common_msgs/sensor_msgs/include -I/home/duongtd/robotics_core/common_msgs/std_msgs/include -I/home/duongtd/robotics_core/common_msgs/geometry_msgs/include diff --git a/build/CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o b/build/CMakeFiles/layers.dir/plugins/inflation_layer.cpp.o index 0a2a870a31a65debeaa401817282b40253c7f29e..cd064e3880a5c33b635bb7e86759d4faff04131a 100644 GIT binary patch literal 388800 zcmeFa3!GKs8u-6vcB6FBAS7X?3!~_st}>}%$COb`(#3R}Zn|k^Qj{h$(KZc(5JC|` z6pE0VYO2ZQ2w@OH7$$V+Fo%wQ&-1M3eb>A8yPkH=anAYu{{OQ-v*vmC_j%Uy-fwHI zz4zR-^b6zT;zAC;;+!5%oO)x*yc+slDuq&=uM@sXK-*K}9p^MSFnl`5Bn~HoY{KED zAe(WxIm?91VPATQ-`2FS}e+@IwDmIFa%a(EEP%Q-w4CiD9#Ag6M88px|TJe_3@$XpKRftMWmfKiv2U*VH9UxzY<25*5XZ8ljzrgV(96Oo4 z1@dh;-r@JVSiTGLJr2LmvV!FYAV1{rM<92@@i82qF#D9{9+01L_;Zk7aCk4sFFE`b z%dbIJa`+pN-*UK$lzw&8GFknK3!9%Kg&cLaGZhdY7n%;7E|yK=Z2%kCi0<8Tj<=W{rf zWlxY7aJU!9-W*N?c_D`{0vYCTAC?z`yoAH)Ec=4&$Kgv^W`Mkm!~H=H;P60@nH(Mj z@^TIj26+XChkzW);b9<$bNEV-SsWe#awLaGfgH`@F(9)!JeK7+mg7NA;P6C{S8;d} z$jKa@0&*&cr-8hh!_!&ju*?OS$Ke?uui@}akh3^^Ey(LQJR9U34qp#)E{F3$&g1Y6 zAPYEL$Z|f&8##Ov%LObWAaCYy5zB=ji#dD?$XhvF0`fKv-wyH)4le?ECx`E1c{j+# zaNGmOz0B@oxrF8YEFS>*AcvQ-Tn6$X4nGWXIfows`6!1UW4Qw4;~ahhkj3*@^Teh=jP9Ijyb0mu(I z{1MCDEI$VM35P!gxrf7_f&84qU$EQ@@=FeX1@dbSSF-$u<+m)WKxAI1V2VvH^!r0C^&ZPXgJH!zZ(B z#PSrDjai-w@-z;g&N2yPGKZV6Yznd&hns^ugTrTnOyTfZAX{*_CCIZmd=AJ~9BvJ= z4Tsx;Y{%jDAUkllBg=DHb^_U%!(CW*W!a5ocaZ0CxChAdIh+czCxSkn=cv1Iq%Ig)HZ@yb%<>+P_j33?kV`mx zKgb6-{2kU{$Xy(M7vy^!ejj87hd%)MA%{N#xtqfu zgZzZUpR(Ko@-q&9&hiVEdqIB5;jch`&EZOr-*EU_mQ^hGf&7lc-?RLI<$jQVH8z8Xyxmd=$u< z9InOkXpprzTnA)b4%cIO49NN%P6T-@hmQk!Jck>wJb~qjAW!0OLy#wPxDm)xINX@! zsVq+ec{+!aSSEvP!r`VMn{l`~$TK*6Cdd>x&Vr)_vz8#w=I}WnTfxy9jyBBNf@}vz zdpJ5U>j?5(I6A@6nOPT*UE$~kM|U{RgQEu=SjOjrOogK-92YR_1+q7X(?DLx;fp|q zIot>2#T>o_WIBiYg6zlPOF?FE_%e|FIXnR5Kn`bu9K_+vK@R5d6(EOjcqqtW93Bqx zN)Bg%9Kqp{AV+a{G|Mp{vpGDLoM37f;coNIWAg6G6D$8jgujcS{mN_7E zIh@CG2FPnTJd@=tkk@kfI+n9R&f)O&Ea!sE=kPq1H-IeQa3Rb2AaCUGO)M9HjBxm7 zmPH^Ja=4h~Eg)~@a0$!XK;F*bJ6J9Pc_)YOVtF^n#T>qe<-H*95`yd7jYhj)N{mBX)r ze4WE@fcy)G-vqgn!*79no5Sz0+{N-;kneH$eU=p$d@l+#}8x6 z05QKbFX1H&)qj5T@GT`j)j#c5wCOo;K)7IEVmLCVGF+5a8IEkPBy&EiI3v-;B*xbN zq4dZ4$EJ=zrrwM<-%K;#%)~d_^7CDXX_eda3o!^URBX>*;J%@E;e-<8I(kUT_WV-Q zV0->f|Jw?FO9}p|equd*U;pw=Kh+;niV;9c^Y;KcoE~+o_fFa$1gimVOi`L}WJ@^m zDV>Q?g(HIpSM|X%?Gq{6fL2PI9{HlGCMxg@w6yc7@*Jtq*)J$d9NKf(@GYvApo-c+ z6;+H07u9I)x=*WaTN*A-+oR7Z&fEhLfRFb)bl@L&LW~NY`9s zPPNLg+nK7vk;D?P(H3s^1FJMp1$93=9`0N#2N*R!vDOEX_Rza-xT*s;2aA`zG`jj%+5QaOC|TpAJXL!@ukd7gWZTKz{r$ z9P@aUt0gpQueLOUzf%|V-6XP>?+U zc8~&zMQMBEHe)aX!GmncZ36uG5_vp(^(wIHI15>s9+y2Od-{aYPR^{H-0aCt-|U>6 zk>j$Haa3JA zFhR=yznZU{?A+X0)3Q~*{+aU8WrO*}zKHbzm*1R2zyHJO-e3%b;5r%o*X5Tzb9DB! z+zC^sWKGMRp2V5(;F#=OsEe*$$7Sbc<>ZdcoiIAfQ%)TJ6^sP0(L~^}YN&U~I-%AeUVbsVRC=_TA6Q+#o z+BK_hmTt&NQ}QNFN}4h?H)+PmNfWU24;`92mx~`oz7h6Dac}Ue4tGo2Uw=`lImV+F zMuQ^98047Yi0r4(>%);uT#r>l=Z+*|AY23>l2OYya~!c(T;nyQ5jB#Bs|0V=z^f89 z??gUPQxFV^&B0O+w`8c#>$1f^Z-fiV8V>d6LQMrUX&fjFDmme z;rGSWQe9eX@oLGO8?oeZn*|p(jd|He%~k^YrafDmpZ4~uTNSPM>GjR8J@(0Gb$;Dd zkWqvdfH@&D=O7lVyF7{Dtg+vi%wZXJil~At8}mHW?$HHv4mvRRRh>$1ikxskX`66S zt)fhvnD)~YbLcIcOmrIEX&Gm?sP>szS(FCsJ=KhgGOHI{Py^g}?bh^j#O+qi)ZCV; zi?A>3FLJtU&O6+y26E@itr0i&gwD_t%FRYq2}|jsv~pGZp2Q`)#*t0XN_K`LAA0Qs z)H|UGRfItoc?aIX(%HYnhNVbBS!d`P|HV>t_jtIXf`sPnv~v!5fNn%BASt~l$<5VZ zTvI}J-4!V{HaH!}hn|Oa1!Waj1!OiUaOV=q+hxX!n-?gzqQ1Lu592FP=#Mz|9lrk+ z>`TS$fLCaVzPcpOkPylZWC7YUrnZ9Hb2x&7A4ZT_?rxvF?NZD*u?VZNEk-i;flugr zyj-W!0gd(rEfB^Q&!S7(KL3E}?H;g24hF~TB6({dWh=swzDv!b!p2!JXQ`8Sbhv2v zif`t@2!ik9Xh2=D4R=<RN|n$? z_e3&xn>lj(MP*UuZm*SMp+*l_z$%ULlILMP=12Ns|AeD&B@Owi2;da`8VR9MaEyjy zA{;g0NQUDWIF5$nVmOlE7zf96IHtle9**PSxB?Db>z)ZmEjW&a;}kfW!Epv0SHsZ~ zj)8ET3`Y$(PJ{#78_vhLsUHFduG_}KkqyTLIBLVu3y$V+oCik>IEKN|7>@JdI0}yA z;ZSSu1`r+$M|U``f}<`RS#ZpOBL@y_z4*Qk95=v$7oRSIV>leA!O;{B)HQ*l0FEAT zG=gIa94Eoi5RTK~NP*)LIEKQZY7s8NY)?CQDUj`H)$rdbm{Z+vZWF$Y0CQ`2^xH)> zN{lh3PC;6ATvY|O4ReJFSB)ZbqFX^x+HUS4Fi16ZTUTUrQQzG-9NHssRdP%d7z(f% z@lfDiTJrjun!}-YLyO_4{VnXj)@D_St2APV*p7t=gQ|Bm#prYnBu;6jeO`vfiWvwU^MpoF42&v%p1g+PgeDIpn_Cs&~ky?i###obJ zeE#E&6mc;2YhSW5h+7W!{2eC(JPw&^thKnMB?S zM_xUGMIVgP(e(-i3s>#j6-XsS2VuQx@Rv^_tu~}~7^}|zOnpHq)*p=nMulU+j)ycZ zjw)3(UO?s+8<{ICtzTG(P0(#nblDiTd@u-&QWr=$4s}WHV)XFR`v>A+p0=(UAK6u9 zm24fumT%g^5dSA9@tr?8iMPP)Vi(gOoe8%pR5A64;^9A7G{tF4!$t1JaIY!4l?P3p zn!Q!}5m+%Ck7p@h(RoxAD zy3m$jgEoT<1yMf-mbxd(Yb>KZ(m&S@+E-_ ztIo#(#x?U|Fg$y=eWLuZOE;SZW#iq|+=+WaFhc(x>iPIl&eDX01xGoXj{;zhVuOuc zLR6oFJ-|9BBPe-QWafpOOi+QEc68b#csmPbsW1xS#el?g5Og9CsM(^vYiM}@TZwPx zLJKu&Q#&JvUM%bs+Nr{ZEo~i7Ja|cAXQVH*E!@q*zL1)| zo-0bA%CS8*HZM`Z_M0|YFzwha2PU4?k<69BEeHCZswK1Kz?h?3jy8!|4GoQ!Q3^*43^3Y`_VO>Ksp>M$ zCXS76uk}W6=s@R?+O?tX+&Ns-kWbl!l~RP`E$ofoJoJug>POh3%+<1LHokRW60KY! z`)MBd5gPCwTJS{r?uS^bp)tD}Zg2q$%)VfR>pi^Y-7_&9xvU|bSWpU{-Lrh_TfNqa zUgJieMeh&m!CUpC?S@pWcs{{co#E0ajH9vDnV>3+RN|WFX1DFEQ*Pi^CAelY-JLz; z=C5FX98}^-8uM*xP6}aM$`|8|=66z@k>p~1-NSvWN?S$E?;~4E!f>&{H@RI<)yKV6@6_kbXs^_8mPKc|MdGQVLanHmhd>a>n&W~GY-{^!T zSq`gnXe4%l4ln0M3tQAO90ScQDl7(yV9B8#d)Ta=x(NH)R5|W;zzBy+|ML%SBGnx0 zwd=rk#5oOac}Lc6AO>i`bbpw7gxeb`i~1fga}^zXaE#GbkilwIRl#R?dbE|=w%d2r zlLgpSajU4y$haQocI0R+-W>q&wFmrHOlQVm;bxW0A> zGN@B@#D0&cR8lY^u4<#lQ>pk`6%=;#9vVg}_dcI;fGOTk%jZ!gTW?EYS}u(qMrf+n zoeZx3mU@MQqiMmMJx=a<;2p+DwR(WQ0o@ob&GGsHmTbIf^~MJ@Q607jhK`~P99W@$ zkSr~Np#$DVNT4>6wXQ6N+jW#Ob7a}697gr9u2t$7(K$^_e*SaH`bUfp<(` z^L)a%`22Wy#{StBX$Q41qXp`$n+--k>jup!Z9j}iaGmV{{C99- zf*QkTHvCP#5^yEVV}?Cmcx3xuK2%S6=#<55lN&Hvm1~R?>bR~C`dTZstLPpdly`FF zRdMwO>_sXbvpuU6!nH+*=9y}J%LHp1S~py<@ufkX;U-o$$Rn{SsE%{D`uNNaM+C8W z5t+$0tI8i|U6m2-4<|_W2QAt2XZlcm(!H=}R;=kA`VlPZ>MMU-gr*;5&5tCjAqMKT(3&6!Eep?wUW)?W!6iiBfNP|8KzQCh+)Kk^3k0qDDM|A)3Z#%yD5PK(o)_?loOEx%w+zLPruPSw7llui#9)5Df8U5KgS zrHS#(T~Xis*pU^@$4o${THtz5D}l_z0q?yPO-UrJuwYK%VUo~SNDMfDT~Ww)Q_TrA5( zeh=dsl`YEs?hIWGGjw1Ld1VM{yQE^*b@YsS1n*(Cjkxosepm_GQY51WPER@wxZHtE zQ*juVelJvY#Wk(2X||$;KxB(6Hp62F-1>AAaSJx;Z9!Qr=r6i$LF(Zl@U;E#uP;6h zj*Fwb3Rro=(xY#AdL*sX7+ux67w+vx`d0Rir0wkuH#;#CroTV*{xB_+T0yF6;8ev0 zr47~lz}ll`VDyl|z8>-?q%ub9G2)Mvz9Z4&b9HeiG=h43DLw(d24ib{0(@D=V!R3p zih9l9ZfW{i*El6O-r;=|kA6Qx;k7kfSO3H*D)w4k6NWkX`5#VAy&e!Am@vb+l@pNIK4EE`Qy7;}6z9Cc z?C9|cQ=NrJYCxIlkx&rlEX7mcb?Cn4agDAR4PTfNmrxKNw-51M@wJ!6!#A@)5Lc4) z;xtio3pl!ZO~Il^!bGQlLH#oU+!&Wo9Opc${htt5w|PQZ-0*}^`a@3O5%=za+^vno zz6tOxF?Ylz%!_w+U_vxWu{8 ztoah11}*{f%^upo zo&X9Mk=2j}qjTKODwrey!n6DEQ~|7$;nB2BV7JYF~@(i z{*<*bia|`cSouTss_QezH>8x@n^QW}x|=~?$*Qw`GcvY{YTSh#?hMPsN|Dc}PD;>v zfD-Gb&bXeUYMo-DmWpYDddEkak1#gKtg=)s1Y0f4y$+pe?xI=oNhH6Sby zxZ+@Z+KP8_(bbI!heR7Qwu&2^L1UuUX|_1b9H?ATOgDCn6zVujq9Q`C4RxD$+q>6} zjkLNCMF)>3m@8HE!4_JrN|IJ6SSyF$$p*C^E*dCqqjVq}ZvS^%%znM2)r|&=)2m60 z-?+A7UL!FcF^%4q8nwQ08Vq9YB_4X5912?(vR>dpAA&I$7ynv^1pptcQ*9tUqDwot zOLNQUiA9bowE*WOG}6z%r# zIgaYH(Cz7IcbIdEjtduj+Ykjj)q~eh+;h(dyGyLNrW4oIv7#3d1fGAzcDJ@!y$SVOi{g6_B z41f6981}>YDw>Z)AGV*CF`oN?MCzI-!RFxIb-KE0B3J$f%vQL_%ZI)&o>sUw589R6 zYPdaUrCR`QVoazbG%iTF#ltC{SGE))jD9lTTKz$Cqb}d5hV2ekI8`bFO&do@|F{yX zKdY0KJ9A8mb?*P~#{#Iq|BVO#8xP>a+WH#>jB&?=f7*Buad$NCgSRlXJLV@Fj0H(h zKQ`3vGY>FYnDeT+ywdGjudmFrqr-n}&!(nOwHc_er_QhS#DS~T;!Jq&rL;KBR2##2 zb8kOt+Iag>9)iK8yD`#3Qmc!E2x^Yf7vw5xv1 zewhZ{EZ4b!#~ERlI=mcAEA**!?+$!Ix6qpvcx(s1r$9$sRfA6PJz&FMzY+Y&Kxkq9 zZ~4IDbnm@GrRxNN*Zsj4cvMYCwK6PmwT>CS2Tu3iM;ZpSG;4Jbux>YcrlCDdn~Pom zKr;T&I1uxGw%TR6H**tdUxjOX_inZ-8tOz4wb!gXqI-h7sl{S|l7hx=?eyK!#GR?p z#M2|68?6D$HR`)uf=XuuM6v=R@qO~o{gC8RXo%3eyn3fG8H^2rA5Eakf)#iZdn`2c z6>wImVY4l5BV18STdJD?UY5gC^5BW>IoK^$^oi)2fWBA`ePAOzxd{@Z_a3*#tipqN zRp)L?D|H}*PkfgfF~NDIhdD2}$?7uqjZVgsbVln^>qMjF2wL|#Knk@n2*V$Gq)zM3 zWzZ;~yZSyW4DajE34D>obB!CY1+WBz?Z-^oYplgRlG$1DBPF={FS?U(yqZaq%ab6iF3#N&HQdIq|A?3+jzh}54Bb8)v#(2H7S6fw5 z@Ls35e=W0)vFr;<$E%d_gadbIQ@_C^VK+-JI;l_S+KO**hpD?=K;2<18}P!Aa^{ve z`l{M)II4On&u{3c*^irmuPIJ z$Xo94VkMxQRDSJN7^Z?#PYwiKFmVmk#6|6{jcO`hyGyBx7;WX7Sx~tF>43BK6bP-3 zHsK6(t4oR1>eLLQJVm0f`g=o$9?kyE=lI(UEy@}}x$U7LuM$cf+99SAE^ckEN^n1V zLzRvV5UUe9w=Q9Ku~CE{^u;BD9{HoMTzThMO+fWjf4ZVu4!-|iTUI6izqagtBcZ>| z{NK}-bze5t9lqU)Ik&lw&eDu<7Tmtv8QxSK!Y;V($tT=bxc(~Oyt}RiJq<=C-P7E+ zZinP%!QUSS9({{eex97J(ns`NTJWVubMyTF^3E-03C7-eT6+?)26#O4XWu=Y24nY; zC8MCQWQ~zKXq9f9j(aaPdsB7!$531yL9JT%b-;ALx_xKvx!wEzFxtX416K0pqLRNV z1=h{c19AyQ>|I?}AH4VGJ-0m7V61jH@Cm<$_Pz%wY_h#`Rcn?C%PK!#O>pU9DR@!2 z`ze^b-S44+jF!W5Sk@lCV9rh_cPQ+(DjicN8K4B{JZ?N2_9&onXNxK%~J8R(m z&Z^a}hG#b<4?w-}u15C~FoM!GKj5ji=xt(NHIHgF?pzN&6^h9BD6i1|b^WL!r@_EY zu)mGC?a!w+PEMkYD$UtCw>VxvtK#?WmIhE@L)UeWBX9~i(|6733YFe{;J`(@LVeK# zx4HP}h4$gr^$75?7#ekn*`VDI-UHUD#5ywHuiKWk3U{lkaW{(}L0k=0xei*yVmHhu zQU`=i0E-))kOgV0^5?8_=n@Q^?cb!3rz$+F39}yklZ_(ISd41~jRj4>cgIY58Z_nPX?+iE%`g9&-4@xJ}cQrg? zxgxsm3+9wMdAK_ROD=>iY3p*kL2Ao^!g(&GlFGyat}rUe8UUg<@C(x3_t!Q~vMWpv z_z4<}y*Lctkc!rjR(RM*B?eVRsVQ*D4cj0j67S|(*8@RSA(U^1zkIDZ8m0gp7k*=i z6OP1#yGljf=fkQO(AR6|9u+it7$Z->-~pZk45R_wHz;UtYUh>+34{g#LXplc;p+zl zrKu|UE_dsYr(fF4$A0E}JT_@A8aL(cRRCQE{OJ-&{q65fyu z&8%d>Afz^*&zbQe6s(-usMK$uw@b+Slq6jb60hTra4kV8l?WT!zpP3XIKKHEh;E z4=1M9a$5+P>SEPp;`R9_4TgoHf2bq?t zYyD?-48FUJ5cOf-`>Pi^HmfV|mv zQ*}CU9|K?fYZT!heqtVyp;P6LK9Rbop$-_)d|I7rcQsAPS7Q;bHO<XFA8 z7*}+Aghb;~X^)Q7+eSvO^8KFR7jfcJ+aH0HV&y=f~iIc`tuAU6jXy57m$q9BP?cLdQxyG^7=BaLScpF zRh?VYUfrumGeAL+l8o9RRJuC^m@(820TykvnZOoe=IaQO?EB;lwQiLLOchnXF}CY* z*=X%(7WI6FYW{ktpn-)Qy6wtXW~=eUXM|nUT#Fk}>)+iPY;363sP4^8 z=zsdU5fyKwp*8z~jXP%@ZuX1rS4I-u%?6a-pPgA>>uRW57q*uFd~RW-rfb?7q433dhBLn7n+-=NpS>;0A06F}b zu@*}@f0!0u*LWtkg0BCvjBAcwp{78yA)!44U@Z(kL6N z-hFdYaJ%*8;?M0hJu}@^`*=wDVn})kEQ=SIn~w_m&4UH7)PCA*eRz+cIMYI^F5zYc z)Eu6*$~Y^%c=D?BqHMUn{?*2Y@Bwgl{}tJi9{FB1zT>@qb(^<*bz9>h8E&BCa1tI?@k!L z)4kDKd3XCM^g?qef(Z3c6qRzAZT@4I{q+rZr=ZiBXMY@=65#>PKt zs~I&1)9qOOouN2lT075x!tsx&(JM_HuePVw!f!TkgLN?&SocPLjT%!Wj#}f+d|-)1 zm2Z^Ik&HwtHrJDGK~bKpQUJX!2EU8_zN(|k%+^ExSTF$&FvqwZfZ_afG~q8z2kG#| z57(t0+eQOopj^fnJA?9i*tTk>Ma|z8Fp38JS`A<|Qkm@rFiv-{0~!pH?%CQO z)AVBmzPsakcEbvS zh7OIJ8oDvwsRn@-Mx;i4*z=!Floz{=2e&-8l|^5DG$OT!Q&_!ld0^35&D3n9#=CtD_Bz(}t*A4PXgdVC zH`)T05+u}@A72KJs5kyo{r0d`@6}Kj_{F=s@w@!Fz0+EAXE?4DzS1MSX-|!y8uH}; zW@SCEQBmTkjb6mh#j8;QO5D9$1E*D}c)Sh1`Ni|TS;}|4L#4%Nb>@iVTUiD?+ZT^R z^tv}*cVGX-XZxs~@b%ck)DD#Pgi>5Ls`85JIamWm`?EX!es!X+eYm53%yy<$$_-%{ zgc^hUD@DU$#QkI=PWZF{gcV16zB+@+$|TkTN=$vS@Y zGTxUnH_dXr`+M)7caP1V+I4vuHSy2<^&V@)@+YO}hz1gO*f0kBC@1D>7-ymX_RB~q z*Ni#GLzBiiUbk$qkE)piY&YOlKd-s|$r=1lr56|G|IDibKji|iSm*9^%??R2*7=hD z|J8JlmojvOyp+pRGGEMkNlNGaQU0&yLrS0GN1C30H68!Al&6&6Sm~3_`%m$T813;$ z)A48dInwz4XZODn_%lmjKyJJCSp%lQ&wb}j$;}>vzf2Clzdmi!$kEw-`n7E{8h+(| z^2ljf?Z&k2&}YinN$}I@Q>UbloRvL2ZNSJr1KMV#rT6QSl{IckUe@TDGuyVyN}oFV zs;p^KCrubVE3I8xTFj*O>qx(Vey;ly>1{jZcuAQsdD^6`X?^+)$ZC78_gm#`*k<&k zsZ+AE&;~5pWwq^qKgsTyrQs`P?2hxN#oxyJN%&ZC!w;_Mml;MFs&oe?Wx(l+Spsc> zN1e^p3Gp;orpU(YaHnA3m)@3pCSahA~a?sqoKu z$?5y!$uZpOps$a2bbGc|Mg`2Ynqf4HPl+<-w{rTUJ8bazNX@v+FzJMNl{Yzlv$-m3 zTk`p8eClY7PoqZWWXBw04impSg2nK{=XcQ~Tg({!dEoP<{^U0fc&F3P{qc{cgU>%V zXI4&b_T;whT*TYH*XTSpU?Z$xQPLmQp@4l z;!okW#~%O1^KuoLtKwu8r@`57xC9HpyWwkp%GA9&=w62PWi73`5^FZxC2dbGe;tAQ zLyO)G&*%?t!TX~yKK@0zfUApm^@pB@Go`DNtLEK{ImEeD4Jl;K6 zxS8%fpbVdlG{5l@8wXq=_3m2D{|JAgCZs+m6jz~tx-S!NIyGpH(?jkVRi|S+hpVXk z6&LPzCmY|J>sE|;tJeLxmdbC2!g@?!n{-o&7vd_TlLhtdC5s<8fs5cOq;;GS@6iBg ze{R*G#*KAP)h()D{;yo9@c&4;;ODE{`n11P`46`jbQVxoN7!DxF%Iv^;9!6sBf}5k z!B=qodEc^|L9X48&HZVg*E8FCRFVFh+Pd$q5_gJ#5ijQbl%P^?qk0(?)&DEsvhx4! zoQ(e`>m+t_hf0P|rUgIweI(!J7g6q}EBd^NN${9a$I$V><9XU=s0qomm_07x8o|*N}Ep0FA)vIe#O6DlI z{F9f|rB#PkZO&<%NAKER->yxoHXT~EJIm#i2K<@7L^u-QxTs$y?#)V(h2X$f16Me4 z*Y295{5lJQ^KF^MGL)T{gr^z@B+^GD}zR_0M{#eulBWrRjf^=YMt#|4Rr zSkr&lJ3l{$ektqcndisP)aff_{Y9q!de8qJ)=PEh;9vkRsScA^e;FF7{KvZ)NCK3~ zdSCjm4syISjA0uojfJe2(zu-UL21M^l(Bv`gmoG(S{N#*5kCo2f%RC)HkqbPyjzi| zuZ067ymIiL&Zpa1QJ=#4!9M+^x*ib6U7L|kqiD_h@a-vTENupF@W9v4a8OcI99UMB zURjlJJPpxU*|^bAK320ns4Os@J6WG|9Sx5nGbgCt zF`mw>Z--_oofEwC2eUqG>W#5yChKoB_3?Aa0s3FedKz1m|3RMrb*z`tSHXHIebuZ# z%Zz`7=f7c1R5;H0_)o<@!_#+Wz0|J~Q-7V8z6#c# zW9r9v`fAosH1+W#$pG64{FEKN3gN%6onU)4${`gO1MrgK8NqrfpZPKLOJnFuW9av= zz9}YB)g#Z*n9ub*J`MmGozGBONSDW6w(AJxV%eP;ukGrR(sB9**`4p&Vf&tWG$zP# zPQ!mHUB=wLnDtki`gnJ7h3BtheNR*GP75?nRIr}b9?Jh%xBfBTYdD>4;{x*2G>#0D zz%HpaM&LLL@t^X8ZNQjgdb3Si)5c9IrDY83gVKU|DP+Brm*p}1m&NeEm-SLv*QkRD zm+PV#>rX)=RR;atvc&ZFX1z2wjA1?f7>zogW+rzXUC4T=e3r9b8Vkw}b3WGfQXcDC z1l4t8x2`cCb?d@Ec-6;$DxJo9`E1soY3i@^$|0TgZA|?*Pd|zE?M=P09$v`$OHF;e zn*dDTO4du|@H*?Ia@@yysh!rXhY>qY&{%=-pUwIVG*aage-UL6_35ndZR(9Nc@pbs zJ+IEc%qyRTtZ!wWZ>;B6vOd++^W2W{zs~wjrhba&e;@0qxv2OraP`&4bE`AcEFl)i8b{rDLA1+16a$ch;H@)-Kc!|1W^m+{#6X!IOG`>4=e z*!!^@+8l=kDEIvg)=T-A#`~$%w{*)vTXv>f_yoEv9d0jQIDn z9`mf@AL@;PY7AWhYTp=$?fn+7y>zCFPL9*f^fTSl4`zK(IV8b3Y79LuI-Xq5#}f9@ z){MhgSFLA#6H|YMcm8hHpJnQeJv>|t#GtBdcyZ)1aRrC0Xt+c^vhX42*N%eVK1-cY~!2zARZirF^)>sOXE*1 zy1*l^0aI8XGH|;ef!G7*t1SzA0$*hjcZ8@S>FbH=zJRMry|M3ooyW=bp!by_w%MoMa%cv+18mnndaZOZUUv%7P7mAN zh?6iP`5JOQ>!tKAWxbT%**u=bO7C*EJ6w8`Af2zXT^Pc?{PVRNv{7T|;l{4PbOB2q zA7`>YXne%-9mr$T&C%(=dNAhgQufms>~wnt8{Af4`R`$UJ5z65r*ck4h2v1RRiEUs z2hUGpeNZ}4pUQe^T`(esKA-iz@iE>Vq|yIU)>E@p>EnAKNuV!f{Ra>>^B@13*Jt;# zO@?V>>|1KkpvL!eR2)!-xOKoZG-JIqPxOwVAH#a7j0;&WjVa4n-`Y&SvGy#Bq2C)L z{u(r(2Dbrhi+gy?90XxspKz}+(@Gr6Dg7{hP(O+FbzqI9>napa8!OZ=WW6+>uVlSc z53jR+DEQL;%07X@H4=*LC<$wTF0jaf8d~4y@!%2?ms)Ei^|Ue*WA{a7xg zJjU*Tu&-Qjta;fhm$T_cnd1blJu&U+tT*#Bf|*$^xy+<;Srp)B1v6FVn5Fg1IzU*L z%T-=_cgN5lJd7U8rGm%K#Spg2j2_FSA&)zUD?hBqLiR&K#l!2yB+!pwKcgV* ztA}`Zv5!8=*@ra7Ri^u#x;xuG4v}~ zFZnNzp|529IS#y3{Kox|S~NHW&jFbJ6xIigt*8&PKGXDX++Q5edNKd351QxE|B4v; za@L<`#&7H;D-Uyi5}Z?uCLI_{&GX&)Z4LHxOvBl1L)}J|p>fY5J%)Y~>!mte7~}kv zG4!vqzKfZMY2J9akM&X?sY@4r9jBLhKFk4m;35h0&-y3g;El?^dwt|yb$uj*ZKQgf z#(Jp?OIRP2MohzM);F@#P+O&87u#F}_Bx%${h9+Y($Ihgb@{oU4y>2@(m>V+?eTCN z&t<(D=do=qU?z>}E27T9w=;Q6TM6MBaOk|^y#0Vz?|b>&ai&eYd*cG*u0fkkd0uM9 zdX-+xLuY2@yp+yN%EP1pKl#ked1(5dg=UuG0xA8asHwh=dWS?LNkBy1ytdf{#`N7KM+ITfNpRdCjYFL;vdL* zX`IVty);fOVtorUe|$|1^S6fe(ipQVhW-HSrMaR3-3XBH19pg^9~eWQ%X%q)i&)>$ z%s<~R#jdQz&|WYGM)&(rN7_!&e6^eX^fLVz^KAPpXzJz z7wfi`%KDb3-gy3O1nZ^oKL0TKB=EVE_5Dr%?z~KQ?yxnqF_#V>#+Ff^x{gI^VdLaxjLzF*S(bdp($sYR*S~P(F-% zA!FE&l#ap}`sFdwkQQkADW6wr8+ z&U$IQN#XJ6aN|u0`;f+))vTAs{++C+TQe$+X;YsWZvXe>*D^D|gK z#B4)24jK1(au4GJ)37Lpehur>%{bzFQ6=N~yI3#f@c`?4n&%tOjx}h53df=0LDi8l zr*&YxbpF5?=jXDXh7aYR?<-RNSszr!s9(c+sSWL7z0^hzus*1bVi(=Xx(|c zp@lUH5<=5e0f2_slfOAVD*<1+&Jte47SDeI-WEM zu#?++5*3o;1g*ueE>c-f!-|UExUMpS^+9bZ3C_=F{S*l6^tJ=NGbG8q=1uKB&JXLHhD}OgkUKzIBItiJa!9 zO7#4|9dpDkQ%3!^;x0=R!DSah}(I-KcCh^#XYk6N?8|(R9>_Zw8 z4#dzmI2WA5OUh#h*5f)xm$9*D8pwL;cB+hwbyP0vr7~E=`r}Ri#yV>a>!r53D~A36 z>!tCe0SzQDmz(h$`>77BPc`+%erO=;ee*N4bG!tH<4G>-gZfeu=rgF`9A^}SeRXVH z?_bA0q%y2vy;O(QtiKrI&~+H!Q?DT!c1DG~4(!Z&Y0MkU`k*?(Ikp3jM_CZ|<&o#u zc;j<^%VVUajP(sM!K%F(pPAXq`k?a0`lvw{VjM@h9@C8VL3zRRd$V4Oe+=uT{#eL* zslO~|z0@DdSTEJZUe?o6K$Va299a$O$nvv~%~&s;-#f)>FEELTzXfh2>Ys z`k?s@^~+=UFJpbsz6;Oa%lbPYtmBV&Z(yRnMmJPA&RG1X$|v4kkfOdB>!meZZ`Pk= zp5M=#)5gTm7qVWe-{mplFN@)SZw!5n?wIi4H7w5Edw9IO6T-f}>aNq~V@?x6m(G4L zjISg(8uK`l4PpCS_nvfB+#ABc84pEMeJXdM`Ji|1v6>RDrbGr7=`7j#?T!Qw$jJXIH29@ zoW59g2iWedAb(rDwm+f=7{E)Kr}9}JG*2bLc}rP;GCEOxGsE?dNP2yE6z21{~*?#TgvS5np|ntM^KdW3C)2Uc@})o(?{}SIFt4%smL9kkeV< zT?F1$;N1k?UEt>l{Ct6@3j6|r_ZIkt0uKxPVu7a%yq~}`1ddPJ+OLo^K;Q!fK1kq$ z1wKUJLj^ue;8zNKguq7$e2l=y3VfWv#|wOdz^@YcWPwi+_%wk}7kG}q^8|j4z-I~k zI)Tp-_*{!W$>Ry%5^>iA+*CtOzGaW9kTXx<1p=Qh@S6l45qOcn7Yh6qftLvUHi6$E z@I?Z@Q{Z_?rTMOW^Mae3!uA75MuCuMqeL0{=+h9}E0bf$tIc=K|j= z@UH~^wZOj-c$L8SS^N|r*bey;gl>nOne&!i^GxQvJ=Gj%YV^aG!Zg2?IbR~u97hO)Y!3zM2dC41uQz zyoJD93j7>_w-$I?fwvcUM}c<|co%_p6L@!l_YiohzfD!pFYc&@-_2z;i%uNC-gfnP81e1YE}@Iryl7x+yAUm);^z>5UFP~f)+yhPx)3w)8l z?-Kak0>4M#_X&K7!0#9M0|H+v@MQvjSm2Kc{4s&A5cm@UUn%gX1-@F~&j|cEfv*+# z3j%*p;4cgO6@hOQIPQ|{SIF5S@T~&hF7O=!e@)eZfza{W@1ink)?+Ls@;2#M5 zBZ2Q0_{ReORN$Wp{0o7rZ}armame{fu&)&OHv<1w;8g&qa%iU~P!usgP2uum6wNZ<(quPJc6Dq_DvP91^Q6L@`rA1m-C zey+ef3A~HIy9&IUz`F~)hrm+>eu2Py3;aTXhXsDIz|#fZPv98>?=SFy0>`VP_ABHJ z7Wfc>4;A<@fnO=`5dt42@G$}(EAa6GpD6H20-qxAsRExS@T&!$Bk){-=Lvj=UC_@e?}A@C;zzEa>%3w)KppAqxMHxT#<0>`___ABHx6nG#XhU{0!aeqBKS`%`L1^ZhBULx?@1b&CW7YY0>f!{6gdjx*3z?TU8et|zI z@TCHONZ=0(e7V3M5%{APzmK2KX~_?$(Pw$NqC?JOmOZLM&f@}qQs7Sse3ihT5%_Zg zUnB6f0)JlM>jeIyz+V#h%L0Ez;2QxhV*E+uNqr#MLLZJ^L}lPxSzYmJx4a@ehcrr?frw0pjZEYL6dB4`iyRt35t|c$x<| z)c9x&Txjt(h+ky!v9%HPvG^h4_$gHXE2j>=r*Hi5DIO<&nUCR{*NG3X_z%PfTD*Q; zM41-vM0}9NhY`Qr;e4@$nXai}(bKA0R%_;-?&gXtKq-5}#u6S;VJW{B`2fEbjic(bX1Dp)c{6 zZt>p4b1XiRc&^27Af9J&_qX0=So~wM$4^81Unf)7o#}`0t|jq#7EdES-{SWXztQ5! z$0EAP;VtZ=wXYWL;Mkok0t(?#n%#F zVex9>k6XN1Lqtzld?4{BEq)d8l@`B&_)`{tmiV(4|D5=97XO|28jH81iTFi}k0$<- z#or?Svc)fNgb2UA!~c4M_y#|OcL#`XviRIn5N)>jR^nSMJ`TU!!zs7;X5z0~d>`?h z7QcX|>JKeGh4^O{f0uZr#Zym1^o_-DB>t_%HxU29;>Xe#LF~8qdBp!}@yCe&Xz{m* z|77vsi2rQyiAjj6EnYVn(IJaJMO=RzM(dBJB~C(|1{|0~yq3k!X^IB)%RatS-XLDz zvOm2Unw?kuh zCgSH>yvLbn-`V2V5TQQO%{KT_(F?!Y>W1{S$r(<+b!;X-|8I}AJPu}+-dR8h%dJI8ST;j9*f^e{C%E&H||(M)}6)H`Jn@#ii3pNRizaXd5R ze45~S@IvtXr}xGP!F@gBofm}9V|s6l5Pa^^c;^K}!M6>;%Tb<@5ehjqjdxx!`Iyqmzg3;aBR_YnB`0#6lqPk~<`@LmG%E$}pfUnua41RfT6AAw&i@Jj@q zF7Unr?M_B=7|Sj|lu` zffosUp}>m;ev80w6?lojZxi_K0>4Axiv)hB!0!_H-2z`M@OuP)ufXpU_!5ENFYpHh z{-D5@3VfNs9}@V(0$(ohM+E+;z#kL%3V}Z^@FxWRq`+4S{3(GyE$~$WUoG%w1pchR zpA+~Rfv*+#^8$ZC;OhkbqQGAg_{#!cFYs3czCqv{1zsxfO#hrnMI_-g`xUEpsB{4WB3Q{X!V{+7Vs7Wg{?-zD&O1^%AE-xqj=z&{Z9hXVgd z;JXF>vA{nO_@@HjBk<1z{<*-v5cpn!e<|><1pc+aD+T_Iz`qrEmB9B2{5yevFYq4( zzF**f75I+=|4HBn1pYUH|19ud1YRxhzYF|Vf&V7(g987Dz<(F`A%O>9=!fh7aX}}* z^?!kf1YSen_I+NA53c_U_B91=-xqfM94*+_7Px&M+4WObu&*cZV+3yBk9Peh3iihe z{5XLhFYpEex9@|y={ZrbKS|&X1%9%?8wvarfj1WTsRBPu;HL{bN#Mx>x1SSm%dM$k z-%Q}m1%8IW&lI@*e1e-E`}qWy+s`Ms+f?Ch+b8x1a047($NyT!+ig7yP6O z+cw>Z$Izh+V>Xh(*%B@!0qQoT>oLg9)In{eubQi1#Ulo;`+CrKXG|q!B0Pd zUn=knf!oiwxbgNE><0*ZpujT)K1kq~3w*G^uMqeUf!ojLxcMC>*bf)@l>*Na_y~cI z6!<8Cj~4hCfoBVRtiZfj=VfM+N?vz*h+Tae+S}@FxYnQs7Ss{Aq!&68LI? zKO^vG1^%4C*9d&Az@HcR3j$v!@D~OClE7aU_fo~G{W`S=Jc$vVr z3VfTuw+p;n;5!8Vs=!|p`0E0HL*RcA_?rUXDe$)h{}fgcq3KLq}}zz+#L_CEUQ^(;1b(!@YYV)N!0QUUp1_Y0czuB<3jA1s zA1CnR1>Qj5CkXsRfuAJsh87=kuH!Uuyx-|g=4LSkc%t1zoI-)$DfoGu_~|;{w(N7W z;HN^c|10ri?I)Z49Nj56or%DkINtAut9Y9U_8kTLKE%D>89$NZy^Q!7Iz7iTA42?0 z&FeFtMLb3GamD&pSnTu)>FwYy+C&)4=BFz-M-RrC9qUrD@$ zE{A5!?*bmwJ|83d3$&jT*#1-Ey)AxXSI1fAT&TJ7IT(1d<9#n#nEl*L_F>EZ4YK#X zuT0rH-7vr2?`R*(ewq8O6RbOWlAE3Fa zuOY+-YJM5}j}Z5MUt6VT3-PD4{b_6;IuGL=thq{OH-YC6AEND5I`1JqRCATi&BTXk zKAYqHD{=4lxHFlz>VfGQq3v^+&mcZZ^TEttBtAy-pP5$zPmcG#ucj9B8s`VM!(IZv zMBwuUez(AXfb^)g%1I&d7}z&)#_9AoWaZn$$7`<2vqmb~PtY9R(yJ!~g8ZigZ{l2~ z?bQ=n#e)64Wbge>+!Duq?Gfz16Zk>kO&ss{$5s36(G&SJot}2CduKNAWe)zTsr%|4 z=gOzaK1XxaPd_A{r}>S1UegQE|23MQ&U^}S@At=5dR7s?PTQ;W>?7{|{`gt!r)Dqo zKUdpBHPP!V;6OU*=@RnZFAdu{M-y501{2synL*hl+&pB*gD-GjasQEgO@Cn~;KzpJkDo6;BUAGG{zBJTbEBMjs8n%*zizRsoSf0_1^!uErJH*p@) zyeacniTBX?oxuE5XkbD1w-H~i{S4qU-v*w@=bGXx~9C zGz)l8Io}OD+3~*jQq7O0g8jz=-v_*j^MsDKFNfM*j(nBoS93bY0S`*g4ZxEf?|XDr zdtNTseRDm`;u9YkO!m^x6VE+3~)oI*Iv*Wbgg%Z6oH*hhutdKj#t0 zU!`|n9a&})zgUkmYCc^m*sml0n)aj0b0_gPG*{!;LEy$U^^pHCOSDCcaDisn7Ng5r0?nGnqe6-244sRgZ5A z_FoZyU;9zGd`7uQXTfw)QAYkIl~^{Oy@hWZKiS557zEATy%ugPT>HJP}heMr#C$fzxE+zYnkYf29 zC>HD=6Zj^9zbWv~fd{2CZVdAMI{i&KJ*fhpOZ-P|uhu_r6Zd|fI+gvLkd6Lr`|-pN zXg{zVqSqqe$&UAZ{;HjC1RhkL@30?rer@)XFc#yr{kJ9lvyNA_^Wn_Zd*$a=;?>$- z#j_E3vU5=aN9U+?eh)k-oi)c{daC2q`O5!!%#|OdpG^E$9j{8){mj*S<>wvZ2etil zcK8GFK_TT|_1_-jF+H~Z5aPdUKd1AF*9d$Oad>2xUoBX!75IC^HN3@biEN`56hkiF3M6Pg9QPdE)&wSMBx(!M-;PL`|GzZLjL5I zc#xk*1%811+@RCbj?>vY5B=NMqw38-K406b^e-lUljf>_eL{SJ#q+O0KlXLAIx~^m z*PYfAFVcQap3FwD~Hf@_i6*JrYc+t(}R6JMzPe87IXUx$8f(L96s55(>3 zFqh0m`x0&6o$VhbZeQ>EJMr7K{b_7JXb$>WWbrk`@6!A@wy%9X+TW*nYv%ok+t+_~ z5nrP1m7kQk=;wZmKT7-o%?GjngT$9=uKe7SkA9YEUMJ2yVctCC4{P3p{UqLi{1MGn zIgBN4?<=1nZtoKh5`Rql8Or|q7NGxuns;UXAaQ#?^)m3Fezc41S7<*^u%BUt=>G}L zp?T2j4&cd-_j^DMnePA|9|hWE|d@e8mXJ0|ey&I%5s0$=8g)&5nTK1zI?=C#=Vmx#UHs1?cdN`)mP%} z$hT-dne#h<_zca%%nOOXqq!QN-z2_EbG44DbqD%?OY>3eCzZIpzI~c_g|=7oa??fV z=RM6Qu%D-i+w0N}ccT3V+WvI5zlr!qnyYoibHsOB{M5V9&uq<=pJ~KDw)nloKhyji zj`wHcpK7lBB;Aev?RDTp;$LWcRn9wz@6}w*N1dTU;rf#1nH=vD;)R+kKRbz6YOcy* z`aS5!UXT5QxV;|hbuZf6>#;A1f1~}M$mx0RKD7VV;`vLES81;HI|J@V{+;H^&(RMc z|6cPl_WyU{`!!ed{H_%9ZZdkF3A z`-3fktFeNUPNEOl-=qDsW@Qd>d%d)S_;1=?)o+J~G2Xvx-i7@X6F;bVFXsD+dtVH# z%6aB;^z*y6e}dOty&pjySA$R2-|(C8DDrsCReF{a4{6?r{j7cr?GrS=h#h9EKweXG zRnA`%KU(u-woiK;?dxc+`rQ`d$7;Tk?OVb^3$8P0uI8ONz>}RW);Rwh@ot(Yv7c|q z&+*#NIOhGHME_5O)Vi%6^CIR8_`PZauM%IW%URWX93;4jv(o)KcsQpvpVx!As#oQI z4)JHSA5}h&3;bQ;YeSRSukzpMDU5e*2)0%9Qt2E?`~~e_rE@8B^3KTS1P_GQEa)-%tbeRFNU zkjvv$;#;h8JN{X;-(r>9mBhDN<+hA@bh&-YJi6REK8OC#)ag;_e}(v27Vo(R?OR%W z3vqir&}uE(pQG(ne%~VgrcS>a4^Mg??OSVm#k&%>?emGZ)%GfXJBZusgt!;be|v4; zg3G@(@s66G$owVZ=UTk?I`q>?b2Y#0BHl&w`s}C2i)e4JA8sRVuOD6^Zm%ECdx9dQceUcZow&VDSWmp0W&aQ2-8EO`ll3yj+eq_9oUg^iPtm*+^ACyJ>xw?G0B+)> zYWrS1Za+iZUOxb>&+JM(MUPR);3y@7sC(tcFB zb~0D*m7i{ZaqZPOSdaa!Abzs;qpqubN8Ik$XS|7irfB=-?B^NcQ!ULg7TV`%uKceco@?>;Z=-#l=F0zi;xjZ?{u{r8_A@oF&+!f-ZqF~Xh|kjY z?byDI_;s2e&;00J=zq56y_hc{e!b?ZAGLfJ?d^HtPU7~s{T^|9d_L(t^ka|Dvxw*G zcn5HLekI;R^N!5VdmsH2XnqXyV&a9Gt8xCX#Bb1C&5x&41dk7$1wLEguLwN;gJA!? z1b&;qD+J#7!(jg{fWy93=l3`+pZ&yd)Vu}rhd)C51)8h&GiW#Rn>BC3_FoZSsJSZ7 zsUM?#vF2+1vyJ$znyY%L^9kD9^VC@4CE8w%tFIEj-QqnzML+g@w4C@NZLiAVAH?s} zdimSAO0nzS!bTJ`b*!{=l0!_Pllr@q4tNbWYFIFVOxz%~d(< zBYvgki`f47y}|Le7Wib~aDCYFvxxWz&AYSzbpqc_e3WIM@Fn`Uc`M@f{8&hQtoCy& z$NQnc+kA!oCu;j-w!aE^vU5cOzjZou;9>a^vi|9k+-P4Js-`Kvay9prYbmjHsx%#s!x|FqojCL4%5l`akEs zdtZIuR`sf@dY04&rn`T2-nr*)=bn4cx%UP1j?e!Z{2v3{@j3mc$|t@qyxQRJ3Fwcr z<$lfJR|UA6zsLPd`CJ*`Zalxw;8zE@(+|h|Tl*LYo-5GK=1nf zTL%AhfX`Y!AOBya|4e{8d7f~O;_>l$f#9oFJSCVH8!eyzF!b?pxZyWSe{78YD!~u6 z&+^9y1(*ETm^_F4R`D+exa;2w4gTc-cl~>x!QP@M2LJZ}zui{uqXz#`fIB|@e^5TR#qjqS{NDon*_O}W{88z@ z7T`~`_}>})#{urf+wu1)eSAE>)ZqUaqrc7IcLca=pJ)F``NYTPI}IKmpFcDBe+7I_ zv~s@n&&ub{0Dq>%xBf-(p9Q#+|4M^@Ho*HW{cS1u<5nCbe10C#J3cQq_!k1))$3yh zzbnAqc)l}*{+NT5e|-GB!{EOR_&B|B`2CbV-d`6O{C{Hfe=zvn0q)xERrgmuzYg%H z+je-^0~C*slQ$Uro`61Y=~q5b>3;nKtF8TbLt_==YD}a&h9!^5-N^f5g%7u4SsMy@7n)zgFiUHUB7?d;13G$ zaa-;q4^jT{@%DOy$H&!!9;WmU4fvd9`MlQP@p1KtzgGH(1@unNHyZq}1KjD`$2?r= zj%LYF*;N$x1@I#f)BLm#Ca?Tq3umE@RTyOBh1N;a}KmLe=64#d(3og1h zpkHh0f1QF?9;x&X2J<`GUb8 zAKzSbzy$`6^Z$gwR|WKL zoZRoxI)94+?&O~o{OA?$4RE*qe#PML3-G5|d3qkB^dAWD^%lR<;2#X|H(UJCM=1S= z0({cqmk7RUMJd3YJby6s#|L=M(!cOX<@2NfckOE_QE#zs2HTHTb6j zyln9!RwmE)Ucr@*d*0ccuQd3l9_XHTe!}kxzG_8xz~9jyxk~Yw0C#dePw=Bxd^*5g zIqxv|X9B!z<-A>R$J0XQ$L}p4_q?Mi9IgC66O;4Jg0EW9AMkhd-!Sx_4RFWr8GoaE zz7XI}p7$F3v$6I$@))1q(Yf|{gW#*~_soFL9$Sfnk5zdV0^GIFw87T}xRdki2Hz3j zj(*i~%4c_gJNl;^{QLlS^c91@G=^Vn@RtX;_?{U4*T<`z zuM6-aEVI19|1O3<$KY>@;R}K%$@3mV{|_8TpI;jKmj(34TRumgkX-JQ1z)w|!hn92rQc%kR|mM`bDqIp8{kggzRBQk2=JAb z&qoY?QGh?r;@>j(n*-e0!@m_gseKN4s>=D+fc{v^r`O?$)UXo~Y&iV}P%;{GTNFGn zzaQYPA73r_N?R6xT$+Mkn}Viz`kQe|PjSeuw~^nIQ;zfhZAQ{Gjc zSgcj%X7f98L){DIa|>E_^0)KFYWlZpufH$OLB znb>WL>K&h(Tc{1?x`d!yHD8DDT&=p>tIfr~=qi@x=6!y6AeWz?E>4uE=B7*K>cUXo z%QgBk-{{NkMql~HktK%+0$;LE;JxmK)9=lT|E#ad-T+HQN^tIW(# z5B1G@=as8-nP}HkW-GNyaoU>&d9F`}X?b49lXR(;(%m&NJvUqSCKjvJ@@!3qvHiYU zUXUIi>R(u#m?$qSw8v%5xK8+KnRV^)$#pBEK*)BP&Cb=lg~j>#xoWLk0<)o>S!omi zxtxqvX*F%ng`r$`W!5tz)zel^r|S#Rd6h{e9jy(C7Oc$aqdJ*$T@x~gW{UG(zBH8U z*}TOY+{DJ6|T|8qAd5p~xl^SQit z>d=;xrF3tzmm3-w8$7+>oxW}xn$=B--r{s+`)s-7E!5_!#qH&xeBK~4I&|kIy_w=J z8D&C}&?emzvg*{z(qog;GOuI?%ug?Fugn&9NGJ4&jZQhA|PU6kcY z9_mtk?&Muq9QOvnak{v>Ts?7OeqQ@^v?kiy&ZhOfrWnB@Be?!WeTvkvTyMErovV5i zbF(Fx&2zKzRb^z8u<7=;=5syv+hVP}eXdH4+_$iMp;n$reZI@f@Nkzayi|7OraULr z>h(s(y;`+g_NHWUFIVf8ND|e3>#rYHTGz|@g<8p*u$2lM~mj0Lay7%X>|GE=&9b&c&<>`5R8liq#~~C zWDJVV%F^gp&Eb z)FNi4i3MQHwDICX+0l;H`iix=naadqv^=NCdKczp=~$c<m;i^Om3V&(p8G5=;ty`}q zU#J2YP>aW_6}Piqw0Cp8VKdf$Fqh#$VGTQ3>|a}G^jS3nd&Vj=IzrDj>pD%|-XS%s zTpjJYQbqU5N)v264+qNo)Y<$>qCRai6uj@+v_6z_UFv)Ewl5Z|C26%@v(Bl( zFk*GIj`buGvf$3euG7A0=a&A^9x8DUqr+2&X|K0K#%VA{!+p~R@4C2q&+66s$kxtk z)xwrBZ_8L{*^C=j`D%I6*fe$<*yZJ6L+Z|3++?%mYJGp_ZDbmGz7=OI zG?;QS40-}RY9t)YrYk!jpN>YSwk$iU-z=t=&!UGmOT6*B>b87>7_#ZIlpW_4lusk4dwY3qrmPP2nT72Oy~E-_ ztQnIgCo{P|qUs89`7DUNTN;)cb%PJO`5iQR!}Tbed1GuiHe&tu!MyCSh_+PtFay#%5~3{ zclus^QDN22*0ZMtqu^wj03lmmypa;?s+?=waAwS;RFR&>2CHPSKKk0Jk-xG&H9EGE zO3QB%9~idDaeWllj;5oQthkLc)NQ2w))RG@gR(ZwJv>H{T3;Vhiiv1L79|rY?`<`k zK7X~`oNK5Q>(p8c^h`@!g6A5}q&=N5=_NH$m2EQ!7OIwP%^T71K5&Tg1@yJ;DdId4q0gCEQsn&~REttOmm=$P6WQD1=5 zJMaZKS5=Dg)25I{8PTt!POc@*y1o`nSqUP`XGCO(O}LC=^U+`*8M0e*(J)|yESD72 z6B>F_QYN$NuP|YPpQL34;d9N?+>BemOXTW&v$;M`hCQQYExB8QO;b2bW@3t}4yrmkP4rno9Smb$T^rlUZNs_!2>R*(^X4-RLdms^Z1AK> zhQ+F?Z#&&MTzUx!LlLED?*)5=EFMqY5is@_8+JOX#4gl@ZA7-K>5E&Jzq&b>Vq^^D zl3W9s29{Cc7+aBH(dLl#jo!fEjY!?v$Th>u3@qPzZdo7JYiVuiY}S*8Ap$E+`>U4k zrY6=zs>-ZMw#?AkvUE3AHO8D(hp8-6#gLC~d5eW@CcY_?30u^(49#R{yVeq$ZBlEt zaN{YXnlP{j%#0kJ_sZjQlGZmpU#<=gRl3ya+=NLawQX73w$~dBd3TnzFi|6|UPtRvW;E>fU)1AJA#WS3JbDYGUkQA*u1y57y2s23J_@Zl^T9o?CI zxed8syvW{gsfx|-E!%t%U09bq!-Nctii9USW!WXzU9KfMRYb&ibnM$xIZc=IdNIhB z%d02Brs!`u<&@FFm^ZfW+TxiTYYTo20PX z?s;?QU{20%$-?TbkQ}6m8FxaU9;B|9P>)<&`RYVI-`Slr!y4i#O%LyI;qF||?BYzh zs^^6&Gn&$Lc0sbcb_Ml`emxofI+6|5H(j2Ub9ycx7<#QSp;S02-QTae?>`U{mv1{E z9?#w##p%VeFJ|Pc0e1!F8l_UC8RL&CbwcFOrTlF?EhNDd)lB z!r5J4KEJ&zX)rRrY;zXua?Cjoj&dZlug!SK*clO=+fhskz=ro%~TAYK>f9RE7j1 zw=K_U|H+m@H~szyPdGHA{TnVKI*`}fIkmKh?c7RvI5O;`MTh2CV=2SaEnFoteN3n@ zT0p_3xiyhvVn@QvwJItsR%GH%>_|VHmC$q4gDo{Xj%=)Nsm1YNgT@9`q@5!T2g3dt z$+4Crc_;Upgxf5wmG5@vsv;WNKRXdAE7H``cIPfuWbu%rf5B*v^>fctl03p6D6haL^(yiYnL}K$C&lhXr;E>+tFpDX+0^q*W@iri;Cqi zJ2Ago*|g4OgRvbX9lGd^m*w1}s^W<$SpXC%%PB|uceBN*&sQ@%-xATI{UWE|qgCrQ zP&>j-z0mxzs;j%psk!jl;@L6fH*B42Oo?UW_kv1KXL)0_n_$YLXW6EmbMpQ`P@O;R~!EZXbdLgVL?bErw%7W+G-Z#W51#$e( zrnPX=18KB9(FHEJMIbWWCEtIcvMXt(xk@IlS_);IB! zz8dgO_vHLrx#sK5q=)^Hsxv>gMz^jr#dFFC(Dr(xUacar0r7)KyjDA<38hcs=b!gz z!nrBi_{cr~{2MJdf6mx+^*;Xs4JT}p$uH}fZc)TGOWqO~gDCkcHz|`;g~Tp-I5;nw z#ZL+fYYusdvnjhdi@0It=0>=rT%(dA_Ix4-SiFfdIb1V0o|`M|mrV!Y@&V-kqI(6%EaBZ7sV10L1)Fig;%G#s%NBA@PK*@Wm z=T?|FcyJ)zX~~A^mQDA#qWr?=`&-X_Dr|6~;Ba7ug7;xASz4P0X3haJIPB^nYsUd1 zFfxTgquH%x2TVok0`G6vI|P$)e-q4~T3XW>}*+(qq$k)5|FTUur}?*YS=Op#m;KUTGxp= z$Sao_iZ`k%JAJRTAh{B9Yt*#a_9vDQ+FAJZH(nTVsqfM|!OR~%->Td%R9rBu)S^i` z7c3gPesp+0Qye{$;sp`$HrSE6pNZEkelNT0wegyyRQtVovR$lTvEn7b=iBlfn`P_8 zUB#2$5-XaS+fkORuZW%8e846p!$~Mf(zv#$%b~AYR?gzikQ*V(5~9&8s~(MlO6-5# zUe{P!aS3%L90|AAU+h0?gWMLlP_EXbnM|m9v&Iki^?01O9x0V2w4YkyI8lvXvhhM? znWWI%ijcug67t^5&3M8x8Uyerl5tT58*dlU^IcSF=U+qa3}G`SiL{B~ZSf&_rQH$; zmFVb1alzc`*sAbGb_5=9eUx>tN7DB5ske7YBXn2g)+f17$KIu-ZZf^tD;g;cvy^Hq zC9vRj451Mb<}4(!z=|(X*exA?3dTmbKJJSKCAu-xh@{JOza~)_Z5!^fuqZt{r;7EN z&}yupw>&dn+iglSlR8`*@NPY-QyjHjD?_tYvF3-`dR9hk_<9F%8f)TwaLJa2G$Z3K zeze34I=`3VU&^=%Uji2=36F(@??a|u!uS3tu;Vc8SWCPnDU_&A3Pr3=DRkkAr4fZ{ zmqrw-qKj@exgsy`V&%4PtZHiVl%&4;NsK8^#V^)tR!;nhjAaB@@k!sQVrwi>KrJJ# zPL0g4Ae`azsegkWPdMw8{Z5#$8m;qB!^7jFt)j!qvR-s59v)Ds=bOxJg^`9!5EOS8 zG;T}~hDB@4bVCzy^O7<;zuPlcnb)TMyaGMu}WP-gbdmKdvDPVBIZw_$c> zvIdAQ=Dh3H6MS-kWuS_^;)0r%{*52C%6LUH67(tDQS7h&xKq+j95p9mmlOrxfj%^K zTnx;9F9}<6|FYiGEQgA4abW#zp@^A^xM`kj?!VQrICc^UK&++CZ8sZ?cJ1kQ48rM*7gsxV~a+g@RzgvGiTzceoR2>EF z-U8e5TPTd^ z20?$7U|fDfp(3A@$K>@$=51F}nr|Y-r5R{OAjUzE9~gh!>6Wbt6}8%^evCBnY6m@q zY>tuIiIGr7`Zrb^#GhF+qglqImGe?7o*S5(J!NjLHZM0b*VdbNZTT^ogqq~?bF+hD zYRG$y0*=;=pY61H(_5^a&S1WVu(qMeY=xLuh&s3Vc96vTz}+sk!*#Izw0G(d%Y1Qn zn!9|BhIw2qw5WuN9ZO^dEnnxPR&1{}uiG*0+si!CQIiv#rHzS?XG?lhOpUF0}t^+-}eqEj{Iz zB`Q3JEc+&RUdXi&s`K%dg6NfL{4OMSaHDWe_U?LgF8xMf`w}z%)n#gJq#w=An{#mP z+)eA@A?ZB63&H7LbH>H}(Q?cw!ZhgAR%2J|^9jdqT9>9<&Rs|dT3+iXmSEAh&Dw1# znT*4H>qDzmlO{S{e06fbRo^)$msiSrDR#)^MFTc>;y}-cbz`TYUC??~#uD05OUp4`eaorOU0ff2o@l09Ff(L;_8Tik z6ZN9m;MPwYIZPhPl`iPbCG~#VdkN!eZYE}tim^C3SKX=aa%ws&_0~@D878I3>MfOi zj;v@o@a)i7^s{r*OP9;Jg3>!WZFBC;6~Qn8;F{%hOTi12dDK%lugnN-}-j2gEw zu+f!xtTKB9%Pj#NV3m}Y(N=V=w^)+b+KWPUHvuLj`k161|8$DJ7*Qe^^{gTtQmOUI z*^Gzrx!P3Ylmrv!-dQcq`zZ{@2af&X;g<;n2MWwJuDqf+*A?QEo(Ey~A(GN< zE0Fa;F+)vjm;@{P`=q}1JjlPW6RowYjNLHN)q&UF`nOQi%M-hPQ{oJIc|&vU zZ zu-K<(!ky2@D&}Zh+rjm_|4akMVZ+?O>9Pk*ylk?A9DmTK_^nSWs6Xp3@Wp37+8`rmw_&!ziwPZo5$_YpG<>r)p zS#M>mpW}`9YA4HaiYGRNJ5oqP)ojOR!~Wvi7N!?efybLeLK5b!mvx+(4@dMn9(zQmNw$y8mQ76hkrOsu=Jhak%imOrK;CfvP;!n?-rvtQ$Pv;A0&e#} zMpB4lyfrd}Z(J}^6qq~9q^~dvG0yfj-)8l|+kBUhk)wX{Acw{)F79F;jnThy-Tm}J z*)xZpLNOQPEl-Qnhz74mN|rP^T911y;Z^9tRBt$`S{G$0NjAX-DMjm8+c_Hd6IZi& zeYL3C%iDsD+RCY06{DX$V9vF`<=DY;+Q zS7J}zIpy7Y*+GLB!zad>ok^OZe&KwTCB*eL#kQeyv`qpbovA+P{^|y_{N? zHaP<%+f4Ju**0ILZETnBnt469ga!4|g~4s&MIWs>;Wy0dR%qLNdkb_f8%li)3Dx8+A5?QhfCN7*ZFv z^*TW6lFQlSBbsNVG2qcb)iR;Ev*ZN6*7qR|a_Ro0kf!;@o28!)CBgU#eW$ zJ}d7(n<>wXFHVZrY{{dm+pFIMgSU+&UVJKHY59Z_a#ihhRJDe<+dyW&4WHNZqcldJ ze(#G0%HpX8E(l-eBAG}**@Src3V{TMR zcVrkiNo-uVwETF`Jv|LC^J!d_K7NHlXVMX+8Ju*Tfm*`Ia{+p1XHhp zhJ6+cM?_V!<*qIz|H+ym`7XIYZhlVgM-e|%5Y-sWQ0``Nu0$3c1*n3=dfA~@U4~M+ zH0N$utSoUQ$e0h^hi8_>CRbR+W=&fBek`KYGiZx6R<383#A1mGFfPlIm0%jH)M_F!ZG^EQ65Z6}Db1&v-NgQkDWyu(_=|cYYyY7luz66w( z!+^^tN~E586-s#e0ojXaplmwrk>*{Mn250QP%Qg{@sIH|ZUH1P@R)aX)2=??eS!#T17q=Ybh%gIH$GhJJu`ma=;EG|yF%P;)P#Ux|a zT>HQ2ikRVsRqN*_56oSjhfn~5{??t+d$l~Kt$?*N%ZLr zT@mFk3n>#yjS#J}ejQZ^O9}z@wGdttjU%5Cks%iS6LI#n7MhuH22`dNWG#YsN*pjl zCKOy2m1P6^`bM(@#Rg$Y!o;+HbxP8(mQg2@T2>M<4%c|@WBq5#FTUd{exipYQeHV-UETJfK{w}rIJ5hoQyf+y$oh+*LP}dS#uIZTV zNR6@$<4zW}cN))5BT>9dx`Zk8RyJYMqBpKt@=4C6CV15yn(USBO`e59w>+0An?dhc zk*tM+XY-uX^+{7v;__x;I6FYkpzpZ3}VbFS9x%SC#t{8Fz%@Gr6VFYDuu zaT$YnnOx3$_q2agfAQW6D>jYmHH)FO%fQ(xvQoAZ8IyhN5+Y*_!c(#6+fc*%7S*%Z zq5v}9OBK1EP8f*abOE;~zbfCuEWZ&*(** z+vlos^N742B9&c#j6S%8Q5#(*Z97tlbEK~--Vk|}X>npgj%nA$lh~yC;i1&zEf|#r zZ+3Bd+GVm0>WeMLef8(p&VOm~^xSs6#jjeOtNL$`m+H0p4h_Au#eY>wVPwXpY_!Tl zH}>YOAj1=WOrccTXF=~fSmuI)vru~@;9>fkAIYBPxfG)*W8Yd$$a zvU{Ocp7E`EKak+=L(g?r#f4UxksI{Y8VRvaA&G7 zN9gV1eK8uthcqeYZ{y6;2xA-*yoxP{1^nW9`D^F6^4;tm;c8mI=PJXjRX=OTCp-6K7uCee#SOw;BfV&Zogd;is)F|B=8Q} z2fmf84&w|CyTp5F!|q^xU5q;gleX__~v0cz4xR=PcvPv5w#$qrA^liCkMjU zXi2*`%^7|{pA-^xFGyNaWXzwUW8OAcx*FTp@`fhLu(-&44=x1W$C+oLYhk3d!d{uB zJ0wg*Pi#haHYl=fZ_kNTH{uu{9X+FhQ6Zj08zeO{+*GY7c4tl<-RrGjvwX{anl9@K6a!cYwEw@lJ z8Nr+7P3yUQ==x#R!n)-)5gqmR>o(lYj{`+^9gxB05vB%%){(HIi6=n^S40W4Js#@Q zW0MU=b;=-*+-@O?%x+YItVK6QI<^@?zGC~l6O8_4sY60JT94B7uu=Tk*11+}&(L}W z_Sx-}Y^B*33)F3Fo#}1a8!eR^u^ZMc)wq^T?s6E{qRMJ{i3!*J0CIu9+;}uUU6kyE z=0%FB+&DkNT-T=twfG6;ohRmH8lpf3^oBnB2GQ+{^1|eD$ym2-36pOsjB0qX;9b!r zy;EL=8j)R(UFu?AtGZuqvGkmPT|t_@AHsKQy3NtDcAjiG%z^W~38n1Q7AlSwHq826 zw5(MQsimaRvNwi9kPFrB&}%+DT~V8$g7@)GMvZ~s3{BjWZFeh^wq0nGZ{36m?&j_E z9?U<(S~u|{R#=-`u_*U;c4V;)#QvH2GT;^hSpe*gUZ(v1DeIcRTGu?C(@d^TkgUT< zcVyJHvX!on;Z4??ugyX0Aj2D|;VWqQ(YQ~#fiB8shxty{s7~<%#hbFRFu~6H%`F+; zW~By?)2zW3wUxr0l3M-+Ks^T$`>dhcu$|Rc8gfWuHL8&E2f_P?)8|p+?V~+H8U**nfj94!$LE6kPAXjmF}9m9G45&fVmn-% z(rs(E*VN?h^#*y};a(|h@6=3|lE`*(Y-@X?wrOMTg&m>aU!t$<+4nT<-DIE^Xu#z> zZ77NK%2_JrDPk_c@R1i7$T5&+GarsFsx7d_d0F+PQDziuEOKW_VN7 zb-AC($`NsjnDiP6HLgjT^I5IUdW0@|87X4&1MADv(;JGlqH0!S_Q^S-Y;QD9<{}d` z(;JPGpSChM_1$PxwPP7IFgxQLj@TGko|4_}VDHyCK0`#K?Gximc8bp8@eQ7wxMoYG zs#rU7^2(NWw*naqVo|;$*67*$9T779)DSi)1?h4$Szvs>ursIH8MRGUUArXau_U%( zcj++LWEa;Z*PgmG@2{>MTUo=-1A0nh%3>ccelx{g-a_R(KN>C5T8;<$$0&n4{%snE z^?$UU>eEV0U9;KL%HJ}&-o_60VzD_CD?6#J=9NNz%2sG1B`k>nb?jd9#AU30_FlJa zOD`xe(p%)x!oB2)@;g(&E=ihkX^-^l@%_X{a4&ho>ClcAN?)}HLc?4m1np=alVa|t z!)Me!^&wO5`p8C=B=vqx^em?}aX8Pmim@9u{K>A zO_!;?usL*Q+%j)-Hw1SPwKJodHkgDC{-%A|} z%h^-8el1#4V5awx0BckLIc+C{-yPHO@2y^;+cM;y5o?TJ)i3h-z zu74uzmuFT*3fWsTDq8GbolVigmwzTjN{r5;gtM06+venw&$udA`)HG|U6;h5*SrGK zU$@)gBd;PiyHv|b?D=lpuLh@Ydv;D0{q#8VhB$dIcBjNP{JQh)@e7Gxe@ASy3jou) zBv6f6`XoFqTI|r!!%OVU5RXtx=vClr0>49heHbbQk}jqHLcBr}x72qbHfGUjVG6W- zXj@L0Ep4(bp`>t|=v}KV&bTF%iP|ltPnS?)xR&d!&6CUe661or8#miY>_pj2?4_W? zrlskg$V=o%xj;bNZ+;oUi>oszrKOhP_Du$viCw#LxkAMhC`)mxIeZi} ze2G*($9q3KS9+4{w*B+@?d92W)m;D>eq^iLrr1k8B9%&F8?CsZ*(y#e?bThy@yd>z zyjo2>=-$M1abdw+x@i0YhH!M5ogvzCqpni+rh}y$|IwM?R6*xT2(N&?qKP!71oU>y zq_n2fxEWMZye@331cehbe#5ecp3bcCLr-Opx^=DRx1sBygnG5kQiTq8iUx%ehj++% z3w7H-o@mEtY2ww5*ze66E~X8uB%gwod4dqfia~=Uhd@r|AvhQZ=$XCwCt#*2=r=MSV>2jpgH}%hX7TyT*yA z{YFYW@<@_`PSq3L{lOBd=eRt%Qn#i{#jc6+e62D!>&=ayEm1$Y9Y(fVAq9}rg*>>b zCN`B@VjP_U1)uq;Zh4B2$ClV9$lWQ{DUyrNf1onAV1`N0;A}-Mw0ExgFz&oz%e*YQ z?4V^X#?NUO(6dK+Fws>x`7}sKRmLtl;f*d5a|!bNbXKW$T%(z;GsSbtczJ81@hE2S z^xUjOC?s#xAI-6@bIBi@w{=Ug_J2B_`7=yQ|)%*QAYd zwIigD+K4EN#jKYAOKy{&jFU0Y8XrdWGs}|7D^@%}ehxmUj-PCC zr9Tb$CqREH@VkIN|Iqz?;E;p-pIR>I53_ib{)80zbt(7@fL{Z7 zCV@W$@?Qx2v!MS+;LisAKLPIr{&C<{@c9Ms=YW2NR#ZOP4kN%10X__T74SjupR~C4 z*BJV@mV&shRR@iyq=>KHr;{z?O zJXVALkO=*sE&U@v|76e~5uvx_e>n>DThVUEfS&F16yPe8bJF4 z?k9o&GeK|R6{-$Y54+F9>@Uhk|99i(Xp3vTCehAW=*yr#)bfe)*Z$Lw;*Xa9UAfOx zP(F%ln>hR^1?8jiY(TwEFlZd_2mUP3p9*|E@aLxBF9*I6^#1@nX`HD1+Ar?o#*f3% z1%^cX<#gfi+RHts_!i&~wO?ra4M85_n}Hu@>9yU4fgcC_6yQ$-{v6=zfRp~Iz(+vO z^_}#qLBAFBUBI6Y{Mo>t3w#9l$-ryC*)M5wZUp_A;ByXe^63UX271nG(mx;c&jbAo zaMC-yq5btj(C0wU_GG_M{+EHi1U_#CUIu#2^< zN6PP$!P#*Y^24@Nw&J6n`Q3zX$ZY z!RHOYsrU8(-(%@@JkZX3V+xg@C+w&Fx@V_1OR|EeY=vm*tfc|};e~4C8K01C#|455#`@A3YPXhh{ z;LiYl4e$}*9EU~V9|Zjj@P7jSI^Z7y{x*w8<-Z*C9|rwLfL{*$i@>QTzYY9a(BBUH zpMl>E{9k}S2K!T%`!~Q@?f`J|Sr44{%tqi`cc{;~|9X~ox_q>MxzE~aP#<3p`76L_ zS6mAGBcT5PaF+W~;4Jskz@Gy?UjWYi1@$WV-wt~6{{wLHe=z0+>-%`%tnXIfEO)!b zbsT;a^3MYQ81Nn7b3JhCCCc+5&{LknG2RN`^JL&@<6$l6vy6vlgP!Bz1;F2lcIJ4v z1~|)g>uGcx-Uxd3*Ui8=9=;2l{C^CbX9;4GKx7stcArPp!7 z@vsYgI3C^wobp@?obvn_IO}yUaM~dUVVtnP9+ZM}ypjH7&~v=ezWqmxlODAHCxJWv zgSO8Nz|RK#r+`1o;!*k&K|cw4?oV$7PB}jVoPN2_0_VQ(bHLZ4+|L82Ui|{_Nzjwe z`4-n^RezK#??TYu3_kAw{vzQ24E&40{~vI+&sTw$K>vH-r00Cu4*Ex9ys;gg2z(0k z#{uW~arIXH!125m@^Jj00sIr-U$nT6lP?2*8R%Iq#}(=IdHtw7p9UX}pRWQ>8$a}) zd>I!-4{^%#70^?jZvjt}hy4E?^qfck0Xz%+?VzVTKL(yA5BKjs0X_Nr z7w|Mb96yx*B-_r~k3R*UUBG_^ob!(L`eF+Gw}F$Mb_nr@WBe0;EO6R;oJSnDD^cz* zAV2%-*TB0$|4ZN-Q*ibR`LJJp13qc}LchfSfS&l>zy~4EAAqOP)8F!Y(60fXdx3MD zKLGKj&6eKj;SKihZQ%1w@F@X*Aowf-e-QB30{<)EZ?U*5_x1Mg%Om&=_HXCMaP;?B z{DbzVj`M@T|C1JX^v>S>9OzlEZvbb#eh2));Qug;Th{9ci@S1Ny_~eU7Qtk<(5{7d%lji6_}#(=Y4X91`D=UCjy>Ez!T!JYgsiQrEDSAaj|e=Bh6?aP5z zG2Wd2LHn2VpH89wCUDaKJ8<&YqmdKi1OgI!1gQ_&gHy zrvtwY9~2KqGpLwSw>J>?-zd5#2q7I_{A`ZReSgLdHh>*A`~zfS}o*7p$LY3+X~ z_@9_SukBBq{`U8vovA;c4t%ZUuW}OKWO3#HRFpdk`V)XV`zxB`ELcin=jh$&j-$Z))~M#UrxgKITz)=0Q9c{{ygAs0#1EJIbR6+V?h5R;M|A4 z81j&h2YTY;z;(RpN84cnc%MOi{9^DY{RO~vjnj|vc{y;->q+pZJllbjz5@J6!`%t1qv;BXFcH{oH7dZF7N%nx2Pn>$5`$Xa=fmaAAm;UTap??DC zxn8^hc)_+?R8ICUPx+2j8(dh&bV^LF5ufDh~S1JHjK z^lt9`!M(7xSp! z0sIr-e;DvPfYX2bdz4H0=?}jYd>(Dboz{!xJ_R_-?E}tv#5if1eU+vsyU_mBlS%s& z9Vf)I=)D~HlRi!Fy&LUQkn;2sEth(a@?_C_mxDj`-W9;9_lUp37stp${3?rUKenp( z-i314gU{8#qk8Z4b{u5Ud+!6E3oL(qTy2|H^xpfyCyUXBhcMWjry(@vYqxZOGd*j^6ta z>c#!Yhk>uN<51`CwZLg-{tIv&$NEwF>wt4#b~14C`6%#X3>Tlz$AHuRPuo9U4|>|Y zp8)<0@c$(6Q-R+A{G1eg2XL-CF9yzaXBF`O2mah=eHu9ZLN@|uyZtM0t|OlZ&i>_o znf?0(&~JmBHv^}fUj)wf22tdL!t+3_e!?e?8XI>wuI0SAnx% z^1yEa|I>hzp64vS3i_vlp8I|F*VjN#{OiEEpL#Xw#rgG3(38)VpilFgah%Zq!14BN z@TY(2JHR)hzTXAT_PiDN2GD;GxU(xBAm4u<_%6`@0Qg&h{}4FW-+u@GP0+J{xt@~# zfd}~ys66aZpVp6@N52L=;|2ckqC;e}Llm55BN&h?Gn^CX( z&@UC>zX$!xfioWW2H@%ixspx*}k5a5*mVJY|{Q}DxpQ_jPIQx7~E_#otY z3~<^%M*?Sia-C(lj{|)l_&**v?Wm)G(~m*>mg_0)_E&*F?f-WJr~UIW;FO>3PkD&1 zgq*}zrQk=W;5#tyRzn`z&rYA{xkIew*%)s=sw`bf&TD={4cb9jt9KT!h9;$YbEHP3O=0I zpTT(Myf_i`#GeM7dZPI|-j1^$wEh3>f%Wx^@^Iggww|s+JJ5c1 z{sEQe4zvUJL4A<_6w62Hx$oGPf-j`tZ?(AAi*~~0z-f=M-TEQVS)k7WXZw>rjn7)k zN9#p;+BxJuiE=4F`(*&~r1cB!kTkn`E%=Z=&CXeuLZ4>moD6!-i}k>{&K`tu;`Wu= zkF=}LMf=zl$!7#O+j$K5)6kF41-p8@BIWzZi3{*%B- zKb3-4fFBP&v`aZJ&H?=f&`$&Be54(68t7TCmB44ghvm)z*Eyme?XP*@D;1QF;-qK$ z(7xh4t%48RZ2>s>ECP3aW?dg|fE`j%VdSIo>;OIOK%OIejiL7GIi9J1YT%>g=|_L^ zoDu1FrO@*n5b4hYJ;yWi3f%rt%cY$*q{7H2inHCwpLWy}unwN$vx)K9mV)oLxVAIx zzzc!1J-ILYTh!O(ORM~}b6yQT^mAScoc7OqfwSC)TU_~HfO0wBUIzS0;KTfrExe*o=sG4Kz9 z{tDpCL-+{re**n2z&`~1N5DS}{O7>01{PRCj%${X9Fky(|}X&Z2?X@ zhy8mw_^{{E_pK^PP71 z2>7$yvw(jbM!}H$hMTKj-5Gpr;=Ad*J^D zJ|6)7HQ*lu{!-xo3Y_!zJHXTC@3+8*?az6~dGQ_4uLOV23$FX$1wH%gd%%0a=lj6d z0sjGT%JUzVxWjV9qbL zGuw^&YAxFBXDFBQ-vxXN=zj^E@yA~PKOXdV178XJSHRQSf%=o}Kt9wf&D(M9=vZpIDemN8`#;(d35|PB>E8kVE9GzfDE>ddR~yvF z9|JyY|095}1wG5%2>ch|&-T9?INSe7@V@|j$bS#;$AX^i|2W`m|6iiq%fRPXz%6Xr z=kEn~?dVu)yD9GEVEexmeB5(Nulbhlv(o;e_?^I41HUOnPafrj5ZVFIKLPkg;FO2$ z|6eF~8|Z%u`~u+Qvj_MSQ7+qmCGbl?|KH$$8StM0x3Fn{jZ?dJbS$;qR>>a@XZtHY zWf{2dm0tPmu{i0E7JBztZGTbvcG~|e@F9OEm-1)3&4ZrpmL@0bHGuVcCHOo8c&F;M z5&T)NVc=^}?l#~j0lxq^`RoDC_PGc++vgJCPY3_YfIkzsh0VB9|G8_&gF&yjlY{s% z?hm15zi9r3`#65uzda~-r6p)IuE>7?^xfdI7I-gkCz|p<*8L&BQ_ijwIdi~Qf`1

qJvISGzyt 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 delta 345 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

{(}k9%X*mctiF6GV_(XH{q?ll-DBoCn|vm-|L}r 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 dO%?^&BhM%}UH%=LI7=!}bb5mp(6b CMakeFiles/test_battery_state.dir/test/main.cpp.i + cd /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/duongtd/robotics_core/common_msgs/sensor_msgs/test/main.cpp > CMakeFiles/test_battery_state.dir/test/main.cpp.i sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.s: cmake_force @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_battery_state.dir/test/main.cpp.s" - cd /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/robotics_core/sensor_msgs/test/main.cpp -o CMakeFiles/test_battery_state.dir/test/main.cpp.s + cd /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/duongtd/robotics_core/common_msgs/sensor_msgs/test/main.cpp -o CMakeFiles/test_battery_state.dir/test/main.cpp.s # Object files for target test_battery_state test_battery_state_OBJECTS = \ @@ -93,6 +93,6 @@ sensor_msgs_build/CMakeFiles/test_battery_state.dir/clean: .PHONY : sensor_msgs_build/CMakeFiles/test_battery_state.dir/clean sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend: - cd /home/duongtd/robotics_core/costmap_2d/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/robotics_core/costmap_2d /home/duongtd/robotics_core/sensor_msgs /home/duongtd/robotics_core/costmap_2d/build /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/DependInfo.cmake --color=$(COLOR) + cd /home/duongtd/robotics_core/costmap_2d/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/duongtd/robotics_core/costmap_2d /home/duongtd/robotics_core/common_msgs/sensor_msgs /home/duongtd/robotics_core/costmap_2d/build /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build /home/duongtd/robotics_core/costmap_2d/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/DependInfo.cmake --color=$(COLOR) .PHONY : sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend diff --git a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.internal b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.internal index 218ff48..6fd2d92 100644 --- a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.internal +++ b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.internal @@ -2,10 +2,10 @@ # Generated by "Unix Makefiles" Generator, CMake Version 3.16 sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/BatteryState.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/JoyFeedback.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/JoyFeedbackArray.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointCloud2.h - /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointField.h - /home/duongtd/robotics_core/sensor_msgs/test/main.cpp - /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/BatteryState.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/JoyFeedback.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/JoyFeedbackArray.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointCloud2.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointField.h + /home/duongtd/robotics_core/common_msgs/sensor_msgs/test/main.cpp + /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h diff --git a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.make b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.make index f9f4c96..5503ebb 100644 --- a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.make +++ b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/depend.make @@ -1,11 +1,11 @@ # CMAKE generated file: DO NOT EDIT! # Generated by "Unix Makefiles" Generator, CMake Version 3.16 -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/BatteryState.h -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/JoyFeedback.h -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/JoyFeedbackArray.h -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointCloud2.h -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/include/sensor_msgs/PointField.h -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/sensor_msgs/test/main.cpp -sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/std_msgs/include/std_msgs/Header.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/BatteryState.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/JoyFeedback.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/JoyFeedbackArray.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointCloud2.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/include/sensor_msgs/PointField.h +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/sensor_msgs/test/main.cpp +sensor_msgs_build/CMakeFiles/test_battery_state.dir/test/main.cpp.o: /home/duongtd/robotics_core/common_msgs/std_msgs/include/std_msgs/Header.h diff --git a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/flags.make b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/flags.make index 9b4f26c..146080a 100644 --- a/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/flags.make +++ b/build/sensor_msgs_build/CMakeFiles/test_battery_state.dir/flags.make @@ -6,5 +6,5 @@ CXX_FLAGS = -fPIE -std=gnu++17 CXX_DEFINES = -CXX_INCLUDES = -I/home/duongtd/robotics_core/sensor_msgs/include -I/home/duongtd/robotics_core/std_msgs/include +CXX_INCLUDES = -I/home/duongtd/robotics_core/common_msgs/sensor_msgs/include -I/home/duongtd/robotics_core/common_msgs/std_msgs/include diff --git a/build/sensor_msgs_build/cmake_install.cmake b/build/sensor_msgs_build/cmake_install.cmake index ad2952c..5ed7d22 100644 --- a/build/sensor_msgs_build/cmake_install.cmake +++ b/build/sensor_msgs_build/cmake_install.cmake @@ -1,4 +1,4 @@ -# Install script for directory: /home/duongtd/robotics_core/sensor_msgs +# Install script for directory: /home/duongtd/robotics_core/common_msgs/sensor_msgs # Set the install prefix if(NOT DEFINED CMAKE_INSTALL_PREFIX) diff --git a/build/std_msgs_build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/std_msgs_build/CMakeFiles/CMakeDirectoryInformation.cmake index c377876..165d3d4 100644 --- a/build/std_msgs_build/CMakeFiles/CMakeDirectoryInformation.cmake +++ b/build/std_msgs_build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -2,7 +2,7 @@ # Generated by "Unix Makefiles" Generator, CMake Version 3.16 # Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/duongtd/robotics_core/std_msgs") +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/duongtd/robotics_core/common_msgs/std_msgs") set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/duongtd/robotics_core/costmap_2d/build") # Force unix paths in dependencies. diff --git a/build/std_msgs_build/cmake_install.cmake b/build/std_msgs_build/cmake_install.cmake index 8a5bd63..da51daa 100644 --- a/build/std_msgs_build/cmake_install.cmake +++ b/build/std_msgs_build/cmake_install.cmake @@ -1,4 +1,4 @@ -# Install script for directory: /home/duongtd/robotics_core/std_msgs +# Install script for directory: /home/duongtd/robotics_core/common_msgs/std_msgs # Set the install prefix if(NOT DEFINED CMAKE_INSTALL_PREFIX) diff --git a/include/costmap_2d/inflation_layer.h b/include/costmap_2d/inflation_layer.h index 4a24d30..a523f46 100644 --- a/include/costmap_2d/inflation_layer.h +++ b/include/costmap_2d/inflation_layer.h @@ -3,265 +3,164 @@ #define COSTMAP_2D_INFLATION_LAYER_H_ // #include -// #include -// #include +#include +#include // #include // #include -// #include +#include +#include -// namespace costmap_2d -// { -// /** -// * @class CellData -// * @brief Storage for cell information used during obstacle inflation -// */ -// class CellData -// { -// public: -// /** -// * @brief Constructor for a CellData objects -// * @param i The index of the cell in the cost map -// * @param x The x coordinate of the cell in the cost map -// * @param y The y coordinate of the cell in the cost map -// * @param sx The x coordinate of the closest obstacle cell in the costmap -// * @param sy The y coordinate of the closest obstacle cell in the costmap -// * @return -// */ -// CellData(double i, unsigned int x, unsigned int y, unsigned int sx, unsigned int sy) : -// index_(i), x_(x), y_(y), src_x_(sx), src_y_(sy) -// { -// } -// unsigned int index_; -// unsigned int x_, y_; -// unsigned int src_x_, src_y_; -// }; -// class InflationLayer : public Layer -// { -// public: -// InflationLayer(); +namespace costmap_2d +{ +/** + * @class CellData + * @brief Storage for cell information used during obstacle inflation + */ +class CellData +{ +public: + /** + * @brief Constructor for a CellData objects + * @param i The index of the cell in the cost map + * @param x The x coordinate of the cell in the cost map + * @param y The y coordinate of the cell in the cost map + * @param sx The x coordinate of the closest obstacle cell in the costmap + * @param sy The y coordinate of the closest obstacle cell in the costmap + * @return + */ + CellData(double i, unsigned int x, unsigned int y, unsigned int sx, unsigned int sy) : + index_(i), x_(x), y_(y), src_x_(sx), src_y_(sy) + { + } + unsigned int index_; + unsigned int x_, y_; + unsigned int src_x_, src_y_; +}; -// virtual ~InflationLayer() -// { -// deleteKernels(); -// if (dsrv_) -// delete dsrv_; -// if (seen_) -// delete[] seen_; -// } +class InflationLayer : public Layer +{ +public: + InflationLayer(); -// virtual void onInitialize(); -// virtual void updateBounds(double robot_x, double robot_y, double robot_yaw, double* min_x, double* min_y, -// double* max_x, double* max_y); -// virtual void updateCosts(costmap_2d::Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j); -// virtual bool isDiscretized() -// { -// return true; -// } -// virtual void matchSize(); + virtual ~InflationLayer() + { + deleteKernels(); + // if (dsrv_) + // delete dsrv_; + if (seen_) + delete[] seen_; + } -// virtual void reset() { onInitialize(); } + virtual void onInitialize(); + virtual void updateBounds(double robot_x, double robot_y, double robot_yaw, double* min_x, double* min_y, + double* max_x, double* max_y); + virtual void updateCosts(costmap_2d::Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j); + virtual bool isDiscretized() + { + return true; + } + virtual void matchSize(); -// /** @brief Given a distance, compute a cost. -// * @param distance The distance from an obstacle in cells -// * @return A cost value for the distance */ -// virtual inline unsigned char computeCost(double distance) const -// { -// unsigned char cost = 0; -// if (distance == 0) -// cost = LETHAL_OBSTACLE; -// else if (distance * resolution_ <= inscribed_radius_) -// cost = INSCRIBED_INFLATED_OBSTACLE; -// else -// { -// // make sure cost falls off by Euclidean distance -// double euclidean_distance = distance * resolution_; -// double factor = exp(-1.0 * weight_ * (euclidean_distance - inscribed_radius_)); -// cost = (unsigned char)((INSCRIBED_INFLATED_OBSTACLE - 1) * factor); -// } -// return cost; -// } + virtual void reset() { onInitialize(); } -// /** -// * @brief Change the values of the inflation radius parameters -// * @param inflation_radius The new inflation radius -// * @param cost_scaling_factor The new weight -// */ -// void setInflationParameters(double inflation_radius, double cost_scaling_factor); + /** @brief Given a distance, compute a cost. + * @param distance The distance from an obstacle in cells + * @return A cost value for the distance */ + virtual inline unsigned char computeCost(double distance) const + { + unsigned char cost = 0; + if (distance == 0) + cost = LETHAL_OBSTACLE; + else if (distance * resolution_ <= inscribed_radius_) + cost = INSCRIBED_INFLATED_OBSTACLE; + else + { + // make sure cost falls off by Euclidean distance + double euclidean_distance = distance * resolution_; + double factor = exp(-1.0 * weight_ * (euclidean_distance - inscribed_radius_)); + cost = (unsigned char)((INSCRIBED_INFLATED_OBSTACLE - 1) * factor); + } + return cost; + } -// protected: -// virtual void onFootprintChanged(); -// boost::recursive_mutex* inflation_access_; + /** + * @brief Change the values of the inflation radius parameters + * @param inflation_radius The new inflation radius + * @param cost_scaling_factor The new weight + */ + void setInflationParameters(double inflation_radius, double cost_scaling_factor); -// double resolution_; -// double inflation_radius_; -// double inscribed_radius_; -// double weight_; -// bool inflate_unknown_; +protected: + virtual void onFootprintChanged(); + boost::recursive_mutex* inflation_access_; -// private: -// /** -// * @brief Lookup pre-computed distances -// * @param mx The x coordinate of the current cell -// * @param my The y coordinate of the current cell -// * @param src_x The x coordinate of the source cell -// * @param src_y The y coordinate of the source cell -// * @return -// */ -// inline double distanceLookup(int mx, int my, int src_x, int src_y) -// { -// unsigned int dx = abs(mx - src_x); -// unsigned int dy = abs(my - src_y); -// return cached_distances_[dx][dy]; -// } + double resolution_; + double inflation_radius_; + double inscribed_radius_; + double weight_; + bool inflate_unknown_; -// /** -// * @brief Lookup pre-computed costs -// * @param mx The x coordinate of the current cell -// * @param my The y coordinate of the current cell -// * @param src_x The x coordinate of the source cell -// * @param src_y The y coordinate of the source cell -// * @return -// */ -// inline unsigned char costLookup(int mx, int my, int src_x, int src_y) -// { -// unsigned int dx = abs(mx - src_x); -// unsigned int dy = abs(my - src_y); -// return cached_costs_[dx][dy]; -// } +private: + /** + * @brief Lookup pre-computed distances + * @param mx The x coordinate of the current cell + * @param my The y coordinate of the current cell + * @param src_x The x coordinate of the source cell + * @param src_y The y coordinate of the source cell + * @return + */ + inline double distanceLookup(int mx, int my, int src_x, int src_y) + { + unsigned int dx = abs(mx - src_x); + unsigned int dy = abs(my - src_y); + return cached_distances_[dx][dy]; + } -// void computeCaches(); -// void deleteKernels(); -// void inflate_area(int min_i, int min_j, int max_i, int max_j, unsigned char* master_grid); + /** + * @brief Lookup pre-computed costs + * @param mx The x coordinate of the current cell + * @param my The y coordinate of the current cell + * @param src_x The x coordinate of the source cell + * @param src_y The y coordinate of the source cell + * @return + */ + inline unsigned char costLookup(int mx, int my, int src_x, int src_y) + { + unsigned int dx = abs(mx - src_x); + unsigned int dy = abs(my - src_y); + return cached_costs_[dx][dy]; + } -// unsigned int cellDistance(double world_dist) -// { -// return layered_costmap_->getCostmap()->cellDistance(world_dist); -// } + void computeCaches(); + void deleteKernels(); + void inflate_area(int min_i, int min_j, int max_i, int max_j, unsigned char* master_grid); -// inline void enqueue(unsigned int index, unsigned int mx, unsigned int my, -// unsigned int src_x, unsigned int src_y); + unsigned int cellDistance(double world_dist) + { + return layered_costmap_->getCostmap()->cellDistance(world_dist); + } -// unsigned int cell_inflation_radius_; -// unsigned int cached_cell_inflation_radius_; -// std::map > inflation_cells_; + inline void enqueue(unsigned int index, unsigned int mx, unsigned int my, + unsigned int src_x, unsigned int src_y); -// bool* seen_; -// int seen_size_; + unsigned int cell_inflation_radius_; + unsigned int cached_cell_inflation_radius_; + std::map > inflation_cells_; -// unsigned char** cached_costs_; -// double** cached_distances_; -// double last_min_x_, last_min_y_, last_max_x_, last_max_y_; + bool* seen_; + int seen_size_; + + unsigned char** cached_costs_; + double** cached_distances_; + double last_min_x_, last_min_y_, last_max_x_, last_max_y_; // dynamic_reconfigure::Server *dsrv_; // void reconfigureCB(costmap_2d::InflationPluginConfig &config, uint32_t level); -// bool need_reinflation_; ///< Indicates that the entire costmap should be reinflated next time around. -// }; + bool need_reinflation_; ///< Indicates that the entire costmap should be reinflated next time around. +}; -// } // namespace costmap_2d - -// #endif // COSTMAP_2D_INFLATION_LAYER_H_ - - - - - - - - - - - - - -// ///////////////////////////////////////// - - - - - - - - - -// #ifndef INFLATION_LAYER_H_ -// #define INFLATION_LAYER_H_ - -// #include "share.h" -// #include -// #include -// #include -// #include - -// /** -// * @brief Lưu thông tin 1 cell khi thực hiện inflation -// */ -// class CellData -// { -// public: -// CellData(double i, unsigned int x, unsigned int y, unsigned int sx, unsigned int sy) -// : index_(i), x_(x), y_(y), src_x_(sx), src_y_(sy) {} - -// unsigned int index_; -// unsigned int x_, y_; -// unsigned int src_x_, src_y_; -// }; - -// /** -// * @brief Lớp thực hiện "inflation" cho costmap (mở rộng vùng vật cản) -// */ -// class InflationLayer : public Layer -// { -// public: -// InflationLayer(); -// virtual ~InflationLayer(); - -// virtual void onInitialize(); -// virtual void updateBounds(double robot_x, double robot_y, double robot_yaw, -// double* min_x, double* min_y, double* max_x, double* max_y); -// virtual void updateCosts(Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j); -// virtual bool isDiscretized() { return true; } -// virtual void matchSize(); -// virtual void reset() { onInitialize(); } - -// void setInflationParameters(double inflation_radius, double cost_scaling_factor); - -// protected: -// virtual void onFootprintChanged(); - -// boost::recursive_mutex inflation_access_; - -// double resolution_; -// double inflation_radius_; -// double inscribed_radius_; -// double weight_; -// bool inflate_unknown_; - -// private: -// inline double distanceLookup(int mx, int my, int src_x, int src_y); -// inline unsigned char costLookup(int mx, int my, int src_x, int src_y); -// inline unsigned char computeCost(double distance) const; - -// void computeCaches(); -// void deleteKernels(); -// void inflate_area(int min_i, int min_j, int max_i, int max_j, unsigned char* master_grid); -// inline void enqueue(unsigned int index, unsigned int mx, unsigned int my, -// unsigned int src_x, unsigned int src_y); - -// unsigned int cell_inflation_radius_; -// unsigned int cached_cell_inflation_radius_; -// std::map> inflation_cells_; - -// bool* seen_; -// int seen_size_; - -// unsigned char** cached_costs_; -// double** cached_distances_; -// double last_min_x_, last_min_y_, last_max_x_, last_max_y_; - -// bool need_reinflation_; -// }; - -#endif // INFLATION_LAYER_H_ +} // namespace costmap_2d +#endif // COSTMAP_2D_INFLATION_LAYER_H_ diff --git a/include/costmap_2d/layer.h b/include/costmap_2d/layer.h index abff2c8..ef7a289 100644 --- a/include/costmap_2d/layer.h +++ b/include/costmap_2d/layer.h @@ -40,7 +40,7 @@ #include #include #include -#include "tf2/buffer_core.h" +#include namespace costmap_2d { @@ -146,6 +146,10 @@ private: std::vector footprint_spec_; }; + +using PluginPtr = std::shared_ptr; + + } // namespace costmap_2d #endif // COSTMAP_2D_LAYER_H_ diff --git a/include/costmap_2d/obstacle_layer.h b/include/costmap_2d/obstacle_layer.h new file mode 100644 index 0000000..ea5a8db --- /dev/null +++ b/include/costmap_2d/obstacle_layer.h @@ -0,0 +1,177 @@ +/********************************************************************* + * + * Software License Agreement (BSD License) + * + * Copyright (c) 2008, 2013, Willow Garage, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Willow Garage, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * Author: Eitan Marder-Eppstein + * David V. Lu!! + *********************************************************************/ +#ifndef COSTMAP_2D_OBSTACLE_LAYER_H_ +#define COSTMAP_2D_OBSTACLE_LAYER_H_ + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace costmap_2d +{ + +class ObstacleLayer : public CostmapLayer +{ +public: + ObstacleLayer() + { + costmap_ = NULL; // this is the unsigned char* member of parent class Costmap2D. + } + + virtual ~ObstacleLayer(); + virtual void onInitialize(); + virtual void updateBounds(double robot_x, double robot_y, double robot_yaw, double* min_x, double* min_y, + double* max_x, double* max_y); + virtual void updateCosts(costmap_2d::Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j); + + virtual void activate(); + virtual void deactivate(); + virtual void reset(); + + /** + * @brief A callback to handle buffering LaserScan messages + * @param message The message returned from a message notifier + * @param buffer A pointer to the observation buffer to update + */ + void laserScanCallback(const sensor_msgs::LaserScanConstPtr& message, + const boost::shared_ptr& buffer); + + /** + * @brief A callback to handle buffering LaserScan messages which need filtering to turn Inf values into range_max. + * @param message The message returned from a message notifier + * @param buffer A pointer to the observation buffer to update + */ + void laserScanValidInfCallback(const sensor_msgs::LaserScanConstPtr& message, + const boost::shared_ptr& buffer); + + /** + * @brief A callback to handle buffering PointCloud messages + * @param message The message returned from a message notifier + * @param buffer A pointer to the observation buffer to update + */ + void pointCloudCallback(const sensor_msgs::PointCloudConstPtr& message, + const boost::shared_ptr& buffer); + + /** + * @brief A callback to handle buffering PointCloud2 messages + * @param message The message returned from a message notifier + * @param buffer A pointer to the observation buffer to update + */ + void pointCloud2Callback(const sensor_msgs::PointCloud2ConstPtr& message, + const boost::shared_ptr& buffer); + + // for testing purposes + void addStaticObservation(costmap_2d::Observation& obs, bool marking, bool clearing); + void clearStaticObservations(bool marking, bool clearing); + +protected: + virtual void setupDynamicReconfigure(ros::NodeHandle& nh); + + /** + * @brief Get the observations used to mark space + * @param marking_observations A reference to a vector that will be populated with the observations + * @return True if all the observation buffers are current, false otherwise + */ + bool getMarkingObservations(std::vector& marking_observations) const; + + /** + * @brief Get the observations used to clear space + * @param clearing_observations A reference to a vector that will be populated with the observations + * @return True if all the observation buffers are current, false otherwise + */ + bool getClearingObservations(std::vector& clearing_observations) const; + + /** + * @brief Clear freespace based on one observation + * @param clearing_observation The observation used to raytrace + * @param min_x + * @param min_y + * @param max_x + * @param max_y + */ + virtual void raytraceFreespace(const costmap_2d::Observation& clearing_observation, double* min_x, double* min_y, + double* max_x, double* max_y); + + void updateRaytraceBounds(double ox, double oy, double wx, double wy, double range, double* min_x, double* min_y, + double* max_x, double* max_y); + + std::vector transformed_footprint_; + bool footprint_clearing_enabled_; + void updateFootprint(double robot_x, double robot_y, double robot_yaw, double* min_x, double* min_y, + double* max_x, double* max_y); + + std::string global_frame_; ///< @brief The global frame for the costmap + double max_obstacle_height_; ///< @brief Max Obstacle Height + + laser_geometry::LaserProjection projector_; ///< @brief Used to project laser scans into point clouds + + std::vector > observation_subscribers_; ///< @brief Used for the observation message filters + std::vector > observation_notifiers_; ///< @brief Used to make sure that transforms are available for each sensor + std::vector > observation_buffers_; ///< @brief Used to store observations from various sensors + std::vector > marking_buffers_; ///< @brief Used to store observation buffers used for marking obstacles + std::vector > clearing_buffers_; ///< @brief Used to store observation buffers used for clearing obstacles + + // Used only for testing purposes + std::vector static_clearing_observations_, static_marking_observations_; + + bool rolling_window_; + dynamic_reconfigure::Server *dsrv_; + + int combination_method_; + +private: + void reconfigureCB(costmap_2d::ObstaclePluginConfig &config, uint32_t level); +}; + +} // namespace costmap_2d + +#endif // COSTMAP_2D_OBSTACLE_LAYER_H_ diff --git a/plugins/inflation_layer.cpp b/plugins/inflation_layer.cpp index 538beee..5e74c62 100644 --- a/plugins/inflation_layer.cpp +++ b/plugins/inflation_layer.cpp @@ -1,37 +1,37 @@ -// #include -// #include -// #include -// #include -// #include +#include +#include +#include +#include +#include // PLUGINLIB_EXPORT_CLASS(costmap_2d::InflationLayer, costmap_2d::Layer) -// using costmap_2d::LETHAL_OBSTACLE; -// using costmap_2d::INSCRIBED_INFLATED_OBSTACLE; -// using costmap_2d::NO_INFORMATION; +using costmap_2d::LETHAL_OBSTACLE; +using costmap_2d::INSCRIBED_INFLATED_OBSTACLE; +using costmap_2d::NO_INFORMATION; -// namespace costmap_2d -// { +namespace costmap_2d +{ -// InflationLayer::InflationLayer() -// : resolution_(0) -// , inflation_radius_(0) -// , inscribed_radius_(0) -// , weight_(0) -// , inflate_unknown_(false) -// , cell_inflation_radius_(0) -// , cached_cell_inflation_radius_(0) +InflationLayer::InflationLayer() + : resolution_(0) + , inflation_radius_(0) + , inscribed_radius_(0) + , weight_(0) + , inflate_unknown_(false) + , cell_inflation_radius_(0) + , cached_cell_inflation_radius_(0) // , dsrv_(NULL) -// , seen_(NULL) -// , cached_costs_(NULL) -// , cached_distances_(NULL) -// , last_min_x_(-std::numeric_limits::max()) -// , last_min_y_(-std::numeric_limits::max()) -// , last_max_x_(std::numeric_limits::max()) -// , last_max_y_(std::numeric_limits::max()) -// { -// inflation_access_ = new boost::recursive_mutex(); -// } + , seen_(NULL) + , cached_costs_(NULL) + , cached_distances_(NULL) + , last_min_x_(-std::numeric_limits::max()) + , last_min_y_(-std::numeric_limits::max()) + , last_max_x_(std::numeric_limits::max()) + , last_max_y_(std::numeric_limits::max()) +{ + inflation_access_ = new boost::recursive_mutex(); +} // void InflationLayer::onInitialize() // { @@ -344,4 +344,12 @@ // } // } -// } // namespace costmap_2d +// Export factory function +static PluginPtr create_inflation_plugin() { + return std::make_shared(); +} + +// Alias cho Boost.DLL (nếu muốn dùng boost::dll::import_alias) +BOOST_DLL_ALIAS(create_inflation_plugin, create_plugin) + +} // namespace costmap_2d