logo logo
Inicio arrow Foros...
Sunday, 04 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
15.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  


Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Preguntas sobre Sonar Simulado (Simulated Sonar) - 2007/11/12 12:10 Hola, copio aquí unas preguntas sobre el servicio de Sonar Simulado que ha enviado Nerea por correo electrónico:



1.-He estado mirando un poco mas lo de los sonares y no me queda muy claro pq utilizas la diferencia entre lecturas, es informativo solo o me he perdido...pq para calcular la distancia minima no se necesita verdad?

2.-Para poder hacerlo en 3D se podrían poner varios LaserRangeFinder con disdinta orientación por ejemplo? No se si sera muy complicado. Y no se si lo has intentado...

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

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar) - 2007/11/12 12:21 Y también las contesto

1. Tienes razón, no se necesita la diferencia entre lecturas para calcular la distancia mínima.

La única razón por la que calculo la diferencia (distancia geométrica) entre una lectura y la anterior es por evitarme notificar un cambio a no ser que la diferencia sea notable. Como el servicio de Sonar Simulado está pensado para ser usado por otro servicio, éste enviará notificaciones cada vez que cambie su estado. No me parecía muy eficiente estar mandando notificaciones constantemente aunque los valores del sonar se mantuvieran relativamente constantes. Por eso introduje un valor umbral que representa la variación necesaria de una lectura con respecto a la anterior para que merezca la pena notificar el cambio de estado.

Piensa que si es robot está quieto durante 10 segundos y nada se mueve alrededor, las lecturas del sonar variaran mínimamente (en el simulador probablemente ni siquieran varíen nada). Por lo tanto, no tiene sentido gastar recursos notificando cambios de estado prácticamente imperceptibles.

2.- Pues para hacerlo en 3D habría que simular un cono 3D en vez de un plano (que es lo que he hecho de momento). Se podría utilizar la misma estrategia que se ha usado para 2D. Es decir, usar el trazado de rayos (raycasting) del simulador. Que es lo mismo que hace el telémetro Láser (Laser Range Finder). Habría que generar un haz de rayos que se expanda con forma de cono tridimensional. No lo he llegado a intentar, pero supongo que se puede hacer. Me suena que alguién me dijo que lo estaba intentando, pero ahora mismo no recuerdo quién. También es un ejercicio que he propuesto para mis alumnos... Pondré más información en este foro al respecto si llegamos a escribir un sonar simulado 3D. Igualmente, agradecería que me contaras si tú haces algo al respecto.

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

Expert Boarder
Mensajes: 24
graphgraph
Karma: 3  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar) - 2008/03/12 13:53 Cuando quiero implementar la entidad del ARCOS SONAR. Yo tengo metido en referencias el ARCOSSONAR.¿Cuales la clase para implementarla?
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
avionf18
Usuarios

Expert Boarder
Mensajes: 24
graphgraph
Karma: 3  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar - 2008/03/12 18:49 Me equivocado lo que tenia que hacer era cargar SimulatedSONAR y no ARCOSSONAR.

PROBLEMA:
Ya lo tengo cargado la entidad en el robot pero ahora no lo localiza el controlPanel, que me he descargado de esta página.

CUESTION:
Otra cosa cuando creas la entidad del sonar y tienes que pasarle un parametro de la clase POSE. Cuando creas un objeto de esa clase te pide 2 parametros. 1 para la posición y otro a la orientacion. ¿Que valores deberiamos poner a la hora de crear el objeto POSE?¿para que sirve la posición y la orientacion en el SONAR?


UN SALUDO

PD: MUCHAS GRACIAS POR EL SIMULATEDSONAR RAUL
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar - 2008/03/12 20:58 Hola, efectivamente para usarlo en la simulación necesitas el servicio SimulatedSonar y no el ArcosSonar...

Lo del fallo al cargar el servicio ControlPanel puede ser debido al contrato de ese servicio. En realidad, ahora lo llamo CraniumDashboard y el contrato para incluir en el manifest es el siguiente:

Code:

 <m:CreateServiceList>       <m:ServiceRecordType>     <dssp:Contract>http://www.conscious-robots.com/2007/09/craniumdashboard.html</dssp:Contract>       </m:ServiceRecordType>     </m:CreateServiceList>



Es que al principio llamé a este servicio ControlPanel y luego me di cuenta que ya había un servicio de Robotics Studio que se llama Control Panel (el servicio que aparece en la GUI), así que para evitar ambigüedades le cambié el nombre a mi servicio por CraniumDashboard. En cualquier caso, voy a revisar la descarga correspondiente al servicio Cranium Dashboard por si hay algo que está mal.

El parámetro Pose especifica una posición concreta dentro del mundo virtual, es decir, una posición X, Y, Z. Fíjate que la convención que usa Robotics Studio para los nombres de los ejes puede ser distinta de la que tú tienes en mente. Ellos usan la regla de la mano derecha. Mira este enlace para ver en detalle como se representan las coordenadas (X, Y, Z) en el simulador de MSRS:

--> Sistema de Coordenadas del Simulador

Al colocar una entidad en el simulador tienes que especificar una posición (Pose), por ejemplo, puedes usar el siguiente método (No hace falta que especifiques la orientación al crear el objeto Pose):

Code:

 private SonarEntity CrearSonar() {     // Crear la entidad Sensor Sonar     // y colocarla a 30 cm por encima del centro de masas    SonarEntity sonar = new SonarEntity(          new Pose(new Vector3(00.30f0)) );    sonar.State.Name "SimulatedSonar";    sonar.SonarBox.BoxState.DiffuseColor =               new Vector4(0.25f0.25f0.8f1.0f);    // Crear el servicio de simulación de sonar    // con el que habla esta entidad    CreateService(       pxsonar.Contract.Identifier,         Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(       "http://localhost/" sonar.State.Name));     return sonar;    }



pxsonar es una referencia al proxy del servicio de Sonar Simulado.

Luego puedes añadir la entidad de sonar creada al robot:

Code:

 // Crear la entidad sonar SonarEntity sonar CreateSonar(); // Insertar el sonar en la entidad robot robotBaseEntity.InsertEntity(sonar);



Si tienes dudas, puedes fijarte en como se crean las entidades en el servicio Maze Simulator:

--> Servicio Maze Simulator

Espero haberte sido de ayuda..

Mensaje editado por: Raúl, el: 2008/03/12 21:00
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar - 2008/03/12 21:08 He estado mirando lo de las descargas y no hay una descarga específica para el servicio Cranium Dashboard, sin embargo lo puesdes descargar de la zona de descargas de Conscious Robots como parte del paquete ExplorerSimSonar Application v.12:

-> Descargas de Robotics Studio

También puedes ver ejemplos de como usar el sonar simulado..
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
avionf18
Usuarios

Expert Boarder
Mensajes: 24
graphgraph
Karma: 3  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar - 2008/03/12 22:07

Gracias Raul lo he conseguido tu sabes cual era el error.

SOLUCION:

A la hora de realizar el contrato con el servicio de Simulación. Utilizaba el generico y no del Cranium mejor los expongo asi:
Antes:
using Sonar = Microsoft.Robotics.using simwebcam = Microsoft.Robotics.Services.Simulation.Sensors.Sonar;

Despues:
using Sonar = Cranium.Simulation.Sensors;

entonces ya coge el contrato de Cranium y entonces si lo carga en el DSS.


Ahora a captar los datos del sonnar para implementar el controlador difuso yujuuuu.

Mensaje editado por: avionf18, el: 2008/03/12 22:08
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Preguntas sobre Sonar Simulado (Simulated Sonar - 2008/03/13 11:00 ¡Me alegro de que te funcione!

En cualquier caso deberías poder usar el contrato genérico de sonar en tu servicio controlador, de forma que en tiempo de compilación no sabes que servicio de sonar específico se va a usar (es decir, que implementación del contrato genérico: podría ser un sonar simulado, podría ser el sonar del robot Arcos, o podría ser cualquier otro servicio de sonar que cumpla con el contrato genérico).

De esta forma tu código funcionará independientemente de que uses un sonar u otro, de esta forma te ahorras tener que cambiar nada de código cuando pasas del simulador al robot real. También es verdad que si vas a usar sólo el simulador la opción que has tomado es perfectamente válida.

Normalmente, tu código de control hace referencia a contratos genéricos, como por ejemplo en el caso del sonar:

Code:

 using pxsonar Microsoft.Robotics.Services.Sonar.Proxy;



Entonces, tienes dos opciones para especificar qué implementación concreta se usa en tiempo de ejecución: la primera es usar el archivo manifest, donde pones el contrato concreto del servicio que quieres que se use. Otra opción es crear el servicio concreto al crear la simulación:

Code:

             CreateService(                 pxsonar.Contract.Identifier,                 Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(                 "http://localhost/" sonar.State.Name));



Para esto último, si quieres, puedes fijarte en el código de los servicios Cranium Dashboard y MazeSimulatorRA para ver como se puede hacer. El tema es que mientras que para MazeSimulatorRA el proxy sonar es directamente mi implementación:

Code:

 using pxsonar Cranium.Simulation.Sensors.Proxy;



Para el servicio CraniumDashboard, el proxy sonar es el genérico:

Code:

 using pxsonar Microsoft.Robotics.Services.Sonar.Proxy;



Esto permite que el código del servicio CraniumDashboard se pueda utilizar directamente para controlar tanto robots reales, como simulados. Tanto el sonar simulado como el sonar real. Símplemente se conectará al servicio que esté disponible.

Por otro lado, como tú has hecho muy bien, en el caso del servicio de simulación necesitas una implementación concreta de un sonar simulado, en ese caso no puedes usar el contrato genérico..
Raúl Arrabales Moreno. conscious-robots.com/raul
  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!