Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Capiflash en 15 de Febrero de 2008, 01:51:57 PM

Título: Libreria externa se "desconecta" y no responde
Publicado por: Capiflash en 15 de Febrero de 2008, 01:51:57 PM
El titulo es el mejor que se me ocurrio la verdad. El problema es el siguiente. Estoy desarrollando una unidad de control para un robot simulado ( con lógica difusa ) , Su único cometido es no chocarse nunca , da igual a donde vaya o que haga , pero siempre ha de estar en movimiento.

El problema : Yo leo los 180 sensores del "frente" del robot  , divididos en dos zonas ( izquierda y derecha , con 90º para cada una ). Hallo la suma de las distancias de cada zona , y le paso a la libreria los 90 valores de la zona con menos obstaculos. Los 90 resultados de la libreria los azumulo y luego divido entre 90 , y ese es el giro que efectuo , lo mismo con la velocidad.

Sin motivo aparente ( o que yo vea :( ) , la libreria empieza a devolverme valores extraños , en al consola veo lo siguiente :

--------------------GIRANDO A LA Derecha -------
Giro : -2.35099e-38
Velocidad : 0.164444
Distancias en la DERECHA : 9.18685
Distancias en la IZQUIERDA : 2.07312

Como es lógico , ha de girar a la derecha pues es la zona con las distancias mas grandes ( menos poblada ) , pero el resultado del giro es irreal total . Pero mas confundido me quedo aun cuando en el fichero de log que me crea la aplicacion me sale esto :


Punto del laser : 105 / Distancia : 5.000000  / Giro FFLL : 0.000000  / Velocidad FFLL : 0.000000 / Giro acumulado : 0.000000 / Velocidad acumulada : 2.600000

Por que sin motivos aparentes la libreria devuelve valores "imposibles" ? Los valores leidos por los sensores están dentro del rango en las variables de la libreria , lo unico que se me ocurre es que la libreria se "aturulle" y no le de tiempo a procesar esos datos ya que ha de hacer 180 calculos ( 90 para el giro y 90 para la velocidad ) en 250 milisegundos.... pero vamos , creo que eso es bastante improbable con las máquinas de hoy en dia no?

Otra peculiaridad es que el programa a veces es capaz de remontar el vuelo , y despues de recibir unos 30 valores o asi ( si el robot aun no se ha chocado ) pues vuelve a recibir valores correctos y "retoma" el control.

A ver si alguien me echa una mano o al menos me pone su hombro para llorar xDD

Saludos y siento el tochopost.

P.D. Si quereis ver el codigo o el fichero de log completo decidlo y lo subo a algun lado , que aqui no veo opciones para adjuntar ficheros
Título: Libreria externa se "desconecta" y no responde
Publicado por: tamat en 15 de Febrero de 2008, 02:56:43 PM
no sería mejor que en lugar de hablarnos de robots y sensores nos dijeras qué lenguaje has usado, de qué modo estan conectados los módulos (usas sockets a pelo? RPC?), o qué librerias usas.
Título: Libreria externa se "desconecta" y no responde
Publicado por: Capiflash en 15 de Febrero de 2008, 03:26:17 PM
C++ como lenguaje.
Player/stage es el simulador , asi que he usado las librerias que proporciona para la conexion con el robot.
Título: Libreria externa se "desconecta" y no responde
Publicado por: Capiflash en 15 de Febrero de 2008, 09:38:09 PM
Bueno , solo decir que ya lo arregle.

Saludos