def __init__(self): """ \brief para cargar el XML de gtk+ y sus senales \param self no se necesita incluirlo al utilizar la funcion ya que se lo pone solo por ser la definicion de una clase \return self """ builder = gtk.Builder() #El archivo de glade debe estar en gtkbuilder builder.add_from_file("glade/GUI.glade") #Carga el archivo glade builder.connect_signals(self) #Toma todas las senales de glade self.about = builder.get_object("about") #Ventana about self.teleoper = builder.get_object("adqui_datos") #Ventana principal self.texto_datos = builder.get_object("datos") #boton arriba self.texto_datos_sonar = builder.get_object( "datos_sonar") #boton arriba self.boton_foto = builder.get_object( "imagen0") #imagen para el dibujo de la plataforma movil self.teleoper.show() datos_fisicos = (-11.90, 500, 4000, -34, 15, 5, 3, 14) mensaje = "Voltaje bateria: %d [V] \nX: %d [mm]\nY: %d [mm]\nTh: %d [grad]\nvelocidad: %d [mm/s]\nVelocidad de giro: %d [rad/s]\nVelocidad lateral: %d [mm/s]\ntemp: %d \n " % ( datos_fisicos) #[voltaje_bateria,myX,myY,myTh,myVel,myRotVel,myLatVel,myTemperature] self.texto_datos.set_text(mensaje) #Arranca el cliente self.a = cliente_lib() self.a.ip = "192.168.1.102" #print self.a.ip self.cliente = self.a.cliente_inicio()
def main(setpoint, ip=None): aa = cliente_lib() aa.op = 12 #Valores de diccionario de sonares if ip != None: aa.ip = ip cliente = aa.cliente_inicio() c = gamepad() try: pipe, msg = c.gamepad_init() except: exit() fuzzy_vel = [setpoint, ip, aa, cliente] palanca = (c, pipe, msg) bande = 'ab' #p=Process(target=robot_ordenes, args=(palanca,fuzzy_vel,aa,cliente,)) #p.start() while bande != 'r2': try: #p.run() bande = robot_ordenes(palanca, fuzzy_vel, aa, cliente) #print bande except: #bande='r2' print "error" pass
def main(setpoint,ip=None): aa=cliente_lib() if ip!=None: aa.ip=ip cliente=aa.cliente_inicio() c=gamepad() try: pipe,msg=c.gamepad_init() except: aa.Cliente_apaga(cliente) exit(1) q = Queue() #orden de palanca q1 =Queue() #velocidad para el robot #anadir info para que tenga datos de trabajo al iniciar q.put(1) q1.put(-1) #comienzo de procesos p = Process(target=palanca, args=(c,pipe,msg,q,)) p1 = Process(target=fuzzy_velocidad, args=(q1,setpoint,aa,cliente,)) p.start() p1.start() while 1: p1.run() #sleep(0.1) p.run() a=robot_ordenes(q,q1,aa,cliente) if a=="r2": break p1.terminate() p.terminate() aa.cliente_apaga(cliente)
def main(setpoint,ip=None): aa=cliente_lib() aa.op=12 #Valores de diccionario de sonares if ip!=None: aa.ip=ip cliente=aa.cliente_inicio() c=gamepad() try: pipe,msg=c.gamepad_init() except: exit() fuzzy_vel=[setpoint,ip,aa,cliente] palanca=(c,pipe,msg) bande='ab' #p=Process(target=robot_ordenes, args=(palanca,fuzzy_vel,aa,cliente,)) #p.start() while bande!='r2': try: #p.run() bande=robot_ordenes(palanca,fuzzy_vel,aa,cliente) #print bande except: #bande='r2' print "error" pass
def move(a,b): """ sample function to be called via a URL""" #Inicio de ARIA y conexion con servidor del robot aa = cliente_lib() aa.ip="192.168.1.100" cliente = aa.cliente_inicio() TransRatio,RotRatio,LatRatio = [50*a,50*b,0] cliente=aa.envio_ratioDrive(cliente,TransRatio,RotRatio,LatRatio) #apaga cliente aa.cliente_apaga(cliente) return 'hi'+str(a)+" "+str(b)
def __init__(self,dimensiones,nombre_archivo,dimensiones_robot): """ \brief para cargar el XML de gtk+ y sus senales \param self no se necesita incluirlo al utilizar la funcion ya que se lo pone solo por ser la definicion de una clase \return self """ self.aument=0 builder = gtk.Builder() #El archivo de glade debe estar en gtkbuilder builder.add_from_file("glade/GUI.glade") #Carga el archivo glade builder.connect_signals(self) #Toma todas las senales de glade self.teleoper = builder.get_object("map") #Ventana principal self.boton = builder.get_object("button1") self.area=builder.get_object("mapa") self.teleoper.show() #Inicializa cliente d-bus #self.client_dbus = DBusClient() # #Inicializar visor #self.client_dbus.visor() # #imnicio opencv self.imagen=mapa(dimensiones,nombre_archivo,dimensiones_robot) self.nombre_archivo=nombre_archivo self.imagen.cargar() # self.a=cliente_lib(); #self.a.ip="192.168.1.102" self.cliente=self.a.cliente_inicio() #self.a.cliente_apaga(self.cliente) try: self.cliente=self.a.envio_consulta_fisica(self.cliente,"pose") #valor_x,valor_y,valor_t=self.a.devuelve_valors() valor_x=self.a.x valor_y=self.a.y ArUtil.sleep(100) #cambiar estos comandos por temporisadores de python #sleep(0.1) self.cliente=self.a.envio_consulta_fisica(self.cliente,"updateNumbers") self.valores_f=self.a.devuelve_valorf() mi_x=self.valores_f[1] mi_y=self.valores_f[2] mi_th=self.valores_f[3] #print valor_x #print valor_y print len(valor_x) self.generador_mapa(valor_x,valor_y,mi_x,mi_y,mi_th) except: print "Fallo inicio" pass
def main(setpoint, ip=None): aa = cliente_lib() if ip != None: aa.ip = ip cliente = aa.cliente_inicio() c = gamepad() try: pipe, msg = c.gamepad_init() except: aa.Cliente_apaga(cliente) exit(1) q = Queue() #orden de palanca q1 = Queue() #velocidad para el robot #anadir info para que tenga datos de trabajo al iniciar q.put(1) q1.put(-1) #comienzo de procesos p = Process(target=palanca, args=( c, pipe, msg, q, )) p1 = Process(target=fuzzy_velocidad, args=( q1, setpoint, aa, cliente, )) p.start() p1.start() while 1: p1.run() #sleep(0.1) p.run() a = robot_ordenes(q, q1, aa, cliente) if a == "r2": break p1.terminate() p.terminate() aa.cliente_apaga(cliente)
def __init__(self): """ \brief para cargar el XML de gtk+ y sus senales \param self no se necesita incluirlo al utilizar la funcion ya que se lo pone solo por ser la definicion de una clase \return self """ builder = gtk.Builder() #El archivo de glade debe estar en gtkbuilder builder.add_from_file("glade/GUI.glade") #Carga el archivo glade builder.connect_signals(self) #Toma todas las senales de glade self.about = builder.get_object("about") #Ventana about self.teleoper = builder.get_object("adqui_datos") #Ventana principal self.texto_datos = builder.get_object("datos") #boton arriba self.texto_datos_sonar = builder.get_object("datos_sonar") #boton arriba self.boton_foto = builder.get_object("imagen0") #imagen para el dibujo de la plataforma movil self.teleoper.show() datos_fisicos=(-11.90,500,4000,-34,15,5,3,14) mensaje="Voltaje bateria: %d [V] \nX: %d [mm]\nY: %d [mm]\nTh: %d [grad]\nvelocidad: %d [mm/s]\nVelocidad de giro: %d [rad/s]\nVelocidad lateral: %d [mm/s]\ntemp: %d \n " % (datos_fisicos) #[voltaje_bateria,myX,myY,myTh,myVel,myRotVel,myLatVel,myTemperature] self.texto_datos.set_text(mensaje) #Arranca el cliente self.a=cliente_lib() self.a.ip="192.168.1.102" #print self.a.ip self.cliente=self.a.cliente_inicio()