SOTA for Multi Robot Cooperation in RMF

Hello,

I wanted to ask whether RMF currently supports multi-robot cooperation with mobile robots. Not just multi-fleet scheduling, but actual inter-robot task dependency. Maybe a concrete example will clarify what I intend:

Mobile Robot A (with a robotic arm) picks up a bottle and brings it to a rendezvous point. Mobile Robot B then takes the bottle and delivers it to the final destination.

This is a simple handoff scenario involving two robots and a shared task. I came across this post from 2 years ago, where someone raised a similar question. At the time, the answer was:

I’m reaching out to check if there has been any progress since then—whether in implementation, architectural planning, or community experiments. If there’s any internal work, proposals, or unofficial approaches floating around, I’d really appreciate hearing about them.

Otherwise, I’m planning to open a new topic specifically focused on how such a feature could be supported in RMF (logically, architecturally, and technically), and eventually start developing alongside my team.

Thanks in advance.

There has been some indirect progress towards this. The most relevant work item is the development of bevy_impulse, a toolkit for defining and executing workflows that are particularly well suited for managing multi-agent behavior. We plan for this to be the foundation of defining tasks that involve interactions between multiple agents, and hand-offs between two mobile robots would be a good example of that kind of task.

We’re currently working on a visual editor+debugger for bevy_impulse that uses ReactFlow, but even without the visual tool, bevy_impulse can already be used to build workflows at runtime (defined via a JSON “diagram”) and execute them.

Thanks for the info—bevy_impulse looks really promising!

Could you share what’s needed to get the two examples running? I couldn’t find any installation instructions, and I’m not sure which package versions are required. Is it possible to use bevy_impulse with RMF at this point?

My team and I are especially interested in multi-agent collaboration use cases. Is there a public roadmap or any documentation about your plans for this? Also, do you need help developing or testing multi-agent workflows? We’d be happy to contribute.

Thanks for pointing out the absence of build instructions. I’ve updated the README to include build instructions and to link to some example packages.

Is it possible to use bevy_impulse with RMF at this point?

Theoretically they could be integrated with the dynamic event action server but that’s not a major focus for us since that would be building on top of the “old” Open-RMF whereas we’re trying to move forward with developing the next generation.

Is there a public roadmap or any documentation about your plans for this?

The roadmap for workflows is roughly this:

  • Keep developing rclrs until it’s suitable to be used in workflows. In particular we need:
  • Develop a visual editor and debugger (currently in progress using ReactFlow)
  • Use bevy_impulse to implement the traffic Plan Executor
  • Use bevy_impulse to implement a multi-agent task management system

Also, do you need help developing or testing multi-agent workflows? We’d be happy to contribute.

We definitely appreciate any collaboration and contributions that we can get.

It’s probably too early to do much testing since we need to finish some more foundational work with rclrs, and I think most people would want to use the visual editor rather than writing JSON by hand.

But if you’re interested in helping to accelerate the development, I would recommend joining

Both are bi-weekly and are listed on the Official OSRF Events Calendar. There we can have a live discussion on what’s going on and how we might collaborate.

1 Like