logo logo
Home arrow Robotics Studio... arrow Documentación en Español (Spanish Documentation) arrow Uso de los Servicios de Lego NXT en VPL
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
Uso de los Servicios de Lego NXT en VPL Print E-mail
Written by Javier Escobar   
Tuesday, 25 November 2008

VPL Uso de los Servicios de Lego NXT en VPL

Los servicios del nuevo Lego Mindstorms NXT han sido diseñados expresamente para ser usados con VPL.

Figura 12: Ejemplo con sensor de ultrasonidos.
Figura 12: Ejemplo con sensor de ultrasonidos.

Los servicios del Lego Mindstorms NXT son fáciles de configurar y proveen una arquitectura extensible al uso de sensores de terceros en cualquier momento. Los servicios provistos en esta plataforma incluyen motores y sensores para la versión estándar del NXT, así como algunos ejemplos de sensores disponibles de [4] HiTechnic y [3] MindSensors.

 Lego NXT Brick 

Lego NXT
Brick (v2)

Módulo de control de las conexiones al bloque
LEGO MINDSTORMS NXT. Normalmente se
referencia como el brick.
 Lego NXT Motor

Lego NXT
Motor (v2)

Controla la alimentación a un motor sencillo y
opcionalmente devuelve lecturas del
encoder.
 Lego NXT Drive

Lego NXT
Drive (v2)

 Controla la alimentación a dos motores configurados
como Drive. Posee funciones avanzadas como
DriveDistance y RotateDegrees que se encuentran
completamente implementadas.
 Lego NXT Light Sensor

Lego NXT
Light Sensor (v2)

Permite al programador activar el spotlight (led) y
enviar notificaciones como los cambios en las
lecturas de la intensidad de la luz.
 Lego NXT Sound Sensor

Lego NXT
Sound Sensor (v2)

Envía notificaciones del volumen del sonido recibido
por el sensor de volumen.
 Lego NXT Touch Sensor

Lego NXT
Touch Sensor (v2)

Envía una notificación cuando el sensor de contacto
es presionado o liberado.
 Lego NXT Ultrasonic Sensor

Lego NXT
Ultrasonic Sensor (v2)

Envía notificaciones continuas indicando la distancia
al objeto más cercano en el rango de alcance del
sensor de ultrasonidos.
 Lego NXT Battery  Lego NXT
Battery (v2)
Entrega notificaciones regulares del voltaje de la
batería y notificaciones configurables de batería
crítica.
 Lego NXT Buttons Lego NXT
Buttons (v2)
Envía notificaciones cuando son presionados o
liberados los botones del brick.
 Acceleration sensor

MindSensors
Acceleration Sensor

Envía continuas notificaciones indicando
coordenadas X, Y y Z de rotación del sensor de
aceleración.

 Mind Sensors Compass Sensor MindSensors
Compass
Sensor
 Envía continuas notificaciones indicando la posición
de la brújula.
 Hightech acceleration sensor  HiTechnic
Acceleration
Sensor
Envía notificaciones continuas indicando
coordenadas X, Y y Z de rotación del sensor de
aceleración.
 Hitech compass sensor HiTechnic
Compass
Sensor

Envía notificaciones continuas indicando la posición
de la brújula.
 

 Lego NXT Contact sensor array Lego NXT
Contact
Sensor Array (v2)
Agregador de hasta cuatro sensores LEGO NXT para
producir un array de contactos de sensores.
 Lego NXT Brick IO Lego NXT
Brick I/O (v2)
Proporciona acceso a ficheros y programas
directamente sobre el brick. Además, este servicio
permite obtener y escribir el nombre del brick.

 

Servicio de configuración del brick o módulo de control

 Comenzaremos arrastrando un brick (Lego NXT Brick (V2) service) sobre el diagrama, seguidamente seleccionamos “Set initial configuration” y se cambiará el puerto serie por el apropiado de la conexión [5] Bluetooth.

Figura 13: Configuración del servicio del Brick.
Figura 13: Configuración del servicio del Brick.

Este paquete actualmente sólo soporta conexión [5] Bluetooth para el brick y con el valor cero en baudrate se conectará a la velocidad adecuada, la cuál será habitualmente de 115200 bps.


Seleccionando “ShowInBrowser” el interfaz de usuario para el servicio del Lego NXT abrirá un navegador web cada vez que el servicio se inicie. Esto es útil para visualizar la configuración y el estado de ejecución del dispositivo al que está conectado el brick.

Servicios de dispositivos

El kit del Lego Mindstorms NXT viene con tres motores y cuatro sensores. Todos estos dispositivos se conectan al brick y comparten ciertos valores de configuración.


Partners
Cuando se usa más de un brick, este parámetro identifica el brick al que este dispositivo está conectado.

Figura 14: Ejemplo de configuración del parámetro Partner común a algunos servicios
Figura 14: Ejemplo de configuración del parámetro Partner común a algunos servicios

Name
Si se conectan dos dispositivos iguales al brick, se deben nombrar de forma distinta para poder identificarlos de forma única.

Puertos de motores y sensores
Los tres motores (MotorA, MotorB y MotorC) y los cuatro sensores (sensor 1-4) que vienen en el kit inicial del NXT, pueden ser conectados a los distintos puertos de los que dispone el brick. La mayoría de estos dispositivos necesitan que se identifique el puerto al que se han conectado.

Figura 15: Configuración de motores y sensores.
Figura 15: Configuración de motores y sensores.

Frecuencia de muestreo (Polling)
La mayoría de los sensores tienen la capacidad de enviar notificaciones o actualizaciones sobre el valor de los cambios de medida que realizan. Esto se lleva a cabo contactando repetidamente con el brick e interrogando al sensor. La frecuencia de muestreo permite configurar cada cuanto tiempo se interroga al sensor. En la mayoría de los casos es posible dejar este valor a cero, indicando que se tome el valor por defecto. Sólo se cambiará este valor en los casos en los que se necesite una periodicidad menor de los valores de un sensor. Este valor viene especificado en milisegundos (1/1000 segundos).


Para los encoders de los motores, sensor de contacto y sensor de luz tarda unos 65 ms. en las lecturas. El sensor Ultrasonico y algunos otros sensores I2C como el sensor de aceleración de [4] HiTechnic o el sensor de compás de [3] MindSensors, tardarán 200ms. Si se ajusta un valor más bajo del que se tarda en disponer de una nueva lectura no dañará el hardware, pero si se ajustan todos los sensores con valores demasiado bajos, el brick podría saturarse de peticiones y experimentar un comportamiento lento.

Para optimizar la frecuencia de muestreo de un sensor se recomienda bajar hasta 50ms. Esto es debido a que valores por debajo de los 50 ms. son interpretados por el sistema como si lo que se buscase fuese priorizar dicho sensor e incluso se podrían ralentizar otros sensores para acometer dicha priorización. Una buena práctica consiste en deshabilitar el muestreo de aquellos sensores que no se estén utilizando mediante el valor “-1” o por encima de 500ms, de esta forma se liberan recursos del brick que puede dedicar a muestrear mejor los sensores que verdaderamente se consideran importantes en ese instante.

Figura 16: Configuración de la frecuencia de muestreo.
Figura 16: Configuración de la frecuencia de muestreo.

Servicios de Motor

Los motores pueden ser controlados individualmente o como un par en un drive. Los encoders están en cada uno de los motores y en los dispositivos drive, permitiendo la identificación del número de grados que un motor ha girado (360º = 1 vuelta completa).

Figura 17: Configuración del servicio de motor.
Figura 17: Configuración del servicio de motor.

La configuración inicial se realiza tal y como se describe en el apartado anterior Servicios de dispositivos.

Polaridad inversa (ReversePolarity)
Indica la dirección (polaridad) del motor. Activando esta opción con el valor “true” se invierte la dirección del motor.

Puerto del motor (MotorPort)
Identifica el puerto (A, B o C) al que el motor ha sido conectado. Si se configura con “AnyMotorPort”, el servicio del motor utilizará el primer puerto de motor disponible. Esto es útil cuando se arranca el motor desde el servicio del panel de control.

PollingFrequencyMs
Esta propiedad especifica la frecuencia de muestreo en milisegundos con la que se interrogará al encoder:


- 0: Valor por defecto.
- -1: Deshabilitado el muestreo.
- >0: La frecuencia de muestreo solicitada.

Servicio de drive (dirección)

Para que este servicio funcione adecuadamente, es necesario configurarlo para que cumpla las especificaciones del robot que se haya construido:

Figura 18: Configuración del servicio de drive.
Figura 18: Configuración del servicio de drive.

Longitud del eje (DistanceBetweenWheels) y Diámetro de las ruedas (WheelDiameter)
Es necesario medir el diámetro (altura) de las ruedas y la distancia entre ambas. Esto permitirá saber a este servicio cómo girar o como avanzar una determinada distancia.

Figura 19: Longitud del eje y diámetro de las ruedas
Figura 19: Longitud del eje y diámetro de las ruedas

Las medidas en Microsoft Robotics Studio son tomadas siempre en metros. Por tanto, para el NXT será necesario realizar la conversión de milímetros moviendo el punto decimal tres lugares a la izquierda. Por ejemplo, las ruedas que vienen en el kit del NXT miden 55 milímetros de altura, por lo que se introducirá “0.055” metros.

Puertos de los motores de las ruedas izquierda y derecha
Se debe configurar el drive para que identifique el puerto al que está conectado el motor de cada rueda (izquierda y derecha).

Polaridad inversa (ReversePolarity)
Dependiendo de cómo se haya montado el motor, es posible que avanzar hacia delante implique que sea necesario aplicar la polaridad inversa para que se alimente el motor con corriente negativa.


PollingFrequencyMs
Dependiendo de la distancia avanzada y de los grados de rotación, el motor avanzará hasta haber recorrido cierta distancia. Con este comando se utiliza el encoder interno para saber cuando parar. Si se decide no utilizar este encoder, es recomendable desconectar el muestreo introduciendo el valor -1.

Servicio de sensor de luz


Además de las propiedades descritas en el apartado anterior Servicio de drive (dirección), el sensor de luz del NXT posee la propiedad “IsON”. El sensor de luz tiene un led que puede ser controlado por este servicio encendiéndolo o apagándolo según convenga.

Figura 20: Configuración del servicio del sensor de luz.
Figura 20: Configuración del servicio del sensor de luz.



Add as favourites (170) | Quote this article on your site | Views: 4089

  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