Simulador de brazo robótico: cinemática y ROS
Explora límites articulares, cinemática directa, cinemática inversa y planificación de trayectorias en un simulador interactivo de brazo robótico.
- Categoría
- ROS
- Tiempo
- 3–6 horas
- Plataforma
- Browser · ROS 2
01 / Empieza aquí
Introducción
Los brazos robóticos transforman consignas articulares en movimientos precisos del efector mediante geometría, retroalimentación y planificación. Este simulador expone marcos de referencia, espacio de trabajo alcanzable, límites de articulación y singularidades cinemáticas, facilitando que estudiantes y usuarios de ROS 2 comprendan por qué un movimiento solicitado tiene éxito o falla.
Live lab / Forward & inverse kinematics · pick-and-place
Robot arm simulator
Pose the joints, drag a target and watch inverse kinematics solve it live, or set a pick-and-place task and run it — with honest reach, singularity, and limit reporting on a full 360° workspace.
The filled dot is the base at the centre; segments are links with round joints; the tool shows a small x/y frame. The shaded ring is the reachable workspace (between the two dashed circles). In inverse mode the cross-marker is the draggable target and the faint arm is the other elbow solution. In pick-and-place mode, drag the box (pick) and the dashed square (place), then press Run.
- Tool X
- 0 px
- Tool Y
- 0 px
- Tool angle
- 0°
- Status
- Reachable
- Reach
- 0 / 240 px
Keyboard: focus the workspace, then use Space to run a pick-and-place, R to reset, B to switch elbow, and F for full screen.
Controles
El simulador ofrece deslizadores articulares, un objetivo de herramienta arrastrable, superposiciones de marcos y controles de dimensiones de los eslabones, con la base centrada para que se vea el espacio de trabajo alcanzable completo de 360°. El modo directo calcula la pose de la herramienta a partir de los ángulos articulares que usted fija. El modo inverso sigue un objetivo que usted arrastra, resolviendo los ángulos articulares en vivo e informando de objetivos inalcanzables o ambiguos en vez de ajustarse en silencio a un resultado. Un tercer modo pick-and-place le deja colocar un punto de recogida y un destino, y luego hace que el brazo recorra la tarea entera: se mueve al objeto, lo agarra, lo transporta y lo suelta en la zona de depósito, el trabajo canónico para el que está construido todo manipulador real.
Teoría
Cada articulación aporta una transformación entre marcos de coordenadas. Multiplicar esas transformaciones desde la base hasta la herramienta da la pose de la cinemática directa. La cinemática inversa va hacia atrás y puede no tener solución, tener una, o tener varias.
Cerca de una singularidad, un movimiento pequeño de la herramienta puede exigir un movimiento articular muy grande. Un planificador debe además respetar límites de posición, velocidad, aceleración, par y colisión. Solo la alcanceabilidad geométrica no hace segura una trayectoria.
Algoritmo
- Defina longitudes de eslabones, ejes articulares, transformaciones de origen y límites articulares.
- Calcule la cinemática directa para el estado articular actual.
- Compare la pose actual de la herramienta con el objetivo solicitado.
- Use un solucionador analítico o numérico para reducir el error de pose dentro de los límites.
- Descarte candidatos que colisionen o sean singulares, y seleccione una solución continua.
- Parametrice temporalmente la trayectoria y envíe consignas sincronizadas a los controladores articulares.
Código fuente
Un brazo plano de dos eslabones tiene un modelo directo compacto:
from math import cos, sin
def forward_kinematics(theta_1, theta_2, link_1, link_2):
elbow = (link_1 * cos(theta_1), link_1 * sin(theta_1))
tool = (
elbow[0] + link_2 * cos(theta_1 + theta_2),
elbow[1] + link_2 * sin(theta_1 + theta_2),
)
return elbow, tool
Para brazos físicos, valide toda trayectoria planificada en un entorno acotado y con detección de colisiones antes de habilitar la alimentación de los actuadores.
Suposiciones y diferencias con el hardware
El brazo es plano, con dos o tres articulaciones revolutas, eslabones perfectamente rígidos, respuesta de velocidad instantánea y sin gravedad, dinámica ni colisión: puede pasar de codo arriba a codo abajo sin límite de par. Los servos reales tienen límites de posición y de velocidad, holgura de engranajes, par limitado por corriente y flecha dependiente de la carga, y un brazo de 6 ejes además tiene que gestionar la orientación, las singularidades y el trabajo cerca de los límites articulares. Este laboratorio es donde aprende por qué un objetivo dentro de la corona puede tener dos soluciones y por qué un objetivo en su borde es singular, antes de añadir la dinámica que hace esas posturas difíciles de mantener.
Diagrama de circuito
Separe la alimentación de alta corriente de los actuadores de la alimentación de cómputo, manteniendo las señales de referencia y de seguridad que requiera el hardware elegido.
Experimentos guiados
Arrastrar un objetivo por todas partes es la forma más rápida de construir intuición sobre cosas que son tediosas de demostrar sobre el papel y caras de descubrir en el hardware.
1. Hallar la forma del espacio de trabajo
Arrastre el objetivo lentamente hacia fuera hasta que el solucionador informe de inalcanzable, y después recorra ese borde entero alrededor. Ahora arrástrelo hacia dentro, hacia la base.
Con longitudes de eslabón desiguales encontrará dos bordes: un círculo exterior en L1 + L2 y
otro interior en |L1 − L2|. El espacio de trabajo es una corona, no un disco, y hay un hueco
en el centro que el brazo no puede alcanzar físicamente.
| Eslabones | Alcance exterior | Hueco interior | Forma |
|---|---|---|---|
| 100 + 90 | 190 | 10 | Corona con un hueco pequeño |
| 100 + 50 | 150 | 50 | Corona con un hueco grande |
| 100 + 100 | 200 | 0 | Un disco pleno: los eslabones iguales pueden plegarse sobre sí mismos |
Esa última fila es un dato de diseño realmente útil: las longitudes de eslabón iguales eliminan la zona muerta por completo. Si su brazo tiene que trabajar cerca de su propia base, esa es la razón para elegirlas.
2. Ver cómo se fusionan las dos soluciones
Commute entre las ramas de codo arriba y de codo abajo en un objetivo cerca del centro del espacio de trabajo: dos posturas del brazo claramente distintas que alcanzan el mismo punto.
Ahora arrastre ese objetivo hacia fuera, hacia el borde. Las dos posturas convergen, y en la extensión total se convierten en la misma postura. Eso es una singularidad, y es donde el brazo pierde la capacidad de mover la herramienta en una dirección por mucho que hagan las articulaciones.
3. Sentir lo que cuesta una singularidad
Arrastre el objetivo a lo largo de una recta que pase cerca de la extensión total, despacio y con constancia. Mire los ángulos articulares en vez del brazo.
La herramienta se mueve a ritmo constante; las articulaciones no. Cerca del borde, un movimiento pequeño de la herramienta exige un movimiento articular enorme, así que una trayectoria cartesiana suave se convierte en un movimiento articular violento. En hardware eso es un servo pegándose contra su límite.
Mantenga las trayectorias planificadas dentro del 95 % del alcance máximo y esto deja de ser un problema.
4. Cruce un borde de rama y observe el salto
Ponga el solucionador en elegir siempre codo arriba, y luego arrastre el objetivo a través de una región donde esa rama se topa con un límite articular y el solucionador cambia. El brazo da un volteco por un movimiento grande, rápido y completamente no previsto.
Por eso el valor por defecto correcto es movimiento mínimo: elegir la rama más cercana a la pose actual, en vez de una rama fija. Un cambio de rama silencioso a mitad de trayectoria en hardware real es alarmante y además puede ser destructivo.
Qué debería observar
| Acción | Resultado esperado | Si ve otra cosa |
|---|---|---|
Objetivo más allá de L1 + L2 |
Un «inalcanzable» limpio | Un NaN o una pose ajustada a la fuerza significa que el solucionador comprueba la alcanzabilidad demasiado tarde |
Objetivo dentro de |L1 − L2| |
También inalcanzable | Correcto: esto es el hueco, no un fallo |
| Objetivo detrás de la base | Se alcanza correctamente | Si se refleja, es atan en vez de atan2 |
| Commutar la rama de codo | La misma posición de herramienta, articulaciones distintas | Ambas son válidas; elegir es decisión suya |
| Arrastrar hacia el borde | Las velocidades articulares se disparan | Esto es la singularidad |
| Ida y vuelta por FK y luego IK | Vuelven los ángulos originales | Un desajuste significa que la convención de signo u offset es inconsistente |
Llevarlo al hardware
La geometría se traslada exactamente. Nada más lo hace, y esa brecha es donde un primer brazo gasta su tiempo:
| Este laboratorio | Un brazo real con servos |
|---|---|
| Las articulaciones van exactamente donde se manda | El cero de un servo está donde se montó su horquilla; algunos giran al revés |
| Sin gravedad | El hombro se hunde en la extensión, justo donde la precisión es peor |
| Sin backlash | Varios grados de juego, que se cargan en cada inversión |
| Movimiento instantáneo | Un salto comandado va a plena velocidad, con un pico de corriente |
| Longitudes de eslabón perfectas | Mida entre los ejes articulares, no entre los bordes de las soportes |
| Par infinito | Un SG90 al 58 % de su par de bloqueo no mantendrá la posición con precisión |
Dos números demuestran el punto. Cuatro grados de juego en el hombro sobre un alcance de 190 mm son más de 13 mm en la pinza, más que cualquier error que introduzca la matemática. Y una longitud de eslabón medida 10 mm larga en un eslabón de 95 mm es un error sistemático del 10 % que ningún ajuste eliminará.
La consecuencia práctica es que la precisión en hardware viene de la calibración y de una dirección de aproximación consistente, no de una mejor cinemática. Acepte siempre un objetivo desde la misma dirección y el backlash se convierte en un offset repetible que puede restar. El solucionador completo, con todos los casos de fallo tratados, está en cinemática inversa para un brazo de dos eslabones.
Lista de hardware
Componentes
- Brazo robótico de tres o más grados de libertad
- Controlador con sincronización multieje
- Servos inteligentes con retroalimentación articular
- Base rígida y punto central de herramienta (TCP) calibrado
- Parada de emergencia y fuente con limitación de corriente
Explora el grafo
Dónde se usa este simulador
Los proyectos, rutas de aprendizaje y tutoriales que se basan en este laboratorio.
Sigue construyendo
Descargar recursos
Usa estas referencias de la página mientras trabajas en el proyecto. Los paquetes descargables del proyecto se añadirán solo cuando se publiquen su código fuente y su versión.
Preguntas comunes
Preguntas frecuentes
¿Cuál es la diferencia entre cinemática directa e inversa?
La cinemática directa calcula la posición y orientación del efector final a partir de los ángulos articulares conocidos. La cinemática inversa parte de una pose espacial deseada para el efector y calcula los ángulos articulares necesarios para alcanzarla.
¿Por qué un brazo plano de 2 eslabones tiene dos soluciones (codo arriba y codo abajo)?
Para la mayoría de los puntos alcanzables, la articulación del codo puede flexionarse hacia ambos lados manteniendo el extremo en la misma coordenada cartesiana. Ambas configuraciones proceden del signo ± en el cálculo trigonométrico del teorema del coseno para el segundo ángulo, coincidiendo únicamente en los límites de singularidad.
¿Cómo se elige entre las configuraciones de codo arriba y codo abajo?
Selecciona la rama cinemática que resulte más segura y eficiente: aquella que mantenga las articulaciones alejadas de sus topes mecánicos, minimice el recorrido desde la pose actual o evite colisiones con obstáculos circundantes.
¿Qué es una singularidad en un manipulador robótico?
Es una configuración espacial donde el brazo pierde uno o más grados de libertad instantáneos (por ejemplo, en extensión completa o plegado total). En las inmediaciones de una singularidad, un desplazamiento cartesiano infinitesimal exige velocidades articulares que tienden a infinito.
¿En qué condiciones carece de solución la cinemática inversa?
Un objetivo cartesiano en un brazo plano de dos eslabones es alcanzable únicamente si se ubica dentro de la corona circular delimitada entre la diferencia de longitudes (|L1 - L2|) y su suma (L1 + L2). Puntos fuera de ese anillo o que demanden ángulos fuera de los límites de carrera carecen de solución físicamente posible.
¿Por qué emplear cinemática analítica en lugar de un resolvedor numérico?
En brazos planos de dos o tres eslabones existe solución analítica cerrada, permitiendo determinar las variables articulares de forma determinista, exacta e instantánea. Los resolvedores numéricos iterativos son necesarios en brazos redundantes o espaciales complejos, pero consumen más ciclos y pueden converger a mínimos locales.
Lecturas adicionales
Referencias
Fuentes autorizadas para profundizar más allá del modelo educativo acotado de este simulador.