sábado, 15 de diciembre de 2012

Clase 15 Dic 2012

Control
En una matriz de 3x3 se colocan objetos en diferentes puntos, el brazo robotico debe realizar movimientos para leer la posición de los objetos dentro de la matriz.

Desarrollo: 

1-. Para soltar los servos y decidir la posición de lectura

inicio:
SERVO 0 = @
SERVO 1 = @

LET A= $SERVO(0)
LET B= $SERVO(1)
PRINT "A: ", A, "; B: ", B

LET K=$KIR
PRINT "K: ", K
IF K<0 THEN
  GOTO inicio
ENDIF

2-. Realizar el movimiento del servo en las medidas, dividida en tres estaciones.

MOVE @{2,15,128},10,1000
WAIT 50
MOVE @{2,48,128},10,1000
WAIT 50
MOVE @{2,76,128},10,1000
WAIT 50

3-. Leer en cada una de las estaciones antes definidas.

inicio:

MOVE @{2,15,128},10,1000
WAIT 50
LET L=$PSD
PRINT "a: ", L

MOVE @{2,48,128},10,1000
WAIT 50
LET M=$PSD
PRINT "b: ", M

MOVE @{2,76,128},10,1000
WAIT 50
LET N=$PSD
PRINT "c: ", N

LET K=$KIR
IF K<0 THEN
  GOTO inicio
ENDIF

4-.Recorre, Lee y Define el cuadrante de la matriz
inicio:

'primer movimiento
MOVE @{2,15,128},10,1000
WAIT 20
LET L=$PSD
PRINT "a: ", L


'segundo movimiento
MOVE @{2,48,128},10,1000
WAIT 20
LET M=$PSD
PRINT "b: ", M


'tercer movimiento
MOVE @{2,76,128},10,1000
WAIT 20
LET N=$PSD
PRINT "c: ", N

LET A = 0
LET B = 0
LET C = 0
LET D = 0
LET E = 0
LET F = 0
LET G = 0
LET H = 0
LET I = 0

PRINT "| ",A," | ",B," | ",C," |"
PRINT "| ",D," | ",E," | ",F," |"
PRINT "| ",G," | ",H," | ",I," |"

IF L<=30 & L>25 THEN
A=1
ENDIF

IF L<=25 & L>20 THEN
D=1
ENDIF

IF L<=20 & L>=16 THEN
G=1
ENDIF

IF M<=30 & M>25 THEN
B=1
ENDIF
IF M<=25 & M>20 THEN
E=1
ENDIF
IF M<=20 & M>=16 THEN
H=1
ENDIF

IF N<=30 & N>25 THEN
C=1
ENDIF
IF N<=25 & N>20 THEN
F=1
ENDIF
IF N<=20 & N>=16 THEN
I=1
ENDIF

PRINT "------------"
PRINT "| ",A," | ",B," | ",C," |"
PRINT "| ",D," | ",E," | ",F," |"
PRINT "| ",G," | ",H," | ",I," |"

viernes, 14 de diciembre de 2012

Brazo Robótico- Circulo

Circulo

MOVE @{2,95,121},10,1000
WAIT 500
MOVE @{2,95,136},10,1000
WAIT 500
MOVE @{2,119,185},10,1000
WAIT 500
MOVE @{2,146,221},10,1000
WAIT 500
MOVE @{2,164,221},10,1000
WAIT 500
MOVE @{2,56,24},10,1000
WAIT 500
MOVE @{2,69,53},10,1000
WAIT 500
MOVE @{2,90,94},10,1000
WAIT 500
MOVE @{2,91,115},10,1000
WAIT 500



Video Navideño ROBOBUILDER
http://www.youtube.com/watch?v=7LnKTErIsyE

sábado, 1 de diciembre de 2012

Clase 01 Diciembre

Como imprimir Hola mundo 10 veces

LET i=1
inicio:
  PRINT "Hola mundo", i
  IF i=10 THEN salir ELSE sumar
sumar:
  LET i=i+1
  GOTO inicio
salir:
  PRINT "Hemos impreso ", i," Lineas con la frase hola mundo"

Listas

//suelta el servo y muestra su posición

inicio:
SERVO 0 = @
LET A=$SERVO(0)
PRINT A

IF $KIR < 0 THEN
  GOTO inicio
ENDIF

//hola mundo 10 veces

let 1
print "hola mundo"
if i=10 then 60 else 40
let i=I+1
goto 20
Print "hemos impreso ", i," Lineas con la frase hola mundo"

// imprimir hoal mundo 10 veces

LET i=1
inicio:
  PRINT "Hola mundo", i
  IF i=10 THEN salir ELSE sumar
sumar:
  LET i=i+1
  GOTO inicio
salir:
  PRINT "Hemos impreso ", i," Lineas con la frase hola mundo"

//manejo de listas
lista : el primer elemento declara el largo de la lista

LET i=0
  PRINT "----- PROBANDO LISTAS -----"
  LIST A=5,4,3,2,1,6
  PRINT "Muestra la lista  ", @a
Elementos:
  PRINT "Elemento en la posicion ",i, "--> ", @a[i]
  i=i+1
  IF i=5 THEN salir ELSE elementos
salir:
  LET A=@A
  PRINT "Largo de la lista= ";A

 
PRINT "____valores segun Ascii en Out"
LIST A=5,65,66,67,68,69
  FOR i=0 TO 4
  PRINT "  "
  OUT @a[i]
  NEXT i

//$RND: Ramdom
mod: obtiene el resto de la división con otro numero.

PRINT "--> generamos numeros al azar y obtenemos los mod de 6"
FOR j=1 TO 10
PRINT $RND mod 6
NEXT j

sábado, 24 de noviembre de 2012

Brazo Robótico

Brazo Robótico (parte de ROBOBUILDER)


Una vez conectado el brazo al computador, se debe verificar el puerto (COM) desde
Panel de control
          Sistema
                Hardware
                        Administrador de dispositivos
                                  Puertos (COM & LDP)

Abrir el editor BasicIDE 455.exe
tiene 3 vistas: editor, output, VT100(la consola)
en output ocurre lo siguiente
En la primera sección, asigna un numero a cada una de las lineas de codigo
En la segunda sección, traduce las líneas de codigo al lenguaje que el robot lo pueda entender
En la tercera sección, 


Algunos comandos para la consola del editor:
i: modo ingreso
r: modo ejecución
R: ejecuta el programa en modo debug
l: lista programa
c: borrar memoria

Pagina con codigos de referencia
http://code.google.com/p/robobuilderlib/

Para asignar el valor a una variable se utiliza:
let variable=numero      

Etiquetas  
palabra:

$KBD -> para reconocer lo que ingresa por teclado
             Let A=$KBD
             Print A
$IR -> control remoto
$KIR -> mescla control con teclado

$PSD -> mide la distancia de un objeto

Para probar que el codigo funciona se debe 
Compilar
     Descargar (descarga el programa al complilador del robot)

         Precionar el botón rojo del control remoto o escribir R en la consola

Ejemplo:
Inicio:
Let A=$KBD
Print A
goto Inicio
 ____
este prgrama permite soltar la articulación (en este caso la articulación 0)

Inicio:
servo 0=@
let A= $servo(0)
print A
if $KIR < 0 then
goto inicio
endif





                         

viernes, 26 de octubre de 2012

Tarea 10

Preguntas 

1)Cuáles son los tipo de robot?  

Tipo A : Manipulador.
Tipo B : Manipulador automático.
Tipo C : Robot programable con trayectoria.
Tipo D : Robot capaz de captar datos de su entorno y adaptar su acción.

 2)Cómo se clasifican los agentes autómatas?

Reactivo.
Reactivo basado en el modelo.
Basado en objetivos.
Basado en utilidad.
Que aprenden.
De consultas.

3)Al trabajar en cinemática, es verdad que una propiedad es que la multiplicación de matrices es conmutativa?

No, puesto que el orden de multiplicación en las matrices sí importa y se debe realizar desde la primera transformación hacia adelante.
ejemplo:
M=original
M1=rotación eje X
M2=traslación
M3=rotación eje Z
se debe multiplicar : [(M*M1)*M2]*M3

4)Qué busca la transformación de Laplace?

Busca transformar ecuaciones diferenciales en ecuaciones algebraicas. Utilizado para simplificar el calculo del control PID

5) Cuales son los componentes típicos de un Actuador?

Inductancia (L)
Resistencia (R)
Constante de fuerza eletromotriz (Ke)
Constante torque (Kt)
Momento de inercia (I)
Rozamiento viscoso(b)

6) Cual es la finalidad del modelo Denavit Hartenberg?

Busca calcular todas las modificaciones necesarias por un circuito para llegar a la posición final en un conjunto de articulaciones.

sábado, 20 de octubre de 2012

Simulación Brazo Robótico


En MatLab

Li=link([alphai ai tetai di sigmai)

R= robot ({Li Li+1 Li+2})
R.name='RoboKit';
plot (R,[0 0 0])
donde sigma= 0 (rotación) o sigma=1 (prisma, movimiento sobre el eje)
además alpha y teta debe estar en radianes.