robotology / poeticon

This is the repository of the POETICON++ EU project http://www.poeticon.eu
GNU General Public License v2.0
4 stars 6 forks source link

Scenario 4 - semantic changes in the world #195

Closed gsaponaro closed 8 years ago

gsaponaro commented 8 years ago

Hi @vtikha @lorejam @AlexAntn, in the scenario when an object completely disappears from the scene (for example if a person removes it from the table - the object is not hidden in the stack), I noticed that, at activityInterface level, that object disappears from the list "getNames" as expected, but the "reachableWith" list for the disappeared object is kept in memory, for example it continues to be "(Stick left right)" even after the object is removed - probably this was a feature requested to satisfy the planner in the past, remembering some properties of objects after they were in the robot hands, @AlexAntn correct me if I'm wrong.

Anyway, to satisfy the planner in scenario 4, the world state must set the reachableWith and the pullableWith symbols of the removed object to an empty list "()".

My question is: should this change be done at activityInterface level (conceptually more correct, but not sure if @vtikha has time), or at world state level (i.e., overriding the not-null list with a null list, which is a bit of a hack, but it's easy)?

If we decide for the second option, I already have this computation that distinguishes between geometric changes (in those cases I don't do anything special, I propagate the reachable etc. symbols that activityIF gives me, which makes scenario 3 work) and semantic changes (not yet working because of this issue). I'm not using those variables yet, for now I'm always propagating whatever activityIF sends as "reachableWith" list.

vtikha commented 8 years ago

Hi @gsaponaro, well spotted. It is better to do this change in the activityInterface for consistency. I will make the change first thing tomorrow morning. We can keep the second option as a quick solution for a plan b if we notice that things are still not quite correct.

vtikha commented 8 years ago

:+1: now fixed

gsaponaro commented 8 years ago

Cool! @AlexAntn: I don't remember if you need something similar for pullableWith as well, or just reachableWith becoming () is enough for the planner?

AlexAntn commented 8 years ago

reachableWith is enough for the planner to detect that the object is not there.