01 · Punto de partida
Primero la pregunta, después el sensor
Ya tenemos una arquitectura de robot, un entorno de programación y un plan de alimentación. Ahora empieza el bloque de sensores. La primera decisión no es qué componente comprar, sino qué información necesita cada comportamiento.
Para detenerse ante una pared, el robot necesita observar el obstáculo. Para mantener la velocidad de sus ruedas, necesita observar el giro. Para anticipar una pérdida de alimentación, necesita medir su batería. Son preguntas diferentes y ninguna lectura responde automáticamente a todas.
Llamamos propiocepción a la información sobre el estado del propio robot y exterocepción a la información sobre el entorno. Esta distinción aparece en el capítulo de sensores de Elements of Robotics. Nos sirve para detectar qué parte de la situación todavía estamos suponiendo en vez de medir.
02 · Mirar hacia adentro
Medir el propio robot
Un sensor propioceptivo aporta información sobre movimiento, configuración o estado interno. Permite responder preguntas como «¿cuánto giró el eje?», «¿dónde está la articulación?» o «¿qué esfuerzo eléctrico está demandando el motor?».
| Sensor | Qué observa | Uso | Qué no demuestra por sí solo |
|---|---|---|---|
| Encoder en una rueda | Giro del eje donde está instalado | Estimar velocidad y recorrido | Desplazamiento sin patinamiento |
| Sensor angular de articulación | Ángulo relativo entre piezas | Controlar postura de un brazo | Posición exacta del extremo sin un modelo geométrico |
| Sensor de corriente de motor | Corriente en su rama | Detectar esfuerzo anormal | Causa única del esfuerzo ni fuerza exacta sin modelo |
| Medición de batería | Tensión o corriente del pack | Supervisar alimentación | Porcentaje exacto de carga solo con una lectura de tensión |
| Sensor térmico del driver | Temperatura en su ubicación | Reducir esfuerzo ante calentamiento | Temperatura de todas las partes del robot |
| Giroscopio | Velocidad angular del cuerpo sensor | Estimar cambios de orientación | Ángulo absoluto sin deriva al integrar indefinidamente |
Los sensores inerciales suelen incluirse en este grupo cuando describen el movimiento del robot. Un acelerómetro mide fuerza específica; su lectura también permite observar efectos de la gravedad según la orientación. No entrega directamente posición ni una inclinación inequívoca durante cualquier movimiento. Lo estudiaremos con más detalle en el tema 8.
La ubicación importa: un encoder antes de una caja reductora observa otro eje que uno instalado en la rueda. Para convertir entre ambos hay que conocer la transmisión y considerar holguras o deslizamientos.
03 · Mirar hacia afuera
Medir el entorno
Un sensor exteroceptivo observa objetos, superficies, señales o contactos externos. Puede detectar una pared, una marca en el suelo, una pieza o una referencia para orientarse.
| Sensor | Observación | Uso | Limitación típica |
|---|---|---|---|
| Sensor de distancia | Respuesta de un objeto en su zona de detección | Separación respecto de un obstáculo | Material, geometría, alcance y zonas ciegas |
| Reflectivo de línea | Luz reflejada por una pequeña zona del suelo | Seguir una marca | Altura, iluminación y reflectancia del fondo |
| Cámara | Imagen de su campo de visión | Reconocer referencias y objetos | Oclusión, iluminación y procesamiento |
| Bumper de contacto | Contacto externo que lo acciona | Detectar colisión | Solo informa después del contacto y en su zona |
| Sensor de fuerza en una pinza | Interacción con la pieza | Regular el agarre | Dirección, montaje y calibración de la fuerza |
Un sensor frontal que no detecta objetos no certifica que todo el espacio esté libre. Puede haber un obstáculo lateral, una superficie difícil de detectar o un hueco por debajo del haz. La decisión debe respetar qué región del entorno está siendo observada.
04 · Vocabulario
Clasificaciones que se cruzan
Propioceptivo y exteroceptivo clasifican qué se observa. Hay otros ejes de clasificación que no deben confundirse con ese criterio.
Activo o pasivo
En percepción robótica, un sensor activo emite energía de sondeo y observa su respuesta, como el ultrasonido o un reflectivo con emisor. Uno pasivo observa energía disponible, como una cámara sin iluminación propia. «Pasivo» no significa que su electrónica no consuma electricidad.
Contacto o sin contacto
Un bumper necesita interacción física. Un sensor óptico puede observar a distancia. Ambos pueden medir el entorno; la diferencia determina cuándo y cómo aparece la información.
También distinguimos interfaces analógicas y digitales. Esa clasificación describe la salida del dispositivo, no la exactitud de su información. Un módulo digital puede entregar una distancia con mucho error; una señal analógica bien adquirida puede ser útil y repetible.
Un mismo dispositivo puede participar en tareas diferentes. En casos fronterizos es más productivo escribir «mide el contacto de la pinza con la pieza» que discutir una etiqueta. La descripción explícita revela qué información llega al controlador.
05 · Del dato al significado
De la señal a la estimación
Un sensor no suele entregar toda la información que necesita el comportamiento. Entre la señal y la decisión hay conversiones y supuestos.
Si el encoder entrega 360 cuentas efectivas por vuelta de rueda y observamos 720 cuentas, estimamos dos vueltas. Con un radio de 3 cm:
sencoder = 2 · π · radio · vueltas ≈ 37,7 cm
La conversión de cuentas a giro y la estimación del avance son pasos diferentes. Aunque el giro esté bien medido, el desplazamiento puede ser menor si la rueda patina. La introducción a odometría de Modern Robotics explica cómo estimar movimiento desde ruedas y por qué los errores se acumulan.
«360 cuentas por vuelta» debe incluir la forma de conteo y el eje de referencia. No mezcles pulsos de ficha, flancos de cuadratura y vueltas del motor antes de la reducción. El tema 9 desarrolla esos detalles.
06 · Evaluar una medición
Calidad y límites de una medida
La cantidad de cifras que muestra una lectura no determina cuánto debemos confiar en ella. Conviene separar varias propiedades:
| Propiedad | Pregunta | Ejemplo |
|---|---|---|
| Rango | ¿Dónde está especificado su funcionamiento? | No usar una distancia fuera de alcance como una medida fiable |
| Resolución | ¿Qué cambio pequeño distingue o representa? | Una cuenta de encoder o un paso de lectura |
| Exactitud | ¿Qué tan cerca queda de una referencia fiable? | Indicar 52 cm ante una referencia de 50 cm |
| Precisión o repetibilidad | ¿Qué tan agrupadas quedan lecturas repetidas? | 52,0; 52,1; 52,0 cm puede ser repetible y tener sesgo |
| Sesgo | ¿Hay un desplazamiento sistemático? | Sumar aproximadamente 2 cm en una condición calibrada |
| Ruido | ¿Cuánto fluctúa la observación? | Lecturas que varían aunque el objeto permanezca quieto |
| Campo de observación | ¿Qué zona realmente observa? | Detectar el frente sin observar los laterales |
Promediar puede reducir ciertas fluctuaciones, pero no elimina automáticamente un sesgo. También agrega retardo y puede ocultar cambios rápidos. La calibración compara con referencias y ajusta una conversión dentro de condiciones conocidas; no convierte un sensor en válido para cualquier superficie o temperatura.
Un ensayo sencillo usa varias distancias conocidas, lecturas repetidas y distintas condiciones relevantes. Guardá resultados y separá dispersión de error sistemático. Que el sensor repita un número no demuestra que ese número sea correcto.
07 · Un dato situado
Tiempo, ubicación y validez
Una lectura debe describir qué se midió, en qué unidades, dónde y cuándo. El registro puede incluir:
sensor: distancia_frontal
valor_cm: 42.0
valida: verdadero
instante_adquisicion_ms: 1500
referencia: frente del sensor, eje longitudinal del robot
Si el sensor está 5 cm por detrás del paragolpes y mide 20 cm hacia una pared frontal plana, quedan aproximadamente 15 cm desde el paragolpes. Comparar la lectura con un margen definido desde otro punto introduce un error geométrico.
La fecha también importa. A los 1600 ms, la medida anterior tiene 100 ms. A 40 cm/s, el robot podría haber avanzado 4 cm durante ese intervalo. La latencia de adquisición y el período de lectura deben entrar en el análisis de reacción.
Dos sensores adquiridos en momentos diferentes pueden describir situaciones diferentes. Antes de comparar sus números, comprobá validez, antigüedad, intervalo y referencia espacial. En este tema usaremos un modelo estático para aislar esas ideas.
08 · Contrastar evidencia
Dos observaciones del mismo movimiento
Imaginá un robot que avanza recto hacia una pared fija. El encoder permite estimar recorrido desde el giro. Un sensor frontal permite estimarlo desde la reducción de distancia a la misma pared:
residuo = sencoder − sexterno
Si el encoder estima 37,7 cm y la distancia pasa de 120 a 89,8 cm, el segundo método estima unos 30,2 cm. La diferencia es de aproximadamente 7,5 cm. Ambas observaciones no son coherentes con el modelo de rodadura perfecta.
Eso no demuestra una única causa. Puede existir patinamiento, radio mal calibrado, cambio de orientación, movimiento de la pared o error de distancia. El residuo señala una inconsistencia para investigar; no identifica automáticamente al sensor defectuoso.
Combinar sensores puede aportar información complementaria. Como ejemplo real, la documentación de odometría de iRobot Create 3 distingue sensores crudos de estimaciones combinadas y describe una estimación de deslizamiento que usa varios sensores.
No vamos a promediar directamente cuentas de encoder y centímetros. Primero convertimos a magnitudes comparables y declaramos los supuestos. Una fusión que calcule una estimación conjunta requiere además modelos de error y tiempos compatibles; aquí nos limitamos a contrastar evidencia.
09 · Código ejecutable
Comparar sensores con Python
El ejemplo simula un recorrido recto con radio de 3 cm y dos vueltas. Un deslizamiento didáctico del 20 % significa que el avance es el 80 % del recorrido ideal. El sesgo se aplica solo a la lectura final: representa un cambio de error entre las dos observaciones.
Probalo en el navegador. Podés editar y ejecutar el ejemplo. Python se descarga con Pyodide la primera vez y requiere conexión. No usa hardware real.
from math import pi
radio_cm = 3.0
cuentas_por_vuelta = 360
cuentas = 720
distancia_inicial_cm = 120.0
umbral_residuo_cm = 5.0
recorrido_encoder = 2 * pi * radio_cm * cuentas / cuentas_por_vuelta
casos = [
("ideal", 0.00, 0.0),
("deslizamiento", 0.20, 0.0),
("error final", 0.00, 6.0),
("errores que se compensan", 0.20, -6.0),
]
for nombre, deslizamiento, sesgo_final in casos:
avance_real = recorrido_encoder * (1 - deslizamiento)
distancia_final = distancia_inicial_cm - avance_real + sesgo_final
recorrido_externo = distancia_inicial_cm - distancia_final
residuo = recorrido_encoder - recorrido_externo
alerta = abs(residuo) > umbral_residuo_cm
print(f"{nombre}: encoder={recorrido_encoder:.1f} cm; "
f"externo={recorrido_externo:.1f} cm; "
f"residuo={residuo:.1f} cm; alerta={alerta}")Resultados: residuos de 0,0; 7,5; 6,0 y 1,5 cm, respectivamente. Con umbral de 5 cm aparecen alertas en los casos segundo y tercero. En el cuarto hay errores, pero se compensan parcialmente y no activan la alerta.
Un sesgo constante de +6 cm presente tanto en la lectura inicial como en la final se cancelaría en la resta. El código modela un error distinto en la lectura final, no una compensación general de calibración.
10 · Exploración interactiva
Laboratorio: lo que dice la rueda y lo que dice la pared
Modificá el giro de la rueda, el deslizamiento y el error de la lectura final. El laboratorio genera una posición real para el modelo, pero el algoritmo solo compara encoder y distancia. La pared está fija a 120 cm del punto inicial del sensor y el robot mantiene orientación recta.
Observación interna y referencia externa
Constantes: 360 cuentas por vuelta, distancia inicial de 120 cm, edad máxima de 100 ms y umbral del residuo de 5 cm.
Ajustá los controles para comparar las observaciones.
| Dato | Valor |
|---|---|
| Cuentas del encoder | — |
| Distancia final medida | — |
| Edad y validez de la lectura final | — |
El modelo no incluye ruido aleatorio, giros, aceleración ni frenado. El radio es conocido e igual en la simulación y en el cálculo. Si la medida final falta o está vencida, el algoritmo no calcula residuo: conserva la distinción entre «sin discrepancia» y «sin comparación disponible».
Recorrido guiado
- Con los valores iniciales, ambos métodos estiman 37,7 cm y el residuo es 0. La distancia final es 82,3 cm.
- Subí la pérdida de avance al 20 %: el encoder sigue en 37,7 cm, pero el avance real y el externo quedan en 30,2 cm. El residuo de 7,5 cm activa la alerta.
- Con esa pérdida, fijá el error final en −6 cm: el externo estima 36,2 cm y el residuo baja a 1,5 cm. No hay alerta aunque las observaciones tengan errores.
- Restablecé y fijá el error final en +6 cm: aparece un residuo de 6 cm sin deslizamiento. La discrepancia no identifica una causa única.
- Elegí medida vencida y después sin respuesta: el residuo deja de estar disponible. La falta de datos no confirma el modelo del encoder.
- Restablecé y llevá las vueltas a cero: no hay avance y los recorridos son cero. Agregá un error final de +6 cm: el sensor externo aparenta un recorrido de −6 cm, aunque el modelo no se movió.
11 · Método de trabajo
Diseñar un conjunto de sensores
La elección parte de decisiones y fallos que querés observar. Para el vehículo del curso podemos construir esta matriz:
| Pregunta | Medida candidata | Tipo | Respuesta ante dato ausente |
|---|---|---|---|
| ¿La rueda mantiene su velocidad? | Encoder y tiempo transcurrido | Propioceptivo | No asumir que la orden se está cumpliendo |
| ¿Hay un objeto delante? | Distancia frontal | Exteroceptivo | Solicitar parada si no hay otra observación suficiente |
| ¿La línea sigue debajo? | Reflectancia del suelo | Exteroceptivo | Pasar al comportamiento de línea perdida |
| ¿La alimentación permite continuar? | Tensión bajo carga y supervisión del sistema | Propioceptivo | Aplicar la política de energía definida |
- Escribí la pregunta y la condición que debe disparar una acción.
- Definí magnitud, referencia espacial, rango y calidad necesarios.
- Calculá la antigüedad máxima que puede tolerar esa decisión.
- Comprobá montaje, alimentación e interfaz disponibles.
- Probá límites, condiciones difíciles y pérdida de lectura.
- Registrá supuestos: qué se mide directamente y qué se estima.
Más sensores no garantizan mejor percepción. Pueden compartir fallos, observar mal una región o competir por tiempo de lectura. La información adicional debe resolver una necesidad concreta y tener un tratamiento explícito cuando falla.
12 · Comprensión
Confusiones frecuentes
«Propioceptivo significa que está adentro de la carcasa»
La clasificación depende de la magnitud observada. Una cámara interna que mira el exterior sigue aportando información del entorno. Un sensor externo que mide una articulación puede aportar estado propio.
«El encoder mide centímetros recorridos»
Mide eventos asociados al giro. Los centímetros se estiman usando conteo, transmisión, radio y un modelo de contacto con el suelo. Una rueda que patina rompe parte de ese modelo.
«Una lectura digital es exacta»
Digital describe cómo se representa o transmite la información. No elimina sesgo, ruido, latencia ni errores del fenómeno físico medido.
«Si dos sensores coinciden, el resultado es verdadero»
Pueden compartir un error o tener errores que se compensan. La coincidencia es evidencia condicionada por los modelos y referencias, no una garantía universal.
«Sin respuesta significa que no hay nada»
Significa que falta una observación utilizable. Puede haber una causa ambiental o una falla. La respuesta del comportamiento debe definirse, sin convertir la ausencia en una distancia inventada.
«Promediar siempre mejora el control»
Puede reducir cierto ruido, pero agrega retardo y no corrige necesariamente un sesgo. Evaluá la respuesta temporal y el error que querés reducir antes de aplicar un filtro.
13 · Práctica guiada
Predecí antes de comprobar
1. Clasificar por lo observado
Clasificá: encoder de rueda, sensor de línea, tensión de batería, bumper frontal y sensor de ángulo de una articulación. ¿Un final de carrera siempre pertenece al mismo grupo?
Ver solución
Encoder, batería y ángulo de articulación aportan estado propio. Línea y bumper aportan información del entorno. Un final de carrera puede observar un límite interno o un contacto externo: hay que describir su función en el montaje.
2. Recorrido desde cuentas
Una rueda de radio 3 cm entrega 360 cuentas efectivas por vuelta. Se registran 1080 cuentas. ¿Qué recorrido estima la rodadura ideal?
Ver solución
Son 1080 / 360 = 3 vueltas. El recorrido ideal es 2 × π × 3 × 3 ≈ 56,5 cm. Es una estimación de avance, no una prueba de que no haya patinado.
3. Detectar una inconsistencia
El encoder estima 50 cm y la distancia a una pared fija pasa de 100 a 60 cm. Con umbral de residuo de 5 cm, ¿hay alerta? ¿Podés afirmar que patinó?
Ver solución
El recorrido externo es 40 cm; el residuo es 50 − 40 = 10 cm. Hay alerta porque su magnitud supera 5 cm. No basta para afirmar patinamiento: también hay que revisar calibración, referencia, orientación y validez de las medidas.
4. Precisión y exactitud
Una referencia está a 30 cm y el sensor informa 33,0; 33,1 y 33,0 cm. ¿Qué problema sugerís investigar?
Ver solución
Las lecturas están agrupadas, pero alejadas de la referencia. Hay buena repetibilidad en esa condición y un posible sesgo de unos +3 cm. Promediarlas no elimina ese desplazamiento sistemático.
5. Una lectura vieja
El robot avanza a 30 cm/s y una lectura tiene 200 ms de antigüedad. ¿Cuánto podría haber avanzado desde la adquisición? ¿Podés tratar la distancia como actual?
Ver solución
30 × 0,2 = 6 cm. La antigüedad puede ser relevante para la decisión. No se debe tratar como actual sin considerar movimiento, latencia y tolerancias del comportamiento.
6. Elegir observaciones complementarias
Querés que una pinza cierre sobre una pieza sin exceder su recorrido ni apretarla demasiado. ¿Qué dos preguntas diferentes necesita responder?
Una solución posible
Necesita conocer la configuración o límite de cierre y la interacción con la pieza. Un sensor de posición y uno de fuerza o contacto aportan evidencias complementarias. La corriente puede ayudar a estimar esfuerzo, pero no se convierte en fuerza exacta sin considerar motor, transmisión y fricción.
14 · Síntesis
Ideas para recordar
- Los sensores propioceptivos describen el estado del robot; los exteroceptivos observan el entorno y sus interacciones.
- La función y la magnitud observada definen la clasificación, no el lugar de la carcasa donde está el sensor.
- Señal, magnitud convertida y estado estimado son niveles diferentes de información.
- Resolución, exactitud, repetibilidad, sesgo, ruido y rango no significan lo mismo.
- Una medida necesita unidades, referencia, validez y tiempo de adquisición.
- El encoder observa giro; convertirlo en desplazamiento requiere supuestos de geometría y rodadura.
- Una discrepancia entre sensores permite investigar, pero no identifica por sí sola una causa.
- Diseñá las observaciones desde las preguntas del comportamiento y probá también datos ausentes o vencidos.
¿Listo para el tema 6?
Antes de avanzar, elegí un robot y escribí tres preguntas sobre su estado propio y tres sobre su entorno. Proponé una medida para cada una y explicá qué todavía tendrías que suponer para tomar una decisión.
En el próximo tema estudiamos sensores de distancia: ultrasonido, infrarrojos y tiempo de vuelo, con sus alcances, ruido y zonas ciegas.