Exemple #1
0
 def init(self):
     self.camera = cv2.VideoCapture(
         gstreamer_pipeline(1280, 720, 1280 // 2, 720 // 2, 20, 0),
         cv2.CAP_GSTREAMER)
     while True:
         hasFrame, frame = self.camera.read()
         if hasFrame:
             Space.write(self.nameImage, frame, 0.15)
Exemple #2
0
 def init(self):
     try:
         print('starting reception on port', self.name)
         while not self.stopped:
             data = self.get()
             if len(data) > 0:
                 Space.write(self.name, data)
     except Exception as e:
         print(e)
         self.stop()
def speak(text):
    print(text)
    filename = str(time.time()) + '.txt'
    file = open(filename, 'wb')
    file.write(bytes(text, 'utf-16'))
    file.close()
    os.environ["ESPEAK_DATA_PATH"] = "."
    Space.write('speaking', True)
    os.system('espeak -v SK -b4 -f ' + filename)
    os.remove(filename)
    Space.write('speaking', False)
 def senseSelectAct(self):
     ret, info = joystickapi.joyGetPosEx(self.id)
     if ret:
         btns = [(1 << i) & info.dwButtons != 0
                 for i in range(self.caps.wNumButtons)]
         axisXYZ = [
             info.dwXpos - self.startinfo.dwXpos,
             info.dwYpos - self.startinfo.dwYpos,
             info.dwZpos - self.startinfo.dwZpos
         ]
         axisRUV = [
             info.dwRpos - self.startinfo.dwRpos,
             info.dwUpos - self.startinfo.dwUpos,
             info.dwVpos - self.startinfo.dwVpos
         ]
         Space.write(self.name, [btns, axisXYZ, axisRUV])
 def init(self):
     print('receiver starting')
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     try:
         self.sock.connect((self.ip, self.port))
     except ConnectionRefusedError:
         print('router is not running')
         self.stop()
     self.buffer = ''
     while not self.stopped:
         try:
             line = self.getline()
             Space.write(self.name, line)
         except Exception as e:
             print(e)
             self.stop()
Exemple #6
0
 def init(self):
     print('client connecting to ip', self.ip, 'port', self.port)
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     try:
         self.sock.connect((self.ip, self.port))
     except ConnectionRefusedError:
         print('server is not running')
         self.stop()
     self.buffer = ''
     while not self.stopped:
         try:
             line = self.getline()
             data = eval(line)
             Space.write(self.name, data)
         except Exception as e:
             print(e)
             self.stop()
Exemple #7
0
 def senseSelectAct(self):
     forward = Space.read(self.nameForward,0)
     turn = Space.read(self.nameTurn,0)
     if turn < 0: # to left
         self.left_motor.run(HAT.BACKWARD)
         self.right_motor.run(HAT.FORWARD)
     elif turn > 0: # to right
         self.left_motor.run(HAT.FORWARD)
         self.right_motor.run(HAT.BACKWARD)
     elif forward > 0: # forward
         self.left_motor.run(HAT.FORWARD)
         self.right_motor.run(HAT.FORWARD)
     elif forward < 0: # backward
         self.left_motor.run(HAT.BACKWARD)
         self.right_motor.run(HAT.BACKWARD)
     else:
         self.left_motor.run(HAT.RELEASE)
         self.right_motor.run(HAT.RELEASE)
Exemple #8
0
 def senseSelectAct(self):
     data = Space.read(self.name, [])
     if len(data) > 0:
         try:
             line = str(data)
             self.putline(line)
         except Exception as e:
             print('disconnected')
             self.stop()
Exemple #9
0
    def senseSelectAct(self):
        global threshold
        frame = Space.read(self.nameImage, None)
        if frame is None:
            cv2.imshow("hough circle", frame)
            return

        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        frame = cv2.blur(frame, (3, 3))
        circles = cv2.HoughCircles(frame,
                                   cv2.HOUGH_GRADIENT,
                                   2,
                                   100,
                                   param1=threshold,
                                   param2=threshold // 2,
                                   minRadius=10,
                                   maxRadius=90)
        found = False
        frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
        if circles is not None:
            for circle in circles[0, :]:
                x = int(circle[0])
                y = int(circle[1])
                r = int(circle[2])
                if r > 0:
                    cv2.circle(frame, (x, y), r, (0, 0, 255), 2)
                    cv2.circle(frame, (x, y), 2, (0, 0, 255), cv2.FILLED)
                    found = True
                    found_x = x
                    found_y = y
                    found_radius = r
                    break

        if found:
            #print('found',found_x,found_y,found_radius)
            Space.write(self.nameBall, [found_x, found_y, found_radius], 0.5)
        else:
            #print('ball not recognized, threshold:',threshold)
            pass

        cv2.imshow("hough circle", frame)
        key = cv2.waitKey(1)
        if key == ord('s'):
            cv2.imwrite('houghCircle.png', frame)
Exemple #10
0
 def senseSelectAct(self):
     speaking = Space.read(self.name, False)
     if speaking:
         if random.random() < 0.7:
             self.emotions.set('neu')
         else:
             self.emotions.set('sur')
             self.openmouth = True
     else:
         if self.openmouth:
             self.emotions.set('neu')
             self.openmouth = False
Exemple #11
0
 def senseSelectAct(self):
     text = Space.read(self.name, '')
     text = text.lower()
     text = str(
         unicodedata.normalize('NFKD', text).encode('ASCII', 'ignore'))
     if len(text) <= 0 or text == "b'connect'":
         return
     print(text[2:-1])
     responses = self.chatbot_agent.handle_text(text)
     if responses:
         speak(responses[0]["text"])
         print("\n")
         if (responses[0]["text"]
                 == "Dobre, daj mi prosím chvíľu aby som sa to naučil"
                 or responses[0]["text"] ==
                 "Malý moment, naučím sa to a nanovo načítam svoju neurónovú sieť"
             ):
             time.sleep(12)
             self.chatbot_agent = self.loadChatbot()
Exemple #12
0
 def senseSelectAct(self):
     data = Space.read(self.name, [])
     print(data)
Exemple #13
0
 def senseSelectAct(self):
     data = Space.read(self.nameJoystick, [[], [0, 0, 0], []])
     if data[1][0] < -5000:  # to left
         Space.write(self.nameForward, 0, validity=0.2, priority=2.0)
         Space.write(self.nameTurn, -1, validity=0.2, priority=2.0)
     elif data[1][0] > 5000:  # to right
         Space.write(self.nameForward, 0, validity=0.2, priority=2.0)
         Space.write(self.nameTurn, 1, validity=0.2, priority=2.0)
     elif data[1][1] < -5000:  # forward
         Space.write(self.nameForward, 1, validity=0.2, priority=2.0)
         Space.write(self.nameTurn, 0, validity=0.2, priority=2.0)
     elif data[1][1] > 5000:  # backward
         Space.write(self.nameForward, -1, validity=0.2, priority=2.0)
         Space.write(self.nameTurn, 0, validity=0.2, priority=2.0)
Exemple #14
0
import os
import sys
import time
from agentspace import Agent, Space
from lips import LipsAgent


def speak(text):
    os.environ["ESPEAK_DATA_PATH"] = "."
    os.system('espeak -v SK "' + text + '"')


if __name__ == "__main__":
    agent = LipsAgent('speaking')
    text = sys.argv[1] if len(sys.argv) > 1 else "eee"
    Space.write('speaking', True)
    print('speaking started')
    speak(text)
    print('speaking finished')
    Space.write('speaking', False)
    agent.stop()
Exemple #15
0
 def command(self):
     text = Space.read(self.name, '')
     Space.write(self.name, '')
     text = text.lower().strip()
     return text
Exemple #16
0
 def senseSelectAct(self):
     data = Space.read(self.nameJoystick, [])
     if data[1][0] < -5000:  # to left
         Space.write(self.nameForward, 0, 0.2)
         Space.write(self.nameTurn, -1, 0.2)
     elif data[1][0] > 5000:  # to right
         Space.write(self.nameForward, 0, 0.2)
         Space.write(self.nameTurn, 1, 0.2)
     elif data[1][1] < -5000:  # forward
         Space.write(self.nameForward, 1, 0.2)
         Space.write(self.nameTurn, 0, 0.2)
     elif data[1][1] > 5000:  # backward
         Space.write(self.nameForward, -1, 0.2)
         Space.write(self.nameTurn, 0, 0.2)
     else:
         Space.write(self.nameForward, 0, 0.2)
         Space.write(self.nameTurn, 0, 0.2)
 def command(self):
     self.text = Space.read(self.name, '')
     Space.write(self.name, '')
     self.text = self.text.lower().strip()
     return self.text
Exemple #18
0
def speak(text):
    os.environ["ESPEAK_DATA_PATH"] = "."
    Space.write('speaking', True)
    os.system('espeak "' + text + '"')
    Space.write('speaking', False)
Exemple #19
0
def signal_handler(signal, frame):
    Space.write('forward', 0)
    Space.write('turn', 0)
    time.sleep(0.25)
    os._exit(0)