You are on page 1of 45

Robotic

M.C. Juan Carlos Olivares Rojas


jolivares@uvaq.edu.mx
April, 2009
Outline

Introduccin a la Robtica

Descripcin del Robot Lego Mindstorms NXT

Programacin del Robot Lego Mindstorms NXT

Otras aplicaciones de la robtica


Qu es la Robtica?
Es el rea de la Inteligencia Artificial (IA) que
se encarga de los estudios de los robots.

La robtica no slo incluye elementos de IA


sino tambin de mecatrnica, computacin y
otras reas de la Ingeniera.

3
Qu es un Robot?
Deriva de la palabra checa robota.

Literalmente significa esclavitud,


servidumbre forzada

Mquina mecnica o autmata capaz de


interactuar con el entorno y tomar decisiones
propias 4
Caractersticas de un Robot
Diseados para sustituir al humano en
algunas tareas.

5
Caractersticas de un Robot
Capaces de actuar en funcin de la
informacin recibida del mundo real.

6
Law of Robotic
Isaac Asimov in 1942 defined the following
rules:

A robot may not injure a human being or,


through inaction, allow a human being to come
to harm.

A robot must obey orders given to it by human


beings, except where such orders would conflict
with the First Law.
Law of Robotics
A robot must protect its own existence as long
as such protection does not conflict with the
First or Second Law.

Exist other laws related with the idea of a Robot


must know it is a Robot.
Caractersticas de un Robot
Los robots se clasifican segn su forma en:

Androides: Imitan la forma humana

Mviles: Se desplazan mediante ruedas

Zoomrficos: Con forma de animales


9
Poliarticulados: Con partes mviles y poco
grado de libertad.
Caractersticas de un robot
Un robot se debe componer de:

Mecanismo para desplazarse

Mecanismo para percibir el mundo exterior

Mecanismo para interactuar con el entorno


10
Funcionamiento de un Robot
Mecanismo habitual de 3 ruedas:

2 ruedas motorizadas, con motores


independientes.

1 rueda muerta para soportar el equilibrio.

11
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 travs de los


sensores del robot:

Choque: Detecta colisiones fsicas del


12
robot.
Funcionamiento de un robot
Sonar: Calcula la distancia del robot a otros
objetos del entorno.

Infrarrojos: Deteccin de colores, etc.

Cmaras: Obtiene los datos mediante visin.

13
Funcionamiento de un Robot
1. Inicializar el robot: Situarlo en el mundo.

2. Recibir informacin por los sensores.

3. Procesar la informacin recibida.

4. Desplazar/Activar partes del robot.


14
Problemas Principales de un
Robot
Localizacin Dnde estoy?

Respuesta de los sensores: Hay cuchara?

Respuesta del sistema: Todo ok?

15
Robot Lego
RCX

Ejemplos de Robots
Ejemplos de Robots

Sony AIBO
Robots Frameworks
Exist a lot of framework to work with Robot.

We work with NXT Mindstorm of Lego


Company. http://mindstorms.lego.com

Other frameworks are:


Parallax, http://www.parallax.com
XiOR, http://www.xior.com
NeoRobotic, http://www.neorobotic.com
Arduino, http://www.arduino.cc
Constructive Games
Exist some games like Meccano,
http://www.meccano.com, which main objective
is build machines like Robots with
electromechanism components. One example
is Spykee (http://www.spykeeworld.com)

In general, Robots must be constructed by


specialized Engineers.

Some kind of Robots are arms and no


neccesary are similar to Movie Robots (R2D2)
Robot 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, adems de que
es econmico ($250 USD), potente y muy
verstil. No es un simple juguete.
20
Robot Lego Mindstorms NXY

21

Ejemplos de
NXT
La unidad central de proceso contiene:

4 entradas (digital y analgica)

3 salidas (soporte para los motores)

Pantalla LCD Monocromtica de 100x64


pxeles
NXT
4 Botones de control

Sonido

Interfaces USB y Bluetooth

23
Sensores

Tacto

Luz
Servomotor

Sonido Ultrasnico
Procesador
Atmel 32-bit ARM, AT91SAM7S256

256 KB FLASH

64 KB RAM

48 MHz
25
Coprocesador
Atmel 8-bit AVR processor, ATmega48

4 KB FLASH

512 Byte RAM

8 MHz
26
Comunicacin Bluetooth y USB
BlueCoreTM 4 v2.0 +EDR System

Soporta el Serial Port Profile (SPP) para


emulacin de puertos de comunicacin.

USB 2.0 Full speed com port (12 Mbit/s).

27
Motores
Contador de rotaciones.

Rotacin de 360 grados.

Las posiciones son relativas.

La velocidad mxima es de 200 RPM.


28
Otras caractersticas
Utiliza 6 pilas AA.

Utiliza cables RJ-12 parecidos a los


telefnicos (aplanados).

Algunos fabricantes realizan otros tipos de


piezas y sensores.
29
Herramientas de Programacin
LabVIEW NEXT-G

Microsoft Robotics Studio

Otras:
NXC (and NBC)
Robot C
pbLua
Java 30
Programacin
Basado en un ambiente grfico de
desarrollado (programacin en bloques)
desarrollado por National Instruments los
desarrolladores de LabView.

Permite el desarrollo rpido de aplicaciones.


til para nios.
31
Programacin
Est muy limitado para realizar programas
ms complejos, por lo que se utilizan otros
entornos.

A continuacin se listan los pasos para


programar una aplicacin en este Robot:
Programacin
Se arma el modelo de robot (se pueden
seguir los pasos indicados en la gua o se
desarrolla por cuenta propia).

Se realiza la programacin en bloques.

Se baja el programa al Robot


33
Programacin
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.

34
Entorno de Desarrollo
Construccin

Programacin

Ejecucin

35
Gua

Zona de Programacin
Bloques

Propiedade
s

Entorno de Desarrollo
Otros entornos
NXC (Not eXactly C) es un lenguaje similar
NQC, el cual es la forma ms popular de
programar el RCX. Est basado en el
ensamblador NBC (Next Byte Code).

RobotC es un entorno no gratuito


desarrollado por CMU.
37
Programacin con NXC
Se tienen algunas limitaciones como:

No existe pila

Memoria Limitada

Limitado a 256 procesos (task)


38
Programacin 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 ) ); 39
}
Programacin con NXC
TextOut( 0, LCD_LINE1, "---------");
while( !Sensor( IN_1 ) );
}
}

40
Construccin de Pistas de Robots
Detalles de la Pista
Competencia de autos
Evaluacin de Obstculos
Questions?

You might also like