P08 — Sensor de contacto: cuánto retroceder antes de girar
Un EV3 diferencial lleva un parachoques con un sensor de contacto al frente. Visto desde arriba, con el origen en el centro del eje de las ruedas y hacia adelante, el chasis es un rectángulo que va de m a m (el parachoques está en m) y de m a m. El programa hace lo de la práctica: cuando el sensor se activa, el robot retrocede, gira 90° en el sitio (alrededor del centro del eje) y sigue avanzando.
- Cuando el parachoques toca una pared perpendicular al avance, ¿a qué distancia de la pared está el centro del eje?
- Al girar en el sitio, cada punto del chasis describe una circunferencia alrededor del centro del eje. Calcule el radio de la circunferencia que describen las esquinas delanteras y las traseras. ¿Cuál es la distancia mínima que debe retroceder el robot para poder girar sin rozar la pared?
- El robot avanza a 0.15 m/s y el programa lee el sensor cada 50 ms. En el peor caso, ¿cuánto sigue avanzando el robot después de que el parachoques toca la pared y antes de que el programa se entere? ¿Qué le pasa físicamente al robot en ese tiempo?
- El sensor de contacto es binario: solo dice “toca” o “no toca”. Explique qué información le falta en comparación con un sensor ultrasónico, y qué ventaja tiene a cambio.
- Si la pared está inclinada 45° respecto al avance, ¿sigue sirviendo la distancia de retroceso de la parte 2? Explique cualitativamente.
Mostrar solución
- El parachoques está a 0.11 m delante del eje: el centro del eje queda a 0.11 m de la pared.
- Esquinas delanteras: m. Esquinas traseras: m. Para que la esquina delantera no toque la pared, el eje debe estar al menos a 0.130 m. Hay que retroceder m, unos 2 cm, y en la práctica un poco más como margen.
- En el peor caso pasa un período completo entre el contacto y la lectura: m, unos 7.5 mm. Como la pared no se mueve, el robot empuja contra ella: el parachoques se comprime, las ruedas patinan o el robot se tuerce. Además, ese patinaje lo registran los encoders como avance que no ocurrió.
- El contacto no da distancia: no avisa antes de tocar, así que el robot no puede frenar con anticipación ni saber a qué distancia está el obstáculo. A cambio es simple, rápido y robusto: no necesita calibración, no depende del ángulo de la superficie, del color ni de la luz, y su lectura es inequívoca. Por eso se usa como última protección, aunque el robot tenga sensores de distancia.
- No necesariamente. Con la pared inclinada, el parachoques toca primero con una esquina y el robot puede quedar más cerca de la pared por un costado. Al girar hacia ese lado, la esquina barre la pared antes de lo calculado. Habría que retroceder más o girar hacia el lado que se aleja de la pared, y con un solo sensor binario no se sabe cuál es.