示例#1
0
def fuzzy_velocidad(q,setpoint,a,cliente):
		sol=-1
	#while 1:
		try:
			cliente=a.envio_consulta_fisica(cliente,"pose")
			#valor_x,valor_y,valor_t=self.a.devuelve_valors()
			#ArUtil.sleep(100)
			valor_x=a.x
			valor_y=a.y
			#print valor_x, valor_y
			cliente=a.envio_consulta_fisica(cliente,"updateNumbers")
			#ArUtil.sleep(100)
			valores_f=a.devuelve_valorf()
			mi_x=valores_f[1]
			mi_y=valores_f[2]
			#print mi_x, mi_y
			#mi_th=self.valores_f[3]
			dato=[]
			if (len(valor_x)>0):
				for a in range(len(valor_x)):
					dato.append(math.sqrt(pow(valor_x['x%d' % a]-mi_x,2)+pow(valor_y['y%d' % a]-mi_y,2)))
				valor_distancia=min(dato) #la distancia mas cercana tomada de la plataforma
				sol=controlador(setpoint,valor_distancia) #Controlador difuso
				if sol<0:
					sol=0
				q.put(sol)
		except:
			#print "Fallo inicio"
			pass
示例#2
0
def fuzzy_velocidad(setpoint,ip,a,cliente):
	sol=-1
	try:
		cliente=a.envio_consulta_fisica(cliente,"pose")
		#valor_x,valor_y,valor_t=self.a.devuelve_valors()
		valor_x=a.x
		valor_y=a.y
		#print valor_x, valor_y
		#ArUtil.sleep(100)
		cliente=a.envio_consulta_fisica(cliente,"updateNumbers")
		valores_f=a.devuelve_valorf()
		print 1
		mi_x=valores_f[1]
		mi_y=valores_f[2]
		#print mi_x, mi_y
		#mi_th=self.valores_f[3]
		dato=[]
		if (len(valor_x)>0):
			for a in range(len(valor_x)): #SIP en c. 
				#print math.sqrt(pow(valor_x['x%d' % a]-mi_x,2)+pow(valor_y['y%d' % a]-mi_y,2)), "calculo"
				dato.append(math.sqrt(pow(valor_x['x%d' % a]-mi_x,2)+pow(valor_y['y%d' % a]-mi_y,2)))
			valor_distancia=min(dato) #la distancia mas cercana tomada de la plataforma
			sol=controlador(setpoint,valor_distancia) #Controlador difuso
			if sol<0:
				sol=0
	except:
		#print "Fallo inicio"
		sol='e0'
	print sol
	return sol
示例#3
0
def fuzzy_velocidad(setpoint, ip, a, cliente):
    sol = -1
    try:
        cliente = a.envio_consulta_fisica(cliente, "pose")
        #valor_x,valor_y,valor_t=self.a.devuelve_valors()
        valor_x = a.x
        valor_y = a.y
        #print valor_x, valor_y
        #ArUtil.sleep(100)
        cliente = a.envio_consulta_fisica(cliente, "updateNumbers")
        valores_f = a.devuelve_valorf()
        print 1
        mi_x = valores_f[1]
        mi_y = valores_f[2]
        #print mi_x, mi_y
        #mi_th=self.valores_f[3]
        dato = []
        if (len(valor_x) > 0):
            for a in range(len(valor_x)):  #SIP en c.
                #print math.sqrt(pow(valor_x['x%d' % a]-mi_x,2)+pow(valor_y['y%d' % a]-mi_y,2)), "calculo"
                dato.append(
                    math.sqrt(
                        pow(valor_x['x%d' % a] - mi_x, 2) +
                        pow(valor_y['y%d' % a] - mi_y, 2)))
            valor_distancia = min(
                dato)  #la distancia mas cercana tomada de la plataforma
            sol = controlador(setpoint, valor_distancia)  #Controlador difuso
            if sol < 0:
                sol = 0
    except:
        #print "Fallo inicio"
        sol = 'e0'
    print sol
    return sol
示例#4
0
def fuzzy_velocidad(q, setpoint, a, cliente):
    sol = -1
    #while 1:
    try:
        cliente = a.envio_consulta_fisica(cliente, "pose")
        #valor_x,valor_y,valor_t=self.a.devuelve_valors()
        #ArUtil.sleep(100)
        valor_x = a.x
        valor_y = a.y
        #print valor_x, valor_y
        cliente = a.envio_consulta_fisica(cliente, "updateNumbers")
        #ArUtil.sleep(100)
        valores_f = a.devuelve_valorf()
        mi_x = valores_f[1]
        mi_y = valores_f[2]
        #print mi_x, mi_y
        #mi_th=self.valores_f[3]
        dato = []
        if (len(valor_x) > 0):
            for a in range(len(valor_x)):
                dato.append(
                    math.sqrt(
                        pow(valor_x['x%d' % a] - mi_x, 2) +
                        pow(valor_y['y%d' % a] - mi_y, 2)))
            valor_distancia = min(
                dato)  #la distancia mas cercana tomada de la plataforma
            sol = controlador(setpoint, valor_distancia)  #Controlador difuso
            if sol < 0:
                sol = 0
            q.put(sol)
    except:
        #print "Fallo inicio"
        pass