robótica m.c. juan carlos olivares rojas agenda introducción a la robótica descripción del robot...

41
Robótica M.C. Juan Carlos Olivares Rojas

Upload: roldan-fleitas

Post on 23-Jan-2015

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Robótica

M.C. Juan Carlos Olivares Rojas

Page 2: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Agenda

Introducción a la Robótica

Descripción del Robot Lego Mindstorms NXT

Programación del Robot Lego Mindstorms NXT

Otras aplicaciones de la robótica2

Page 3: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

¿Qué 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.

3

Page 4: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

¿Qué 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 4

Page 5: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Características de un Robot• Diseñados para sustituir al humano en algunas

tareas.

5

Page 6: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Características de un Robot• Capaces de actuar en función de la información

recibida del mundo real.

6

Page 7: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Caracterí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.

7

Page 8: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Características de un robot• Un robot se debe componer de:

• Mecanismo para desplazarse

• Mecanismo para percibir el mundo exterior

• Mecanismo para interactuar con el entorno8

Page 9: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Funcionamiento de un Robot• Mecanismo habitual de 3 ruedas:

• 2 ruedas motorizadas, con motores independientes.

• 1 rueda “muerta” para soportar el equilibrio.

9

Page 10: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Funcionamiento 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.10

Page 11: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Funcionamiento 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.

11

Page 12: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Funcionamiento de un Robot

1. Inicializar el robot: Situarlo en el mundo.

2. Recibir información por los sensores.

3. Procesar la información recibida.

4. Desplazar/Activar partes del robot.12

Page 13: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Problemas Principales de un Robot• Localización ¿Dónde estoy?

• Respuesta de los sensores: ¿Hay cuchara?

• Respuesta del sistema: ¿Todo ok?

13

Page 14: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Ejemplos de Robots

Robot Lego RCX

Page 15: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Ejemplos de Robots

Sony AIBO

Page 16: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Robot Lego Mindstorms NXT

16

• 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.

Page 17: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Robot Lego Mindstorms NXY

Ejemplos de Robots

17

Page 18: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

NXT • 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

Page 19: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

NXT• 4 Botones de control

• Sonido

• Interfaces USB y Bluetooth

19

Page 20: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Sensores

Luz

Sonido

Tacto

Ultrasónico

Servomotor

Page 21: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Procesador• Atmel 32-bit ARM, AT91SAM7S256

• 256 KB FLASH

• 64 KB RAM

• 48 MHz21

Page 22: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Coprocesador• Atmel 8-bit AVR processor, ATmega48

• 4 KB FLASH

• 512 Byte RAM

• 8 MHz22

Page 23: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Comunicació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).

23

Page 24: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Motores• Contador de rotaciones.

• Rotación de 360 grados.

• Las posiciones son relativas.

• La velocidad máxima es de 200 RPM.24

Page 25: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Otras 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.

25

Page 26: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Herramientas de Programación• LabVIEW NEXT-G

• Microsoft Robotics Studio

• Otras:– NXC (and NBC)– Robot C– pbLua– Java

26

Page 27: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programació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.

27

Page 28: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programació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:

Page 29: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programació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 Robot29

Page 30: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programació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.

30

Page 31: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Entorno de Desarrollo

31

Construcción

Programación

Ejecución

Page 32: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Entorno de Desarrollo32

Propiedades

Zona de Programación

Bloques

Guía

Page 33: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Otros 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.

33

Page 34: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programación con NXC• Se tienen algunas limitaciones como:

• No existe pila

• Memoria Limitada

• Limitado a 256 procesos (task)34

Page 35: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programació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 ) ); }

35

Page 36: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Programación con NXC TextOut( 0, LCD_LINE1, "---------"); while( !Sensor( IN_1 ) ); }}

36

Page 37: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Construcción de Pistas de Robots

Page 38: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Detalles de la Pista

Page 39: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Competencia de autos

Page 40: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

Evaluación de Obstáculos

Page 41: Robótica M.C. Juan Carlos Olivares Rojas Agenda Introducción a la Robótica Descripción del Robot Lego Mindstorms NXT Programación del Robot Lego Mindstorms

¿Preguntas, dudas y comentarios?