Version 13 (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
installing 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/
- add host
karel
to your$HOME/.ssh/config
:Host karel User nao HostName 192.168.88.10 # IdentityFile is important for install_pkg.py IdentityFile ~/.ssh/pepper_<xlogin> StrictHostKeyChecking no PubkeyAuthentication yes
- build the PKG package in Choregraphe
- test logview
ssh aurora /nlp/projekty/pepper/bin/logview
- after the key is allowed, install it to the robot
ssh aurora /nlp/projekty/pepper/bin/install_pkg.py your_package.pkg
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)
- Using Pepper’s Tablet
face characteristics
- Get Age/Get Gender
- Get Expression
creating application outside Choregraphe
- prepare your
pepper
directory unless you already have onemkdir $HOME/pepper
- copy
template
directorycp -r /nlp/projekty/pepper/course/template $HOME/pepper/
- rename the
template
totemplate_<xlogin>
(replace<xlogin>
with your login) or something else:mv $HOME/pepper/template $HOME/pepper/template_<xlogin> cd $HOME/pepper/template_<xlogin>
- go through all files, rename the application where necessary
- build the PKG package (the version number will be increased):
cd $HOME/pepper/template_<xlogin> make pkg
- and install it
cd $HOME/pepper/template_<xlogin> make install
During the development this can be in one commandmake pkg install
creating own service
- copy and rename
template-service
directorycp -r /nlp/projekty/pepper/course/template-service $HOME/pepper/ mv $HOME/pepper/template-service $HOME/pepper/template-service_<xlogin> cd $HOME/pepper/template-service_<xlogin>
- go through all files, rename the application where necessary
- build the PKG and install it
Attachments (1)
- pepper_project_cz.png (53.1 KB) - added by 4 years ago.
Download all attachments as: .zip