pepper

QiChat language syntax _* doesn't work, how to fix?


I want Pepper robot to understand any human input in the chat.

I know that the correct QiChat syntax is '*' and it requires Internet access. (Robot is connected via Wi-fi)

This is my topic file, where I tell the robot my name, he tells it and assigns qiChat variable to my name.

u:(My name {is} _*)
    Nice to see you, $1 $name=$1

This is how I define the chat.

conversationalContents = Arrays.asList(
                new NavigationControlConversationalContent(), new GestureControlConversationalContent(), new VolumeControlConversationalContent(),
                new DateTimeConversationalContent(), new GreetingsConversationalContent(), new FarewellConversationalContent(),
                new RepeatConversationalContent()
        );
        topic = TopicBuilder.with(qiContext).withResource(R.raw.talks).build(); // build topic
        chatbot = QiChatbotBuilder.with(qiContext).withTopic(topic).build(); // build chatbot
        chat = ConversationalContentChatBuilder.with(qiContext).withChatbot(chatbot).withConversationalContents(conversationalContents).build(); // build chat
chat.async().run();


And I do have this in the manifest

    <uses-permission android:name="android.permission.INTERNET" />

When I tell the robot my name, on the action bar (where robot writes what it understands -> it shows "My name <...>") So it doesn't understand and thus won't answer nor assign $name variable, which it should.


Solution

  • You'll probably want to contact Softbank Customer care and give them your robot serial number, because this feature requires a special licence that they need to activate (if your contract allows that of course!).

    Jonas