Mostrando entradas con la etiqueta robot. Mostrar todas las entradas
Mostrando entradas con la etiqueta robot. Mostrar todas las entradas

viernes, 23 de noviembre de 2007

YATTA!!! robot con fonera!!!

Eureka! el invento de utilizar directamente la conexion ttl da sus frutos...
Voy a exponer a continuacion los problemas que me he encontrado al intentar conectar todo el tinglado:
  • parece que la masa se toma del conector DB9 (el puerto serie), pero al desactivarlo para utilizar ttl, tenemos que darle la masa externamente. En mi caso pensaba que la masa ya estaba, y solo ponia 2 hilos, el Tx y el Rx... La solucion: cojer la masa de la fonera!!! (si es que...)
  • Hasta donde yo pensaba, Tx y Rx son envio y recepcion... Pero segun me han explicado Jaime y Dani (gracias, chicos) Tx es bidireccional, y Rx es el reloj... por lo que el circuito que comunica (en este caso, la fonera) tiene que dar esas conexiones directamente... En resumen, Tx de fonera conectado con Tx de circuito, y Rx de fonera conectado con Rx de circuito.
  • Una vez resuelto el tema del circuito, se me plantea el problema de comunicar ordenes... segun el manual, hay que acabar todas las ordenes con <cr>, que es el caracter ASCII 13... trabajando desde la linea de comandos de la fonera, hay que escribir:

    echo -e "#0 P100 S100 \N016" >/dev/ttyS0.

    El \N016 es el caracter 13 EN OCTAL!!! (el -e permite que se interpreten caracteres como \n, \c...)

martes, 20 de noviembre de 2007

Conexion con TTL

Revisando el circuito que me han mandado (el controlador de 32 servos) he visto que, aparte de establecer comunicacion por puerto Serie, tambien permite la conexion por TTL.
Esto nos simplifica la electronica que tenemos que usar para controlar el robot con la Fonera. Recordemos que la Fonera tiene los conectores TTL y que habiamos puesto un circuito pequeño para su conversion a RS-232... pero si el circuito ya viene con TTL... pues todo en directo y listo!!!

viernes, 16 de noviembre de 2007

Las fotos

Pues si, he hecho unas fotos y un video del robot en funcionamiento (gracias, camara de fotos digital :), asi que vamos a ver el trasto montado y funcionando...
  • EL robot montado al completo. Lo que hay debajo es la cpu del ordenador al que le he conectado. En esta foto se pueden ver la base, el brazo y la pinza. Lo he sujetado a una madera, asi esta mas estable, ya que cuando se estira hacia delante y tiene un peso, puede llegar a volcar... :P
  • Detalle de la pinza: la verdad es que no es gran cosa, pero el mecanismo, una vez montado, parece de lo mas sencillo para hacer un modelo distinto.
  • El circuito: Esto ha sido una sorpresa. En teoria tiene que venir un controlador de 8 servos, pero me han mandado uno que controla 32!!! Cosa que les agradezco mucho :D
Y por ultimo, pero no menos importante... El VIDEO!!! Ahora podreis deleitaros con este gracioso invento. Vereis que al final pega un golpe al volver a la posicion HOME, es porque en el programa lo hace asi directamente...

miércoles, 14 de noviembre de 2007

Primeras pruebas

Despues de conectarlo todo al ordenador, e instalar el software que viene, encendemos el ordenador y parece que todo va estupendamente (debe ser la primera vez que monto algo y a la primera funciona).
Por lo pronto, el robot se puede mover independientemente por cada eje, y tambien por coordenadas (x, y, z). No he encontrado forma de definir una base y referir los movimientos desde ella, asi que por ahora... no se puede :(

Esto es todo... dentro de unos dias, a ver si empiezo a desarrollar el programa para controlarlo :D Por lo pronto, pongo aqui el enlace donde se encuentra el manual de la placa controladora que me han enviado (Manual)

El montaje

bueno, preparamos la mesa de operaciones con todas las herramientas necesarias... Este es el primer punto que hay que notar: no es un paquete como los del ikea (que vienen herramientas incluidas), pero si que vienen piezas... Distribuidas en paquetitos de bolsas, segun la parte del robot (base, brazo, pinza, placa circuito).
Personalmente, me he encontrado con varios problemas:
  • Lo primero, es que no hay instrucciones. Quiero decir, si las hay, pero tienes que bajártelas tu mismo de internet.
  • lo segundo, las instrucciones solo estan en Inglés. No es mucho problema, pero vamos, podian haberse estirado un poco (teniendo en cuenta que la pagina esta toda en Spanish :)
  • Las piezas vienen, en cierto modo, desordenadas. Si coges, por ejemplo, la base y empiezas a montarla, la ultima pieza que te dice las instrucciones que montes es el soporte de brazo (que viene en la bolsa del brazo, evidentemente), eso no seria mucho problema si no fuera porque (según las instrucciones) hay que acoplarla con tornillos que se encuentran en la base...
  • sobran muchas piezas. "si, claro, es que no las has montado todas"... pues no, realmente sobran. Parece que tienen definido que los motores están compuestos por el motor, unos tornillos, unos ejes, etc... y en el paquete de cada motor viene todo ese conjunto. Así que al principio empiezas a pensar..."no entiendo, esta pieza no esta, esta sobra..."
  • las piezas que refieren al brazo, las pinzas, y, en general, las que son superficie plana, vienen pegadas y sin taladrar. No es dificil (hay que presionar en donde es el taladro y sale la pieza que sobra) pero al principio mosquea un poco.
En lo que refiere al montaje, no es nada dificil. Es recomendable una mesa grande y limpia, para poder esparcir las piezas, y muy conveniente montar, grupo a grupo, el robot (si abres todo puedes liarte y poner tornillos que no son en piezas que no debes)

sábado, 3 de noviembre de 2007

Movimientos de un Robot

He estado revisando los apuntes del curso de Robotica que hice hace cosa de un mes. Creo interesante apuntar aqui los modos de movimiento que tienen este tipo de robots. Es importante para, a la hora de mover el robot, saber que efecto va a tener. Quizas deberian integrarse en una nueva clase que fuera, por ejemplo, CONSOLA (referido al panel de control de los robots), que controlaria estos movimientos.
Hay cuatro tipos:
  • modo eje: Se trata de mover cada eje del robot por separado. Intuyo que se trata del modo mas facil de programar, pues es incrementar o decrementar el valor de dicho eje.
  • modo mundo: en este caso, lo que movemos son una combinacion de los ejes, de manera que el punto P1 se desplace en las coordenadas. Existen al menos 3 coordenadas (x, y, z) de movimiento del robot, y otras tres (a, b, c) que indican el balanceo de la Herramienta respecto a dicho punto.
  • modo base: aqui se indican los movimientos como el modo mundo, solo que dichas variaciones estan en funcion de una base propia definida por el usuario. Hay una serie de metodos para definir bases (ya hablaremos otro dia de ellos)
  • modo Herramienta:este metodo hace variar los ejes como el modo mundo, solo que las coordenadas estan definidas en funcion de la herramienta. Normalmente un desplazamiento en Z indica un movimiento de avance o retroceso de la herramienta (por poner un ejemplo)

jueves, 1 de noviembre de 2007

Efectos al cambiar los angulos

Ya hemos visto que sucede si el punto P1 cambia, o lo que es lo mismo, hemos calculado que angulos queremos para posicionar el punto donde queremos. Nos faltaria saber que efecto tiene el cambiar el angulo sobre el punto P1 (vamos, hacer las cosas al reves).
Hoy analizamos dichos efectos:
  • sobre el eje A1: cambiar el angulo del eje A1 implica posicionar los brazos del robot en el plano formado por OO y P1. Esto es importante para los calculos de los angulos de los brazos, pues nos basamos en dicho plano.
  • sobre el eje A2: cambiar el angulo del eje A2 implica mover el punto P1 en una orbita circular, en la cual el radio es la distancia entre OO y P1. Dicho radio no varia si cambiamos este angulo.
  • sobre el eje A3: cambiar este eje cambia tanto la posicion de P1 como la distancia entre OO y P1.
Aunque A1 es importante por la cuestion indicada arriba, solo nos complicaria los calculos en la explicacion.

Bueno, una aproximacion para calcular el punto P1 dados los angulos de A2 y A3 (que denominaremos Alfa y Beta) y la longitud de sus lados (llamados A y B) se puede resolver como la suma de dos vectores:
  • el primer vector es A con angulo Alfa. Tenemos que pasarlo a coordenadas cartesianas, asi que directamente podemos hacer:
  • el segundo vector es un poco mas complicado. Resulta que el angulo Beta esta referido al punto final del primer vector (lo que es el origen del eje A3), y tenemos que calcularlo referido a OO. Este ajuste nos deja un nuevo angulo: Con este ultimo angulo ya podemos calcular las coordenadas:
  • sumar vectores es sumar las coordenadas iguales entre si, por lo que nos aparece el vector suma (o lo que es lo mismo, el punto P1):

domingo, 14 de octubre de 2007

que pasó con el eje A1???

Pues eso, que no nos tenemos que olvidar de dicho eje, mas que nada porque los calculos que hemos hecho para los ejes A2 y A3, estan basados en que el robot esta posicionado en el plano que forman OO y P1... Asi que vamos a calcular el giro que posiciona el robot en dicho plano. Lo primero, el esquema (esta vez en 3D!!!):
Tenemos que calcular el angulo Alfa. Si nos fijamos, primero hay que calcular la distancia D desde OO hasta el punto P1. Luego, utilizando D y la coordenada Z de P1 podemos calcular X'. El angulo Alfa corresponde al arcoseno que forman la coordenada y de P1 y la X' calculada:

viernes, 12 de octubre de 2007

Añadiendo un tercer brazo...

Pues aunque parezca mentira (me pongo colorada... cuando me miras... :) ) resulta que no parece tan dificil poner un tercer brazo en el robot. La idea es que entre los dos triangulos aparece un rectangulo (de altura Hd) y de longitud la del tercer brazo (Z).
Por tanto, nuestro angulo Beta se va a dividir en dos: uno para el eje A3 y otro para el eje A4.
  • Para el eje A3: sumamos 90º al angulo B1 (calculado anteriormente)
  • para el eje A4: sumamos 90ª al angulo B0.
¿Asi? ¿tan facil? ¡pero si no hemos usado la longitud del tercer brazo!. bueno supongo que no sera tan facil... pero al menos es lo que parece viendo el siguiente esquema...

Vivan las matematicas!!!

y la geometria, y la trigonometria, y pitagoras... (si es que se puede aplicar a todo, incluso a la robotica!!!) :D

El caso es que ayer, recordando aquellos temas de matematicas, se me ocurrio como solucionar e tema de calcular los angulos que tienen que tener los ejes A2 y A3 para llegar al punto P1, y saqué unas formulas que me ayudaran a calcular dichos angulos. Lo primero vamos a mirar la siguiente figura:

  1. lo primero es saber la distancia que hay desde OO hasta P1. Aplicamos pitagoras con las coordenadas x e y del P1, de manera que Siendo D la distancia.

  2. Supongamos que tenemos dos brazos de robot que miden,uno X y otro Y. Se debe cumplir, para que los brazos del robot puedan llegar a la distancia D, que:

  3. Por otra parte, nos aparecen dos segmentos que suman D, a los que llamamos AB y BC; y comparten una altura, que denominamos Hd. Se tiene que cumplir:
  4. Al despejar Hd e igualar las ecuaciones, llegamos a:
  5. sabiendo que la suma de los segmentos AB y BC es D, podemos ver que:
  6. esto, susituyendo el valor de AB en la ecuacion del punto 3, nos permite llegar a una conclusion interesante, que es:Si despejamos el valor de BC, conseguimos calcular dicho segmento:
  7. Una vez calculado uno de los segmentos, el otro segmento es facil de calcular (es la resta D - BC). Ahora nos resta calcular los angulos. Calculamos el primer angulo:
  8. por ultimo,calculamos el segundo angulo:
Pues eso, con un poco de pan y queso, hemos calculado los angulos del eje A2 y el eje A3.
Para la proxima entrega, a ver como utilizamos un tercer brazo... ya vereis que no es tan dificil...:D

jueves, 11 de octubre de 2007

problema: como mover el TCP hasta el punto [x,y,z] ???

bueno, recordando que el TCP es el Tool Centre Point (punto centro de la herramienta), el primer problema que se presenta es como narices llevar el TCP desde un punto P1 a P2, ya que cada eje mueve los ejes inmediatamente superiores...

bueno, pues despues de estar buscando por google temas de cinematica directa y cinematica inversa, llego a unas primeras conclusiones:
  1. Hay una distancia maxima desde el origen de coordenadas (OO) hasta el punto maximo de alcance del robot. si dicho punto P1 supera esa distancia, el robot NO LLEGA; asi que calcular la distancia desde OO hasta P1 es importante para descartar si se puede o no llegar al punto que queremos.(de cajon, vamos). A nivel teorico, debemos usar pitagoras en el espacio.

  2. y que hay de la distancia MINIMA??? pues que para llegar al punto OO tendriamos que poner uno de los ejes girado 0º o 360º... esto no suele ser posible Mecanicamente, asi que no podemos llegar al punto OO... por tanto, a que punto MINIMO podemos llegar???


  3. el eje A1 nos sirve para situar el robot en el plano que forman los puntos OO y P1. Una vez puesto el robot en dicho plano, el problema de calcular las posiciones de los ejes para llegar al punto se transforman en un problema de plano, no de espacio (simplificamos un poco el estudio)

  4. Al mirar el tema de cinemtica inversa, he visto que se utiliza siempre el ejemplo de dos ejes, asi que pienso que el robot debe asimilarse a algo parecido... de hecho, los ejes A2 y A3 mueven el robot, y los ejes A4, A5 y A6 la herramienta. Si descartamos dicha herramienta, podriamos plantear el problema de manera que el robot tenga que llegar a un punto intermedio, que este a una distancia MENOR (concretamente, lo que mide la herramienta y los ejes A4, A5 y A6 en su maxima longitud)

  5. En base a lo anterior, un robot de 6 ejes utiliza uno para la base (A1), tres para la muñeca (A4, A5 y A6). por lo que nos quedan 2 ejes (A2 y A3) para situarnos con el robot en P1, por lo que el problema se va simplificando, ya que ahora solo tendremos que buscar los angulos que han de formar dichos ejes para llegar al punto (y que nos resuelve la Cinematica Inversa)


Del punto 4 no estoy muy seguro, ya que esa distancia MENOR podria ser, bien lo que mide la herramienta y los ejes, o bien un poco mas (asi el juego de los ejes A4, A5 y A6 podria ser mayor).
Por otra parte, tengo que buscar como resolver la parte de cinematica inversa con brazos de distinto tamaño (por ahora solo he encontrado el ejercicio de brazos iguales).

miércoles, 10 de octubre de 2007

robot y Fonera

Pues si, hace tiempo que queria tener un robot, asi que, despues de hacer un curso de Vision Artificial aplicada a la Robotica y de manejar uno, me he dicho: "ya es el momento".

Asi que he pedido un robot en www.superrobotica.com/ y estoy esperando el momento... que ilusion!!!

Mientras tanto, empiezo a plantearme problemas para intentar resolver el proyecto que tengo en mente:

controlar el robot por el puerto serie de la fonera!!!


asi que vamos a organizarnos un poco:
  • adquirir el robot

  • adquirir fonera

  • resolver los problemas que haya que resolver (que son muchos)


por supuesto, que esto se tiene que ir mejorando... asi que poco a poco iremos modificando este indice de proyecto :D
 
Informacion de proyecto para el control de un robot mediante puerto serie desde una fonera. Jakala. Licencia GPL. oct-2007