Posted by @Magiccofee:
Hi,
I am looking to use RMF in an environment where there are 3 lifts in the same lift lobby that the robot can utilise. When testing this, the path always seem to be planned to the closest lift.
However, I have a lift controller that determines which lift to dispatch for the task. I want the lift controller to handle the lift assignments instead of RMF.
Currently I have three lifts in the building yaml as shown in the picture below.
Is there a way for RMF to make use of this information from the lift controller then command the robot to take the dispatched lift.
Thank you.
Posted by @VigashiniDotworld:
@mxgrey Is there a way for this in RMF can you suggest?
Posted by @mxgrey:
I’ve been thinking this over, and I’m afraid with the current generation of Open-RMF there’s only one approach I can think of which might work, but it will require you to manually handle a lot of the lift control logic:
- In the traffic editor, reduce the 3 lifts down to 1 lift.
- Give the
Dock
property to the point inside the lift.
- When the docking command gets called, run your own procedure to request a lift, send the robot into the correct lift when it arrives at the entry floor, and drive the robot out when the lift arrives at the destination floor.
- Once the robot is fully out of the lift and ready to continue its task, update its position and then trigger a
replan
for the robot.
I’m afraid that this will be a considerable amount of logic for you to implement yourself, but I don’t see an alternative without forking the rmf_ros2
source code and rewriting some substantial portions of it.
This problem with the rigidity of the current implementation is a big part of why we’re working towards a service-oriented architecture for the next generation rewrite of Open-RMF. In that architecture, you’d be able to inject your own logic for how lifts are chosen and interacted with, and you’d be able to put that logic together by defining a workflow using building blocks that we provide. Unfortunately this is still at least a few months away from a working prototype being available.
Posted by @VigashiniDotworld:
@mxgrey Thanks for the suggestion will try.