logo logo
Inicio arrow Foros...
Wednesday, 07 de January de 2009
 
 
English English  Español Español  
Próximos Eventos
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
14.Jun. 2009

International Workshop on Machine Consciousness
Hong Kong, China
15.Jun. 2009

The 8th IEEE International Conference on Cognitive Informatics
Hong Kong, China
22.Jun. 2009

IWINAC 2009
Santiago de Compostela, Spain
Etiquetas
Análisis Artificial Científicos Conciencia Consciencia Consciencia Artificial Conscientes Consciousness Developer Documentación Documentation Español Howto Investigación Publicaciones Reviews Robotics Robots Robótica Servicios Spanish Studio VPL artificial
Destacados
Conscious-Robots.com Forum  


Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Movimiento del robot y Console Output Service - 2008/05/07 21:49 Hola

Quería hacerte unas cuantas consultas que me han ido surgiendo en estos días:

Tengo definida la siguiente función para hacer que el robot gire un cierto ángulo

PortSet<DefaultUpdateResponseType, Fault> Turn(int angle)
{
if (_state.DriveState == null || !_state.DriveState.IsEnabled)
{
EnableMotor();
}
drive.RotateDegreesRequest request = new drive.RotateDegreesRequest();
request.Degrees = (double)(-angle);

return _drivePort.RotateDegrees(request);
}

El ángulo de giro se cálcula correctamente pero algo pasa en esta función que cuando le pide al robot que gire este no hace ni caso.

Además me pasa algo curioso y es que por muy pequeña que le ponga la velocidad de avance al robot simulado, cada vez que para lo hace de forma tan brusca que se inclina hacia delante de forma que el láser hace una lectura del suelo falseando las distancias reales de los objetos.

Para terminar me gustaría comentarte que me sale el siguiente mensaje en la consola de salida y no se exactamente a que se refiere porque únicamente aparece con los servicios que yo he creado y no cuando utilizo uno mío trabajando junto con uno creado por microsoft:

Prefix is already registered
Category StdOut
Leve Warning
Time 2008-05-07t20:21:15.90625+02:00
Subject Prefix is already registered
Source http://localhost:50000/resources
CodeSite Boolean MoveNext()() at line:0, file


No se si es algo que podría solucionar de alguna forma o no debería darle mayor importancia.

Muchas gracias
Un saludo
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Movimiento del robot y Console Output Service - 2008/05/08 17:02 Hola Julia,

Por lo que veo la función de girar está bien. Vamos, es la misma que yo uso. Lo único que se me ocurre es que haya algún problema en la forma a la que llamas al método para girar, te pongo a continuación cómo lo hago yo por si te sirve de algo:

Code:

 Arbiter.Choice(Turn(action.Angle),      delegate(DefaultUpdateResponseType sucess)      {          // El robot está girando      },      delegate(Fault failure)      {          LogError("CERA Phys: failed to turn."); });



Lo que comentas del robot que al parar la inercia que lleva le hace levantarse de atrás y apuntar al suelo a mi también me pasa. Para solucionarlo había pensado aumentar la masa del robot para que el simulador no le haga sacudirse tanto incluso a velocidades reducidas... La verdad es que todavía no lo he probado, lo que está claro es que con el robot real eso no pasa. Puedes intentar lo que te digo: aumentar su peso y ver si así no se tambalea tanto al parar.

Sobre el error "Prefix is already registered", a mi no me ha pasado nunca. Pero creo que puede pasar porque tengas dos servicios configurados con el mismo initial state partner. ¿Te sale algo más en el output console?

Saludos,
Raúl.
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Movimiento del robot y Console Output Service - 2008/05/09 00:40 Hola!!

He incluido el código que me has indicado cada vez que hago una llamada a la función "Turn" y el robot sigue sin girar... pero lo más curioso es que no aparece ni una sola vez el mensaje de error. Te describo el comportamiento de la simulación: el robot avanza perfectamente hasta que se encuentra un objeto de frente. Entonces sigue avanzando hacia él, primero con mayor velocidad y luego reduciéndola. A la consola siguen llegando mensajes de que el robot va a avanzar una cierta distancia pero éste no se mueve, si acaso lo hace, es una de cada 5 veces que aparece el mensaje. Finalmente se queda muy pegado al objeto pero no aparecen mensajes de error avisando de la activación de los sensores de contacto a pesar de que siguen llegando mensajes de que el robot se va a desplazar hacia delante una cierta distancia

Respecto al error "Prefix is already registered", siempre aparece cuando pongo a trabajar juntos el servicio de control con el del entorno grafico, y siempre con el texto que puse en el anterior mensaje. Pero he estado pensando en lo del Initial State Partner, que sí guardaba el estado en el servicio control pero no en el de entorno grafico. Así que lo he quitado en el primero, y me ha vuelto a salir el error "Prefix is already registered" pero esta vez con:

Code:

 CodeSite void ExecuteTask(Microsoft.Ccr.Core.Itask ByRefMicrosoft.Ccr.Core.DispatcherQueue)() at line:0file



Si sirve de algo el último mensaje que aparece es el siguiente, después no pasa nada más:
Code:

 Creation Default State for ControlService Category StdOut Level    Info Time     2008-05-08T22:51:35.796875+02.00 Subject  CreatingDefaultState for ControlService Source   http://localhost:50000/resources CodeSite Void CreateState()() at line:167fileC:Microsoft Robotics Studio (1.5)samplesControlServiceControlService.cs



Tienes alguna idea de que puede estar pasando, porque yo empiezo a creer que mi servicio entornografico esta gafado...

Muchísimas gracias
Un saludo

Mensaje editado por: Julia, el: 2008/05/09 00:43
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Movimiento del robot y Console Output Service - 2008/05/14 16:30 Pues así de pronto no veo por qué no te funciona la llamada a Turn

Por lo que describes del comportamiento del robot, ¿estás usando el código de ejemplo del explorador que viene con Robotics Studio? ¿O es un código de control que has escrito tú?

¿Has comprobado que efectivamente se llame a la función Turn (poniedo un traza o depurando con el Visual Studio? Piensa que quizás el problema está en otra parte del código y nunca se llega a ejecutar la función. Si tienes trazas en las llamadas a DriveDistance o SetDriveSpeed análogamente puedes ponerlas en las llamadas a Turn.

Lo del "Creation Default State for ControlService" tiene pinta que debería pasar sólo la primera vez, cuando todavía no existe el fichero de estado y se crea un estado por defecto. Pero si llamas a saveState:

Code:

 // Save the default state to disk SaveState(_state);



cuando creas el estado por defecto, la próxima vez que ejecutes el servicio no debería aplicar el estado por defecto, si no cargar el fichero de estado que has especificado. ¿Has comprobado que el fichero se cree adecuadamente?
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Movimiento del robot y Console Output Service - 2008/05/14 18:17 Hola

La creación del fichero con el estado inicial se hace perfectamente, lo que pasa es te mande el último mensaje que me sale cuando se ejectuta el programa por primera vez, porque cuando se ejecuta una segunda vez el último mensaje que sale en Output es:
Code:

  Service uri: Category Console Leve     Info Time     2008-05-05T23:32:35.421875+02.00          2008-05-07t20:21:15.90625+02:00 Subject  Service uri. Source   http://localhost:50000/controlService CodeSite Void Start()() at line:0file


y no creía que con esto pudieses deducir mucho de lo que le está pasando a la simulación.
Respecto al movimiento del robot lo hago basándome en el explorer creado por Trevor Taylor, trabajando sobre un servicio que yo cree y al que le ido añadiendo las distintas partes para que funcione como el primero. He estado buscando información en internet sobre el error "Prefix is already registered" y lo que he encontrado ha sido esto:
http://msdn.microsoft.com/en-us/library/ms164918(VS.80).aspx
pero no entiendo que hacer para depurar mi sistema y corregir el error. También he estado buscando lo de "Boolean MoveNext()" (me salió en uno de los primeros errores) que es un método para desplazar el enumerador al siguiente término de la colección, devuelve true si avanzó con éxito y false si llegó al final. El caso es que todos estos fallos también me salen si utilizo el explorer de Trevor directamente con mi servicio entornografico e incluso con cualquier simulación de microsoft. No entiendo que esta pasando, si me pudieses indicar alguna forma para intentar depurarlo y encontrar el momento en el que falla el programa te lo agradecería.

Un saludo

PD:Adjunto un txt con dos partes de las trazas durante la simulación por si sirven de ayuda
File Attachment:
File name: output.txt
File size:3970 bytes
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Titulares RSS
 Conscious Robots RSS FeedFuente RSS de Conscious Robots





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
Mensajes en el Foro
 
Top! Top!