Skip to content

Commit 333af97

Browse files
committed
Enablign Humble use with a backported version of BT navigator to enable plugin navigator use
1 parent 110357c commit 333af97

25 files changed

+1677
-373
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
project(backported_bt_navigator)
3+
4+
find_package(ament_cmake REQUIRED)
5+
find_package(nav2_common REQUIRED)
6+
find_package(rclcpp REQUIRED)
7+
find_package(rclcpp_action REQUIRED)
8+
find_package(rclcpp_lifecycle REQUIRED)
9+
find_package(rclcpp_components REQUIRED)
10+
find_package(std_msgs REQUIRED)
11+
find_package(geometry_msgs REQUIRED)
12+
find_package(nav2_behavior_tree REQUIRED)
13+
find_package(nav_msgs REQUIRED)
14+
find_package(nav2_msgs REQUIRED)
15+
find_package(behaviortree_cpp_v3 REQUIRED)
16+
find_package(std_srvs REQUIRED)
17+
find_package(nav2_util REQUIRED)
18+
find_package(nav2_core REQUIRED)
19+
find_package(tf2_ros REQUIRED)
20+
find_package(pluginlib REQUIRED)
21+
22+
nav2_package()
23+
24+
include_directories(
25+
include
26+
)
27+
28+
set(executable_name bt_navigator)
29+
30+
add_executable(${executable_name}
31+
src/main.cpp
32+
)
33+
34+
set(library_name ${executable_name}_core)
35+
36+
set(dependencies
37+
rclcpp
38+
rclcpp_action
39+
rclcpp_lifecycle
40+
rclcpp_components
41+
std_msgs
42+
geometry_msgs
43+
nav2_behavior_tree
44+
nav_msgs
45+
nav2_msgs
46+
behaviortree_cpp_v3
47+
std_srvs
48+
nav2_util
49+
nav2_core
50+
tf2_ros
51+
pluginlib
52+
)
53+
54+
add_library(${library_name} SHARED
55+
src/bt_navigator.cpp
56+
)
57+
58+
ament_target_dependencies(${executable_name}
59+
${dependencies}
60+
)
61+
62+
target_link_libraries(${executable_name} ${library_name})
63+
64+
ament_target_dependencies(${library_name}
65+
${dependencies}
66+
)
67+
68+
add_library(nav2_navigate_to_pose_navigator SHARED src/navigators/navigate_to_pose.cpp)
69+
ament_target_dependencies(nav2_navigate_to_pose_navigator ${dependencies})
70+
target_compile_definitions(nav2_navigate_to_pose_navigator PRIVATE BT_PLUGIN_EXPORT)
71+
72+
add_library(nav2_navigate_through_poses SHARED src/navigators/navigate_through_poses.cpp)
73+
ament_target_dependencies(nav2_navigate_through_poses ${dependencies})
74+
target_compile_definitions(nav2_navigate_through_poses PRIVATE BT_PLUGIN_EXPORT)
75+
76+
pluginlib_export_plugin_description_file(backported_bt_navigator navigator_plugins.xml)
77+
rclcpp_components_register_nodes(${library_name} "backported_bt_navigator::BtNavigator")
78+
79+
install(TARGETS ${library_name} nav2_navigate_to_pose_navigator nav2_navigate_through_poses
80+
ARCHIVE DESTINATION lib
81+
LIBRARY DESTINATION lib
82+
RUNTIME DESTINATION bin
83+
)
84+
85+
install(TARGETS ${executable_name}
86+
RUNTIME DESTINATION lib/${PROJECT_NAME}
87+
)
88+
89+
install(DIRECTORY include/
90+
DESTINATION include/
91+
)
92+
93+
if(BUILD_TESTING)
94+
find_package(ament_lint_auto REQUIRED)
95+
ament_lint_auto_find_test_dependencies()
96+
endif()
97+
98+
ament_export_include_directories(include)
99+
ament_export_libraries(${library_name} nav2_navigate_to_pose_navigator nav2_navigate_through_poses)
100+
ament_export_dependencies(${dependencies})
101+
ament_package()

backported_bt_navigator/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# BT Navigator
2+
3+
## Modified for Bonsai Robotics for Humble
4+
5+
This is a fork of the BT Navigator to enable navigator plugins for Humble which is an ABI breaking change. Once upgrading to Iron or newer, this is no longer required and you should revert back to the Nav2 BT Navigator version to obtain updates and bug fixes. This is required to use the CoverageNavigator plugin type on a temporary basis.
6+
7+
See Nav2 docs for relevent information.

0 commit comments

Comments
 (0)