01Gancho
Tu robot está en (1.2, 0.5) m apuntando a 30°, y su sensor central está 0.09 m delante del eje. ¿Dónde está el sensor sobre la mesa?
02Concepto
Para ubicar algo sobre la mesa necesitas un marco de referencia: un origen y dos ejes. El marco global {G} está fijo a la mesa, con X a la derecha e Y hacia arriba. El marco del robot {R} viaja con el robot: su origen está en el punto medio del eje de las ruedas, X apunta hacia adelante e Y hacia la izquierda. Los ángulos son antihorarios positivos.
La pose del robot es (x, y, θ): la posición del origen de {R} en {G} más su orientación θ, el ángulo del eje X de {R} medido desde el eje X de {G}. Con tres números sabes dónde está el robot sobre el plano y hacia dónde mira.
Un punto fijo al robot, como un sensor, tiene coordenadas constantes en {R}: el sensor central del gancho está en p⃗_R = (0.09, 0) m. Para pasarlo a {G}, primero lo rotas θ con la matriz de rotación R(θ) y después lo trasladas sumando el origen de {R}, p⃗_{R,0} = (x, y). Las columnas de R(θ) son los ejes de {R} vistos desde {G}.
Con los datos del gancho, cos 30° = 0.866 y sin 30° = 0.5. Rotar (0.09, 0) m da (0.0779, 0.045) m, y sumar (1.2, 0.5) m deja el sensor en (1.278, 0.545) m.
La transformación inversa deshace los pasos en orden contrario: primero trasladas, restando p⃗_{R,0}, y después rotas con −θ. Así sabes dónde queda un punto de la mesa visto desde el robot.
Para ir hacia un objetivo (x_o, y_o), el robot necesita el rumbo θ_objetivo: el ángulo de la recta que va de su posición al objetivo. Se calcula con atan2, que conserva el cuadrante que la arcotangente simple pierde.
La ruta 2 usa este mismo mecanismo en 3D: la posición de la pinza de un brazo se obtiene encadenando rotaciones y traslaciones de un marco al siguiente.
03Fórmulas
R(θ)· matriz de rotación 2D · —θ· orientación del robot · rad
p⃗_G, p⃗_R· un punto expresado en {G} y en {R} · mp⃗_{R,0}· origen de {R} en {G}: el (x, y) de la pose · mR(θ)· matriz de rotación 2D · —
p⃗_R, p⃗_G· un punto expresado en {R} y en {G} · mp⃗_{R,0}· origen de {R} en {G}: el (x, y) de la pose · mR(−θ)· matriz de rotación 2D con el ángulo −θ · —
θ_objetivo· rumbo hacia un objetivo · rad(x_o, y_o)· punto objetivo · mx, y· posición del robot en {G} · m
04Explora
El robot de tu perfil avanza en curva durante 6 s, con ω_L = 6 rad/s y ω_R = 8 rad/s. El simulador dibuja los ejes de {G} y de {R}, la trayectoria recorrida y un panel de marcos con la matriz R(θ) y las coordenadas de los sensores en ambos marcos.
Cambiala posición del robot: pausa y arrástralo; después, reproduceObservalos ejes de {R} y los de {G}
¿Por qué los ejes de {R} se mueven y los de {G} no?
Ver la respuesta
{R} está pegado al robot: su origen es el punto medio del eje de las ruedas. Al arrastrarlo, sus ejes se trasladan con él, y al reproducir además giran, porque θ cambia. {G} está fijo a la mesa y no depende de la pose.
Cambiala posición del robot: arrástralo a otro puntoObservala fila «Sensor 1» del panel de marcos, el sensor izquierdo extremo
¿Por qué cambian sus coordenadas en {G} y no las de {R}?
Ver la respuesta
El sensor está fijo al robot, así que en {R} sus coordenadas son siempre las del perfil: (0.09, 0.024) m con el robot de referencia. En {G} dependen de la pose, porque p⃗_G = p⃗_{R,0} + R(θ)·p⃗_R.
Cambiala orientación inicial θ₀ a 90°Observala matriz R(θ) del panel de marcos
¿Por qué la x del robot pasa a ser la y del mundo?
Ver la respuesta
Con θ = 90°, cos θ = 0 y sin θ = 1, así que la primera columna de R(θ) es (0, 1). Esa columna es el eje X de {R} visto desde {G}: el robot mira en la dirección de Y de {G}, y avanzar en x de {R} es avanzar en y de {G}.
05Al robot
Los sensores de línea de tu robot están fijos en {R}. Tu perfil de «Mi robot» da su número N, su separación e_s y la distancia d del arreglo al eje de las ruedas. El centro del arreglo está en (d, 0), y el sensor izquierdo extremo en (d, (N − 1)·e_s/2), porque Y de {R} apunta a la izquierda. Con N impar, el centro del arreglo es el sensor central.
Con la pose del gancho, (1.2 m, 0.5 m, 30°), el centro del arreglo de tu robot queda en:
Y su sensor izquierdo extremo, en:
Si tu perfil no es un robot móvil, el cálculo usa el robot de referencia: N = 5 sensores separados e_s = 0.012 m, con d = 0.09 m.
Con el robot de referencia, el sensor central queda en (1.278, 0.545) m y el izquierdo extremo en (1.266, 0.5658) m. En {R} los separan 0.024 m, y en {G} también: la rotación y la traslación no cambian distancias.
La pista está dibujada sobre la mesa, no sobre el robot. Para saber si un sensor ve la línea hay que conocer su posición en {G}, y esa posición cambia con cada pose del robot.
06Verifica
E1Tu robot está en la pose (x, y, θ) = (0.8900 m, 1.770 m, 154.0°). Un punto está en (d, 0) de {R}, con d = 0.1200 m. ¿Cuáles son sus coordenadas (x, y) en {G}, en m?obligatorio
E2Tu robot está en la pose (x, y, θ) = (1.600 m, 0.8700 m, 78.00°). Su sensor izquierdo extremo está en (0.09, 0.024) m de {R}. ¿Cuáles son sus coordenadas (x, y) en {G}, en m?obligatorio
E3Tu robot está en (0, 0) m y el objetivo en (x_o, y_o) = (−0.6400 m, 0.8500 m). ¿Cuál es el rumbo θ_objetivo hacia el objetivo, en ° y en (−180°, 180°]?obligatorio
E4Tu robot está en la pose (x, y, θ) = (1.2 m, 0.5 m, 30°). ¿Cuáles son las coordenadas en {R} del punto global (1.5, 0.9) m, 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. 3, "Mobile Robot Kinematics".
- Craig, J. J. Robótica, 3.ª ed. Pearson Educación de México, 2006. ISBN 970-26-0772-8 (traducción de Introduction to Robotics: Mechanics and Control, 3.ª ed.). Cap. 2, "Descripciones espaciales y transformaciones".