¿Qué puedo usar para detectar la ubicación precisa (pulgadas) en el exterior?

12

Estoy regresando a EE después de algún tiempo, así que disculpen mi ignorancia. Estoy buscando una manera de detectar la ubicación precisa en el exterior para navegar un robot para un proyecto con mis hijos.
¿Hay una forma de bajo costo para triangular o usar GPS? Estoy buscando hasta el centímetro de precisión. Tampoco me importa si necesito colocar algunos transmisores en diferentes ubicaciones para darle una referencia al dispositivo.

Esto es para un robot cortacésped. Tengo un patio de 2 acres y mi casa está cerca del medio con varios árboles como obstáculos.

Dos de mis tres hijos (14 años, 11 años, 5 años) plantearon la idea, por lo que el objetivo real de este proyecto es pasar tiempo con ellos y despertar su interés en EE & CE.

Dicho esto, el costo es un factor, pero no me importa si trabajamos en ello durante los próximos 2 años y gastamos un poco de tiempo.

Aquí están mis planes actuales

  • Incluya una PC con Windows en la placa para poder codificar contra los sensores.
  • Microsoft Connect a bordo para ayudar con la detección de obstáculos (motivo de PC con Windows)
  • Incluir un GPS USB para ubicación general
  • Incluir cámara solo por diversión

En 2 años, si tengo algo de dinero, está bien, pero no quiero comenzar con un GPS caro y caro.

Gracias a todos los que me han ayudado !!!!

    
pregunta Jamey McElveen

13 respuestas

11

Deberías considerar darle la vuelta al sistema. No es necesario que el propio robot determine la ubicación. Sólo necesita saber qué hacer. Esto se le puede comunicar desde una PC fija a través de un enlace WiFi. Con un enlace de este tipo, no importa si el robot se da cuenta de la ubicación o si eso se hace en la instalación fija y luego el resultado transmitido al robot. Si el robot alguna vez pierde la conexión WiFi, simplemente podría detenerse. Eso evita que se salga del alcance y, por lo tanto, no obtenga la información que debería dar vuelta, mientras que corta todos los jardines de flores del vecindario. Creo que también es una buena idea mantener el robot lo más simple posible y poner la mayor parte de la carga en la instalación fija, donde es más fácil monitorear, corregir y trabajar.

En realidad no he hecho esto, pero aquí hay algo que se me ocurrió al reflexionar sobre tu problema. Tener un emisor IR giratorio en el robot. Esto podría girar una vez por segundo o menos. Dispara una hendidura vertical bastante estrecha de IR modulada. Luego colocas sensores de IR fijos alrededor del lugar, principalmente la periferia. Estos indican cuándo detectan el rayo del robot, que solo será por una pequeña fracción del intervalo de repetición. Al comparar la sincronización de las señales de los distintos sensores y conocer sus ubicaciones, debería poder calcular la posición del robot. La diferencia de tiempo de cualquiera de los dos sensores dividida por el período de baliza le indica los ángulos relativos de esos dos sensores vistos desde el robot. Con suficientes sensores y un montón de cálculos matemáticos (fáciles de realizar en cualquier PC moderna en una pequeña fracción de segundo), puedes resolver la posición absoluta del robot. La PC luego envía los comandos apropiados al robot a través de una conexión TCP a través del enlace WiFi.

El robot no necesita realmente la información de posición. Todo el "pensamiento" se hace en la PC fija. Todo lo que necesita el robot es un pequeño sistema integrado con un módulo WiFi y una pila TCP / IP. Puede enviar comandos básicos al robot, como dirección relativa, velocidad, etc.

Los datos de cualquiera de los dos sensores ponen al robot en un arco que también incluye los dos sensores. El arco exacto depende del ángulo de desplazamiento de los dos sensores. En teoría, todo lo que necesita son tres arcos, lo que significa tres sensores. Yo usaría varios más para que los sensores individuales puedan abandonar temporalmente por varias razones. Eso sobrecargará el problema, pero con el algoritmo correcto puede hacer uso de todos estos datos y encontrar la ubicación más probable del robot.

Como dije, no he intentado esto, pero creo que deberías poder obtener una precisión lo suficientemente buena como para controlar una cortadora de césped. Al menos, este esquema no se basa en nada particularmente costoso, difícil de obtener o cualquier cosa que pueda medir lo que puede medir razonablemente en su propio patio trasero (por ejemplo, sin tiempo de nanosegundos).

    
respondido por el Olin Lathrop
4

Las respuestas anteriores abordan el problema desde el punto de vista de cómo el cortacésped puede detectar su posición. Sin embargo, los sensores podrían ser externos, es decir, en la casa. Coloque cámaras para que puedan ver el cortacésped en cualquier lugar de su jardín. Coloque un símbolo o una bandera o algo de color en el cortacésped y algunos puntos de referencia (o use reflectores infrarrojos o leds, de esta forma puede instalar lentes de filtro de muesca en las cámaras y solo dejarlo entrar, trivializando el código de seguimiento). Dado que las cámaras son fijas, la ubicación de los puntos de referencia y el cortacésped dentro de los cuadros de video deben proporcionar datos de localización inequívocos. La precisión dependerá de la resolución de la cámara. De esta manera, no tiene que gastar tanto en la electrónica a bordo, y su código de procesamiento de imágenes puede ejecutarse 'desde su casa'.

    
respondido por el user3812
3

Puedo pensar en un par de maneras en que esto podría lograrse dependiendo del rango que desea que el robot se mueva en (¿metros, o 100s de metros?)

Sin embargo, el GPS definitivamente no te dará el nivel de precisión en pulgadas con hardware fácilmente disponible. Para lograr esa precisión, deberá realizar la corrección diferencial de fase de la portadora. Si bien esto no es demasiado complicado, no es tan simple como conectar un módulo. Puede consultar este proyecto para ver una implementación del mismo.

Un enfoque más fácil puede ser usar IR o balizas ultrasónicas y usar sensores en el robot para determinar el rango relativo entre éste y las distintas balizas. Un receptor montado en servo puede aislar el ángulo del transmisor y la potencia de señal relativa. Lamentablemente, no es probable que obtengas el nivel de precisión en pulgadas de esta manera.

    
respondido por el tallganglyguy
2

Otra opción es usar una cámara web y algunas formas / colores conocidos, y ejecutar el reconocimiento de imagen simple. Usa la triangulación (tal vez girando la cámara web con un motor paso a paso) para averiguar dónde estás. Esto es factible si tiene un importante impulso de CPU a bordo (por ejemplo, un BeagleBone o un netbook) en lugar de algo pequeño como un Arduino.

    
respondido por el Jon Watte
2

Buscaría una ruta diferente de todas estas otras respuestas. Entierra un alambre en tu patio alrededor del perímetro. Condúzcalo con un pequeño circuito que emita una señal de 100 kHz (o algo así). Eso sería muy fácil de detectar con una plataforma móvil. Es exactamente la misma técnica utilizada por los sistemas sin cerco utilizados para mantener a los perros en el patio. Demonios, probablemente podrías tomar una de las unidades para usarla como sensor.

Eso te daría el control del perímetro. Si sientes la señal de 100kHz, estás en el borde. Por supuesto, pruebe esto sin un cortacésped primero (quizás su primer diseño debería ser un automóvil R / C modificado para hacer esto. También abandonaría la PC con Windows y tomaría un sistema Arduino. Son baratos y para una inversión inicial de un Unos pocos cientos de dólares y un automóvil R / C, tienes tu prototipo.

Como padre, estoy bastante seguro de que deseas que esto sea lo más seguro posible. Esto significaría NO atar un montón de componentes electrónicos a su confiable dos tiempos. Vea si puede encontrar una copia antigua de la revista Radio-Electronics de los años 80. Tenían un diseño de cortacésped robótico llamado Lawn Ranger. Por supuesto, no volvería a crear su diseño original, pero tuvieron varias innovaciones novedosas, incluido un sensor fácil de construir para detectar la hierba cortada (evitación de obstáculos, detección del perímetro y navegación) y, lo que es más importante, tenían un diseño único para el cuchillas de corte que eran significativamente más seguras que una libra de acero afilado y endurecido que se giraba. Su sistema de corte era esencialmente un par de discos giratorios con cuchillas x-acto fijadas a ellos. Los discos giraban, lo que significaba que si una roca (o un pie) se metía en la forma en que cedería, resultaría en una lesión menos desastrosa. Recomiendo encarecidamente revisar esa serie de artículos y aplicar algunos de los principios a su diseño moderno. Puede obtenerlos de su biblioteca pública; Sé que el mío los tenía.

Buena suerte, esto suena como un gran proyecto que mantendrá a los jóvenes interesados y pensando.

    
respondido por el akohlsmith
2

Me pregunto si sería posible usar el GPS con giroscopios para un seguimiento estable de la posición. Uno podría aplicar métodos de aprendizaje de lógica difusa si supiera cómo y tuviera señales de error de posición (PES) estables de ambas fuentes. GPS para detección de posición a gran escala +/- 10m y Gyro's o algún otro medio para seguimiento de posición de corto alcance +/- 0.1m

plan 1) Mida los datos de seguimiento de la ruta GPS para cada niño que corta el césped utilizando una radio Zigbee o un sistema de recolección de datos a bordo. Más adelante, analice la estabilidad, el patrón, la velocidad y la efectividad en un programa de análisis de trayectoria que agrega la distancia, analiza la fluctuación de la pendiente, la superposición o el número efectivo de pistas X & Y.

2) Luego elige la ruta óptima y memorízala. (cookie migaja) para registrar varias rutas utilizadas por cada niño y evaluar la ruta registrada para el rendimiento y la seguridad de la ruta.

3) Mida varios PES de ruta mediante el corte con vectores ortogonales, vectores oblicuos, pistas circulares y determine el error de seguimiento efectivo para cada método de guía del vehículo y comente las variaciones estéticas del césped producido.

Solo use las señales de posición grabadas acumuladas para el análisis y luego intente el seguimiento robótico con un sistema de 4 canales con control Servo. (Gas, dirección, freno y otros.)

La lección más importante es aprender a comunicarse (con niños, clientes e ingenieros). Aprender a escribir una especificación antes de diseñarla es la lección más importante. Qué entradas, procesos y salidas, entradas ambientales y parámetros comprobables / medibles con criterios de aceptación y rechazo. También debe haber recompensas adecuadas para cada hito y consecuencias por el fracaso.

Esta es una miniatura del Plan de proyecto, Especificaciones de diseño & el plan de TVP. (Prueba de validación de diseño)

Tu éxito depende de ello. Buena suerte y diviértete.

    
respondido por el Tony EE rocketscientist
1

Si bien este es solo un punto de partida, te recomiendo que mires este PDF que explica la teoría detrás de localizador de audio de John Swindle . Como recuerdo, explica diferentes métodos de localización, y explica el método de John, ¡el cual es preciso dentro de media pulgada! (La configuración no es trivial y no se proporciona el código, pero se usa con buenos resultados para el evento RoboColumbus del DPRG (Dallas Personal Robotics Group)).

    
respondido por el Clinton Blackmore
1

enlace

Ver mi respuesta a otra pregunta sobre LPS. La respuesta corta es que este es un problema bastante difícil y los sistemas existentes son bastante caros (a partir de varios miles de dólares). La sugerencia de usar sensores ultrasónicos es una buena idea. Si busca en Google, puede encontrar la técnica anterior sobre el uso de ultrasonidos e incluso un sonido audible para esto.

    
respondido por el Suboptimus
1

Actualmente, udacity ofrece un curso en línea gratuito, Programación de un automóvil robótico que le enseña cómo funciona Google Lo hace por sus autos autoconducidos. Básicamente, utilizan el GPS para el posicionamiento general junto con los mapas almacenados y la detección de la visión para la localización con un alto grado de precisión. El software utiliza filtros de partículas.

Puede hacerlo solo con GPS si utiliza el equipo GPS diferencial muy costoso utilizado por los topógrafos, pero eso no sería rentable. Como sugiere, si usa un par de transceptores de bajo costo (¿Xbee quizás?), Podría medir fácilmente la distancia con un grado de precisión extremadamente alto transmitiendo un pulso y midiendo el tiempo que toma viajar desde el transmisor en el robot hasta el Repetidor remoto y posterior. Esto es como RADAR, excepto que, en lugar de hacer rebotar la señal de una superficie pasiva, sus transpondedores estacionarios la devuelven.

EDITAR: Desde que Kevin me llamó en este caso, tal vez sea mejor que explique ;-) (Todo en una gran diversión, tengo el mayor respeto por Kevin y él es muy correcto que No proporcioné detalles suficientes para mostrar cómo implementar esto).

Para medir el retardo de propagación entre dos puntos con precisión se requieren principalmente dos cosas: 1) Una ruta de señal de línea recta, ya que las reflexiones crearán distorsiones. 2) Algunos dispositivos electrónicos en ambos extremos utilizan relojes sincronizados y la capacidad de medir intervalos de tiempo con la precisión requerida.

Los relojes sincronizados son relativamente fáciles ya que la estación receptora puede derivar su reloj de la señal transmitida por la otra estación. Esta es la transmisión de datos síncrona estándar con recuperación de reloj.

Aquí hay un documento Medición del retardo de propagación en un enlace de datos bidireccional de 1.25 Gbps donde obtienen fácilmente este tipo de precisión en una pieza de fibra óptica de 10 km de largo. Indican: "Debería poder sincronizar ~ 1000 nodos con una precisión de subnanosegundo en longitudes de hasta 10 km ".

  

En esta nota se describe un método para determinar el desplazamiento de tiempo   entre dos nodos. Estos nodos están conectados a través de un código 8B / 10B 1.25   Canal de comunicación punto a punto bidireccional serie Gbps, como para   El ejemplo es usado por 1000BASE-X (Gigabit Ethernet). El desplazamiento de tiempo es   determinado midiendo el retardo de propagación usando una señal de marcador. los   la señal se envía desde un maestro a un nodo esclavo y se regresa usando   Funcionalidad de serializador / deserializador (SerDes) en FPGA (Virtex-5).   El reloj recuperado en el nodo esclavo se utiliza como el reloj de transmisión de   El esclavo por lo que el sistema completo es síncrono. Para un 1,25 Gbps   canal de comunicación en serie el retraso es conocido con una resolución de un   Intervalo de una sola unidad (es decir, 800 ps). Esta resolución puede ser más allá.   mejorado mediante la medición de la relación de fase entre la transmisión y   recibir el reloj del nodo maestro. La técnica ha sido demostrada.   para trabajar sobre una sola fibra de 10 km que se utiliza en dos longitudes de onda, para   Facilitar una conexión punto a punto bidireccional entre el maestro.   y nodo esclavo.

también

  

Se construyó una primera configuración de prueba para verificar el principio de medición   retardo de propagación entre un transmisor y un receptor utilizando un codificado   canal de comunicación serial operado en   3.125 Gbps. El transmisor y el receptor residen en FPGA en dos placas de desarrollo separadas. Esta primera configuración de prueba mostró que es   factible medir el retardo de propagación en una fibra de 100 km con una   resolución de un intervalo de unidad (es decir, 320 ps a 3.125 Gbps).

EQUIPO UTILIZADO:

  

La configuración de la prueba consta de dos placas de desarrollo ML507 Xilinx [7]. UNA   Virtex-5 FPGA está montado en cada placa. Una placa de desarrollo ML507   Se designa como nodo maestro, el otro como nodo esclavo. Maestro y   Los esclavos están conectados mediante transceptores de factor de forma pequeño (SFP)   y 10 km de fibra, creando un enlace bidireccional. Una sola fibra es   utilizado que se opera en longitud de onda dual.

Claramente, esta configuración en particular es una exageración para la mayoría de los proyectos de robótica de pasatiempos, pero se puede reproducir fácilmente en casa, ya que utiliza tableros de desarrollo de estantes y no requiere talentos especiales para trabajar. En el caso del robot, el enlace sería radio en lugar de un cable de fibra óptica. Tal vez incluso podría ser un enlace IR como un control remoto de TV aunque sospecho que afuera a pleno sol eso puede ser problemático. Por la noche podría funcionar muy bien!

    
respondido por el JonnyBoats
1

Como han dicho otros, la localización es un problema difícil y la resolución de una pulgada a un costo razonable es muy difícil. Es posible que le interese saber que hay una competencia a nivel universitario que involucra a cortadoras de césped robóticas: la ION Robotic Lawn Mower Competition . Formé parte de un equipo que se preparaba para ION; al final, no compitimos, pero ciertamente pasamos mucho tiempo pensando en el problema, lo que definitivamente es más difícil de lo que parece. Tenga en cuenta que la mayoría de los competidores en la última competencia de ION cortaron menos del 50% del campo en el campo asignado Cantidad de tiempo, con plataformas que cuestan decenas de miles de dólares! Sin embargo, tiene una ventaja porque ION no permite las ayudas de navegación externas, como las balizas, que hacen que el problema sea mucho más fácil de resolver. (Y no tiene límite de tiempo). Examinar los informes de proyectos de los equipos sería una buena fuente de ideas.

Si me estuviera embarcando en un proyecto de robot cortacésped como el tuyo, probablemente usaría una combinación de GPS baratos (para una ubicación aproximada), balizas IR / ultrasónicas / multicolor (ubicación fina (r)), codificadores (estimación de posición), y la visión por ordenador (varios). No recomendaría gastar miles de dólares en sofisticados sistemas de GPS e IMU. El Kinect es una buena idea, y ciertamente es mucho más barato que Lidar; Definitivamente tendrás mucho que masticar entre el mapa de profundidad y la cámara.

También recomiendo el curso de Udacity sobre la programación de autos de auto conducción para una introducción a los conceptos involucrados.

    
respondido por el mng
1

Ahora que ha modificado la pregunta para eliminar el requisito de resolución de una pulgada y nos ha dicho que tendrá una PC con Windows y un Microsoft Connect a bordo, creo que podría hacer una muy buena ubicación con solo ese hardware en el robot.

¿Has visto algunos de los campos de golf baratos que la gente usa para encontrar la distancia al tee?

La forma en que trabajan es medir la altura percibida de la bandera en el verde (que es una altura fija) y mostrar la distancia al tee. Este es un triángulo rectángulo simple donde, si conoce el ángulo y la altura del lado lejano, puede calcular la longitud de la base. Este es exactamente el tipo de cosas que sus hijos aprenderán en geometría y luego en trigonometría.

Ya que su casa parece ser visible desde todas las partes de su lote, ¿quizás sería fácil ver 2 esquinas y distancia de cálculo?

    
respondido por el JonnyBoats
1

Utilice la energía acústica del cortacésped. Es su propio pinger. O tal vez su ruido se puede usar para enmascarar un chirrido de audio agregado al cortacésped, tal vez sincronizado con el cigüeñal o la cuchilla. Coloque un micrófono en el cortacésped y en algunas ubicaciones alrededor del patio. Obtenga una estimación aproximada de la ubicación basada en el volumen. Los micrófonos más cercanos no tendrán tantos problemas multitrayecto. Luego, realice una correlación cruzada del audio de los micrófonos más cercanos para estimar el tiempo de retardo del sonido de vuelo. Promedio o filtro de Kalman para eliminar el ruido en las estimaciones de retardo, y aplicar trig. Si puede ocultar (a los humanos) y detectar (por correlación cruzada) un chirrido o una vibración del motor en el cortacésped, es posible que obtenga pulgadas de precisión.

    
respondido por el hotpaw2
1

Echa un vistazo a enlace Este pequeño adaptador LR3 (está obsoleto, pero hay uno mejor en camino) te permite interactuar un PC o un SBC a un medidor de distancia Fluke 411D, con una precisión de +/- 3 mm hasta 30 M, según recuerdo. La nueva unidad que sale (LR4) funciona con los nuevos medidores Fluke. Combinado con una cámara en una plataforma de giro / inclinación para que pueda apuntar a objetivos conocidos y un codificador de alta resolución en el servo de pan para mediciones de ángulo de alta precisión, debería poder triangular la posición de su robot en relación con un mapa de su patio con el la precisión que necesita. Necesitará algo de trigonometría en el código (por encima de las matemáticas de la escuela secundaria). Encontré la ecuación requerida en internet (Wikipedia). Lo incluiría aquí, pero estoy lejos de la máquina de mi casa donde se almacena la información. El sistema también puede facilitar la generación del mapa. Es posible que necesite una plataforma estabilizada de giro con aislamiento de vibración pasiva (las cortadoras de césped tienen mucha vibración). Para las mediciones sobre la marcha, es posible que necesite un software de seguimiento para mantener el láser en el objetivo también. La odometría precisa le dará más tiempo entre "arreglos" si su poder de cómputo es modesto.

    
respondido por el user17584

Lea otras preguntas en las etiquetas