navigate_to_pose_w_replanning_and_recovery.xml
Groot2에서 확인한 트리
Navigation Subtree는 3개의 파트로 이루어짐
The ComputePathToPose
subtree clears the global costmap
. The global costmap is the relevant costmap in the context of the planner 경로 계산 실패 시 글로벌 코스트맵을 초기화. global path planning(기본값: A star 알고리즘)과 관련된 알고리즘.
The FollowPath
subtree clears the local costmap
. The local costmap is the relevant costmap in the context of the controller 경로 이동 실패 시 로컬 코스트맵을 초기화. local path planning(기본값: DWB -- Dynamic Window Approach의 변형)
Navigation Subtree에서의 RecoveryFallback이 충분하지 않은 경우, Navigation Subtree는 Failure를 리턴하고 Recovery Subtree 노드로 이동해서 시스템 레벨의 모든 navigation failure를 삭제
실제 파일 경로: /opt/ros/humble/share/nav2_bt_navigator/behavior_trees/navigate_to_pose_w_replanning_and_recovery.xml
MonitorAndFollowPath
Subtree를 사용해서 더 긴 경로(PathLongerOnApproach)가 감지되면 CancelingControlAndWait 로 로봇의 컨트롤을 취소하고 지정된 시간(위에서는 5초) 동안 대기시킨다. 지정된 시간이 지난 후 1번 더 기존 경로보다 긴 경로를 감지했는지 확인 후, 장애물이 없다면 기존 경로대로 이동하고 장애물이 있다면 새로운 경로대로 이동한다.