Version 1 (modified by tim, 6 years ago) (diff)

Student trial project, have rewritten this too often

Student Trial Task

New students frequently knock our doors and want to work on "cool robotics stuff". Excellent, we have tons of things that need someone to work on. But that might not be as easy as you thought. You came here because you were asked to do a trial project that makes you play a little with Fawkes, tinker with its internals, and in particular learn about the difficulties. We expect that you face problems when solving this task. It is kind of under-specified and requires your exploration. This is intentional. We want to see how you succeed, or, if you get stuck, where you have problems and what you tried to solve it yourself. For you it will give a clearer picture of what you are getting into.

Note that neither is getting the task done a guarantee to convince us nor is failing to complete it a reason to never come back. We are interested in how you tackled the problem, the ways and meanders you took, and how you can communicate about it.

The Task

First get Fawkes up and running, read about InstallingFawkes and the GettingStartedGuide. In particular make sure, that the flite speech synthesis plugin is working for you (once you load it should say "Speech synth loaded"). Then have a look at the skillet tool (source). It provides a prompt and uses the SkillerInterface to send all commands off to the skiller (cf. BehaviorEngine), e.g. the command say{text="Hello World"} from the GettingStartedGuide.

Now we want you to change the program, such that it uses a SpeechSynthInterface to pass all text that is entered on the prompt via the blackboard to the flite speech synthesis plugin.

The Design Principles paper provides a general overview on Fawkes. In particular learn about the blackboard, that messages are used in the code to communicate commands, while the interfaces are used to transport data.

Hint 1: Webview

Use the webview? plugin, which creates a web interface on port 8088 on your local machine, to browse through the interfaces. It will allow you to inspect the blackboard and find out about the ID of the speech synthesis interface.

Hint 2: Interface Type and ID

Look where messages are sent from skillet, i.e. what interface type and ID is used. Then find out how flite can be instructed (check Hint 1!).


You need a Linux machine to complete this task. Not having such a machine is a hint you are stepping out of your comfort zone. That is fine, but may require additional efforts on your side. We recommend Fedora, for which we try hardest to achieve compatibility with the latest version. Yes, documentation is lacking in certain areas and could be improved. You are welcome to help us out!