logo logo
Home arrow Robotics Studio... arrow Documentación en Español (Spanish Documentation) arrow Tutorial de Robótica con VPL. Coordinación de Servicios
Saturday, 11 February 2012
 
 
Main Menu
Home
Conscious Machines...
AI Techniques...
Neuroscience...
Researchers...
Publications...
Reviews...
MC Bibliography
Robotics Studio...
Forums...
Blog...
Frontpage
Upcoming Events
22.Feb. 2012

CogSys 2012
Vienna, Austria
04.Apr. 2012

TSC 2012
Tucson, Arizona
17.May. 2012

EAIS 2012
Madrid, Spain
05.Jun. 2012

Cognition & Consciousness
Menorca. Spain
02.Jul. 2012

ASSC 16
Brighton, UK
02.Jul. 2012

Revisiting Turing and his Test
Birmingham, UK
31.Oct. 2012

BICA 2012
Palermo. Italy
Tag Cloud
Associations Books Conferences Conscious Conscious Machines Consciousness Developer Documentación Documentation Español Machine Machine Consciousness Machines Neuroscience Positions Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
More
Reader's Preferred
MCexperts List
FAQs
Glossary
Site Map
Tutorial de Robótica con VPL. Coordinación de Servicios Print E-mail
Written by Javier Escobar   
Tuesday, 25 November 2008

VPL Tutorial de Robótica con VPL. Coordinación de Servicios

Este tutorial está basado en el anterior “Accediendo a un servicio”. Se usará un sensor para encender y apagar un motor. Se usará el sensor y el motor del Lego NXT.

El tutorial se encuentra en la carpeta de instalación de MSRDS bajo la subcarpeta “Samples\RoboticsTutorials\Tutorial2\mvpl”.

Para comenzar, cree un nuevo proyecto seleccionando “New” del menú “File”. A continuación, inserte y configure un servicio “Generic Contact Sensor” desde la caja de herramientas de servicios. Inserte también una actividad “Calculate” y conéctela al pin de salida de notificaciones del sensor de contacto. En la ventana de conexiones seleccione “ContactSensorUpdate” y “Calculate”. En la caja de texto del bloque “Calculate” teclee “Pressed” o seleccione ese valor de la lista desplegable de valores de salida que ofrece el sensor de contacto que se mostrará.

Figura 90: Lista de valores de salida que ofrece el sensor de contacto en la actividad Calculate
Figura 90: Lista de valores de salida que ofrece el sensor de contacto en la actividad Calculate

Añada una actividad “Variable” y configure una variable llamada “MotorOn” de tipo “bool” realizando clic sobre el botón de los puntos suspensivos de dicha actividad. Establezca el valor de esta variable mediante un enlace con la salida (“CalculatedResult”) del bloque “Calculate”.

Figura 91: Establecimiento de la variable “MotorOn”.
Figura 91: Establecimiento de la variable “MotorOn”.

Para inicializar la variable “MotorOn”, inserte otra actividad “Variable” y añádale la misma variable “MotorOn”. Esta operación es más fácil si copia y pega el anterior bloque “Variable”. Añada una actividad Data configurándola con el tipo “bool” y el valor “false”, conéctela al nuevo bloque variable “MotorOn”, seleccionando “From: DataValue” y “To: SetValue”. Estos dos nuevos bloques no necesitan ser conectados a ningún otro del diagrama.

Figura 92: Inicialización de la variable “MotorOn”.
Figura 92: Inicialización de la variable “MotorOn”.

Para determinar el estado de esta variable y tomar las acciones oportunas en base a su valor, inserte una actividad “If” a la derecha del bloque “Variable” y conecte ambos bloques. A continuación, establezca la primera condición del bloque “If” (la caja de texto del bloque) con la variable “MotorOn”.

Figura 93: Chequeo de valor verdadero de “MotorOn” en el bloque “If”
Figura 93: Chequeo de valor verdadero de “MotorOn” en el bloque “If”

Añada 4 nuevas actividades Data al diagrama configúrelas como sigue:


1. Tipo “String” y en la caja de texto la cadena “Motor Encendido”
2. Tipo “Double” y en la caja de texto el valor 1.0
3. Tipo “String” y en la caja de texto la cadena “Motor Apagado”
4. Tipo “Double” y en la caja de texto el valor 0.0

Los dos primeros bloques (1 y 2 de la lista anterior) conéctelos a la salida de la condición (cuando MotorOn sea verdadero). Y los dos últimos (3 y 4 de la lista anterior) conéctelos a la salida de la condición “Else” del bloque “If”.

Inserte dos servicios “SimpleDialog” y conecte uno a cada bloque Data de tipo “String”. Al insertar el segundo bloque, se le preguntará si el bloque que desea insertar es una nueva instancia de este servicio o es la misma que ya tiene insertada. Para este ejemplo daría igual ya que se necesitan en momentos distintos y con el mismo tipo por tanto, responda que es la misma instancia. Para este ejemplo, en las ventanas de conexiones configure los valores “From: DataValue” y “To: AlertDialog”. Los bloques “SimpleDialog” pueden ser de tres tipos especificados en la lista “To” de la ventana de conexiones:

- AlerDialog: Simplemente mostrará en ejecución una ventana con un texto informativo.

- ConfirmDialog: Muestra una ventana en ejecución con una pregunta y ofreciendo como posibles respuestas al usuario dos botones: OK y Cancel.

- PromptDialog: Muestra una ventana en ejecución pidiéndole al usuario que introduzca una cadena de caracteres (“String”). Como último paso, inserte dos servicios “Generic Motor” y conecte uno a cada bloque “Data” de tipo “Double”. Ambos pueden ser la misma instancia por tanto, puede añadir uno y realizar un copiar-pegar para el segundo. En las ventanas de conexiones mostradas al realizar los enlaces, seleccione “From: DataValue” y “To: SetMotorPower” y de la ventana de datos de la conexión, elija “value”.

Figura 94: Diagrama final del tutorial “Coordinación de servicios”.
Figura 94: Diagrama final del tutorial “Coordinación de servicios”.

Se han utilizado dos servicios genéricos (“Generic Contact Sensor” y “Generic Motor”) que pueden ser aplicados a distintos robots. Para configurarlos para un robot en concreto (en este caso para el Lego NXT), es necesario establecer un manifest apropiado en la configuración de estos servicios. Para ello realice doble clic sobre uno de ellos, seleccione “Use a manifest” y haga click sobre el botón “Import manifest” para seleccionar el manifest adecuado para el motor y sensor de contacto del robot que esté utilizando (“Lego”). Existen dos bloques “Generic Motor” pero al ser la misma instancia, sólo es necesario configurar el manifest para uno de ellos.

Ejecute el tutorial pulsando F5 o seleccionando la opción “Start” del menú “Run”.


Add as favourites (172) | Quote this article on your site | Views: 2489

  Be first to comment this article
RSS comments

Only registered users can write comments.
Please login or register.


Related Items:

  1. Jobs: Two Chair positions for new Centre for Computational Neuroscience and Co
  2. Birmingham Fellows in Robotics and Cognitive Systems
  3. Finding papers about consciousness and robotics
  4. Paladyn. Journal of Behavioral Robotics
  5. International Journal of Social Robotics
  6. Cognitive Robotics and Machine Consciousness
  7. Cognitive Robotics
  8. Polymorphic Robotics
  9. Urbi goes Open Source
  10. The Tower of Hanoi for Robotics
Last Updated ( Tuesday, 25 November 2008 )
 





Lost Password?
No account yet? Register
 Conscious Robots RSS FeedConscious Robots RSS Feed

Find us on Facebook

Follow us on TwitterFollow us on twitter
Spotlight

Machine Consciousness Bibliography Database

 

ConsScale
The Cognitive Machine Consciousness Scale

 
Categories
Last Posts in Forum
 
CR
miel continental