01Gancho
Tu encoder da 360 ticks por vuelta de rueda. En 0.1 s cuentas 45 ticks. ¿A qué velocidad va el robot?
02Concepto
Un encoder es un sensor que cuenta fracciones de vuelta del eje. Cada vez que la rueda gira una fracción fija, el encoder suma un tick. N_e es el número de ticks que cuenta en una vuelta completa de la rueda.
Un tick equivale a un ángulo de 2π/N_e rad: esa es su resolución angular. Sin deslizamiento, la rueda avanza un perímetro 2πr por vuelta, así que un tick equivale a una distancia res = 2πr/N_e: la resolución lineal. Con r = 0.032 m, res = 0.0005585 m.
Contar ticks es medir ángulo y distancia. Tras una cuenta de ticks, la rueda giró θ = 2π·ticks/N_e y avanzó s = 2πr·ticks/N_e.
Para la velocidad necesitas dos lecturas. Cuentas Δticks en un intervalo Δt y divides: v ≈ 2πr·Δticks/(N_e·Δt). Con los datos del gancho, ω ≈ 2π·45/(360·0.1) = 7.854 rad/s y v ≈ 7.854·0.032 = 0.2513 m/s.
Esa velocidad es una derivada aproximada, como v = dx/dt estimada con un Δt finito. El encoder solo da cuentas enteras, así que la velocidad estimada solo puede valer múltiplos de res/Δt. A alta velocidad hay muchos ticks por muestra y el salto de un tick casi no se nota. A baja velocidad caen pocos ticks por muestra: la lectura cambia en escalones y oscila alrededor del valor real. Ese error por contar en unidades enteras es la cuantización.
Esto es lo que hace el simulador con los pulsos de encoder por vuelta de tu perfil: cuenta ticks enteros en cada rueda y estima la velocidad con la misma fórmula.
03Fórmulas
θ· ángulo · radticks· cuenta del encoder · —N_e· ticks del encoder por revolución · —
s· distancia recorrida (arco) · mr· radio de rueda · mticks· cuenta del encoder · —N_e· ticks del encoder por revolución · —
v· velocidad lineal · m/sr· radio de rueda · mΔticks· ticks contados en un intervalo · —N_e· ticks del encoder por revolución · —Δt· intervalo de tiempo · s
res· resolución lineal del encoder · mr· radio de rueda · mN_e· ticks del encoder por revolución · —
04Explora
El robot avanza en línea recta durante 5 s con ω_L = ω_R = 7.85 rad/s, la velocidad del gancho. La vista muestra su trayectoria y la velocidad de cada rueda; el panel de odometría muestra los ticks de cada rueda y la velocidad estimada por los encoders junto a la real.
Cambiala velocidad de las dos ruedas, ω_L y ω_R, a 1 rad/sObservala velocidad estimada en el panel de odometría
¿Por qué salta en escalones?
Ver la respuesta
A 1 rad/s la rueda gira despacio, así que en cada muestra caen pocos ticks. La velocidad estimada solo puede valer múltiplos de res/Δt. Un tick de más o de menos en una muestra es un escalón visible.
Cambiael deslizador «Ticks por vuelta de rueda» a 20Observala velocidad estimada frente a la real
¿Por qué los escalones son enormes?
Ver la respuesta
Con N_e = 20, res = 2π·0.032/20 = 0.01005 m, mucho mayor que con 360 ticks. Cada tick es un salto de res/Δt en la velocidad estimada. Con tan pocos ticks por muestra, la lectura salta entre valores muy separados.
Cambiael deslizador «Ticks por vuelta de rueda» a 2000Observala velocidad estimada frente a la real
¿Por qué la estimada sigue a la real?
Ver la respuesta
Con N_e = 2000, res = 2π·0.032/2000 = 0.0001005 m. En cada muestra caen muchos ticks y un tick de diferencia es un error pequeño. La cuantización sigue ahí, pero sus escalones son casi invisibles.
05Al robot
La resolución lineal de tu encoder es la distancia más pequeña que tu robot puede medir con sus ruedas. Depende del radio r de la rueda y de los ticks N_e que da tu encoder por vuelta de rueda:
Si «Mi robot» no define los pulsos de encoder por vuelta de tu perfil, el cálculo usa los del robot de referencia: N_e = 360. Si tu perfil no es un robot móvil, usa el robot de referencia completo.
Invirtiendo s = 2πr·ticks/N_e sale cuántos ticks cuenta tu encoder por cada metro que avanza el robot, con s = 1 m:
Con el robot de referencia, res = 2π·0.032/360 = 0.5585 mm y el encoder cuenta 1790 ticks por metro. Una distancia menor que 0.5585 mm no llega a sumar un tick: es el error de cuantización de tu robot al medir distancias.
06Verifica
E1El encoder de tu robot da N_e = 1024 ticks por vuelta de rueda y la rueda tiene r = 0.02600 m. ¿Cuál es su resolución lineal res, en m?obligatorio
E2El encoder de tu robot da N_e = 360 ticks por vuelta de rueda y la rueda tiene r = 0.032 m. En Δt = 0.02000 s cuentas Δticks = 14.00. ¿Cuál es la velocidad angular ω de la rueda, en rad/s, y la velocidad lineal v del robot, en m/s?obligatorio
E3El encoder de tu robot da N_e = 360 ticks por vuelta de rueda y la rueda tiene r = 0.032 m. ¿Cuántos ticks cuentas mientras el robot recorre D = 3.620 m en línea recta?obligatorio
E4El encoder de tu robot da N_e = 360 ticks por vuelta de rueda y la rueda tiene r = 0.032 m. Cuentas ticks = 19850. ¿Qué distancia s recorre la rueda, en m?
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".