Servicio de SONAR Simulado

El servicio de SONAR Simulado proporciona acceso a un anillo sonar simulado. Usa los mecanismos de trazado de rayos del simulador de Robotics Studio para simular los transductores Sonar. Usando este servicio puede probar la detección de objetos y la medición de distancias con un robot simulado en el entorno visual de MSRS.

Introducción:

Los robots basado en ARCOS (como el Pioneer P3-DX) pueden integrar hasta cuatro anillos Sonar, cada uno con ocho transductores. La plataforma Robotics Studio no incluye un servicio de Sonar Simulado que pueda usarse en el entorno visual (como es el caso del LRF). Sin embargo, sí que existe un contrato genérico para un sensor Sonar que quería implementar para el caso específico de un anillo frontal Sonar para el robot simulado Pioneer 3 DX.

NOTA: También hay disponible un servicio de Sonar real para ARCOS (no simulado):
http://www.conscious-robots.com/es/robotics-studio/robotics-studio-services/arcos-sonar-service.html

 Con respecto a la simulación del Sonar esta es la sugerencia por parte de Microsoft:

“puedes hacer un sensor sonar simulado haciendo algo similar al telémetro laser. En vez de lanzar cientos de rayos en un patrón como el del laser, configura un manojo de rayos en un cono que coincida con la apertura del sensor sonar que quieres simular. En tu código, mira los resultados de las distancias devueltas por cada rayo y configura el valor de retorno del sonar como la intersección más cercana.”

He escrito un servicio llamado SimulatedSonar intentando seguir estas instrucciones – El código fuente está disponible en la sección de descargas.

NOTA: La versión actual del Sonar Simulado no genera un cono 3D usando el trazado de rayos. En su lugar se genera una sección en 2D para calcular la intersección más cercana. Por lo tanto, el robot simulado sólo “ve” en un plano 2D (situado a la altura del dispositivo Sonar). Con el objetido de simular con más exactitud el sensor Sonar hay que pasar a una representación 3D. También se debería añadir ruido para modelar mejor un sonar real.

Puedes suscribirte a este servicio SimulatedSonar desde tu aplicación y así obtener facilmente lecturas sonar en tu código MSRS (en principio este código vale para cualquier robot simulado, sólo necesitas añadir la entidad a tu robot y configurar los parámetros y la posición del Sonar).

Descarga del Servicio:

Instrucciones de Instalación (para el archivo zip con el código fuente):

SimulatedSonar es un pequeño servicio DSS (Servicio de Robotics Studio) que te permite acceder a las lecturas de un Sonar Simulado para el robot Pioneer 3 DX. El archivo zip contiene el código fuente y el proyecto de Visual Studio.

Descomprime los contenidos del archivo en el directorio raíz de MSRS. El código fuente se encuentra bajo el directorio Apps\UC3M. Compílalo usando Visual Studio.

Mira el fichero readme.txt incluido en el paquete de distribución para ver instrucción detalladas  y la historia de versiones anteriores. Es importante que instales el servicio en la misma versión de MSRS que se indica en el fichero readme.txt. Siempre intento actualizar todas las distribuciones con la última versión disponible de MSRS, por favor comprueba regularmente las actualizaciones.

Detalles del Servicio:

Identificador de Contrato:
    http://www.conscious-robots.com/2007/07/simulatedsonar.html

Contrato Genérico Implementado:
    Microsoft.Robotics.Services.Sonar

Servicios Asociados:
    Subscription Manager

Permite Suscripciones:
.

Estado del Servicio:
Microsoft.Robotics.Services.Sonar.Proxy.SonarState

Descripción:

El anillo frontal Sonar del Pioneer 3 DX está compuesto de ocho transductores colocados en ángulos de -90, -50, -30, -10, 10, 30, 50 y 90 grados. Su estado se consulta secuencialmente a una cadencia configurable (normalmente 25 Hz – 50 ms. por transductor por anillo).

El servicio SimulatedSonar pretende simular un Sonar real por medio de los mecanismos de trazado de rayos disponibles en el simulador de MSRS. El anillo frontal de Sonar del P3DX abarca 180 grados. Pero los transductores laterales están centrados a 90 grados, por lo que considero una apertura de 196 grados. Considerando una apertura de cono de 16 grados (los trasductores hardware reales del P3DX tienen una apertura de 15 grados):

_state.AngularRange = 196;  // 180 plus two halfs of lateral transducers.

Usando los mecanismos de trazado de rayos genero un rayo por grado formando una proyección en 2D de cada cono. Por ello, sólo considero los rayos que caen dentro de los ángulos cubiertos por cada transductor Sonar (las mediciones obtenidas por el resto de rayos se descartan ya que pertenecen a los ángulos muertos entre los transductores), y para cada transductor cojo la intersección más cercana (la distancia mínima). Ver figura: los rayos azules representan las medidas que se descartan. Los rayos rojos corresponden a las medidas tomadas por cada transductor Sonar. El punto amarillo simula la posición del dispositivo sonar (el origen de todos los rayos).

Cuando las medidas obtenidas de los rayos (que corresponden a las medidas simuladas obtenidas por los transductores sonar) experimentan un cambio sustancial, el servicio SimulatedSonar envía un mensaje Replace a todos sus suscriptores notificando el cambio de estado.

Dentro del objeto SonarState, se crea un vector de ocho posiciones de tipo double. Este vector (array), llamado DistanceMeasurements[] contiene las lecturas de distancias correspondientes a los transductores sonar simulados.

Parachoques Simulado para Pioneer 3DX

Servicio SimulatedPioneerBumper

Microsoft Robotics Studio viene con un modelo simulado del robot Pioneer 3DX que se puede usar en el entorno de simulación visual. Este robot simulado se puede equipar con varios sensores simulados, como el LRF o el bumper simulado. Normalmente, los paragolpes del P3DX se modelan como simplemente un sensor de contacto frontal y otro trasero. Sin embargo, el robot Pioneer real suele venir con dos anillos de paragolpes, cada uno con 5 paneles de contacto:

Introducción

Dada la necesidad de usar un modelo más exacto de los sensores reales, hemos estado trabajando en servicios adicionales de simulación, como el servicio de Sonar Simulado.  En este caso, queríamos simular de forma precisa los anillos de paragolpes frontal y trasero de la base Pioneer Arcos. El servicio Simulated Pioneer Bumper modela los 10 paneles usando 10 cajas tridimensionales situadas aproximadamente a la misma posición que corresponde a los paragolpes del robot real. Vea las cajas que respresentan los sensores de contacto en las siguientes figuras:

NOTA:  los “boxshapes” distribuidos alrededor del robot se usan para calcular las colisiones físicas con otros elementos del mundo virtual. Por lo tanto, la modificación de sus posiciones afectaría al comportamiento físico del robot.

Descarga del Servicio (Código fuente)

Instrucciones de Instalación

Descarga el archivo ZIP y descomprímelo en el directorio raíz de MSRS. Se supone que el directorio raíz es:

C:\Microsoft Robotics Studio (1.5)

Cuando se descomprime el archivo, se crea un proyecto en el directorio Apps\UC3M bajo la instalación de MSRS:

Apps\UC3M\SimulatedPioneerBumper

Si quieres recompilar el proyecto, abrelo y usa la función rebuild:

msbuild Apps\UC3m\SimulatedPioneerBumper\SimulatedPioneerBumper.sln

Descripción

El servicio SimulatedPioneerBumper crea una entidad visual que modela los paneles de paragolpes frontales y traseros de un robot Pioneer. Adicionalmente, el servicio implementa el contrato genérico de sensor de contacto. Por lo tanto, se puede usar desde cualquier servicio que trate con sensores de contacto. Este servicio enviará notificaciones a sus servicios suscritos cada vez que los paragolpes entren en contacto con cualquier superficie del mundo simulado.

El estado de este servicio mantiene un conjunto de 10 sensores de contacto, identificados por los nombres:  b1, b2, b3, b4, b5, b9, b10, b11, b12 y b13 como se muestra a continuación:

Los bumpers frontales y traseros del Pioneer 3 DX proporcionan puntos de percepción y lecturas individuales por cada panel de contacto, los cuales se pueden reproducir en el entorno de simulación de Robotics Studio gracias a este servicio. Cada panel mide unos 10 cm x 2.5 cm de ancho. Los segmentos se distribuyen alrededor del robot en ángulos de  -52, -19, 0, 19, and 52 grados, tal y como se muestra en la siguiente figura:

Sin embargo, hemos modificado ligeramente estas dimensiones y orientaciones para adaptar los paragolpes al modelo del robot Pioneer que viene con Robotics Studio.

Además, hemos añadido una representación gráfica de los paragolpes en el servicio CRANIUM Dashboard. La siguiente figura muestra como los paneles del paragolpes frontal b1 y b2 están presionados, mientras que los demás están libres:

Licencia

Este programa se distribuye bajo los términos de la licencia Creative Commons Reconocimiento – No Comercial – Compartir Igual 3.0 Unported; puedes redistribuirlo y modificarlo de acuerdo a sus términos y condiciones:

Reconocimiento – No comercial – Compartir igual: Este programa puede ser distribuido, copiado y exhibido por terceros si se muestra en los créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.

Este programa se distribuye con la intención de que sea útil, pero sin ninguna garantía para ningún propósito particular.

Creative Commons License

Segundo Seminario Internacional sobre Nuevos Temas de la IA

Segundo Seminario Internacional sobre Nuevos Temas de la Inteligencia Artificial

Del 2 al 6 de Febrero de 2009
Universidad Carlos III de Madrid
Campus de Colmenarejo
Avda. Universidad Carlos III, 22
28270 Colmenarejo (Madrid) España.

Organizado por ScALAB (CAOS, EVANNAI, GIAA, PLG) Laboratorio de Inteligencia Artificial de la UC3M.

Ponentes Invitados

Dr. Xin Yao. University of Birmingham.
Evolving Ensemble of Artificial Neural Networks. Co-Evolution, Games and Social Behaviors. Evolutionary Global Optimisation and Constraint Handling.

Dr. Carlos Coello. CINVESTAV-IPN in Mexico.
Recent Results and Open Problems in Evolutionary Multiobjective Optimization.

Dr. Tarunraj Singh. University at Buffalo, The State University of New York.
An overview of advanced estimation algorithms

Dr. Subrata Das. Xerox European Research Centre.
High-Level Information Fusion.

Dr. Michael Buro. University of Alberta, Edmonton, Canada.
Constructing High-Performance AI Systems for Games.

Dr. Malte Helmert. University of Freiburg.
Planning as heuristic search.

Dr. Silvano Cincotti. University of Genoa.
Agent-based Computational Economics.

Dr. Marco DorigoUniversité Libre de Bruxelles.
Bio-inspired Computing: Swarm Intelligence, Ant Colony Optimization and Swarm Robotics.