Quickstart - dialogos-project/dialogos GitHub Wiki

(this page in German)

This chapter gives you an overview of how to combine your LEGO Mindstorms robot with the Dialog OS environment. The example shown here describes how to add speech control to an arbitrary robot (e.g., TriBot from the LEGO Mindstorms manual). The only requirement is that the action you want the robot to execute is encoded in a LEGO program and uploaded to your robot.

To build a dialog model, start Dialog OS and select the option Create New Project. You can start constructing the model for example with a speech recognition node that waits for a user command. After inserting the node, you have to link it with the start node of your dialog model. To bind two nodes, simply click and drag an arrow from the output edge of one node onto the another.

Double clicking on your speech recognition node will result in a pop up window in which you can set up all related properties. Select '<Generate from patterns>' and enter possible starting commands line by line (e.g., "kick off!", "let's get going", "begin"). The dialog system will, at runtime, automatically generate the grammar formalisms of your pattern needed by the speech recognition engine. If you use words as input patterns, they have to be put in quotes since other complex patterns are possible as well.

For every pattern in your speech recognition node there will be a new output edge which can be connected to other nodes. To execute a program on your robot, add a "Start NXT program" node to your dialog. To select a program from your NXT, click on the Choose button in the properties of the newly created node.

Note

NXT programs always have the file ending .rxe (e.g., TriBotProgram.rxe).

You can also add a speech synthesis node to produce a notice once the program is getting started. The option "Text" in this node allows for plain text output, whereas the option "Expression" makes it possible to use complex expressions.

Now that you inserted a node to start the NXT program, you also need to add one to stop the program. At this point, you can also use the speech recognition node again to wait for a stop command (e.g., "stop") from the user. Afterwards, the node type "Stop NXT program" serves the purpose of cancelling the running program on the NXT. This node has one edge through which node will be left after a stop signal has successfully been sent to the robot.

Another option within the node's properties, "Check first whether a program is running", can be used to get another output edge through which the node will be left if there is no program running on the NXT. After adding the stop node, you can use another speech synthesis node to give feedback to the user.

At the end of your dialog, you can add an end node to stop it. Alternatively, you can draw an edge from the last node to your start node to repeat the conversation. Once you are done, you can use the command Check from the Graph menu to test whether there are any unconnected output edges or other issues in your dialog model.

If the dialog model is done, you can start testing the functionalily without NXT. For this scenario, Dialog OS contains a feature called Wizard-of-Oz which can be started via the toolbar. To start the dialog without Wizard-of-Oz mode, just click on the button Run in the task bar.

In case you encounter errors in your model, you can also use the built-in debugger to go through your dialoge stepwise or to pause at selected breakpoints. If you are now curious about the possibilities of Dialog OS, it is advisable to start with going through an overview of the available node types in the chapter on nodes. One interesting example is the use of variable nodes which can be used for example to count the number of executions of a NXT program. By using complex expressions, you can also use your variables in speech synthesis in such.

Next page: Nodes