proactiveTagging sometimes tag an object with the label "unknown"
Closed this issue · 3 comments
When proactively tagging an object, sometimes the robot says "I get it, this is an unknown". (whereas the human said e.g. "this is a duck").
The problem seems to comes from here, where "unknown" is the default value if there is no "object role" in the bottle returned by the recognizer.
I see two possible ways of solving it:
-
Understanding why there is no "object role" in that bottle, whereas it is not optional in the grammar
-
Checking in
proactiveTagging
if "unknown" has been returned and in that case not updating the OPC and saying "I didn't understand".
For the second option, where would be the best place in proactiveTagging
to do it? (cc @Tobias-Fischer @maxime-petit ). But understanding point 1) would be better :)
Clément
We found another related bug this morning:
When the robot asked "What is this object?", then the human said "This is the duck", the robot eventually replied "I asked you something else".
Looking at the logs, we see that speech recognizer actually returned:
139074 1322,105474 INFO Reply from Speech Recog : ACK ("Let us talk about pong" (SUBNODE (ABOUT (keyword pong))))
i.e., something from the main grammar.
Looking at the code, the call of speech recognizer in practiveTagging occurs here
i.e. specifying the grammar GrammarAskNameObject
as the argument of iCub->getRecogClient()->recogFromGrammarLoop
.
So at the end it seems to be a similar problem as in the previous post: speech recognizer is called with a particular grammar, but returns something from another one.
Who knows this module well enough to help here? Maybe @maxime-petit ? Or @gregoire-pointeau if he's still connected :)
Thanks,
Clément
Hi guys,
A few notes:
- The
speechRecognizer
shouldn't return something from the default grammar. Are you guys sure you are muting the microphone properly so no noise is detected? Is thespeechRecognizer
up-to-date? proactiveTagging
was looking checking against anerror
string rather than aunknown
string. I changed this here: e5f6e00 so now the robot says "I asked you something else", and the object is not being renamed. Obviously as you said this is not the perfect fix, as you will need to trigger the interaction again.
How often does this happen?
Best, Tobi
Proper fix in 1067d58 - let's close this.