Concurso internacional de robots - Reglas - Robots de muestra - Robot de trayectoria Lego EV3. LegoEV3. Movimiento linea negra Movimiento linea con volante en ev3

15.01.2012, 18:51

Hasta ahora, en artículos sobre algoritmos utilizados al moverse a lo largo de una línea, dicho método se consideraba cuando el sensor de luz, por así decirlo, seguía su borde izquierdo o derecho: tan pronto como el robot se movía a la parte blanca del campo, el el controlador devolvió el robot al borde, el sensor comenzó a moverse profundamente en las líneas negras; el regulador lo enderezó.
A pesar de que la imagen de arriba es para un controlador de relé, el principio general del movimiento de un proporcional (regulador P) será el mismo. Como ya se mencionó, la velocidad promedio de tal movimiento no es muy alta, y se hicieron varios intentos para aumentarla complicando un poco el algoritmo: en un caso, se usó un frenado "suave", en el otro, además de los giros, Se introdujo el movimiento hacia adelante.
Para permitir que el robot avance en algunas áreas, se asignó una sección estrecha en el rango de valores producidos por el sensor de luz, que podría llamarse condicionalmente "el sensor está en el borde de la línea".
Este enfoque tiene un pequeño inconveniente: si el robot "sigue" el borde izquierdo de la línea, entonces, a la derecha, no parece determinar inmediatamente la curvatura de la trayectoria y, como resultado, pasa más tiempo buscando la línea. y girando Además, es seguro decir que cuanto más pronunciado sea el giro, más tiempo llevará esta búsqueda.
La siguiente figura muestra que si el sensor no estuviera ubicado en el lado izquierdo del borde, sino en el lado derecho, entonces ya habría detectado una curvatura de la trayectoria y comenzaría a realizar maniobras de giro.

Por lo tanto, es una buena idea equipar el robot con dos sensores a la vez, que están ubicados en lados opuestos de la línea y, en consecuencia, ayudarían al robot a responder más rápidamente a un cambio en la dirección del movimiento.
Ahora es necesario determinar cómo afectará dicho cambio de diseño al programa. Para simplificar, deberíamos comenzar nuevamente con el controlador de relé más simple y, por lo tanto, en primer lugar, nos interesan las posibles posiciones de los sensores en relación con la línea:

De hecho, se puede destacar un estado aceptable más: en rutas difíciles, esta será la intersección de una intersección o algún engrosamiento en el camino.
No se tendrán en cuenta otras posiciones de los sensores, ya que se derivan de las que se muestran arriba o son las posiciones del robot cuando salió de la línea y ya no podrá volver a ella utilizando la información de los sensores. En consecuencia, todas las disposiciones anteriores pueden reducirse a la siguiente clasificación:
  • el sensor izquierdo, al igual que el derecho, está sobre una superficie clara
  • sensor izquierdo sobre la superficie clara, sensor derecho sobre la oscuridad
  • sensor izquierdo sobre superficie oscura, sensor derecho sobre luz
  • ambos sensores están por encima de la superficie oscura
Si en un momento dado el programa del robot detecta una de estas posiciones, deberá reaccionar en consecuencia:
    Si ambos sensores están por encima de la superficie blanca, entonces esta es una situación normal en la que la línea está entre los sensores, por lo que el robot debe ir en línea recta. Si el sensor izquierdo todavía está por encima de la superficie clara y el sensor derecho ya está por encima de la oscuro, entonces el robot condujo su lado derecho hacia la línea, lo que significa que necesita girar a la derecha para que la línea esté nuevamente entre los sensores.Si el sensor izquierdo está sobre la superficie oscura, y el derecho todavía está arriba la luz, entonces el robot necesita girar a la izquierda para alinearse.Si ambos sensores están por encima de la superficie oscura, entonces, en el caso general, el robot sigue recto.

El diagrama anterior muestra inmediatamente cómo debe cambiar exactamente el comportamiento de los motores en el programa. Ahora, escribir un programa no debería ser difícil. Debe comenzar eligiendo qué sensor se sondeará primero. Realmente no importa, así que déjalo. Es necesario determinar si se trata de una superficie clara u oscura:
Esta acción aún no le permite decir en qué dirección debe ir el robot. Pero dividirá los estados enumerados anteriormente en dos grupos: (I, II) para la rama superior y (III, IV) para la inferior. Cada uno de los grupos ahora tiene dos estados, por lo que debe seleccionar uno de ellos. Si observa detenidamente los dos primeros estados I y II, difieren en la posición del sensor derecho: en un caso, está sobre una superficie clara, en el otro, sobre una oscura. Esto es lo que determinará la elección de qué acción tomar:
Ahora puede insertar bloques que definen el comportamiento de los motores de acuerdo con las tablas anteriores: la rama superior de la condición anidada define la combinación "ambos sensores en luz", la superior - "izquierda en luz, derecha en oscuridad":
La rama inferior del estado principal es responsable de otro grupo de estados III y IV. Estos dos estados también difieren entre sí en el nivel de iluminación que capta el sensor derecho. Por lo que determinará la elección de cada uno de ellos:
Las dos ramas resultantes se rellenan con bloques de movimiento. La rama superior es responsable del estado "izquierda en oscuridad, derecha en luz", y la rama inferior es responsable de "ambos sensores en oscuridad".
Cabe señalar que este diseño solo determina cómo encender los motores dependiendo de las lecturas de los sensores en un lugar determinado del campo, naturalmente, después de un momento, el programa debe verificar si las lecturas han cambiado para corregir el problema. el comportamiento de los motores en consecuencia, y después de un momento otra vez, otra vez, y así sucesivamente. .d. Por lo tanto, debe colocarse en un bucle que proporcione esta verificación repetida:

Un programa tan simple proporcionará una velocidad bastante alta del robot que se mueve a lo largo de la línea sin sobrepasar sus límites, si establece correctamente la velocidad máxima cuando se mueve en los estados I y IV, y también establece el método óptimo de frenado en los estados II y III - cuanto más pronunciadas sean las curvas en la pista, más "duro" debe ser el frenado - la velocidad debe caer más rápido y viceversa - con curvas suaves, es muy posible aplicar el frenado apagando la energía o incluso a través de un ligero descenso de la velocidad.

También se deben decir algunas palabras separadas sobre la ubicación de los sensores en el robot. Obviamente, se aplicarán las mismas recomendaciones a la ubicación de estos dos sensores en relación con las ruedas que para un sensor, solo la mitad del segmento que conecta los dos sensores se toma como el vértice del triángulo. La distancia entre los sensores también debe elegirse a partir de las características de la pista: cuanto más cerca estén los sensores, más a menudo el robot se nivelará (realizará giros relativamente lentos), pero si los sensores están lo suficientemente separados , entonces existe el riesgo de salirse de la pista, por lo que deberá realizar giros más cerrados y un movimiento más lento en las rectas.



Para que el robot se mueva suavemente a lo largo de la línea negra, debe hacer que calcule la velocidad del movimiento.

Una persona ve una línea negra y su límite claro. El sensor de luz funciona un poco diferente.

Es esta propiedad del sensor de luz, la incapacidad de distinguir claramente el borde entre blanco y negro, la que usaremos para calcular la velocidad del movimiento.

Primero, introduzcamos la noción “Punto ideal de la trayectoria”.

Las lecturas del sensor de luz oscilan entre 20 y 80, la mayoría de las veces en blanco, las lecturas son alrededor de 65, en negro, alrededor de 40.

El punto ideal es un punto condicional aproximadamente en medio de los colores blanco y negro, después del cual el robot se moverá a lo largo de la línea negra.

Aquí, la ubicación del punto es fundamental, entre blanco y negro. No será posible configurarlo exactamente en blanco o negro por razones matemáticas, por qué, se aclarará más adelante.

Empíricamente, hemos calculado que el punto ideal se puede calcular mediante la siguiente fórmula:

El robot debe moverse estrictamente a lo largo del punto ideal. Si se produce una desviación en cualquier dirección, el robot debe volver a ese punto.

vamos a componer descripción matemática del problema.

Datos iniciales.

Punto perfecto.

Las lecturas actuales del sensor de luz.

Resultado.

Potencia motor B.

Potencia de rotación del motor C.

Decisión.

Consideremos dos situaciones. Primero: el robot se desvió de la línea negra hacia la blanca.

En este caso, el robot debe aumentar la potencia de rotación del motor B y disminuir la potencia del motor C.

En una situación en la que el robot conduce hacia la línea negra, ocurre lo contrario.

Cuanto más se desvía el robot del punto ideal, más rápido necesita volver a él.

Pero la creación de tal regulador es una tarea bastante difícil, y no siempre se requiere en su totalidad.

Por lo tanto, decidimos limitarnos a un regulador P que responda adecuadamente a las desviaciones de la línea negra.

En el lenguaje de las matemáticas, esto se escribiría como:

donde Hb y Hc son las potencias totales de los motores B y C, respectivamente,

Hbase: cierta potencia base de los motores, que determina la velocidad del robot. Se selecciona experimentalmente, según el diseño del robot y la nitidez de los giros.

Itech - lecturas actuales del sensor de luz.

I id - punto ideal calculado.

k es el coeficiente de proporcionalidad, seleccionado experimentalmente.

En la tercera parte, veremos cómo programar esto en el entorno NXT-G.

Uno de los movimientos básicos en la construcción con lego es seguir la línea negra.

La teoría general y los ejemplos específicos de creación de un programa se describen en el sitio wroboto.ru

Describiré cómo implementamos esto en el entorno EV3, ya que existen diferencias.

Lo primero que necesita saber el robot es el valor del “punto ideal” ubicado en el borde de blanco y negro.

La ubicación del punto rojo en la figura corresponde exactamente a esta posición.

La opción de cálculo ideal es medir el valor de blanco y negro y tomar la media aritmética.

Puedes hacerlo manualmente. Pero las desventajas son inmediatamente visibles: incluso durante un breve período de tiempo, la iluminación puede cambiar y el valor calculado resultará ser incorrecto.

Entonces puedes hacer que un robot lo haga.

En el curso de los experimentos, descubrimos que no es necesario medir tanto el blanco como el negro. Solo se puede medir el blanco. Y el valor del punto ideal se calcula como el valor blanco dividido por 1,2 (1,15), dependiendo del ancho de la línea negra y la velocidad del robot.

El valor calculado debe escribirse en una variable para poder acceder a él más tarde.

Cálculo del “punto ideal”

El siguiente parámetro involucrado en el movimiento es la velocidad de giro. Cuanto más grande es, más bruscamente reacciona el robot a los cambios de iluminación. Pero un valor demasiado alto hará que el robot se tambalee. El valor se selecciona experimentalmente de forma individual para cada diseño de robot.

El último parámetro es la potencia base de los motores. Afecta a la velocidad del robot. Un aumento en la velocidad de movimiento conduce a un aumento en el tiempo de respuesta del robot a un cambio en la iluminación, lo que puede conducir a una desviación de la trayectoria. El valor también se selecciona experimentalmente.

Por comodidad, estos parámetros también se pueden escribir en variables.

Relación de dirección y potencia base

La lógica de moverse a lo largo de la línea negra es la siguiente: se mide la desviación del punto ideal. Cuanto más grande es, más fuerte debe esforzarse el robot para volver a él.

Para hacer esto, calculamos dos números: el valor de potencia de cada uno de los motores B y C por separado.

En forma de fórmula, se ve así:

Donde Isens es el valor de las lecturas del sensor de luz.

Finalmente, la implementación en EV3. Es más conveniente emitir en forma de un bloque separado.

Implementación del algoritmo

Este es el algoritmo que se implementó en el robot para la categoría media WRO 2015


Para ver una presentación con imágenes, diseño y diapositivas, descargar su archivo y abrirlo en PowerPoint en tu ordenador.
Contenido de texto de las diapositivas de la presentación:
"Algoritmo para moverse a lo largo de una línea negra con un sensor de color" Círculo sobre "Robótica" Profesor antes de Yezidov Ahmed Elievich En MBU DO "Shelkovskaya CTT" Para estudiar el algoritmo para moverse a lo largo de una línea negra, un robot Lego Mindstorms EV3 con un sensor de color se utilizará Sensor de color El sensor de color distingue 7 colores y puede detectar la ausencia de color. Al igual que en el NXT, puede funcionar como un sensor de luz Campo de competencia de robots Line S La pista propuesta en forma de "S" le permitirá realizar otra prueba interesante de velocidad y reacción de los robots creados. Consideremos el algoritmo más simple para moverse a lo largo de una línea negra en un sensor de color en EV3. Este algoritmo es el más lento, pero el más estable. El robot no se moverá estrictamente a lo largo de la línea negra, sino a lo largo de su borde, girando a la izquierda y a la derecha y avanzando gradualmente El algoritmo es muy simple: si el sensor ve negro, entonces el robot gira en una dirección, si ve blanco, en la otra. Trazado de una línea en el modo de luz reflejada con dos sensores En ocasiones, es posible que el sensor de color no distinga muy bien entre el blanco y el negro. La solución a este problema es utilizar el sensor no en modo de detección de color, sino en modo de detección de brillo de luz reflejada. En este modo, conociendo los valores del sensor en una superficie oscura y clara, podemos decir de forma independiente qué se considerará blanco y qué negro. Ahora determinemos los valores de brillo en las superficies blanca y negra. Para ello, en el menú del EV3 Brick encontramos la pestaña "Brick Applications" Ahora se encuentra en la ventana de visualización del puerto y puede ver las lecturas de todos los sensores en el momento actual. nuestros sensores deben brillar en rojo, lo que significa que están en modo de detección de luz reflejada. Si brillan en azul, en la ventana de visualización del puerto en el puerto deseado, presione el botón central y seleccione el modo COL-REFLECT Ahora colocaremos el robot para que ambos sensores estén ubicados sobre la superficie blanca. Nos fijamos en los números de los puertos 1 y 4. En nuestro caso, los valores son 66 y 71, respectivamente. Estos serán los valores de blanco de los sensores. Ahora coloquemos el robot de modo que los sensores estén ubicados sobre la superficie negra. Nuevamente, veamos los valores de los puertos 1 y 4. Tenemos 5 y 6, respectivamente. Estos son los significados del negro. A continuación, modificaremos el programa anterior. Es decir, cambiamos la configuración de los interruptores. Siempre que tengan Sensor de color -> Medición -> Color instalado. Necesitamos configurar el sensor de color -> Comparación -> Intensidad de la luz reflejada. Ahora debemos configurar el "tipo de comparación" y el "valor de umbral". El valor umbral es el valor de algunos "grises", los valores por debajo de los cuales consideraremos negro y más, blanco. Para la primera aproximación conviene utilizar el valor medio entre el blanco y el negro de cada sensor. Por lo tanto, el valor de umbral del primer sensor (puerto #1) será (66+5)/2=35,5. Redondee a 35. Valor de umbral del segundo sensor (puerto #4): (71+6)/2 = 38.5. Redondeemos a 38. Ahora establecemos estos valores en cada interruptor, respectivamente. Eso es todo, los bloques con movimientos permanecen en sus lugares sin cambios, porque si ponemos el signo " en el "tipo de comparación"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Algoritmos de control para un robot LEGO móvil. Seguimiento de línea con dos sensores de luz

Profesor de educación adicional

Kazakova Lyubov Alexandrovna


movimiento de línea

  • Dos sensores de luz
  • Controlador proporcional (controlador P)

Algoritmo para moverse a lo largo de la línea negra sin un controlador proporcional

  • Ambos motores giran con la misma potencia.
  • Si el sensor de luz derecho golpea la línea negra, entonces la potencia del motor izquierdo (por ejemplo B) disminuye o se detiene
  • Si el sensor de luz izquierdo golpea la línea negra, entonces la potencia del otro de los motores (por ejemplo, C) disminuye (vuelve a la línea), disminuye o se detiene
  • Si ambos sensores están en blanco o negro, entonces hay un movimiento rectilíneo

El movimiento se organiza cambiando la potencia de uno de los motores.


Ejemplo de un programa para moverse a lo largo de la línea negra sin un controlador P

El movimiento se organiza cambiando el ángulo de rotación.


  • El controlador proporcional (controlador P) le permite ajustar el comportamiento del robot, dependiendo de cuánto difiere su comportamiento del deseado.
  • Cuanto más se desvía el robot del objetivo, más fuerza se necesita para volver a él.

  • El controlador P se utiliza para mantener el robot en un estado determinado:
  • Mantener la posición del manipulador Moverse a lo largo de una línea (sensor de luz) Moverse a lo largo de una pared (sensor de distancia)
  • Manteniendo la posición del manipulador
  • Línea de movimiento (sensor de luz)
  • Moverse a lo largo de una pared (sensor de distancia)

Seguimiento de línea con un sensor

  • El objetivo es moverse a lo largo de la frontera "blanco-negro"
  • Una persona puede distinguir el borde de blanco y negro. El robot no puede.
  • El objetivo del robot está en el color gris.

cruces

Al usar dos sensores de luz, es posible organizar el tráfico en rutas más difíciles



Algoritmo para conducir por una carretera con intersecciones

  • Ambos sensores en blanco: el robot se desplaza en línea recta (ambos motores giran con la misma potencia)
  • Si el sensor de luz derecho toca la línea negra y el izquierdo la línea blanca, gira a la derecha
  • Si el sensor de luz izquierdo toca la línea negra y el derecho toca la línea blanca, entonces gira a la izquierda
  • Si ambos sensores están en negro, se produce un movimiento rectilíneo. Puedes contar intersecciones o realizar algún tipo de acción


El principio de funcionamiento del regulador P.

Posición de los sensores

O=O1-O2


Algoritmo para moverse a lo largo de la línea negra con un controlador proporcional

SW \u003d K * (CT)

  • C - valores objetivo (tomar lecturas del sensor de luz en blanco y negro, calcular el promedio)
  • T - valor actual - recibido del sensor
  • K es el coeficiente de sensibilidad. Cuanto más, mayor es la sensibilidad.