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)
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 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()
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('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()
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)
def speak(text): os.environ["ESPEAK_DATA_PATH"] = "." Space.write('speaking', True) os.system('espeak "' + text + '"') Space.write('speaking', False)
def command(self): text = Space.read(self.name, '') Space.write(self.name, '') text = text.lower().strip() return text
def command(self): self.text = Space.read(self.name, '') Space.write(self.name, '') self.text = self.text.lower().strip() return self.text
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 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)
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()
def signal_handler(signal, frame): Space.write('forward', 0) Space.write('turn', 0) time.sleep(0.25) os._exit(0)