Tutorial de Robótica en VPL. Drive by Wire (Conducción mediante cursor o joystick)
Microsoft Robotics Studio proporciona una reutilización de los diseños mediante la escritura de Servicios. Este diseño le permite escribir un servicio (una vez) para una especificación de hardware común y utilizarlo posteriormente con una gran variedad de plataformas hardware de robots.
Se creará un patrón de actividad abstracta que mediante ficheros de configuración permita en tiempo de ejecución que enlace con especificaciones concretas de servicios de hardware, incluso en el entorno de simulación.
La funcionalidad de este tutorial ofrece la posibilidad de controlar un robot mediante una ventana que se mostrará al usuario con los cursores típicos para permitir mover en las cuatro direcciones a un robot o incluso detenerlo. Este tutorial se puede encontrar en la carpeta de instalación de MSRDS, bajo la sub-carpeta “Samples\RoboticsTutorials\Tutorial3\mvpl”.
Comience abriendo un nuevo proyecto y añada al diagrama un servicio “Direction Dialog” desde la caja de herramientas de servicios. Este bloque proporciona una ventana de diálogo con el usuario compuesta de cinco botones: Izquierda, derecha, avanzar, retroceder y detener. Ha sido diseñado para permitir presionar un botón y generar un evento que pasa el nombre del botón pulsado como una cadena (“String”).
Añada una actividad “Calculate” y una “Switch”. El bloque “Switch” comparará la entrada con cada una de las condiciones y generará la salida cuando la comparación sea exitosa. Conecte el bloque “Calculate” a la notificación “ButtonPress” de la salida del bloque “Direction Dialog” y teclee “Name” en la caja de texto de la expresión para obtener el nombre del botón pulsado.
En el bloque “Switch” teclee con las comillas incluidas “Stop” y pulsando el icono “+” añada tantas cuatro nuevas condiciones que debe rellenar con los valores (comillas incluidas): “Forwards”, “Backwards”, “Left” y “Right”. Inserte tres actividades “Calculate”, cuatro actividades “Data” y configure su tipo como “Double” y conéctelas de la siguiente forma:
- Una a la salida del “Stop” a una actividad “Calculate” y teclee “0.0” en su caja de texto. - Una a la salida del “Forwards” a una actividad “Calculate” y teclee “0.8” en su caja de texto. - Una a la salida del “Backwards” a una actividad “Calculate” y teclee “-0.8” en su caja de texto. - Dos a la salida del “Left” y teclee “0.6” y “-0.6” en sus cajas de texto. - Dos a la salida del “Right” y teclee “0.6” y “-0.6” en sus cajas de texto.
 Figura 107: Primera parte del diseño del tutorial Drive-By-Wire.
Inserte dos actividades “Join” y etiquete sus variables como “Left” y “Right”. Conecte para cada “Join” la pareja de bloques “Data” que provienen de la misma condición del “Switch” (“Left” y “Right”). Esto provocará que cada bloque “Join” envíe los valores de los datos de ambas entradas de forma simultánea, siendo uno para la potencia de cada rueda y permitiendo el giro.
Conecte la salida de los “Join” a un nuevo bloque “Merge”. Añada otro bloque “Merge” y conecte a su entrada los tres bloques “Calculate”. Añada un nuevo servicio “Generic Differential Drive”, inserte una copia de este bloque al diagrama. Conecte a sus respectivas entradas la salida de un solo bloque “Merge” seleccionando en la ventana de conexión el valor “SetDrivePower”. Para las conexiones de datos, en el caso del primer enlace seleccione “From: Value” en los dos valores de entrada y para el segundo seleccione “From: Left” con “To: LeftWheelPower” y “From: Right” con “To: RightWheelPower”.
 Figura 108: Diseño final del tutorial “Drive-By-Wire”.
Se puede realizar una pequeña variante de este diagrama, en lugar de usar el botón Stop, es posible la utilización del evento “ButtonReleased” del servicio “Direction Dialog”. De esta forma el robot se moverá cuando se presionen los botones y se pararía cuando se dejen de pulsar los botones. Esta propuesta quedaría con un diagrama como el siguiente:
 Figura 109: Diseño final del tutorial “Drive-By-Wire”.
Ejecute el tutorial pulsando F5 o seleccionando la opción “Start” del menú “Run”. No olvide establecer el correspondiente manifest al servicio “Generic Differential Drive” atendiendo al escenario y robot que desee utilizar en las propiedades de este servicio.
Add as favourites (153) | Quote this article on your site | Views: 2814
Only registered users can write comments. Please login or register.
Related Items:
- Jobs: Two Chair positions for new Centre for Computational Neuroscience and Co
- Birmingham Fellows in Robotics and Cognitive Systems
- Finding papers about consciousness and robotics
- Paladyn. Journal of Behavioral Robotics
- International Journal of Social Robotics
- Cognitive Robotics and Machine Consciousness
- Cognitive Robotics
- Polymorphic Robotics
- Urbi goes Open Source
- The Tower of Hanoi for Robotics
|