01Gancho
Tus 5 sensores leen 0, 0.2, 0.9, 0.3 y 0. ¿Dónde está la línea respecto al centro de tu robot?
02Concepto
Un sensor de reflectancia tiene un emisor de luz infrarroja y un receptor que mide cuánta luz vuelve del suelo. El fondo claro refleja mucho; la línea oscura refleja poco.
Cada lectura se normaliza a [0, 1] con 1 = «veo línea»: v_k = 1 sobre la línea, v_k = 0 sobre el fondo y valores intermedios cuando la huella del sensor pisa el borde.
Tu robot lleva N sensores en un arreglo lineal, perpendicular al avance, separados e_s. El índice k va de 0, el sensor de la izquierda, a N − 1, el de la derecha.
Una lectura sola dice poco; las N juntas dicen dónde está la línea. El índice ponderado k̄ es el promedio de los índices pesado por las lecturas. Si le restas el centro, (N − 1)/2, y divides por él, obtienes la posición p en [−1, 1]: −1 bajo el sensor de la izquierda, 0 en el centro y 1 bajo el de la derecha. Con las lecturas del gancho, k̄ = 2.9/1.4 = 2.071 y p = 0.0357: la línea está casi centrada, un poco a la derecha.
Para una lectura binaria eliges un umbral u: b_k = 1 si v_k ≥ u, y 0 si no. Es más simple, pero pierde la información del borde.
Si la suma de las lecturas es pequeña, ningún sensor ve la línea: está perdida. El promedio ya no significa nada, así que se guarda el último signo de p. La línea salió por ese lado, y el robot debe girar hacia él para recuperarla.
La distancia física de la línea al centro del arreglo es y_línea = p·(N − 1)/2·e_s. Cuida el signo: p e y_línea son positivos a la derecha, al revés que el eje Y de {R}, que apunta a la izquierda.
Las lecturas reales llevan ruido: cambian un poco de una muestra a otra aunque la línea no se mueva.
03Fórmulas
k̄· índice ponderado de la línea · —k· índice del sensor, 0 el de la izquierda · —v_k· lectura normalizada del sensor k, en [0, 1] · —
p· posición de la línea bajo el arreglo, en [−1, 1] · —k̄· índice ponderado de la línea · —N· número de sensores de línea · —
y_línea· desplazamiento lateral de la línea, positivo a la derecha · mp· posición de la línea bajo el arreglo, en [−1, 1] · —N· número de sensores de línea · —e_s· separación entre sensores · m
b_k· lectura binaria del sensor k · —v_k· lectura normalizada del sensor k, en [0, 1] · —u· umbral de la lectura binaria · —
04Explora
Con el robot de referencia, el arreglo de 5 sensores, visto desde arriba, sobre un tramo recto de línea de 20 mm centrado bajo él. Cada barra muestra la lectura v_k de un sensor con su cifra y su lectura binaria b_k con el umbral u = 0.5; el panel da k̄, p e y_línea. Las lecturas llevan un ruido σ = 0.03, que cambia cada 0.1 s mientras la simulación corre.
Cambiael desplazamiento de la línea hacia la izquierda, de 0 a 0.012 mObservap y las barras de los sensores
¿Por qué p se vuelve negativo?
Ver la respuesta
La línea queda bajo los sensores de índice bajo, así que sus lecturas crecen y las barras se mueven con ella. El índice ponderado k̄ baja de 2, el centro, y p = (k̄ − 2)/2 se vuelve negativo: la línea está a la izquierda.
Cambiael desplazamiento de la línea hasta que ningún sensor la veaObservael aviso «línea perdida» y el valor de p
¿Por qué p conserva el signo y la línea se pierde a 0.036 m?
Ver la respuesta
La suma de las lecturas baja de 0.5 y el promedio ya no significa nada, así que p guarda el último signo, −1. El widget pierde la línea a 0.036 m y no a 0.034 m por la huella de 4 mm de cada sensor: el sensor 0 aún lee 0.5 cuando su centro está 2 mm fuera del borde, y la suma solo baja de 0.5 después.
Cambiael ruido σ de 0.03 a 0.1, con la línea centrada, y pulsa «Reproducir»Observala lectura binaria de los sensores 1 y 3 con el umbral u = 0.5
¿Por qué algunos sensores parpadean?
Ver la respuesta
Con la línea centrada, los sensores 1 y 3 leen 0.5, justo el umbral. Cualquier ruido los hace cruzar u hacia arriba o hacia abajo en cada muestra. El umbral necesita margen respecto a las lecturas habituales.
05Al robot
El arreglo de tu perfil de «Mi robot» fija el mayor desplazamiento que el promedio ponderado puede informar. Con la línea bajo el sensor de un extremo, p = 1, y y_línea vale el semiancho del arreglo, (N − 1)/2·e_s:
Más allá, la línea todavía toca el sensor del extremo mientras su borde no haya pasado. Las pistas del simulador tienen una línea de w = 20 mm, que es una constante de las pistas y no de tu perfil. El sensor del extremo deja de ver la línea cuando su centro sale del borde. Ese desplazamiento, y_perdida, es el semiancho más medio ancho de línea:
Si tu perfil no es un robot móvil, el cálculo usa el robot de referencia: 5 sensores a 12 mm.
Con el robot de referencia, el semiancho es 2·0.012 = 0.024 m y la línea se pierde a partir de 0.024 + 0.010 = 0.034 m. En el widget se pierde un poco después, a 0.036 m, porque cada sensor mira una huella de 4 mm y no un punto. Si tu robot necesita tolerar desvíos mayores, necesita más sensores o más separación entre ellos.
06Verifica
E1Los 5 sensores de tu robot, con el índice 0 a la izquierda, leen v_0 = 0.4000, v_1 = 0.9000, v_2 = 0.1000, v_3 = 0.000 y v_4 = 0.000. ¿Cuál es la posición p de la línea, adimensional y en [−1, 1]?obligatorio
E2La línea está a la izquierda de tu arreglo de 5 sensores, que leen v_0 = 0.2000, v_1 = 1.000, v_2 = 0.4000, v_3 = 0.000 y v_4 = 0.000, con el índice 0 a la izquierda. ¿Cuál es la posición p de la línea, adimensional y en [−1, 1]?obligatorio
E3El arreglo de tu robot tiene N = 5 sensores separados e_s = 12 mm y la posición de la línea es p = −0.7800. ¿Cuál es su desplazamiento físico y_línea respecto al centro del arreglo, en m y positivo a la derecha?obligatorio
E4Los 5 sensores de tu robot, con el índice 0 a la izquierda, leen v_0 = 0.000, v_1 = 0.000, v_2 = 0.6000, v_3 = 0.8000 y v_4 = 0.1000. Con el umbral u = 0.7000, ¿cuántos sensores dan b_k = 1? Responde con un número entero de sensores.
07Profundiza
- Siegwart, R., Nourbakhsh, I. R. y Scaramuzza, D. Introduction to Autonomous Mobile Robots, 2.ª ed. The MIT Press, 2011. ISBN 978-0-262-01535-6. Cap. 4, "Perception".