Пример #1
0
    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()
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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
Пример #5
0
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)
Пример #6
0
	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
Пример #7
0
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)
Пример #8
0
	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()