ros-navigation / navigation2

ROS 2 Navigation Framework and System
https://nav2.org/
Other
2.57k stars 1.29k forks source link

Create reference implementation of multi-robot centralized planning & local refinement systems #2600

Open SteveMacenski opened 3 years ago

SteveMacenski commented 3 years ago

There are several problems to handle prior to evaluation of the issue itself

liangyuwei commented 3 years ago

Glad to see multi-robot support is under consideration~ I wonder if decentralized planner support is under consideration or on the roadmap? Just a thought for the third problem, it seems more natural (and could be commonly used?) to implement multi-robot system by using Nav2 as executor for point-to-point paths planned by some centralized planner hosted on higher level schedule system, since Nav2 is quite closer to robot level than application level. If using Nav2 for multi-robot support, I guess companies may have more interest in decentralized planning on the robot level?

SteveMacenski commented 3 years ago

No multi-robot decentralized planner is under consideration. As far as I’m aware, that’s still an active research area lacking in hardened/viable generalized approaches. If my knowledge in this area is outdated, I’d appreciate some papers / methods / ideas if that is to be considered.

The centralized planner would be run in some global scheduler (eg cloud most probably) instance, it would not be intended to be run on the robots themselves, since its a centralized approach. The robots would ingest their individual task paths to track. A behavior tree would use that output instead of calling the planner server for global path planning. Though as the initial ticket references, there may be some local “refinement” of that global path between the centralized planner and the local trajectory planner, but that is remaining to be evaluated.

At least, those are my thoughts as a system designer, I’m also happy to adjust course if there are better ideas or prevailing methods I’m simply not aware of!

padhupradheep commented 2 years ago

Found a really nice github package: https://github.com/atb033/multi_agent_path_planning

Maybe useful, while considering any sort of implementation.

SteveMacenski commented 2 years ago

Perhaps the local refinement of the global centralized paths could use decentralized approaches just to refine a bit in the local area, but I suspect if you use local trajectory planners that allow the robot to deviate due to dynamic obstacles in the scene, that should handle many situations. If the global centralized plan already established a valid path, this would be sufficient to handle minor deviations.

However without the centralized planners is where these shine, but many of them can be thought of as dynamic obstacle avoiding local trajectory planners themselves -- so at least the methods in the link aren't that novel in that respect.

Ryujiyasu commented 2 years ago

It is a package that moves multiple robots that I know. I'm glad if you can use it as a reference.

https://github.com/open-rmf/rmf_demos

CiaranYoung commented 11 months ago

great