b-it-bots / mas_domestic_robotics

Robot-independent ROS packages for domestic applications
GNU General Public License v3.0
28 stars 45 forks source link

Create a find (object) action #44

Open argenos opened 6 years ago

argenos commented 6 years ago

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.

alex-mitrevski commented 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).

argenos commented 6 years ago

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.

minhnh commented 6 years ago

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?

alex-mitrevski commented 6 years ago

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.

alex-mitrevski commented 5 years ago

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.

minhnh commented 5 years ago

possibly related paper and the project it belongs to