SoftBank Robotics documentation What's new in NAOqi 2.5?

ALDialog

NAOqi Interaction engines - Overview | API | Tutorials


What it does

The ALDialog module allows you to endow your robot with conversational skills by using a list of “rules” written and categorized in an appropriate way.

How it works

Rules

ALDialog uses a list of written rules in order to manage the flow of the conversation between the human and the robot.

These rules are of two types: User rules and Proposal rules

  • A User rule links a specific user input to possible robot output.

    u: (Hello Nao how are you today) Hello human, I am fine thank you and you?
    
  • A Proposal rule triggers a specific robot output without any user output beforehand.

    proposal: Have you seen that guy on the TV yesterday?
       u1: (yes) He was crazy, no?
       u1: (no) Really, I need to tell you.
    

Grouped by Topics

In order to properly manage the conversation between the human and the robot, the rules are grouped by Topics.

topic: ~greetings
language: enu

u: (Hello Nao how are you today) Hello human, I am fine thank you and you?
u: ({"Good morning"} {Nao} did you sleep * well) No damn! You forgot to switch me off!
proposal: human, are you going well ?
   u1: (yes) I'm so happy!
   u1: (no) I'm so sad

A Topic can either be created and edited directly in any text editor or through a qiChat Choregraphe box.

Collaborative dialog vs applications

We can differenciate three steps in robot life: autonomous life, collaborative dialog (interactive state) and your application. Collaborative dialog allows running your application by voice. You can simply add trigger sentences in the manifest of your application or add more advanced dialog.

../../../_images/state_solitary_interactive.png

If you want to start your application with confirmation, trigger sentences do not allow it, you may write the topic (check collaborative in Choregraphe)

../../../_images/def_dialog_box.png
topic: ~startmyweather
language: enu

include: lexicon_enu.top

u: (start weather) are you sure?
u1: (~yes) ok ^switchFocus(myweather/.)