4. 实现选择节点处理导航失败

任务目标

在ROS2 Nav2导航任务中,当主目标点导航失败时,使用行为树中的Fallback(回退/选择)节点自动切换至备用目标点继续尝试,并在切换过程中记录失败原因。本案例将构建一个最小可复现的XML行为树,并通过Nav2的bt_navigator加载运行。

核心实现

Fallback节点(XML中为Fallback)按从左到右顺序执行子节点:若当前子节点返回SUCCESS则整个Fallback返回SUCCESS并停止;若返回FAILURE则继续执行下一个子节点;若全部失败则返回FAILURE。本案例利用该特性串联两个NavigateToPose动作节点,并在每个动作前插入Script节点记录当前尝试的目标点。

以下为完整行为树XML文件navigate_with_fallback.xml:

```xml