Autor Tema: Proyecto: Robot Humanoide  (Leído 20125 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Proyecto: Robot Humanoide
« en: 02 de Junio de 2006, 11:24:04 »
Bueno, por consejo de algunos compañero y para tener las cosas un poco mas ordenadas abro este hilo para todo el que necesite informacion acerca de este interesante proyecto.

Primero que nada cabe recalcar que este proyecto lo estoy realizando para la Universidad Nacional de Ingenieria, en Lima, Peru; por lo que algunas cosas no podre publicar, pero si puedo ayudar con todo lo que pueda.

Basicamente el proyecto consta de 3 partes:
  • Mecanica: Comprete al diseño mecanico de la estructura, con el fin que mantenga las proporciones humanas.
  • Control: Aca esta la parte mas compleja del proyecto pues la idea es hacerlo caminar y que pueda hacerlo autonomamente. Para ello se van a tener en cuenta temas relacionados a Fuzzy Logic, Redes Neuronales, Sistemas Multicuerpos, Control Moderno, Dinamica, Robotica, etc... Ademas de desarrollar el programa visual para controlar el robot.
  • Electronica: Aca veremos todo lo necesario para darle vida al robot. Pues el robot cuenta con 24 grados de libertad(24 servos), manejado via radio frecuencia desde un ordenador. Ademas de contar con una camara para reconocimiento de patrones y una pantalla LCD Nokia para mostrar algunas emociones.

Como veran lo planteado en el proyecto es bastante complejo y la parte que me toca desarrollar como lo entenderan es la parte electronica, por ello solo comentare la parte electronica, ya que lo demas les compete a mis compañeros de proyecto.

Ya se ha empezado viendo lo concerniente a los servomotores y su control en el siguiente hilo:
http://www.todopic.com.ar/foros/index.php?topic=11441.0

Como lenguaje de programacion de los microcontroladores utilizare el CCS por ser el lenguaje de mejores prestaciones.

Pronto les presentare un esquema de como funcionaria la parte electronica teniendo en cuenta todos los dispositivos a manejar. Por el momento dejo un esquema del robot humanoide y sus grados de libertad.

Como se podran dar cuenta aun estamos desarrollando el robot, por lo que muchas cosas aun no estan fijas, pues recien me encuentro haciendo los algoritmos para el control de servos. Esto se ira dando a un paso lento pero seguro :mrgreen:


PD: Lo mas probable es que no tenga mucho tiempo de postear, pues me encuentro trabajando y avanzo el proyecto en mi poco tiempo libre.
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Robot Humanoide
« Respuesta #1 en: 02 de Junio de 2006, 12:23:23 »
Hola:

Desde la otra ves que platicamos por el msn me quede con muchas ganas de hacer algo asi, pero aun me queda grande,  ahora ando con el brazo con 6 modestos servos  :D, pero luego pensaba en un bipedo, para un humanoide a mas de mucho trabajo interviene tambien mucho dinero, asi que me conformare por ahora solo con seguir el hilo  :D, veamos como lo vas desarrollando,

Un abrazo...  :mrgreen:

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Proyecto: Robot Humanoide
« Respuesta #2 en: 02 de Junio de 2006, 15:38:17 »
bonito proyecto! :)

ya lo estoy viendo!! como el de la imagen... saludando al entrar en casa jajaja

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Proyecto: Robot Humanoide
« Respuesta #3 en: 03 de Junio de 2006, 08:09:33 »
Magnifica idea, por aqui estare siguiendo los avances... :-)
Saludos desde Granada, España.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Re: Proyecto: Robot Humanoide
« Respuesta #4 en: 03 de Junio de 2006, 14:20:10 »
Gracias por los comentarios, aca les muestro un esquema de como va a ser el funcionamiento del robot. En el podemos ver claramente que son 2 partes, el modulo de administracion de datos del robot y el otro el modulo de mando a distrancia.
  • Modulo de Aministracion: Principalmente su funcion es manejar los 24 servos independientemente cada uno de ellos para lo cual se penso tener 3 pic's que controlen 8 servos cada uno. Ademas de tener memorias 24LC10025 para guardar movimientos simples. Tendra ademas una camara CMU para poder detectar colores y si se puede movimientos de alguna persona e imitarlos, para ello estan los dsPic's en los cuales se harian los calculos (aun todo esta en papel asi que no estamos seguros que se podra) Tambien podemos ver que tendra un LCD Nokia para que el bot miestre sus emociones  :D
  • Modulo de Mando a Distancia: Podemos notar que usaremos comunicacion via RF usando las bondades de USB para la comunicacion con la PC. Ya que contaremos con una camara se pretende ver las imagenes de la camara en la PC para hacer calculos en caso que sean necesario y para visualizar lo visto por el bot.

Como ven el reto es grande y aun estamos en pañales... pero con paciencia y dedicacion se podra llegar lejos.

Nos vemos  :-/ :-/ :-/ :-/ :-/
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado Burzredion

  • PIC10
  • *
  • Mensajes: 28
    • Burz n' Bots
Re: Proyecto: Robot Humanoide
« Respuesta #5 en: 08 de Junio de 2006, 16:51:22 »
Hola Artifox:

Me parece genial la idea del Robot Humanoide, también seguiré de cerca el proyecto. Me alegra saber que estan trabajando en este tipo de proyecto y que las metas propuestas son altas, espero tener la oportunidad de ver el proyecto terminado en algún evento de la talla de los Robogames o la Robocup.

Suerte,

bytes.
Si lo escuchamos, lo olvidamos; si lo vemos, lo recordamos; si lo hacemos, lo entendemos. (Proverbio)





Saludos desde Lima-Perú

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Re: Proyecto: Robot Humanoide
« Respuesta #6 en: 18 de Junio de 2006, 23:47:20 »
Al fin me di tiempo de escribir algo... :mrgreen:

Control de Servomotores El primer paso, una vez que ya se tiene definido los servomotores va a ser hacer los algoritmos de control de servomotores. Las características del control de servomotores son:

  • Manejo de 8 o 24 servoscon un periodo de 20ms y tiempo en alto de 500us a 2500us.
  • Control de posicion independiente de cada servo.
  • Comunicación por I2C para recibir los datos desde un PIC o la PC.

Como habia previsto se va a usar el protocolo de comunicacion I2C a alta velocidad (400 Kbps) ya que brinda ventajas para comunicar varios dispositivos en un par de lineas (SDA y SCL) Al tener 24 servomotores (o posiblemente mas) debemos fijar un protocolo para enviar los datos y para este caso lo hare de la sig manera:

[Start][Direccion+W][#Motor 1][Valor de la Posicion 1]...........[#Motor n][Valor de la Posicion n][Stop]

Con lo que para posicionar cada servo, es necesario enviar que servo se va a mover y un valor de posicion el cual estara en un rango de [0;250] Con lo que tendriamos una resolucion de 8us en el rango de [500; 2500]us de tiempo en alto. Por tanto si  tengo una amplitud de giro en el servomotor de 180°, entonces con esta resolucion de 250 posiciones tengo una resolucion de 0.72°/posicion, que espero que sea suficiente para posicionar el robot...

Ahora si calculamos cuanto tiempo me tomaria recibir los 24 valores para una posicion tendriamos:
Total de bits= 1[Start]+ 9 [Direccion +ACK]+ 24*(9[#Motor+ACK]+9[Posicion+ACK] )+1[Stop]
Total de bits= 443 bits
Tiempo estimado= 443b/(400Kb/s)= 1107.5us o 1.1075ms

Si el tiempo que hay entre cada actualizacion de los servos es de 2500us y el tiempo de atencion a la interrupcion por I2C va a ser de 1107.5us, lo mas probable es que en algun momento deje de atender a un motor para atender la llegada de datos...

Por lo que para mejorar eso podia buscar una forma de comunicacion mas rapida (serial sincrona??) o repartir el trabajo de un pic en varios es decir, hacer que un PIC controle solamente 8 servos a la vez con lo que tendriamos una reduccion de tiempo a 387.5us lo que seria mas manejable para la actualizacion de datos en el PIC sin que varie mucho los tiempos de los servos...

Aunque aun no es definitivo... vamos a ver como va saliendo.... Ya les subire codigos y demas... a medida que me valla funcionando  :2]

Bueno.... como les dije mi avance es de a pocos... Ojala y les interese... Un abrazo :-/ :-/ :-/ :-/ :-/ :-/

Nos vemos :mrgreen:
« Última modificación: 18 de Junio de 2006, 23:49:28 por Artifox »
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Re: Proyecto: Robot Humanoide
« Respuesta #7 en: 18 de Junio de 2006, 23:51:40 »
Por cierto encontre una pagina de unos paisanos de LordLafebre por aca:

http://loslocosrh.blogspot.com/

Esta interesante para los que les gusta la parte cientifica... :-/ :-/ :-/ :-/ :-/
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Proyecto: Robot Humanoide
« Respuesta #8 en: 19 de Junio de 2006, 00:06:45 »
Hola:

interesante informacion, a ver cuando publicas ya unas fotitos de tu bot Victor  :P  :D  :mrgreen:  :-/

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Re: Proyecto: Robot Humanoide
« Respuesta #9 en: 19 de Junio de 2006, 00:40:15 »
Aun estamos viendo el diseño mecanico... apenas tenga algunas diseños a la mano los pongo por aca... :-)
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Robot Humanoide
« Respuesta #10 en: 19 de Junio de 2006, 07:17:19 »
Hola Artifox

Veo que las características y también los problemas con la velocidad de comunicación son casi iguales a las de mi proyecto de controladora http://www.todopic.com.ar/foros/index.php?topic=12528.0.

Si no entiendo mal, quieres atender la comunicación casi cada us. No entiendo por qué. Te comento, yo comienzo los 24 pulsos de control de los servos a la vez, lo que yo llamo en paralelo, y hasta el pulso más ancho posible transcurren 2500us, por lo que hasta que comiencen otros 24 pulsos quedan 17,5ms. En este tiempo puedo atender el i2c de sobra, mi problema es con la comunicación por puerto serie. A 115200 no sé si podré atender una orden para los 24 servos, con un protocola parecido al tuyo.

En un rato intentaré colgar una simulación en Proteus para que hagáis pruebas y detectar errores, siempre ven 100 ojos más que 2. :)
Saludos desde Almería, España

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Proyecto: Robot Humanoide
« Respuesta #11 en: 19 de Junio de 2006, 09:47:31 »
Como bien indicas, inicias todos los servos al mismo tiempo y después las señales de control van cayendo según el tiempo establecido para cada servo, lo que si consigue mayor rendimiento del micro, es una vez que pasaron los 2.5mSg de control, seria reprogramando el timer en tiempo de ejecución para que cuente directamente 17.5mSeg restantes de forma continua, y asi eliminar el chopeado de este para el control de la resolución del servo, que es lo que realmente ocupa tiempo de ejecución... de esta forma estuve controlando 8 servos, usando la usart a 2400b, mas un display de 2x16caracteres, y algunos otros elementos. El micro era un 16F877 a 20Mhz.
Saludos desde Granada, España.

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Robot Humanoide
« Respuesta #12 en: 19 de Junio de 2006, 11:33:29 »
Acabo de subir a mi espacio web http://www.ual.es/personal/salguero/control_servos/ la simulación en proteus y su firmware. Si sois tan amables de probrarlo y encontrar errores para ir depurandolo, os estaré muy agradecido.
Saludos desde Almería, España

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Proyecto: Robot Humanoide
« Respuesta #13 en: 19 de Junio de 2006, 13:40:12 »
Manofwar, aunque no biene al caso, te comento que debes de revisar los permisos de tu enlace por que permite retroceder en el arbol de directorio. NO vaya a haber algun desgraciao que le de por borrar algo. Por cierto tambien seria interesante el fuente del servo.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Manofwar

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 156
Re: Proyecto: Robot Humanoide
« Respuesta #14 en: 19 de Junio de 2006, 18:45:40 »
Gracias por el aviso jfh900, pero los permisos creo que están bien, al menos en mis directorios. Aunque si borran algo no se pierde nada, tengo copia de seguridad.

En cuanto al codigo fuente, cuando lo tenga depurado y funcionando correctamente lo colgaré. Ahora mismo me da verguenza hasta mirarlo, con comentarios hechos sobre la marcha que a veces hasta yo mismo no se lo que hace el código si le hago caso a los comentarios.

Si lo del código lo dices por la comprobación de errores, me refería al funcionamiento en general, comprobar que los servos se posicionan donde se le ordena, que no se mueven más de los que deberían, etc.
Saludos desde Almería, España