Version 6 (modified by 5 years ago) (diff) | ,
---|
PV277 Programming Applications for Social Robots (autumn 2019)
Pepper API
programming in Choregraphe via Python
- enter only one box
Python Script
- edit its contents via double click:
- to
__init__
add:self.tts = ALProxy('ALTextToSpeech') self.tts.setLanguage('Czech')
- to
onInput_onStart
add:self.tts.say("Ahoj, jak se máš?") self.onStopped()
- to
- add
Czech
into Project Properties
- save the project and run in on a virtual robot
- for details see http://doc.aldebaran.com/2-5/software/choregraphe/objects/python_script.html and http://doc.aldebaran.com/2-5/software/choregraphe/reference.html
speech input via Python
- in
__init__
add:try: self.speech = ALProxy("ALSpeechRecognition") self.speech.setLanguage('Czech') except: self.logger.info('Running on virtual robot') self.speech = None
- process speech accordingly
def get_answer(self, reactions): if self.speech is None: return (random.choice(reactions.keys())) else: self.speech.setVocabulary(reactions.keys(), False) self.speech.subscribe("Test_ASR") self.logger.info('Speech recognition engine started') time.sleep(20) self.speech.unsubscribe("Test_ASR") def onInput_onStart(self): self.tts.say("Ahoj, jak se máš?") reactions = { 'dobře': 'to je super!', 'špatně': 'doufám, že to brzo bude lepší', 'nevím': 'tak to určitě nebude tak zlé', } answer = self.get_answer(reactions) react = reactions.get(answer) self.logger.info('answer={}, react={}'.format(answer, react)) self.tts.say(react) self.onStopped()
dialog
- add boxes
Set Language
withCzech
and addCzech
to project properties - right click the free area ->
Create a new box
->Dialog...
- in the Dialog ->
Add Topic
- chooseCzech
andAdd to the package content as collaborative dialog
(allows to start the dialog just by talking to the robot) - connect
onStart
->Set Language
->Dialog
- in Project files double click on
dialog_czc.top
and entertopic: ~dialog() language: czc concept:(ahoj) "ahoj robote" concept:(dobrý_den) ["dobrý den" "krásný den" "krásný den přeju"] u:(~ahoj) ahoj člověče \pau=1000\ to máme dnes hezký den u:(~dobrý_den) ~dobrý_den
- see QiChat - Introduction and QiChat - Syntax for details
adding animations
- single animation - via
Animation
box - connect to dialog:
- add rule to topic:
u:(["můžeš zamávat" zamávej] {prosím}) ahojky $zamavej=1
- add output to the dialog box (right click -> Edit box) named
zamavej
(Bang, punctual) - add
Kisses
animation box, connect it to thezamavej
output
- add rule to topic:
- within the dialog:
u:(~ahoj) ^start(animations/Stand/Gestures/Hey_1) ahoj člověče \pau=1000\ to máme dnes hezký den ^wait(animations/Stand/Gestures/Hey_1)
shows only on real robot, see default list of animations
Attachments (1)
- pepper_project_cz.png (53.1 KB) - added by 5 years ago.
Download all attachments as: .zip