chore: sync NAV2 module sources

This commit is contained in:
2026-07-29 11:27:01 +09:00
parent 5bd6aac99c
commit 374a21a6d9
5 changed files with 35 additions and 65 deletions
+3
View File
@@ -3,3 +3,6 @@ install/
log/
.colcon/
*.log
__pycache__/
**/__pycache__/
*.py[cod]
@@ -4,31 +4,11 @@
-->
<root main_tree_to_execute="MainTree">
<BehaviorTree ID="MainTree">
<RecoveryNode number_of_retries="8" name="NavigateRecovery">
<PipelineSequence name="NavigateWithReplanning">
<PipelineSequence name="NavigateToPose">
<RateController hz="1.0">
<RecoveryNode number_of_retries="1" name="ComputePathToPose">
<ComputePathToPose goal="{goal}" path="{path}" planner_id="GridBased"/>
<ClearEntireCostmap name="ClearGlobalCostmap-Context" service_name="global_costmap/clear_entirely_global_costmap"/>
</RecoveryNode>
</RateController>
<RecoveryNode number_of_retries="1" name="FollowPath">
<FollowPath path="{path}" controller_id="FollowPath"/>
<ClearEntireCostmap name="ClearLocalCostmap-Context" service_name="local_costmap/clear_entirely_local_costmap"/>
</RecoveryNode>
</PipelineSequence>
<ReactiveFallback name="RecoveryFallback">
<GoalUpdated/>
<RoundRobin name="RecoveryActions">
<!-- <BackUp backup_dist="1.0" backup_speed="0.20"/> -->
<BackUp backup_dist="0.3" backup_speed="0.20"/>
<!-- <Sequence name="ClearingActions">
<ClearEntireCostmap name="ClearLocalCostmap-Subtree" service_name="local_costmap/clear_entirely_local_costmap"/>
<ClearEntireCostmap name="ClearGlobalCostmap-Subtree" service_name="global_costmap/clear_entirely_global_costmap"/>
</Sequence> -->
<Wait wait_duration="1"/>
</RoundRobin>
</ReactiveFallback>
</RecoveryNode>
</BehaviorTree>
</root>
@@ -6,6 +6,11 @@ bt_navigator:
global_frame: map
robot_base_frame: base_footprint
odom_topic: /odom
default_nav_to_pose_bt_xml: ''
default_nav_through_poses_bt_xml: ''
navigators: [navigate_to_pose]
navigate_to_pose:
plugin: nav2_bt_navigator/NavigateToPoseNavigator
bt_loop_duration: 20
default_server_timeout: 2000
wait_for_service_timeout: 4000
+16 -34
View File
@@ -2,7 +2,7 @@
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.actions import DeclareLaunchArgument, TimerAction
from launch.actions import GroupAction
from launch.actions import OpaqueFunction
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
@@ -25,9 +25,7 @@ def launch_setup(context, *args, **kwargs):
level = LaunchConfiguration('level').perform(context)
log_level = LaunchConfiguration('log_level').perform(context)
lifecycle_nodes = ['controller_server',
'smoother_server',
'planner_server',
lifecycle_nodes = ['planner_server',
'bt_navigator',
'waypoint_follower']
@@ -39,11 +37,9 @@ def launch_setup(context, *args, **kwargs):
'behavior',
'navigate_to_pose_no_spin.xml'
])
default_nav_through_poses_bt_xml = PathJoinSubstitution([
pkg_planning,
'behavior',
'navigate_through_poses_no_spin.xml'
])
# Humble starts the NavigateThroughPoses navigator as well. Reuse the
# minimal pose tree so its optional recovery actions are not required.
default_nav_through_poses_bt_xml = default_nav_to_pose_bt_xml
param_file_name = None
@@ -57,7 +53,7 @@ def launch_setup(context, *args, **kwargs):
pkg_planning,
'config', param_file_name])
param_substitutions = {
'use_sim_time': 'true',
'use_sim_time': sim_mode,
'default_nav_to_pose_bt_xml': default_nav_to_pose_bt_xml,
'default_nav_through_poses_bt_xml': default_nav_through_poses_bt_xml
}
@@ -70,16 +66,6 @@ def launch_setup(context, *args, **kwargs):
load_nodes = GroupAction(
actions=[
Node(
package='nav2_controller',
executable='controller_server',
name='controller_server',
output='screen',
respawn=False,
respawn_delay=2.0,
parameters=[configured_params],
arguments=['--ros-args', '--log-level', log_level],
),
Node(
package='nav2_planner',
executable='planner_server',
@@ -110,25 +96,21 @@ def launch_setup(context, *args, **kwargs):
parameters=[configured_params],
arguments=['--ros-args', '--log-level', log_level],
),
Node(
package='nav2_smoother',
executable='smoother_server',
name='smoother_server',
output='screen',
respawn=False,
respawn_delay=2.0,
parameters=[configured_params],
arguments=['--ros-args', '--log-level', log_level],
),
Node(
# Let the Nav2 servers finish creating their lifecycle services first.
TimerAction(
period=2.0,
actions=[Node(
package='nav2_lifecycle_manager',
executable='lifecycle_manager',
name='lifecycle_manager_planning',
output='screen',
arguments=['--ros-args', '--log-level', log_level],
parameters=[{'use_sim_time': True},
{'autostart': True},
{'node_names': lifecycle_nodes}]
parameters=[{
'use_sim_time': sim_mode == 'true',
'autostart': True,
'node_names': lifecycle_nodes,
}]
)],
),
],
)