Title: Introduccin a la Robtica
1Introducción a la Robótica
- M.C. Juan Carlos Olivares Rojas
2Agenda
- Introducción a la Robótica
- Descripción del Robot Lego Mindstorms NXT
- Programación del Robot Lego Mindstorms NXT
3Qué es la Robótica?
- Es el área de la Inteligencia Artificial (IA) que
se encarga de los estudios de los robots. - La robótica no sólo incluye elementos de IA sino
también de mecatrónica, computación y otras áreas
de la Ingeniería.
4Qué es la IA?
- El estudio de cómo lograr que la computadoras
realicen las tareas que, por el momento, los
humanos hacen mejor. Rich, Knight, 1991 - La rama de la ciencia de la computación que se
ocupa de la automatización de la conducta
inteligente. Luger y Sutublfiel, 1993.
5Qué es un Robot?
- Deriva de la palabra checa robota.
- Literalmente significa esclavitud, servidumbre
forzada - Máquina mecánica o autómata capaz de interactuar
con el entorno y tomar decisiones propias
6Características de un Robot
- Diseñados para sustituir al humano en algunas
tareas.
7Características de un Robot
- Capaces de actuar en función de la información
recibida del mundo real.
8Características de un Robot
- Los robots se clasifican según su forma en
- Androides Imitan la forma humana
- Móviles Se desplazan mediante ruedas
- Zoomórficos Con forma de animales
- Poliarticulados Con partes móviles y poco grado
de libertad.
9Características de un robot
- Un robot se debe componer de
- Mecanismo para desplazarse
- Mecanismo para percibir el mundo exterior
- Mecanismo para interactuar con el entorno
10Funcionamiento de un Robot
- Mecanismo habitual de 3 ruedas
- 2 ruedas motorizadas, con motores independientes.
- 1 rueda muerta para soportar el equilibrio.
11Funcionamiento de un Robot
- Para hacer girar el robot, se modificará la
velocidad y el sentido del giro de cada uno de
los motores por separado. - Se puede captar el entorno a través de los
sensores del robot - Choque Detecta colisiones físicas del robot.
12Funcionamiento de un robot
- Sonar Calcula la distancia del robot a otros
objetos del entorno. - Infrarrojos Detección de colores, etc.
- Cámaras Obtiene los datos mediante visión.
13Funcionamiento de un Robot
- Inicializar el robot Situarlo en el mundo.
- Recibir información por los sensores.
- Procesar la información recibida.
- Desplazar/Activar partes del robot.
14Problemas Principales de un Robot
- Localización Dónde estoy?
- Respuesta de los sensores Hay cuchara?
- Respuesta del sistema Todo ok?
15 Ejemplos de Robots
Robot Lego RCX
16Ejemplos de Robots
17Robot Lego Mindstorms NXT
- Es un Robot construido por la marca de juegos
Lego. - Se caracteriza por que este robot se puede armar
en diversos modelos, además de que es económico
(250 USD), potente y muy versátil. No es un
simple juguete.
18Robot Lego Mindstorms NXY
19NXT
- La unidad central de proceso contiene
- 4 entradas (digital y analógica)
- 3 salidas (soporte para los motores)
- Pantalla LCD Monocromática de 100x64 píxeles
20NXT
- 4 Botones de control
- Sonido
- Interfaces USB y Bluetooth
21Sensores
Tacto
Luz
Servomotor
Ultrasónico
Sonido
22Procesador
- Atmel 32-bit ARM, AT91SAM7S256
- 256 KB FLASH
- 64 KB RAM
- 48 MHz
23Coprocesador
- Atmel 8-bit AVR processor, ATmega48
- 4 KB FLASH
- 512 Byte RAM
- 8 MHz
24Comunicación Bluetooth y USB
- BlueCoreTM 4 v2.0 EDR System
- Soporta el Serial Port Profile (SPP) para
emulación de puertos de comunicación. - USB 2.0 Full speed com port (12 Mbit/s).
25Motores
- Contador de rotaciones.
- Rotación de 360 grados.
- Las posiciones son relativas.
- La velocidad máxima es de 200 RPM.
26Otras características
- Utiliza 6 pilas AA.
- Utiliza cables RJ-12 parecidos a los telefónicos
(aplanados). - Algunos fabricantes realizan otros tipos de
piezas y sensores.
27Herramientas de Programación
- LabVIEW NEXT-G
- Microsoft Robotics Studio
- Otras
- NXC (and NBC)
- Robot C
- pbLua
- Java
28Programación
- Basado en un ambiente gráfico de desarrollado
(programación en bloques) desarrollado por
National Instruments los desarrolladores de
LabView. - Permite el desarrollo rápido de aplicaciones.
Útil para niños.
29Programación
- Está muy limitado para realizar programas más
complejos, por lo que se utilizan otros entornos. - A continuación se listan los pasos para programar
una aplicación en este Robot
30Programación
- Se arma el modelo de robot (se pueden seguir los
pasos indicados en la guía o se desarrolla por
cuenta propia). - Se realiza la programación en bloques.
- Se baja el programa al Robot
31Programación
- Se corre el programa en el Robot y se ven los
resultados obtenidos. - No se cuenta con un emulador para probar los
desarrollos lo que dificulta un poco el proceso
de desarrollo.
32Entorno de Desarrollo
Construcción
Programación
Ejecución
33Entorno de Desarrollo
Guía
Zona de Programación
Bloques
Propiedades
34Otros entornos
- NXC (Not eXactly C) es un lenguaje similar NQC,
el cual es la forma más popular de programar el
RCX. Está basado en el ensamblador NBC (Next
Byte Code). - RobotC es un entorno no gratuito desarrollado por
CMU.
35Programación con NXC
- Se tienen algunas limitaciones como
- No existe pila
- Memoria Limitada
- Limitado a 256 procesos (task)
36Programación con NXC
- include "NXCDefs.h
- task main()
- SetSensor( IN_1, SENSOR_TOUCH )
- while( true )
- if( Sensor( IN_1 ) )
- PlayToneEx(440, 100, 3, false)
- TextOut( 0, LCD_LINE1, "TOUCHING!")
- while( Sensor( IN_1 ) )
-
-
37Programación con NXC
- TextOut( 0, LCD_LINE1, "---------")
- while( !Sensor( IN_1 ) )
-
38Preguntas, dudas y comentarios?