Construir un carro robot que me siga

#1
Buenas tardes compañeros,

solicito vuestra ayuda para resolver/diseñar/crear (sobretodo la parte electrónica) lo siguiente:

La idea es construir un carro de superficie en planta aproximada 50x50cm, con 3/4 ruedas que:

1. Me persiga (sólo a mi) a una distancia de aproximadamente 2-3 metros.
2. Sea capaz de girar,es decir, que no solo me persiga en línea recta.
3. Detecte una inclinación superior al 15 % y se detenga si eso ocurre.
4. Detecte una aproximación mía hacia él ( y no huya) y entre en modo manual cuando lo sujeto, es decir, se anulen los sistemas para poder empujarlo yo.
5. Poder enviarle una orden de STOP en cualquier momento. Lo mismo para reinciar la marcha desde la distancia.
6. No se admite un mando a distancia como solución. Deberá ser lo más "manos libres" posible.

No soy novato pero necesito nuevos puntos de vista expertos para solucionarlo.

Gracias de antemano a los foreros que colaboren ;)
 
#3
Gracias Dosmetros, comento mis ideas según los puntos:

1. La idea del seguimiento discriminando a terceros se me ocurre llevar algún tipo de emisor IR que comunique la distancia al carro. Me gustaría utilizar un software de reconocimiento visual pero estoy completamente perdido en este tema.
2. Para el avance se me ocurren dos cosas: o dos motores (uno a cada rueda trasera) + 1 rueda loca delante o bien un motor al eje trasero con diferencial + servo de dirección en la rueda delantera.
3. Supongo que la inclinación es lo más fácil con un sensor directamente conectado.
4. Con el IR se sabe también que se está produciendo un acercamiento para entrar en modo STOP. Se puede instalar un botón o sensor en el puño del carro para pasar al modo manual.
5. La señal a distancia me gustaría que fuese con un aspaviento de la mano o por voz. También esta la opción de una señal por RF con un pequeño botón ON/OFF.

Principales problemas que me encuentro:
a) Que el carro me persiga en cualquier postura de mi cuerpo. El emisor IR dejaría de verse en muchos momentos con el receptor y se perdería la señal. Por lo tanto, me gustaría saber si el Bluetooth o la RF es capaz de señalizar mi distancia y posición al carro.
b) Al no haber trabajado nunca con reconocimiento visual o por voz, no sé si es muy engorroso para trabajar en exteriores debido a claridad/oscuridad, ruidos externos, etc. O quizás está muy avanzado y sea lo más idóneo para trabajar con él.

Soy profesor de tecnología y hasta el momento hemos hecho proyectos en Arduino pero sin profundizar mucho. Me gustaría lograr este objeto para que el carro lleve la mochila a un alumno cojo que lleva muletas :) Además me sirve para aprender y como reto personal.
 

DOSMETROS

High 2m Modereitor
#4
Ya existen unas "cajas de herramientas" para mecánica profesional así . . . Googleá a ver si explican que método emplean.

Se podría con GPS o con ultrasonido , salvo que eso sería incompatible con animales.
 
#5
Hola,

1. ¿cómo esperas que te reconozca? Quizá puedes colgarte un código de barras o similar, o una camiseta de un color concreto. En ese caso, el dispositivo debe tener un mecanismo de visión con análisis de imagen. Otra posibilidad, los ultrasonidos, un punto de luz ...

2. veo complicado que te siga si te pierde de vista en los cambios de dirección. Debería conocer el mapa de los posibles recorridos, seguir unas líneas en el suelo, memorizar los movimientos, etc.

3. Trivial, basta un péndulo amortiguado. Una varilla que baila dentro de un anillo.

4. Medir distancia, podría ser por análisis de imagen, por intensidad de campo ...

5. Enviar una orden, a distancia, requiere un emisor de órdenes, también un sonido, análisis de voz, ...

6. Ver punto 5

Suerte!
G?
 
#6
Gracias Dosmetros, voy a ello, estoy empezando de cero este proyecto aquí mismo.

Gasparv, gracias por el aporte:

1. Mi sistema ideal sería con una mini cámara instalada en el carro que identifique a la persona y además pueda interactuar de alguna forma. Por ejemplo, poner la palma de la mano hacia la cámara para indicarle que se pare. De momento me conformo con que me siga.

Mi duda es: un cámara sirve para medir o solo reconoce? Se puede utilizar un reconocimiento visual para medir distancias?

2. Claro, con barreras arquitectónicas es más difícil pero en el patio, por ejemplo, cómo hago para que gire y me siga? En el cole hemos hecho el típico seguidor de línea pero ahora es una persona que se mueve. Me pierdo aquí :(

3. Nada. OK.

4. Vale, entonces entiendo que por análisis de imagen se consigue adivinar un acercamiento. Me faltaría por saber si además es capaz de medir la distancia.

5. Exacto. En exteriores quizá sea mejor una RF por facilidad.
 
#7
Hola, para conocer la distancia, carro-hombre, por ultrasonidos será más eficiente. Pues un haz de luz no funcionaría correctamente, por una cuestión de superficies y cambio de ángulo, lo que haría interrumpir la señal todo el tiempo, con sólo caminar.
Otra forma es utilizar dos cámaras frontales. Comparando ambas imágenes por los desfaces entre ambas(trigonometría) puedes calcular la distancia, pero claro, la persona tiene que tener un color específico, para que el sistema lo distinga del resto de escena.
Para medir inclinación lo mejor será implementar un IMU.
 
Última edición:
#8
Eso es una cosa muy fácil de decir y muy difícil de implementar.
Si fuese una persona, su programa sería "sígueme" y ya está, pero para una máquina es complejo.
 

Dr. Zoidberg

Well-known-Papá Pitufo
#9
Lo que pretendes hacer es algo que esta siendo estudiado en varias empresas y universidades, y no es nada trivial ni que pueda resolverse con un Arduino.
Si queres usar reconocimiento visual de imagenes vas a tener que usar - probablemente - redes neuronales convolucionales y entrenarlas para reconocer la persona u objeto a seguir.
El diseño de robot movil que has pensado es bastaaaaante complicado de controlar y determinar la odometria correcta, con lo cual vas a tener que agregar IA del tipo fuzzy logic, sobre todo si el desplazamiento es en espacios no muy grandes donde el uso del GPS no es muy viable, al menos para navegar. Y ni hablemos si hay obstaculos que detectar y esquivar.
Si bien es interesante, no me parece algo que puedas resolver en un tiempo acotado.
 
#10
digo una "tonteria" pero a veces las "tonterias" simplifican todo muchisimo, y no por eso deja de ser util:

como llevaban lso niños las cosas ?? un carrito?? CON UNA CUERDA !!!
si, un simple cordon, eso te permite identificarte ( te sigue solo a ti ) , mantener distancias, etc, etc ,etc...

loq ue "modernizas"e es que no debe hacer fuerza ya que un motor o 2 lo hacen , la tension de la cuerda te dice si esta tirando o si se ha detenido .

en fin...

edito:
niño cojo, con muletas.. no se permite mando a dstancia...
yo que se, si ese cable o cuerda ademas manda señal, es tan simple, a veces, el intentar ahorrar algo complica todo exorbitantemente.
 
#11
Perdónenme si aparezco ozco! Pero esto es un típico ejemplo de un novato. El objetivo de su proyecto es pero demasiadísimo exigente, no creo que entienda los retos de los sub proyectos que ese proyecto abarca. Lo triste es que por lo general eso lleva al novato a frustarse y abandonar el campo que tantas posibilidades tiene.
Creo que el primer paso que debería hacer es tomar un solo requerimiento, como el de detectar objetos, o el de controlar motores con los que piensa hacer girar las ruedas de su robot. Empieza por el sub proyecto mas sencillo y que entiendas sus requerimientos y en un primer paso lo realices. Preguntas que puede parecer insultantes:
Ya as encendido un LED por un programa que escribes en el controlador que quieras utilizar?
En que lenguajes de programación de controladores tienes experiencia?
 
#12
Gracias por las aportaciones. Veo que el tema es más complejo de lo que parece.

Creo que la opción de reconocimiento visual es demasiado difícil. Mañana os cuento lo que me dice una empresa especializada en esto.

Evidentemente este proyecto no se hará con arduino.

Me parece bien la idea de simplificar el tema. Ahí va:

Cómo haríais que un carro os siga en un sitio libre de obstáculos a una distancia determinada? Y si puede ser, que me siga a mi y no a mi vecino que cuando se cuela por medio. Sólo eso.

Este dron lo hace pero volando:

<--- es por GPS?

La solución de la cuerda es genial prefiero algo un poco más técnico 😂

Hellmut, en serio un LED? Y dos! Puedes resolver el problema sencillo que acabo de plantear o nos vamos los dos a aprender juntos? 😉

Ya existe!



Y otro:

 
#13
No se si te serviria usar un sensor ultrasonico en modo de radarque e visto en algunos tutoriales, aunque no estoy inmerso en el mundo de la programacion , tambien algun conocido hoy hablar sobre un control pid adaptativo que lo queria usar para autos sigue linea velocista y que pudiera esquivar obstaculos de una manera mas eficiente , lo q pides tambien me hace recordar mucho el sistema de seguimiento que ya estan incorporando muchos drones , hay un foro en ingles que recomiendan es exclusivamente para drones y se dedica esencialmente a radiocontrol diydrones, ahi te podrian brindar mas informacion creo sobre reconocimiento por camara y esos temas ,aunque aun asi sera un trabajo de largo aliento y mucha investigacion.
 

Emis

Well-known-juntamugre
#14
Excelente proyecto!! Una idea, puede ayudar también, si la persona lleva muletas puede se entonces que en ellas esté la solución

Dentro de las muletas:

A: envío de señales de luz infrarroja, ultrasonido(descartado), o alguna señal de bajo alcance

B: detección de golpe o movimiento

C: micrófono

En el robot:

A: sería algún detector de movimiento de muletas como un seguidor de luces infrarrojas, estando en una posición detecta con camaras como estén situadas así saber si avanza o se detiene

B: otro sensor para que sepa que ya está en movimiento y así iniciar la secuencia de seguimiento

C: funcióna detectando la voz del dueño, dando alguna orden de agilizar el paso o detenerse


Se me ocurren esas cosas por el momento, estaría bueno saber con los conocimientos que cuentas y hasta donde podrías llegar con el proyecto, por más complejo que parezca lo puede llevar a cabo!!
 
#15
A mi me parecio excelente la idea del carrito con cuerda, porque, cual es el objetivo? Solucionar el problema al muchacho o "inventar una solucion tecnologica?". La mejor solucion es SIEMPRE la mas simple, sobre todo cuando la alternativa tecnologica que necesariamente incluye sistemas complejos de vision, posicionamiento y navegacion, por no hablar del engorro, costo y peso de las baterias, tiene en jaque a equipos con muchas mas mentes, y sobre todo, con muchos mas recursos, de los que se pueden reunir en un foro (El robot Gita, que fue mencionado en uno de los aportes, viene siendo "anunciado" desde hace un monton y a la fecha aun no hay noticia sobre su disponibilidad ni mucho menos, su precio).

Dicho sea de paso, para un dron es "mucho mas simple" realizar la tarea porque no tiene la cantidad de obstaculos que se le oponen a un vehiculo terrestre. Pero un dron no tiene capacidad de carga, ni mucho menos, autonomia.

Se pusieron a pensar que semejante robot con sistemas de vision y que se yo cuantas cosas, en las manos de un chico con muletas, es casi seguro que se lo robaran, sobre todo cuando va por detras? Y que pasa si se descompone o se queda sin baterias? Ahora el pobre muchacho no solo que tiene que caminar con su dificultad, sino que tiene que cargar con un engorroso robot averiado?

Por eso, y siguiendo con la ideas simples y realizables:

1. Una carretilla, o sea un carro con una o dos ruedas adelante y que en lugar de la tipica asa doble de la carretilla, tenga un elemento que permita que el muchacho la empuje con su cintura. O incluso que este disenado de modo tal que reemplace a una o dos de las muletas, si eso fuera posible.
2. Un perro adiestrado que arrastre el carrito.
 
Última edición:
#16
...(El robot Gita, que fue mencionado en uno de los aportes, viene siendo "anunciado" desde hace un monton y a la fecha aun no hay noticia sobre su disponibilidad ni mucho menos, su precio).
Ya en esos videos de promoción se ve que todavía no sirve para nada. Además, ese lavarropas es ridículo.
Lo hacen marchar sobre pisos lisos y no esquiva ningún obstáculo. Si pudiera subir/bajar escalones, entrar a un ascensor o esquivar un obstáculo no trivial , aparecería en el video con bombos y platillos.

Dicho sea de paso, para un dron es "mucho mas simple" realizar la tarea porque no tiene la cantidad de obstaculos que se le oponen a un vehiculo terrestre. Pero un dron no tiene capacidad de carga, ni mucho menos, autonomia.
Ese dron hace un reconocimiento elemental de imagen, a diferencia del Gita que usa un cinturón extrañamente grande (emisor grande ==> prototipo).
Digo elemental porque la moto va en un camino perdido sin nadie que se cruce o vaya en sentido contrario. Y los árboles todos lejos, dudo que tenga en cuenta obstáculos.

Si empresas con tiempo y presupuesto todavía no llegaron a nada útil, realizarlo durante el año como proyecto de tecnología es ilusorio.


Por eso, y siguiendo con la ideas simples y realizables:

1. Una carretilla, o sea un carro con una o dos ruedas adelante y que en lugar de la tipica asa doble de la carretilla, tenga un elemento que permita que el muchacho la empuje con su cintura. O incluso que este disenado de modo tal que reemplace a una o dos de las muletas, si eso fuera posible.
2. Un perro adiestrado que arrastre el carrito.
Voto por el perro pero sin carro, con mochila.
 
#17
Hace no mucho tiempo me plantearon ese mismo problema por parte de dos personas con escasa formación. Yo les dije que sabía que no sabía resolverlo, mientras que las personas que lo planteaban, que lo veían sencillo. Lo que les pasaba es que no sabían que no sabían resolverlo.
Saber que no sabes es más de lo que parece.
Creerse que sabes...

Leed el post de Hellmut que creo que ha dado en el clavo.
Resolved los motores, por ejemplo. Y después resolvedlo con la cuerda. Cuando lleguemos ahí ya seguimos hablando.


Repito que para una persona basta con decir "sígueme", pero para una máquina la cosa es muy compleja. Muuucho más de lo que parece.
 
#18
Para el seguimiento, una BALIZA. Podria ser un llavero o algo colgante, con leds infrarrojos emitiendo a 360°, una señal en determinada frecuencia. El carro tendria que tener por lo menos 4 receptores infrarojos, y cada receptor un filtro que solo deja pasar la señal en la frecuencia que emite la baliza. Despues por comparacion entre la recepcion de los distintos receptores, determinamos la direccion hacia donde ir... algo asi como un misil infrarrojo :D
Colocando 4 pares de receptores, creo que hasta se podria determinar la distancia tambien.

Exitos con el proyecto.
 

Arriba