A few days ago we had a new Behavior Tree known as “Navigate To Pose and Pause Near Goal-Obstacle” pushed into the Nav2 stack. The all new behavior tree allows the robot to efficiently handle an obstacle (e.g. forklift, person, or other temporary obstacles) close to the goal by pausing the robot’s navigation and waiting for a user-specified time to check if the obstacle has cleared. Depending on the movement of the obstacle, the robot decides to take the shorter or longer path.
The idea was exclusively brought to life by our friendly neighbourhood navigator Steve Macenski. And for the testing we at Neobotix used our amazing MPO-700. You can find a short video of the demo here.
We would also love to have some feedback if you have any. There is also a follow up issue that some folks out there might want to follow or contribute to.
Overall, we find Behavior Trees to be a powerful tool for solving various application specific issues for mobile robot navigation. In case you want to look how Nav2 is using the Behavior Tree follow this nice documentation.