Download Efectores
Document related concepts
Transcript
Efectores Efectores y actuadores Se suelen usar indistintamente aunque son cosas distintas. Efector: Dispositivo que afecta al entorno Los efectores están bajo el control del robot La misión del controlador es que los efectores produzcan el efecto deseado en el entorno según la tarea del robot. Mecanismos real que produce el efecto Ejemplo: motor eléctrico, dispositivo hidráulico, neumático, etc. Actuador: Locomoción: Mover el robot robótica móvil. Manipulación: Mover objetos manipuladores. Introducción a los actuadores La mayoría de los actuadores sencillos controlan únicamente 1 grado de libertad (izqda-drcha, arriba-abajo, etc). Un eje en general controla un único grado de libertad (DOF). Un cuerpo libre en el espacio en general tiene 6 DOF: 3 de traslación (x,y,z) y 3 de orientación (orientación, rotación, guiñada). Si hay un actuador para grado de libertad, todos son controlables. Normalemente no todos son controlables. Ejemplo: o Un coche tiene 3 DOF (x,y, orientación). o Sólo 2 son controlables: conducción (aceleración alante y atrás) y dirección (volante). o Hace que ciertos movimientos sean imposibles: de lado (aparcar). Distinguir entre lo que hace el actuador y lo que hace el robot. Ejemplo: Un coche puede llegar a cualquier posición mediante trayectorias discontinuas (en velocidad). Cuando el número de DOF controlables es igual al total el robot es ``holonómico''. Si el número es menor el robot es ``no-holonómico''. Si el número es mayor es ``redundante''. Ejemplo: Un brazo humano: o Tiene 7 grados de libertad (3 en el hombro, 1 en el codo y 3 en la muñeca). o Un objeto en el espacio sólo 6. o Eso hace que haya varias formas de colocar de la misma forma. o Es el motivo de que la manipulación sea tan complicada. Locomoción Diferentes efectores: o Piernas: caminar, arrastrarse, trepar, saltar, etc. o Ruedas: rodar. o Brazos: arrastrarse, trepar. o Aletas: nadar. Locomoción con piernas es un problema muy grande para la robótica El robot tiene que ser estable estática y dinámicamente Locomoción con patas (estática) Estáticamente: suficientes puntos de apoyo (polígono) Con dos patas una línea. El Centro de Gravedad (CG) debe caer dentro del polígono de apoyo Al mover una pata el polígono cambia Con muchas patas es posible mantener el CG dentro del polígono: seguro pero lento e ineficiente Suposición: el peso de una pata es despreciable frente al del cuerpo. Locomoción con patas (dinámica) Ser estable en movimiento. Robot con una pata: saltan, pero no pueden quedar quietos. Un robot estable estáticamente puede usar marcha estable dinámicamente. ¿Cuántas patas están en el aire durante el movimiento? Ejemplo: Paso alternativo en trípode (usual en la naturaleza) y en robots de 6 o más extremidades La estabilidad dinámica requiere más control, pero permite mayor velocidad Locomoción con ruedas Son más eficiente que las piernas. También aparecen en la naturaleza (bacterias). Los robots con ruedas se construyen para ser estáticamente estables. Las ruedas pueden ser muy sofisticadas: varios neumáticos, cadenas, con cilindros con otras ruedas, etc. Locomoción con ruedas no implica holonomicidad: robots con 2 o 4 ruedas directrices no suelen serlo. Dirección diferencial: 2 o más ruedas pueden ser directrices.. Que dos ruedas pueden girar en direcciones opuestas es muy útil: giro sobre si mismo Preocupaciones en Locomoción Ir a un lugar concreto. Seguir una determinada trayectoria. Seguir una trayectoria puede ser imposible para ciertos robots (dependiendo de sus DOF). Ha sido un campo tradicional de la robótica: planificación de trayectorias. La planificación de trayectorias es compleja: Implica búsqueda y evaluación de todas las posibles trayectorias. La geometría del robot y su holonomicidad se deben considerar. Manejo de los motores en legOS motor_X_dir(enum MotorDirection) controla la dirección que puede ser (fwd, rev, off y brake). break bloquea el motor (impide que gire). off lo detiene pero puede girar libremente. ¡Ojo! break gasta las pilas (usarlo puntualmente). motor_X_speed(int speed) controla la velocidad del motor. La velocidad es un entero entre MIN_SPEED y MAX_SPEED ( según directmotor.h). Se puede usar el sensor de rotación para ver cuando tiene tracción. Ejemplo de control de motores en legOS void motor_driver() { int rover_speed; rover_speed=0; /*evitar empezar con negativos*/ while(rover_speed<MAX_SPEED) { /*va incrementando*/ motor_a_speed(rover_speed); motor_c_speed(rover_speed); lcd_int(rover_speed); /*pinto la velocidad*/ lcd_refresh(); motor_a_dir(fwd); motor_c_dir(fwd); msleep(500); /*para notar la aceleración*/ rover_speed+=20; /*incremento velocidad */ } cputs("brake"); /*prueba de frenos*/ lcd_refresh(); motor_a_speed(brake); motor_c_speed(brake); sleep(3); cputs("off"); lcd_refresh(); motor_a_speed(off); motor_c_speed(off); sleep(3); } Manipuladores El manipulador se mueve para colocar su efector en una determinada posición (3D) y orientación. Agarrar y trasladar objetos es una extensión simple del problema anterior. Para calcular la trayectoria no vale calcular el camino del efector. Hay que considerar las restricciones de las articulaciones. Lo primero fue la tele-operación de brazos (no era fácil). Hoy se suelen usar exo-esqueletos para eso (con joysticks es difícil. Cinemática directa Correspondencia entre los movimientos de los actuadores y el del efector. .7!brazo Cinemática inversa .7!brazo Problemas cinemáticos Más difícil en más de dos dimensiones: ecuaciones no lineales Difícil de visualizar. Muchas posibles soluciones por redundancia. Problema complejo computacionalmente. Técnicas de planificación: diagramas de Voronoi, grafos de visibilidad, descomposición en celdas. Otros problemas de la manipulación ¿Cuánta fuerza aplico? (huevo vs tornillo) ¿Por donde lo agarro? (bombilla) ¿Cómo consigo que no se deslice? ¿Cómo lanzo objetos? ¿Con cuanta fuerza? ¿Cómo cojo lo que me lanzan?