Version 8 (modified by 4 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()
- see ALSpeechRecognition documentation
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
Pepper API II
- tablet:
- Using Pepper’s Tablet
- from a dialogue (see QiChat - pCall):
u:(jak se můžu dostat na fakultu bez přijímaček?) Způsobů je celá řada. ^pCall(ALTabletService.showWebview("https://www.fi.muni.cz/admission/guide.html.cs")) Všechno se dozvíš dnes na přednášce, od paní ze studijního ^start(animations/Stand/Gestures/ShowTablet_3) nebo na webu vvv fi muni cz v sekci pro uchazeče. ^wait(animations/Stand/Gestures/ShowTablet_3)
- deploy application to the robot
- make a ssh key (replace
<xlogin>
with your login):ssh-keygen -t ecdsa -N '' -f ~/.ssh/pepper_<xlogin>
- copy your public key to the course directory:
cp ~/.ssh/pepper_<xlogin>.pub /nlp/projekty/pepper/course/keys/
- make a ssh key (replace
- creating application outside Choregraphe
Attachments (1)
- pepper_project_cz.png (53.1 KB) - added by 4 years ago.
Download all attachments as: .zip