Ejemplo n.º 1
0
    def __init__(self, apar, cpar, session):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.date_time = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session, caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(session, caressestools.Settings.robotIP.encode('utf-8'))

        self.td = TimeDateParser(self.language)
Ejemplo n.º 2
0
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services
        self.sMotion = self.session.service("ALMotion")
        self.sNavigation = self.session.service("ALNavigation")
        self.sMemory = self.session.service("ALMemory")
        self.sBehavior = self.session.service("ALBehaviorManager")
        self.sPosture = self.session.service("ALRobotPosture")
        self.sTablet = self.session.service("ALTabletService")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))
        self.asr = asr
    def __init__(self, apar, cpar, session):
        Greet.__init__(self, apar, cpar, session)

        self.animationTag = self.BOW_TAG

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.languageTag = self.cpar[3].title().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.setRobotLanguage()
        self.setVoiceVolume(self.volume)
        self.setVoiceSpeed(self.speed)
        self.setVoicePitch(self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.languageTag.lower())
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.content = self.sp.script["Greet"]["other"]["0"][
            self.languageTag.lower()].replace("$USERNAME$", self.username)
Ejemplo n.º 4
0
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.object_id = self.apar[0]
        self.location_id = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.object_params = self.loadParameters("objects.json")
        self.location_params = self.loadParameters("locations.json")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.asr = asr
Ejemplo n.º 5
0
    def __init__(self, apar, cpar, session, output_handler, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')
        self.killcahrim = self.apar[0] == "True"

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.output_handler = output_handler
        self.asr = asr

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))
Ejemplo n.º 6
0
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.source_id = self.apar[0]
        self.topic_id = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.source_params = self.loadParameters("news_sources.json")
        suggested_source_IDs = [
            option.replace('"', '') for option in self.suggestions
        ]
        self.source_IDs = self.mergeAndSortIDs(self.source_params,
                                               suggested_source_IDs)
        self.source_options = self.getAllParametersAttributes(
            self.source_params, self.source_IDs, "full")

        self.topic_params = self.loadParameters("news_topics.json")
        self.topic_IDs = self.mergeAndSortIDs(self.topic_params, [])
        self.topic_options = self.getAllParametersAttributes(
            self.topic_params, self.topic_IDs, "full")

        # Initialize NAOqi services
        self.sMemory = self.session.service("ALMemory")
        self.sTablet = self.session.service("ALTabletService")
        self.sTts = self.session.service("ALTextToSpeech")
        self.sSpeechReco = self.session.service("ALSpeechRecognition")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.speech_source = self.__class__.__name__ + "-Source"
        self.speech_topic = self.__class__.__name__ + "-Topic"

        self.headlines_per_time = 4
        self.paragraphs_per_time = 5

        self.is_touched = False
        self.asr = asr
    def __init__(self, apar, cpar, session, output_handler, input_queue,
                 provided_event):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.item_id = self.apar[0]
        self.room = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.items_params = self.loadParameters("ihouse_items.json")
        suggested_items_IDs = [
            option.replace('"', '') for option in self.suggestions
        ]
        self.items_IDs = self.mergeAndSortIDs(self.items_params,
                                              suggested_items_IDs)
        self.items_options = self.getAllParametersAttributes(
            self.items_params, self.items_IDs, "as-sensor")

        # Output handler for sending messages
        self.output_handler = output_handler
        # Input queue for retrieving information
        self.input_queue = input_queue
        self.provided_event = provided_event

        # Initialize NAOqi services
        self.sTablet = self.session.service("ALTabletService")
        self.sMemory = self.session.service("ALMemory")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            session, caressestools.Settings.robotIP.encode('utf-8'))

        # self.topic_item = self.__class__.__name__
        self.topic_item = "ReadiHouse"
        self.topic_room = "IoT-iHouse-Room"
Ejemplo n.º 8
0
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.video_id = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        # Initialize NAOqi services
        self.memory_service = session.service("ALMemory")
        self.tablet_service = session.service("ALTabletService")
        self.sAudio = self.session.service("ALAudioDevice")

        self.yt = YoutubeHelper()
        self.db = DatabaseHelper()

        # Flag to keep action running
        self.is_running = True
        # Flag to keep track the ending of the music video
        self.is_ended = False

        self.is_site_loaded = False

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)
        caressestools.setRobotLanguage(session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)
        caressestools.setTabletVolume(session, 15)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            session, caressestools.Settings.robotIP.encode('utf-8'))

        self.subaction = None
        self.params = None
        self.search_keyword = ""
        self.max_results = 8
        self.again = True
        self.asr = asr
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.meal_id = self.apar[0]
        self.day_moment = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.meals_params = self.loadParameters("meals.json")

        meal_conf = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                                 "aux_files", "meals-conf.json")
        with open(meal_conf) as f:
            self.meals = json.load(f)

        self.meals_IDs = [
            m.encode('utf-8') for m in self.meals.keys()
            if not self.meals[m.encode('utf-8')] == []
        ]
        self.meals_options = self.getAllParametersAttributes(
            self.meals_params, self.meals_IDs, "full")

        # Initialize NAOqi services

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            session, caressestools.Settings.robotIP.encode('utf-8'))
        self.asr = asr
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.location_id = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.locations_params = self.loadParameters("weather_locations.json")
        suggested_locations_IDs = [option.replace('"', '') for option in self.suggestions]
        self.locations_IDs = self.mergeAndSortIDs(self.locations_params, suggested_locations_IDs)
        self.locations_options = self.getAllParametersAttributes(self.locations_params, self.locations_IDs, "full")

        # Initialize NAOqi services
        self.sTablet = self.session.service("ALTabletService")
        self.sMemory = self.session.service("ALMemory")
        self.sSpeechReco = self.session.service("ALSpeechRecognition")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)
        
        caressestools.setRobotLanguage(session, caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(session, caressestools.Settings.robotIP.encode('utf-8'))

        self.go_on = False
        self.isPageFinished = False
        self.user_input = None
        self.asr = asr
    def __init__(self, apar, cpar, session, output_handler):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services
        self.sMotion = self.session.service("ALMotion")
        self.sMemory = self.session.service("ALMemory")
        self.sSoundDet = self.session.service("ALSoundDetection")
        self.sRecharge = self.session.service("ALRecharge")
        self.sSpeechReco = self.session.service("ALSpeechRecognition")
        self.sPosture = self.session.service("ALRobotPosture")
        self.sBattery = self.session.service("ALBattery")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.sSoundDet.setParameter("Sensitivity", 0.7)
        self.sound_detected = False
        self.word_detected = False
        self.is_touched = False
        self.notify_user = False

        self.output_handler = output_handler
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services
        self.sTablet = self.session.service("ALTabletService")
        self.sMemory = self.session.service("ALMemory")
        self.sSpeechReco = self.session.service("ALSpeechRecognition")
        self.sBehavior = self.session.service("ALBehaviorManager")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session, caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(session, caressestools.Settings.robotIP.encode('utf-8'))

        self.extension = "jpg"
        self.path_take = "/data/home/nao/.local/share/PackageManager/apps/%s/html/images/"
        self.path_show = "http://%s/apps/%s/images/%s"

        self.must_stop = False
        self.pic_list_received = False
        self.pics = []
        self.is_touched = False

        self.asr = asr
Ejemplo n.º 13
0
    def __init__(self, apar, cpar, session):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.map = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services
        self.sMotion       = self.session.service("ALMotion")
        self.sNavigation   = self.session.service("ALNavigation")
        self.sMemory       = self.session.service("ALMemory")
        self.sBehavior     = self.session.service("ALBehaviorManager")
        self.sPosture      = self.session.service("ALRobotPosture")
        self.sTablet       = self.session.service("ALTabletService")

        graph_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), "aux_files", "go_to", self.map)
        self.file = GraphFile()
        self.file.loadFile(graph_file, draw = False)

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session, caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(self.session, caressestools.Settings.robotIP.encode('utf-8'))
Ejemplo n.º 14
0
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.command = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        # Initialize NAOqi services
        self.navigation_service = self.session.service("ALNavigation")
        self.sMotion = self.session.service("ALMotion")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.distance_move_closer = 0.3
        self.distance_move_farther = 0.1
        self.asr = asr
Ejemplo n.º 15
0
    def run(self):

        # # If the interaction node is not set, Greet action is called before the ApproachUser. Therefore, it is better to
        # # look for the user and face them before greeting them.
        if caressestools.Settings.interactionNode == "":
            self.lookForUser()

        t = threading.Thread(name='greeting_gesture',
                             target=self.playGreetingAnimation)

        # print "Greeting gesture"
        t.start()

        self.setVoiceVolume(self.volume)
        self.setVoiceSpeed(self.speed)
        self.setVoicePitch(self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.languageTag.lower())
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))
        self.sp.enableAnimatedSpeech(False)
        self.sp.say(self.content, speech.TAGS[1])
        time.sleep(1)
Ejemplo n.º 16
0
    def __init__(self, apar, cpar, session):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.object_id = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.object_params = self.loadParameters("objects.json")

        # Initialize NAOqi services
        self.sMotion = self.session.service("ALMotion")
        self.sMemory = self.session.service("ALMemory")
        self.sPosture = self.session.service("ALRobotPosture")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.is_touched = False
Ejemplo n.º 17
0
    def __init__(self, apar, cpar, session, output_handler, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.graph = self.apar[0]
        self.goal_id = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.location_params = self.loadParameters("locations.json")
        suggested_location_IDs = [
            option.replace('"', '') for option in self.suggestions
        ]
        self.location_IDs = self.mergeAndSortIDs(self.location_params,
                                                 suggested_location_IDs)
        self.location_options = self.getAllParametersAttributes(
            self.location_params, self.location_IDs, "full")

        # Initialize NAOqi services
        self.sMemory = session.service("ALMemory")
        self.sMotion = session.service("ALMotion")
        self.sNavigation = session.service("ALNavigation")
        self.sLocalization = session.service("ALLocalization")
        self.sPosture = session.service("ALRobotPosture")
        self.sRecharge = session.service("ALRecharge")

        self.running = True
        self.r0_wf = None
        self.r0_mf = None

        self.enough_attempts = 4
        self.closest_reached_threshold = 0.4
        self.node_reached_threshold = 0.4
        self.goal_reached_threshold = 0.2

        self.graph_file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), "aux_files", "go_to",
            self.graph)
        self.loadGraph(self.graph_file)

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            self.session, caressestools.Settings.robotIP.encode('utf-8'))

        self.sMotion.setOrthogonalSecurityDistance(0.02)
        self.sMotion.setTangentialSecurityDistance(0.02)

        self.output_handler = output_handler
        self.asr = asr
 def run(self):
     self.sp = speech.Speech("speech_conf.json", "english")
     self.sp.enablePepperInteraction(
         self.session, caressestools.Settings.robotIP.encode('utf-8'))
     self.sp.say("I'm sorry, this action is not ready yet.")
    def __init__(self, apar, cpar, session):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.reminder_id = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')

        self.reminder_params = self.loadParameters("reminders.json")

        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(self.session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(self.session, self.volume)
        caressestools.setVoiceSpeed(self.session, self.speed)
        caressestools.setVoicePitch(self.session, self.pitch)

        self.sp = speech.Speech("speech_conf.json",
                                self.language,
                                loadconf=False)
        self.sp.enablePepperInteraction(
            self.session,
            caressestools.Settings.robotIP.encode('utf-8'),
            initGoogle=False)

        ## ------------------------------------------------
        ## If Remind action is executed while the ChoiceManager in another action is running, the action running the
        ## ChoiceManager crashes if the function json.load()/json.loads() is called on a very long file/string. Therefore,
        ## here we need to call json.loads() only on the relevant (shorter) part of speech_conf.json.

        conf_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                                 'caressestools', "speech_conf.json")
        with open(conf_file, 'r') as f:
            conf = f.readlines()

        conf_string = ""
        for line in conf:
            conf_string = conf_string + line

        top = re.search(
            r'\"' + speech.SUPPORTED_LANGUAGES +
            '\": \[\n(( {4,}.*\n)*) {2}\](,\n {2}\"[A-Z]+-*[A-Z]+\": \{\n(( {4,}.*\n)*) {2}\})+',
            conf_string)
        rem = re.search(
            r'\"' + self.__class__.__name__ + '\": \{\n(( {4,}.*\n)*) {2}\}',
            conf_string)

        if top is not None and rem is not None:
            conf = json.loads("{%s,%s}" % (top.group(), rem.group()))

        self.sp.loadScriptFromDict(conf)
        self.sp.setLanguage(self.language.lower())
        self.sp.loadKeywords()

        ## ------------------------------------------------

        self.gen_rem_filename = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), 'parameters',
            'reminder_generic.json')
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.message_id = self.apar[0]
        self.recipient_id = self.apar[1]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.recipient_params = self.loadParameters("contacts.json")
        suggested_recipients_IDs = [
            option.replace('"', '') for option in self.suggestions
        ]
        self.recipient_IDs = self.mergeAndSortIDs(self.recipient_params,
                                                  suggested_recipients_IDs)
        self.recipient_options = []
        ## Get only the recipients whose Line ID is present
        for id in self.recipient_IDs:
            if not self.recipient_params["IDs"][id]["line"].encode(
                    'utf-8') == "":
                self.recipient_options.append(
                    self.recipient_params["IDs"][id]["full"].encode('utf-8'))

        self.msg_params = self.loadParameters("messages.json")
        self.msg_IDs = self.msg_params["IDs"].keys()
        self.msg_options_caregiver = []
        self.msg_options_other = []

        for id in self.msg_IDs:
            if self.msg_params["IDs"][id]["compulsory-recipient"].encode(
                    'utf-8') == "caregiver":
                self.msg_options_caregiver.append(
                    self.msg_params["IDs"][id]["full"].encode('utf-8'))
            else:
                self.msg_options_other.append(
                    self.msg_params["IDs"][id]["full"].encode('utf-8'))

        # Initialize NAOqi services
        self.sASR = self.session.service("ASR2")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session,
                                       caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(
            session, caressestools.Settings.robotIP.encode('utf-8'))

        self.asr = asr
Ejemplo n.º 21
0
 def setLang(self, lang):
     self.language = lang
     self.sp = speech.Speech("speech_conf.json", self.language)
     self.sp.enablePepperInteraction(self.session, caressestools.Settings.robotIP.encode('utf-8'))
    def __init__(self, apar, cpar, session, asr):
        Action.__init__(self, apar, cpar, session)

        # Parse the action parameters
        self.apar = self.apar.split(' ')

        self.recipient_id = self.apar[0]

        # Parse the cultural parameters
        self.cpar = self.cpar.split(' ')

        self.volume = float(self.cpar[0])
        self.speed = float(self.cpar[1])
        self.pitch = float(self.cpar[2])
        self.language = self.cpar[3].lower().replace('"', '')
        self.username = self.cpar[4].replace('"', '')
        self.suggestions = self.cpar[5].split(self.options_delimiter)

        self.recipient_params = self.loadParameters("contacts.json")
        suggested_recipients_IDs = [option.replace('"', '') for option in self.suggestions]
        self.recipient_IDs = self.mergeAndSortIDs(self.recipient_params, suggested_recipients_IDs)
        self.recipient_options = []

        ## Get only the recipients whose email or Telegram address is present
        for id in self.recipient_IDs:
            if not (self.recipient_params["IDs"][id]["email"].encode('utf-8') == "" and self.recipient_params["IDs"][id]["telegram"].encode('utf-8') == ""):
                self.recipient_options.append(self.recipient_params["IDs"][id]["full"].encode('utf-8'))

        # Initialize NAOqi services
        self.sPosture = self.session.service("ALRobotPosture")
        self.sAwareness = self.session.service("ALBasicAwareness")
        self.sPhoto = self.session.service("ALPhotoCapture")
        self.sTablet = self.session.service("ALTabletService")
        self.sBehavior = self.session.service("ALBehaviorManager")
        self.sMemory = self.session.service("ALMemory")
        self.sASR = self.session.service("ASR2")

        # Set the cultural parameters
        caressestools.Language.setLanguage(self.language)

        caressestools.setRobotLanguage(session, caressestools.Language.lang_naoqi)
        caressestools.setVoiceVolume(session, self.volume)
        caressestools.setVoiceSpeed(session, self.speed)
        caressestools.setVoicePitch(session, self.pitch)

        # Set up speech.py app to get information
        self.sp = speech.Speech("speech_conf.json", self.language)
        self.sp.enablePepperInteraction(session, caressestools.Settings.robotIP.encode('utf-8'))

        self.extension = "jpg"
        self.path_take = "/data/home/nao/.local/share/PackageManager/apps/%s/html/images/"
        self.path_show = "http://%s/apps/%s/images/%s"
        self.behaviors = {
            "telegram": "pictures/send-by-telegram",
            "email": "pictures/send-by-email",
            "shutter": "pictures/play-shutter-sound",
            "delete": "pictures/delete-picture"
        }

        directory = os.path.dirname(__file__)
        file_path = os.path.join(directory, "aux_files", "email-conf.json")
        with open(file_path) as f:
            email_conf = json.load(f)
        self.address  = email_conf["address"].encode('utf-8')
        self.password = email_conf["password"].encode('utf-8')
        self.smtp     = email_conf["smtp"].encode('utf-8')

        self.asr = asr