Open argenos opened 6 years ago
I agree that we need this action, but I don't think we can write it before having a decent knowledge base; without that, finding things will be a shot in the dark.
I'm talking about two types of knowledge here: encyclopedic knowledge (e.g. cups are stored in the kitchen), but also user-specific knowledge (e.g. Alex's cup is usually on the kitchen counter and not in the cupboard).
I agree first we need to at least fix #6, then solve this one. I guess for the world model we need to detect and recognize this objects first anyways, which was a bit what I was going for.
So recently the object detection code is rewritten as an action server in this PR. Does that more or less solve this issue, or do you have some other thing in mind for the action?
This is not an action about pure perception, but also requires a knowledge base (where things are likely to be stored so that we don't search blindly) and a recovery/exploration strategy in case the item is not found immediately.
PR https://github.com/b-it-bots/mas_domestic_robotics/pull/63 is an early-stage WIP for creating this knowledge base for the record.
Now that the basic implementation of the ontology and the knowledge base interface is set up (https://github.com/b-it-bots/mas_knowledge_base), I finally have an initial draft of the action: https://github.com/b-it-bots/mas_domestic_robotics/tree/devel/mdr_planning/mdr_actions/mdr_perception_actions/mdr_find_object_action
The definition of the action allows finding either a specific object or an object of a given category, though for now, I'm only focused on specific objects.
The basic workflow of the action (in case of finding a specific object) is as follows:
There's obviously still quite a lot to be done here, but it's a start.
possibly related paper and the project it belongs to
The current action is embedded in the perceive plane action and should be refactored and separated to its own action server. This should also apply to other objects, for instance, shelves, and counters. It can potentially be even more generalizable, i.e. people.