Autor Tema: Construyendo un robot desde cero: tracción y dirección  (Leído 26332 veces)

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Construyendo un robot desde cero: tracción y dirección
« en: Septiembre 07, 2011, 12:44:45 pm »
Construyendo un robot desde cero: tracción y dirección

Hola!

Vamos a ver si entre todos podemos diseñar varios robots. :rolleyes2:

La idea es la siguiente: varios integrantes del foro tenían ganas de construir un robot, pero no todos querían que tuviesen las mismas características. Así que decidimos dividir el proyecto en partes, y entre todos ir aportando ideas y propuestas para que cada uno pueda ir avanzando en su proyecto particular.

Si te interesa ser parte y construir tu propio robot, esta es tu oportunidad!  8)
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #1 en: Septiembre 07, 2011, 03:49:07 pm »
Se pueden utilizar "ruedas motrices" armadas como se explicó en este post.

Otra alternativa es "canibalizar" dos atornilladoras a baterías y utilizar las partes. Se puede usar el motor y la reductora, las baterías, el cargador, etc. Y no son tan caras: se consiguen por menos de 25 u$s, bastante menos de lo que sale un motor + caja reductora.

Se puede usar un par de ruedas motorizadas y una tercer rueda "loca", dirigiendo el robot mediante la velocidad de cada rueda motriz. O de muchas otras maneras.

¿Que te parece?
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

MatiasNqn

  • PIC12F
  • **
  • Mensajes: 179
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #2 en: Septiembre 07, 2011, 06:18:53 pm »
Yo ando con ganas de armar uno con 2 ruedas y la tercera loca.

Tengo motores paso a paso de impresoras Epson, de los cuadrados, como para acoplarle directamente una rueda (que todavía no encontré). En cuanto al driver, hice una placa para el integrado DRV8821 de TI, que tengo a medio armar.

Con un poco de suerte, esa placa me sirve para mover los 2 motorcitos.

Como rueda loca, pienso usar una de las que venden en Easy para los muebles, hay de varios tamaños. Me falta ver que chásis utilizaré, pero mirando un poco las opciones, me inclino por una caja de paso, de las que se usan en instalaciones eléctricas, es robusta, fácil de conseguir y barata sobre todo. Saludos!

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #3 en: Septiembre 07, 2011, 06:22:28 pm »
¡Buena idea!

Yo creo que voy a usar el mismo esquema, con dos atornilladoras como "motor/reductor", con PWM para la velocidad y una ruda loca.

Como va a ser grande, puede que de chassis use pedazos de la estructura interna de los gabinetes, cortadas y unidas nuevamente para tener la forma adecuada :P
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

juani_c

  • PIC10F
  • *
  • Mensajes: 56
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #4 en: Septiembre 07, 2011, 07:08:33 pm »
Yo ando con ganas de armar uno con 2 ruedas y la tercera loca.

estoy tratando de terminar un velocista (no se si cae bajo la definición de robot) para las competencias d robotica de la UTN con esa estructura de locomoción. Los motores fue todo un tema, use motorcitos de lectoras y cajas reductoras de unos juguetes a fricción (de los chinos, baratitos nomás...)
despues si puedo subo unas fotos

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #5 en: Septiembre 08, 2011, 07:31:47 am »
Gracias Juani!

Anoche pensaba en todo esto, y se me ocurrió que usar dos ruedas motorizadas independientemente para la tracción/dirección tiene un problema: si los motores no son exactamente iguales (y seguramente no lo van a ser nunca) necesitamos alguna clase de "realimentación" para saber si el robot avanza en linea recta o no.


Puede pasar que pongamos desde el soft ambos motores a una velocidad del 60%, pero que por diferencias internas uno gire al 59% y el otro al 63%....por lo que describiría una curva en lugar de ir recto. :(

Estoy en lo cierto? ???

Si es así, tenemos un problemita más ;D
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

E_Blue

  • PIC24F
  • *****
  • Mensajes: 2226
  • Electric Blue
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #6 en: Septiembre 08, 2011, 09:50:45 am »
En el caso de un velocista esa diferencia no resulta en mayor problema porque siempre tiene una linea para guiarse.

Ademas se podría agregar un encoder, a la rueda loca, como los que traen los mouses viejos(traían dos), para saber si la rueda esta derecha o no, en incluso si gira X cantidad de grados.

Aprovechando este encoder se puede hacer que el robot, yendo recto, se autocalibre y sepa que motor gira mas rápido con el mismo duty cycle.

Ademas puede que la curva no sea lineal y que al 50% de duty cycle exista X diferencia de RPM y a 20% Y diferencia, entonces se podría hacer que el robot aprenda.  :duda

No se, divagando, tiro ideas.  ;D
U2kgZXN0YXMgbGV5ZW5kbyBlc3RvIGVyZXMgdW4gTkVSRCEhIQ ==
Procesando...

Si quieres ayuda con tu proyecto recuerda agregar información del mismo, y no seas haragán y esperes tener todo servido, esto es un foro, no una bolsa de trabajo.

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #7 en: Septiembre 08, 2011, 10:01:18 am »
Todas las ideas suman!

Yo pense en lo del mouse, incluso con uno óptico (en algun lado tengo data del sensor que usan, que es como una cámara digital de 32x32 pixeles o algo asi), pero........me limita muchisimo a la hora de elegir el tipo de terreno sobre el que se puede desplazar!!!

Yo tengo muchas ganas de hacer un robot bastante grande (unos 50x30 cm o asi) que pueda llevarme a un parque, por ejemplo. O al aeródromo para tontear con el mientras mi hijo vuela su avion RC.

Si tiene que ir "mirando" el piso para ver para donde va estoy al horno.

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

E_Blue

  • PIC24F
  • *****
  • Mensajes: 2226
  • Electric Blue
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #8 en: Septiembre 08, 2011, 10:20:51 am »
Mi idea no es ponerlo en el eje de la rueda, si no el el pivot de la rueda loca para saber hacia adonde esta apuntando.

Pero la fase de aprendizaje la debería hacer sobre un suelo plano porque en la plaza puede haber adoquines, piedras, etc que harían que la rueda loca se vuelva loca en serio. :P

La otra opción que se me ocurre es poner los encoders en las ruedas motrices, seria menos problemático pero habría que hacer también un filtrado porque si una rueda, por ejemplo, pasa por un desnivel, como una baldosa torcida(inclinada se formaría un escaloncito), con el peso del robot haría avanzar mas rápido esa rueda.

Tal vez estoy hilando muy fino. :P
U2kgZXN0YXMgbGV5ZW5kbyBlc3RvIGVyZXMgdW4gTkVSRCEhIQ ==
Procesando...

Si quieres ayuda con tu proyecto recuerda agregar información del mismo, y no seas haragán y esperes tener todo servido, esto es un foro, no una bolsa de trabajo.

Leon Pic

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5723
  • Cumulonimbus
    • Impresiones en 3D
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #9 en: Septiembre 08, 2011, 01:21:36 pm »
La estrategia que yo tomaría es un poco más simple.
El programa constaría de tres partes ir derecho, girar a la izquierda, girar a la derecha. Cuando el robot tiene que ir derecho, se ejecutaría la rutina para tal fin. Dentro de esta rutina estaría todo lo necesario para que el software calcule la desviación y la corrija. Esto eliminaría la fase de aprendizaje y sirve para casi toda clase de terreno que el robot podría pasar.
Pasaría lo mismo con la rutina de giro. Se predefiniría el grado de giro y el software se debe encargar de calcular la corrección.

El ser humano, calcula su trayectoria con un punto a la distancia y hace cálculos para mantener esa dirección haciendo correcciones en todo momento. Esto es tan natural, que no nos damos cuenta. Si tienen la oportunidad de caminar dentro de una niebla bien cerrada (25m de visibilidad) y el suelo es bien ancho como para no tener referencia de los bordes, verán que no podrán caminar derecho y se desviarán a la derecha o a la izquierda.

Volviendo al tema del robot. Si colocamos dos ecoder, uno en cada rueda que tracciona, se puede saber si el robot va derecho o si va girando. En el caso de que el robot gira, se aplicará más fuerza a la rueda rezagada.
En cuanto si el piso tiene piedras o algo por el estilo, la rueda que se frena se deberá aplicar más fuerza para que pueda subir por el obstáculo.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #10 en: Septiembre 08, 2011, 01:24:59 pm »
¡LeonPic, que buen enfoque!

Básicamente, propones corregir por soft las diferencias del hard.

Una forma seria ponerlo apuntando a un "blanco" situado a 4 o 5 metros, y mandarlo. Si llega muy a la derecha, se compensa acelerado un % el motor correspondiente y se prueba otra vez.

De esa forma, en 4 o 5 intentos se puede corregir la asimetria de los motores.

El resto, cuando decis " se aplicará más fuerza a la rueda rezagada.
En cuanto si el piso tiene piedras o algo por el estilo, la rueda que se frena se deberá aplicar más fuerza para que pueda subir por el obstáculo" puede ser mas complicado. Por que habría que ir haciendo algo en tiempo real :P
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #11 en: Septiembre 08, 2011, 01:26:12 pm »
Alguien mencionó acelerómetro? Por ahí con un par tienen prácticamente toda la data de velocidad, dirección, etc  :duda


Leon Pic

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5723
  • Cumulonimbus
    • Impresiones en 3D
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #13 en: Septiembre 08, 2011, 01:42:47 pm »
El último se ve interesante porque viene listo con una rueda:

http://articulo.mercadolibre.com.ar/MLA-123490019-rueda-con-motor-y-caja-reductora-_JM

Ariel, si esa es la idea.
Me gusta también la idea de poner acelerómetros.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

juani_c

  • PIC10F
  • *
  • Mensajes: 56
Re: Construyendo un robot desde cero: tracción y dirección
« Respuesta #14 en: Septiembre 08, 2011, 03:01:58 pm »
Anoche pensaba en todo esto, y se me ocurrió que usar dos ruedas motorizadas independientemente para la tracción/dirección tiene un problema: si los motores no son exactamente iguales (y seguramente no lo van a ser nunca) necesitamos alguna clase de "realimentación" para saber si el robot avanza en linea recta o no.
si, ese es un tema, no tanto por las diferencias con los motores sino por las cajas reductoras. Compré un solo autito para ver si servía, le saque la reductora, le puse un motor y anduvo joya. Voy de nuevo al negocio a comprar otro y no hay más..... :pared, compré uno parecido y sí, hay diferencias de velocidad. Pero como dice E_blue seguís la linea, además con el algoritmo de control ya de por sí estoy variando continuamente la velocidad de los motores de forma independiente. De todas formas por soft se pueden corregir facilmente las diferencias del hard como bien dice Ariel.
HA! mencionó tambien de agregar un encoder a la rueda loca, bueno de hecho mi rueda loca es la rueda de scroll de un mouse que se utiliza como encoder, así que tiene las ranuras, la iba a usar para medir las rpm (sin ningún fin particular) pero los cables de los sensores pueden entorpecer el giro, y tampoco es que me iba a dar el tiempo...queda una semana para la competencia :titanic