wiki:en/ProgrammingRobotsCourse/PepperApi

Version 9 (modified by Ales Horak, 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()
      
  • add Czech into Project Properties
  • save the project and run in on a virtual robot

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 with Czech and add Czech to project properties
  • right click the free area -> Create a new box -> Dialog...
  • in the Dialog -> Add Topic - choose Czech and Add 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 enter
    topic: ~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 the zamavej output
  • 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/
      
      • after the key is allowed, build the PKG package in Choregraphe
      • install it
        /nlp/projekty/pepper/bin/install_pkg.py your_package.pkg
        
  • face characteristics - Get Age/Get Egnder, Get Expression
  • creating application outside Choregraphe
    • prepare your pepper directory unless you already have one
      mkdir $HOME/pepper
      
    • copy template directory
      cp -r /nlp/projekty/pepper/course/template $HOME/pepper/
      
    • rename the template to template_<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 necesarry
    • 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 command
      make pkg install
      

Attachments (1)

Download all attachments as: .zip