Guidance on Warehouse Automation Using OpenRMF and Conveyor Traffic Management

Dear fellow roboticists,

I am currently working on a warehouse automation project focusing on orchestrating conveyor systems that include cross-intersections and traffic management capabilities. After some research, I’ve reviewed NVIDIA Isaac Mission Dispatch and OpenRMF as potential solutions. Here’s a quick summary of my findings:

  • NVIDIA Isaac Mission Dispatch: While promising, it lacks a traffic management layer, which would require implementing the majority of the functionality from scratch.
  • OpenRMF: Appears more mature and includes a traffic management feature, making it a strong candidate for my requirements.

I am particularly interested in building a map for this environment, where the map would consist of connected conveyor zones rather than traditional roads. Additionally, I noticed that OpenRMF includes sample workcells (Dispenser and Ingestor) and am curious about extending this to model conveyor zones.

Here are my specific questions:

  1. REP Guidelines: Are there any REP (ROS Enhancement Proposals) or established rules to follow when modeling conveyor systems or similar setups for RMF?

  2. Map Creation: How should I approach creating a map for an environment where conveyors and zones are the primary elements, rather than traditional roadways?

  3. Workcell Definition: Given that RMF currently supports Dispenser and Ingestor as sample workcells, would it be appropriate to define a conveyor zone as a workcell? If so, what would be the recommended approach to implement this?

I’d greatly appreciate insights, references, or examples from anyone who has worked on similar projects or has expertise in RMF and warehouse automation.

Looking forward to your valuable suggestions and discussions!

Thank you!

Can I check if the “traffic management” that you’re referring to is purely to manage the traffic of material travelling along fixed conveyors, or do you also have mobile robot traffic within your system?

Yes, it’s purely material traveling along fixed conveyors.
I have a large system about 100 conveyors, So a typical scenario would be a box entered the system through ingestor#2 needs to go to dispenser #1 to be filled with (apples for instance) and then exit the system from exit terminal#5
So I need to guide this box (Ingestor#2 → Dispenser#1 → Exit#5) by
1- Planning (Which conveyors to use)
2- Control (Coordinate command velocities to respective conveyors)
3- While avoiding collisions with other boxes

That’s a very interesting use case.

Open-RMF as it exists today is pretty specific for managing mobile robots and their traffic. I don’t think the motion planning and traffic negotiation systems would translate very well to the motion of material along fixed conveyors.

The nexus project has more relevance to workcells and fixed conveyors, but I don’t think it does anything to plan how the material gets routed, I think that’s left up to the system integrator (@Yadunund should correct me if I’m wrong about that).

We’re working on a “next generation” of Open-RMF which generalizes across mobile robots and workcells. That framework will probably be more relevant to your needs, but I have to admit that I don’t have personal experience with routing material across networks of fixed conveyors. That’s a use case that I’d be interested in supporting if we can get some guidance on how that type of system normally works, what kind of interfaces you’d expect, and what planning algorithms would be a good match.

1 Like

Not exactly what you are looking for technically, but algorithmically your problems sounds a lot like the modular printer problem they solved at Xerox PARC a while back. So if you are up for implementing the planning algorithm yourself, this paper + some others by these authors describes an approach that might just work for you: On-line Planning and Scheduling in a High-speed Manufacturing Domain

They share all the same aspects: in feed (in their case paper, in your case boxes), production units (print modules vs. dispensers), and outputs (papers trays vs exit terminals). Like you they also had to handle multiple concurrent items that shared the same conveyors.

2 Likes

My current simulation setup utilizes NVIDIA Isaac Sim, where:

  • Conveyor Control: Each conveyor receives velocity commands through ROS topics (e.g., /conveyor1/cmd_vel, /conveyor2/cmd_vel, etc.).
  • Object Tracking: The positions and orientation of boxes are tracked and published via ROS tf.

I will check Nexus project for the system architecture and explore Xerox PARC planning approach.

Thank you @grey @chfritz :innocent: