Nav2 - Do something other then replan when obstacle in path
I want to use Nav2 on a mobile robot to pickup "hot dog" obstacles and drive around "not hot dog" obstacles. I have a image based model trained to find "hot dog" and "not hot dog". I'm seeing several ways this could be implemented with Nav2. Have you done something similar? What approach did you take?
Some options I am thinking of:
- Behavior tree node plugin
- Orchestration layer above Nav2 that recognizes obstacles to be picked up and cancels whatever Nav2 was trying to do, does the pickup and then starts Nav2 again with the remaining path. Higher level orchestration layer could be BT(pytrees or CPP) or FSM.
- Have something insert waypoints near pickup obstacles and then use a waypoint task executor to execute pickup
- Controller plugin
- Planner plugin
- Something else?