Saltar al contenido

Semana 6

Depuración y confiabilidad

Averigua por qué un robot se porta mal (por lo mecánico, por la programación o por los sensores) y demuestra que funciona una y otra vez.

  • 70 a 85 minutos
  • Misión: Diagnosticar y corregir errores mecánicos, de programación y de sensores, y luego demostrar que un robot es confiable con una prueba de tres corridas.

Los estudiantes toman los robots reactivos que construyeron y los vuelven confiables. Aprenden que depurar es el trabajo de averiguar por qué el resultado real es distinto del resultado esperado, y que los errores vienen en tres familias: mecánicos (algo físico), de programación (una instrucción equivocada o faltante) y de sensores (una lectura, un umbral o una calibración mal). Practican con misiones de depuración preparadas a propósito, conocen las variables y los contadores para guardar y llevar la cuenta de valores, y hacen ensayos de confiabilidad (la misma tarea tres veces) anotando lo esperado frente a lo real para demostrar que el robot de verdad funciona.

Al terminar esta semana vas a poder

  • Explicar la depuración como averiguar por qué el resultado real difiere del resultado esperado
  • Distinguir los errores mecánicos, de programación y de sensores a partir de sus síntomas
  • Usar una variable o un contador para guardar o llevar la cuenta de un valor en un programa
  • Hacer un ensayo de confiabilidad: repetir la misma tarea tres veces y anotar lo esperado frente a lo real
  • Diagnosticar un robot que se porta mal y describir la solución

Aprende

Qué es depurar en realidad

Cada vez que ejecutas un programa tienes dos resultados en la cabeza: el esperado (lo que DEBERÍA pasar) y el real (lo que SÍ pasó). Cuando coinciden, el robot está funcionando. Cuando no, hay un error, y depurar es el trabajo detectivesco de averiguar por qué difieren.

Quienes depuran bien no andan picándole al robot al azar: comparan lo esperado con lo real, observan el síntoma con atención y cambian una sola cosa a la vez para poder saber qué fue lo que lo arregló.

Por ejemplo: Esperado: detenerse ante la pared. Real: se estrelló contra la pared. -> Hay un error que encontrar.; Esperado: girar a la izquierda. Real: giró a la derecha. -> Compara el bloque con lo que querías decir.

Las tres familias de errores

Los errores vienen en tres familias, y nombrar la familia ya es media solución. Un error mecánico es un problema físico del cuerpo del robot: una rueda floja, un cable arrastrándose por el piso, un engrane que patina. Un error de programación es una equivocación en las instrucciones: un número equivocado, un bloque faltante o bloques en el orden incorrecto. Un error de sensor es un problema al percibir: una lectura mala, un umbral puesto en el valor equivocado o un sensor que necesita calibrarse.

El truco está en leer el síntoma y adivinar primero la familia. Si el robot se porta mal exactamente igual todas y cada una de las veces, el error suele estar en el programa. Si a veces funciona y a veces no, sospecha de algo mecánico o de una lectura de sensor inestable.

Por ejemplo: Mecánico: el robot se desvía hacia un lado porque una rueda está floja.; Programación: el robot gira 2 segundos en vez de 1 porque el número está mal.; Sensor: el robot nunca se detiene porque el umbral de distancia es demasiado chico.

Variables y contadores: guardar y llevar la cuenta de valores

A veces un programa necesita recordar un número. Una variable es una cajita con nombre que guarda un valor, y ese valor puede cambiar mientras el programa se ejecuta. Un contador es una variable especial que se usa para contar: empieza en cero y sube de uno en uno cada vez que pasa algo, como cada vez que el robot esquiva un obstáculo.

Las variables también guardan valores de calibración: números que mides una vez y almacenas para que las lecturas de un sensor signifiquen lo correcto. Guardar un valor significa que después puedes usarlo, cambiarlo y revisarlo, en lugar de andar adivinando.

Por ejemplo: Un contador que suma 1 cada vez que se esquiva un obstáculo.; Un valor de calibración guardado para el nivel de luz del piso blanco.; Una variable que recuerda cuántas vueltas lleva dadas el ciclo.

Confiabilidad: demostrarla con ensayos repetidos

Un robot que funciona una vez tal vez solo tuvo suerte. Confiabilidad significa hacer el mismo trabajo correctamente una y otra vez, y no puedes afirmarlo sin pruebas. La prueba es un ensayo de confiabilidad: ejecutas la misma tarea varias veces, con el mismo caso de prueba en cada corrida, y anotas el resultado esperado y el real en cada una.

Si las tres corridas coinciden con lo que esperabas, el robot es confiable para ese caso de prueba. Si una corrida sale distinta, encontraste un error que estaba escondido a plena vista, y esa corrida fallida es justo la pista que necesitas.

Por ejemplo: Ejecuta la tarea de detenerse ante la pared 3 veces desde el mismo punto de partida y anota cada una.; Esperado "se detiene" en las tres corridas; real "se detiene, se detiene, choca" significa que la corrida 3 tiene un error.

Palabras que hay que saber

Depuración:
El trabajo de averiguar por qué el resultado real de un robot es distinto del resultado esperado, y luego corregirlo.
Variable:
Un lugar con nombre dentro de un programa que guarda un valor que puede cambiar mientras el programa se ejecuta.
Contador:
Una variable que se usa para contar: empieza en un número y sube de uno en uno cada vez que pasa algo.
Valor guardado:
Un número o un dato que un programa conserva en una variable para poder usarlo o cambiarlo después.
Valor de calibración:
Un número que mides y guardas para que las lecturas de un sensor signifiquen lo correcto, como el nivel de luz de un piso blanco.
Resultado esperado:
Lo que DEBERÍA pasar cuando el programa funciona bien, o sea lo que predices antes de probar.
Resultado real:
Lo que SÍ pasó cuando de verdad ejecutaste el robot, y que observas y anotas.
Caso de prueba:
Una situación específica que preparas a propósito para probar, como "una pared a exactamente 15 cm".
Error mecánico:
Un problema físico del cuerpo del robot, como una rueda floja, un cable que se arrastra o un engrane atascado.
Error de programación:
Una equivocación en las instrucciones: un bloque o un número equivocado, faltante o fuera de orden.
Error de sensor:
Un problema al percibir: una lectura mala, un umbral equivocado o un sensor que necesita calibrarse.
Confiabilidad:
Qué tan bien hace un robot el mismo trabajo correctamente una y otra vez, demostrado con ensayos repetidos.

Cuídate

Lee esto antes de construir o poner a andar un robot esta semana.

  • Caution:Apaga el robot antes de apretar ruedas, mover cables o revisar piezas mecánicas.
  • Caution:Mantén la zona de prueba y la pista de obstáculos libres de manos, pies y cosas tiradas durante las corridas.
  • Note:Usa tijeras seguras para niños con un adulto si vas a rehacer un parachoques de papel o alguna pieza del modelo.
  • Note:Guarda tu programa y tu registro de pruebas con frecuencia para que al recargar el navegador no se pierdan tus resultados.

Manos a la obra

Elige tu ruta

Puedes hacer este curso con un kit de robótica, con el simulador del navegador, o sin dispositivos, con materiales de casa. Elige una: puedes cambiar cuando quieras sin perder tu trabajo.

Misiones de Detective de errores

Kit de robótica

Diagnosticar un robot que se porta mal: decidir si el error es mecánico, de programación o de sensor, y luego corregirlo.

  • En cada misión, primero escribe el resultado esperado y el resultado real. La diferencia entre los dos es el síntoma que estás investigando.
  • Hazte la pregunta de las tres familias: ¿esto es físico (mecánico), de instrucciones (programación) o un problema al percibir (sensor)? Usa el síntoma para adivinar antes de tocar nada.
  • Cambia UNA sola cosa a la vez, vuelve a ejecutar y anota si el resultado real ya coincide con el esperado.

Depura un robot de kit que se porta mal

Necesitas: Un robot reactivo de la semana 5, Hoja de trabajo Detective de errores, Cinta métrica

Pasos

  1. 1Pide a un adulto o a un compañero que le meta en secreto un error a un robot que ya funcionaba (aflojar una rueda, cambiar un número en un bloque o poner un umbral malo).
  2. 2Ejecuta el robot y escribe en la hoja el resultado esperado y el resultado real.
  3. 3Decide la familia del error a partir del síntoma y luego investiga por orden las causas más probables.
  4. 4Corrige la única cosa de la que sospechas, vuelve a ejecutar y confirma que el resultado real ya coincide con el esperado.

Así se ve el éxito: El estudiante nombra la familia correcta del error, hace una sola corrección dirigida, y el resultado real del robot vuelve a coincidir con el esperado.

Fíjate en:
  • Se anotaron tanto el resultado esperado como el real
  • Se identificó correctamente la familia del error
  • Se hizo un cambio a la vez
  • El robot funciona después de la corrección

Seguridad: Apaga el robot antes de apretar ruedas o mover cables. Mantén los dedos lejos de las partes en movimiento mientras funciona.

Si no funciona

Corregir "todo" de golpe, así que no se sabe cuál era la causa
- Deshaz todos los cambios menos uno; haz un solo cambio, vuelve a ejecutar y comprueba si era ese.
No queda claro cuál es la familia del error
- Ejecútalo tres veces: si el resultado equivocado es el mismo todas las veces, apunta a la programación; si los resultados cambian, apunta a algo mecánico o a un sensor inestable.

Ve más lejos: Métele un error al robot de un compañero y a ver si logra diagnosticar la familia solo con el síntoma.

Ensayo de confiabilidad de tres corridas

Kit de robótica

Demostrar que un robot es confiable ejecutando la misma tarea tres veces y comparando el resultado esperado con el real en cada corrida.

  • Elige una tarea bien definida y un caso de prueba (exactamente la misma preparación en cada corrida). Escribe el resultado esperado una sola vez: es el mismo para las tres corridas.
  • Ejecuta la tarea tres veces SIN cambiar nada entre corrida y corrida. Anota el resultado real y marca ¿Coincide? (sí o no) en cada una.
  • Tres coincidencias significan confiable para ese caso de prueba. Cualquier diferencia es un error que hay que cazar con los pasos del Detective de errores.

Ensayo de confiabilidad con el robot del kit

Necesitas: Un robot reactivo de la semana 5, Registro de prueba de tres corridas, Cinta métrica

Pasos

  1. 1Elige una tarea como "detenerse antes de la pared" y coloca la pared a la misma distancia en cada corrida: ese es tu caso de prueba.
  2. 2Escribe el resultado esperado: "el robot se detiene sin tocar la pared".
  3. 3Ejecútalo tres veces desde exactamente el mismo punto de partida, anotando el resultado real y ¿Coincide? cada vez.
  4. 4Si alguna corrida no coincide, diagnostica la familia del error, corrígelo y vuelve a hacer las tres corridas.

Así se ve el éxito: Una tabla de tres corridas completa; un robot confiable coincide con el resultado esperado en las tres.

Fíjate en:
  • Se usa el mismo caso de prueba en las tres corridas
  • El resultado esperado se escribió una sola vez
  • Se anotaron tres resultados reales y su ¿Coincide?
  • Cualquier diferencia se investiga

Seguridad: Mantén despejada la zona de prueba y aléjate de las partes en movimiento. Regresa el robot a la misma línea de salida en cada corrida.

Si no funciona

Los resultados se van corriendo a lo largo de las tres corridas
- Revisa las baterías y la posición de salida: una batería que se está agotando es una causa mecánica o de energía de la falta de confiabilidad.
Coincide dos veces y a la tercera falla
- La corrida que falló es tu pista: revisa la lectura del sensor y el montaje físico justo después de esa corrida.

Ve más lejos: Agrega una cuarta y una quinta corrida y observa si la confiabilidad se sostiene conforme se descarga la batería.

Contador de obstáculos

Kit de robótica

Usar una variable como contador que suma uno cada vez que el robot esquiva un obstáculo, y luego leer el valor guardado.

  • Pon una variable contador en 0 al principio. Cada vez que el robot detecte y esquive un obstáculo, súmale 1 al contador.
  • Ese es un valor guardado: el contador recuerda cuántos obstáculos se atendieron, y puedes revisarlo al final.
  • Predice cuántos obstáculos hay en la pista y luego compara tu predicción con el valor final del contador.

Cuenta los obstáculos esquivados con el robot del kit

Necesitas: Un robot reactivo de la semana 5, Una pista corta de obstáculos, Lápiz y papel

Pasos

  1. 1Pon en 0 una variable llamada "obstáculos" al principio del programa.
  2. 2Mantén un ciclo que lea el sensor; dentro de la rama "si hay obstáculo", gira para esquivarlo Y súmale 1 a "obstáculos".
  3. 3Recorre la pista y luego muestra o lee el valor final del contador.
  4. 4Compara el contador con la cantidad de obstáculos que en realidad colocaste.

Así se ve el éxito: El valor final del contador es igual al número de obstáculos que el robot esquivó de verdad.

Fíjate en:
  • El contador empieza en 0
  • Suma 1 solo cuando se esquiva un obstáculo
  • Se lee el valor guardado final
  • Se compara con el conteo real

Seguridad: Mantén la pista libre de manos y pies mientras el robot avanza.

Si no funciona

El contador queda demasiado alto
- El robot está sumando 1 más de una vez por obstáculo: asegúrate de que la cuenta ocurra una vez por detección, no en cada vuelta del ciclo.
El contador se queda en 0
- Revisa que el paso de sumar 1 esté dentro de la rama "si hay obstáculo" y no fuera de ella: es un error de programación.

Ve más lejos: Agrega una regla: cuando el contador llegue a 3, el robot se detiene y avisa que terminó.

Programa el robot

Build a program from blocks, then run it on the simulator. On the kit path, use the same steps in your robot's app; unplugged, act the blocks out on a floor grid. Your program saves on this device.

Programa del contador de obstáculos

Un programa que pone un contador en 0, repite un ciclo para leer el sensor, y le suma 1 al contador cada vez que esquiva un obstáculo.

Listo

Agregar un bloque

Eventos y ejecución

Movimiento

Control

Datos

Salida

Variables y contadores

count

Tu programa

  • Reiniciar el contador
  • Avanzar
Columna 1, fila 1Columna 2, fila 1: marca de color redred marker at column 2, row 1Columna 3, fila 1Columna 4, fila 1: marca de color redred marker at column 4, row 1Columna 5, fila 1Columna 6, fila 1: marca de color redred marker at column 6, row 1Goal zone at column 6, row 1Robot at column 1, row 1
  • Robot (la flecha apunta hacia donde mira)
  • Zona de meta (contorno punteado)
  • Marca de color (punto)

Mapa: Una cuadrícula de 6 por 1. El robot arranca en la columna 1, fila 1, mirando hacia la derecha. La zona de meta está en la columna 6, fila 1. Hay 3 marcas de color.

Listo.

Listo para ejecutar. · 0 steps

Estado del robot

Columna
1
Fila
1
Mirando hacia
la derecha
Distancia al frente
5 casillas
Contacto
libre
Sobre una línea
no
Luz
80
En la zona de meta
no
Choques
0
Pasos
0

Robot en la columna 1, fila 1, mirando hacia la derecha. Distancia al frente: 5 casillas. Contacto: libre. Sobre una línea: no. Luz: 80. Fuera de la zona de meta.

Salida del registro

Todavía no hay nada registrado.

  • Heads up: This program has no safe stop behavior. Add a safe stop so the robot stops when it is done or blocked.

Arregla el frenado descompuesto

Se supone que este programa detiene al robot en la casilla justo antes de la pared, pero un valor equivocado en su revisión de distancia hace que se detenga en el lugar incorrecto. Predice la familia del error, cambia el único valor de la condición del repetir-hasta y vuelve a ejecutar hasta que se detenga bien.

Listo

Agregar un bloque

Eventos y ejecución

Movimiento

Control

Datos

Salida

Variables y contadores

Ninguna todavía.

Tu programa

  • Repetir hasta
    • Avanzar
  • Misión cumplida
Columna 1, fila 1Columna 2, fila 1Columna 3, fila 1Columna 4, fila 1Columna 5, fila 1: muroGoal zone at column 4, row 1Robot at column 1, row 1
  • Robot (la flecha apunta hacia donde mira)
  • Zona de meta (contorno punteado)
  • Muro (gris, con una X)

Mapa: Una cuadrícula de 5 por 1. El robot arranca en la columna 1, fila 1, mirando hacia la derecha. La zona de meta está en la columna 4, fila 1. Hay 1 muro.

Listo.

Listo para ejecutar. · 0 steps

Estado del robot

Columna
1
Fila
1
Mirando hacia
la derecha
Distancia al frente
3 casillas
Contacto
libre
Sobre una línea
no
Luz
80
En la zona de meta
no
Choques
0
Pasos
0

Robot en la columna 1, fila 1, mirando hacia la derecha. Distancia al frente: 3 casillas. Contacto: libre. Sobre una línea: no. Luz: 80. Fuera de la zona de meta.

Salida del registro

Todavía no hay nada registrado.

Predice

Commit to a guess before you test - then see how close you were. Your predictions save automatically.

Cómo comprobarlo: Haz las tres corridas, anota lo real frente a lo esperado y el ¿Coincide?, y compara tu predicción con lo que de verdad pasó.

Cómo comprobarlo: Investiga las causas probables y comprueba si la familia que predijiste fue la que resultó ser.

Cómo comprobarlo: Recorre la pista, lee el contador y compáralo con tu número predicho y con la cantidad real de obstáculos.

Prueba y mejora

Prueba de confiabilidad de tres corridas

Elige una tarea y un caso de prueba. Escribe el resultado esperado una sola vez, y luego ejecuta la misma tarea tres veces sin cambiar nada. Anota el resultado real y si coincidió en cada corrida.

Qué medir: Si el resultado real coincidió con el esperado en cada una de las tres corridas

RunResultado esperadoResultado real¿Coincide? (S/N)

Registro de diagnóstico de errores

En cada misión de depuración, anota el síntoma, la familia de error que sospechas, el único cambio que probaste y si eso corrigió la diferencia.

Qué medir: Qué familia de error era la responsable y si un solo cambio dirigido la corrigió

SíntomaFamilia sospechosaÚnico cambio probado¿Corregido? (S/N)

Misiones de depuración

Each robot below misbehaves on purpose. Work out whether the bug is mechanical, in the program, or with a sensor - then check the fix.

El robot que gira sobre su propio eje

Un robot que debería avanzar derecho se pone a girar en el mismo sitio, dando vueltas y vueltas como si una rueda avanzara y la otra retrocediera.

Síntoma: Los dos motores funcionan, pero el robot rota en lugar de avanzar, y gira igual en todas las corridas.

Pista: Observa las ruedas: las dos giran, pero en sentidos opuestos, y nada está flojo. Piensa en cómo está conectado o configurado uno de los motores, no en los comandos de avance.

Ver la solución

Solución: Cambia la conexión del motor invertido (o voltea la configuración de dirección de ese motor) para que las dos ruedas avancen juntas. Vuelve a ejecutar y confirma que el robot ahora va derecho en lugar de girar.

Causas probables

  1. 1Un motor está conectado al revés, así que su rueda gira en el sentido equivocado.
  2. 2La configuración de dirección de un motor está invertida respecto a la del otro.
  3. 3Los dos motores están montados como espejo, pero se manejan como si apuntaran hacia el mismo lado.

La pared ante la que no se detiene

Un robot debería avanzar y detenerse cuando su sensor de distancia diga que la pared está cerca, pero se mete de frente contra la pared y sigue empujando sin detenerse nunca.

Síntoma: En todas las corridas el robot nunca se detiene: el resultado real es un choque, aunque el programa sí tiene una instrucción de alto.

Pista: El sensor lee bien y el bloque de alto está ahí. Lee en voz alta la comparación que está dentro del ciclo: conforme la pared se acerca, ¿la condición que debería detener al robot llega a volverse verdadera alguna vez?

Ver la solución

Solución: Invierte el operador de comparación (o intercambia sus dos lados) para que la condición de alto se vuelva verdadera cuando la distancia se haga chica. Vuelve a ejecutar y confirma que el robot se detiene antes de la pared.

Causas probables

  1. 1La comparación está al revés: se detiene cuando la distancia es "mayor que" en lugar de "menor que", así que nunca es verdadera mientras el robot se acerca.
  2. 2Los dos lados de la comparación están intercambiados.
  3. 3El operador equivocado (un > donde debía ir un <) impide que la condición de alto se dispare alguna vez.

El contador que cuenta de más

Un robot pasa junto a tres marcas y debería reportar un conteo de 3, pero reporta un número enorme, como 47.

Síntoma: El valor final del contador es muchísimo más grande que la cantidad de objetos reales: crece en cada vuelta del ciclo en lugar de una vez por objeto.

Pista: Observa cómo sube el contador mientras avanza. ¿Suma 1 una vez por objeto, o una vez en cada pasada del ciclo aunque no haya un objeto nuevo enfrente?

Ver la solución

Solución: Reinicia el contador a 0 al principio y mueve el "suma 1" dentro de la condición que detecta un objeto NUEVO. Vuelve a ejecutar y confirma que el conteo final coincide con la cantidad real de objetos.

Causas probables

  1. 1El "suma 1" está fuera de la revisión de "¿veo un objeto?", así que cuenta en cada vuelta del ciclo.
  2. 2El contador nunca se reinicia a 0 al empezar la corrida.
  3. 3El robot se queda junto al mismo objeto durante varias vueltas del ciclo y lo cuenta cada vez.

El seguidor de línea que falla con mucha luz

Un robot seguidor de línea funcionaba perfecto ayer. Hoy, en un cuarto mucho más iluminado, se sale derechito de la línea todas las veces, y el programa no ha cambiado.

Síntoma: El robot ignora la línea y no corrige el rumbo, aunque el mismo código sí corregía bien con la luz de ayer.

Pista: El código es idéntico al de ayer; lo que cambió es el cuarto. Lee hoy el valor de luz en vivo sobre la línea y fuera de ella, y compara los dos con el umbral del programa.

Ver la solución

Solución: Lee los valores de luz de hoy sobre la línea y fuera de ella, elige un umbral nuevo a la mitad entre los dos, guarda ese valor de calibración y vuelve a ejecutar. El robot debería seguir la línea otra vez.

Causas probables

  1. 1El umbral de luz se calibró para el cuarto más oscuro de ayer y ahora está mal.
  2. 2La luz más fuerte subió todas las lecturas por encima del umbral, así que "sobre la línea" nunca se registra.
  3. 3El sensor no se recalibró para las condiciones de luz de hoy.

El robot que nunca termina

Un robot debería avanzar, esquivar algunos obstáculos y luego detenerse en la meta, pero sigue avanzando y esquivando para siempre y nunca termina, ni siquiera después de llegar a la meta.

Síntoma: El robot nunca termina su programa: repite sin fin su comportamiento de esquivar y avanzar, sin detenerse.

Pista: Lo de esquivar funciona bien. El problema es que el robot nunca sale del ciclo. Busca una salida: ¿hay alguna condición que termine el ciclo una vez que llega a la meta?

Ver la solución

Solución: Agrégale una salida: un repetir-hasta que termine en la meta, o un "si estoy en la meta, entonces alto", para que el ciclo pueda terminar. Vuelve a ejecutar y confirma que el robot se detiene al llegar a la meta.

Causas probables

  1. 1El comportamiento está dentro de un ciclo infinito sin salida.
  2. 2Un repetir-hasta tiene una condición que nunca puede volverse verdadera.
  3. 3No hay un "alto seguro" ni un "misión cumplida" para cuando llegue a la meta.

El código bueno que aun así se desvía

El programa de un robot es correcto y no ha cambiado (la semana pasada iba derecho), pero ahora se curva hacia un lado cada vez que avanza, incluso en un tramo corto y sin obstáculos.

Síntoma: En lugar de ir derecho, el robot se desvía hacia un lado igual en todas las corridas, aunque el código no ha cambiado.

Pista: Falla igual en todas las corridas, pero el programa quedó demostrado la semana pasada. Antes de tocar el código, mira el cuerpo y las ruedas del robot, o la superficie y el montaje simulados.

Ver la solución

Solución: No le muevas al código. Vuelve a asentar y aprieta las dos ruedas, quita cualquier cable o basurita que se arrastre (o reinicia la superficie y la alineación simuladas). Vuelve a ejecutar y confirma que ya avanza derecho.

Causas probables

  1. 1Una rueda o un eje está flojo o no quedó bien asentado.
  2. 2Un cable o una pieza se arrastra por el piso de un lado, o una rueda roza el armazón.
  3. 3En el simulador, algún ajuste de superficie o de alineación hace que un lado patine.

El alto que llega demasiado tarde

Un robot usa su sensor de distancia para detenerse antes de una pared. A velocidad lenta se detiene perfecto, pero cuando se le sube la velocidad se pasa y le pega a la pared, con exactamente el mismo umbral.

Síntoma: A alta velocidad el robot se detiene demasiado tarde y choca con la pared; a baja velocidad ese mismísimo programa se detiene a tiempo.

Pista: El umbral que sirve cuando va lento no alcanza cuando va rápido: el robot recorre más distancia entre una lectura y la siguiente. Piensa cómo trabajan juntas la velocidad y el umbral de frenado, y cambia solo uno de los dos a la vez.

Ver la solución

Solución: Cambia una sola cosa a la vez: o bajas la velocidad de avance, o subes el umbral de distancia para que se detenga antes. Vuelve a ejecutar a la velocidad que quieres y confirma que se detiene a tiempo.

Causas probables

  1. 1A alta velocidad el robot recorre más distancia entre lecturas, así que un umbral muy cercano se dispara demasiado tarde.
  2. 2El umbral se ajustó para una velocidad más lenta que la que el robot está usando ahora.
  3. 3El sensor se lee con tan poca frecuencia que a esa velocidad no alcanza a detectar la pared a tiempo.

Comprobación de conocimientos

Responde estas preguntas para comprobar que puedes depurar errores por familia y demostrar que un robot es confiable.

  1. 1. Diagnostica el tipo de error más probable.

    Un robot seguidor de línea funcionaba ayer. Hoy se pasa de largo la línea todas las veces, aunque el código no ha cambiado. Hoy el cuarto está mucho más iluminado.

  2. 2. ¿Qué es depurar?

  3. 3. Un robot iba derecho la semana pasada. Su programa no ha cambiado, pero ahora se curva hacia un lado en cada corrida. ¿Qué familia de error es la más probable?

  4. 4. ¿Qué es un contador?

  5. 5. En un ensayo de confiabilidad, ¿qué es el "resultado esperado"?

  6. 6. ¿Por qué se ejecuta la misma tarea tres veces en un ensayo de confiabilidad?

0 de 6 respondidas

Reflexiona

Tus reflexiones se guardan solas.

Lo que viene la próxima semana

La próxima semana ponemos la confiabilidad a trabajar: vamos a planear una misión autónoma completa que el robot ejecute con seguridad por su cuenta.

  • Guarda tu registro de prueba de tres corridas y tu hoja del Detective de errores: un comportamiento confiable es la base de la misión de la próxima semana.
  • Piensa en un trabajo que tu robot pudiera hacer de principio a fin sin que nadie lo maneje.
  • Carga tu kit, guarda el simulador en tus marcadores, o reúne tu robot de cartón y tu pista.

Termina la semana 6

Completa esto para dar la semana por terminada y desbloquear la siguiente:

  • Diagnosticar y corregir al menos un error de cada familia, anotando el síntoma y la solución (not done yet)
  • Completar un ensayo de confiabilidad de tres corridas con lo esperado frente a lo real anotado (not done yet)
  • Usar una variable contador para llevar la cuenta de los obstáculos esquivados (not done yet)
  • Obtener al menos 4 de 5 en la comprobación de conocimientos (not done yet)
  • Escribir tu reflexión (not done yet)