Posted by @TheConstructAi:
Hi,
I was wondering if there is any documentation or examples showing how to create a simple Human Interface to connect human-activated systems with RMF, similar to the Dispenser plugin or the ingestor plugin.
Thanks in advance
Chosen answer
Answer chosen by @TheConstructAi at 2022-10-31T09:38:03Z.
Answered by @mxgrey:
For past projects we’ve implemented “Dispenser” and “Ingestor” nodes for use cases where a human needs to deposit or withdraw an item from a storage compartment on a robot. Implementing that is honestly very straightforward and not particularly different from implementing it for a robot.
You would implement a ROS2 node that can receive ingestor or dispenser commands (depending on whether the human should be withdrawing or depositing an item) and then publishes state and result messages based on the human interaction. For example, maybe the human presses a button on a touch screen to acknowledge that they have received the item. That touch screen button would send a message over a REST API or MQTT or WebSocket or whatever you prefer to the ROS2 human ingestor/dispenser node, and the node would update the state and publish the appropriate messages.
You could also have something like a physical button or an NFC card reader or any other kind of human interaction system you want to allow the human to confirm that they’ve finished their interaction. That system just needs to somehow communicate to your ROS2 node that’s taking in the requests from RMF and publishing the states+responses.
Posted by @mxgrey:
For past projects we’ve implemented “Dispenser” and “Ingestor” nodes for use cases where a human needs to deposit or withdraw an item from a storage compartment on a robot. Implementing that is honestly very straightforward and not particularly different from implementing it for a robot.
You would implement a ROS2 node that can receive ingestor or dispenser commands (depending on whether the human should be withdrawing or depositing an item) and then publishes state and result messages based on the human interaction. For example, maybe the human presses a button on a touch screen to acknowledge that they have received the item. That touch screen button would send a message over a REST API or MQTT or WebSocket or whatever you prefer to the ROS2 human ingestor/dispenser node, and the node would update the state and publish the appropriate messages.
You could also have something like a physical button or an NFC card reader or any other kind of human interaction system you want to allow the human to confirm that they’ve finished their interaction. That system just needs to somehow communicate to your ROS2 node that’s taking in the requests from RMF and publishing the states+responses.
This is the chosen answer.
Posted by @TheConstructAi:
Great thanks! Yeah, I developed something like that at the end. A python node behaves essentially like the Dispenser and investor respectively. But I wanted to see the state of the rate from you people to be sure that I was on track.
Hope to post the examples in the near future ;). Thanks for the answer
Edited by @TheConstructAi at 2022-10-31T09:40:03Z