Tabla de contenido:
- Paso 1: construcción de la estructura
- Paso 2: conozca los valores de su hardware
- Paso 3: cinemática de avance
- Paso 4: Cinemática inversa
Video: Robot de dibujo háptico: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Como parte de mi graduación de maestría en la dep. Diseño industrial en la Universidad de Eindhoven, creé un dispositivo de dibujo háptico que se puede usar para navegar en un automóvil semiautónomo a través del tráfico. La interfaz se llama garabato y permite al usuario experimentar dispositivos hápticos en un espacio 2D a través de una fuerza y ubicación variables. Aunque el concepto no es de lo que trata este instructivo, puede leer más sobre Scribble aquí:
Scribble utiliza una configuración de varillaje de 5 barras que le permite moverse dos grados laterales de libertad (DoF). Esta configuración es bastante popular entre los prototipos para crear robots de dibujo, aquí hay algunos ejemplos:
www.projehocam.com/arduino-saati-yazan-kol-…
blogs.sap.com/2015/09/17/plot-clock-weathe…
www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html
Mecánicamente, estos robots son fáciles de hacer. Solo necesitan uniones básicas y tienen dos actuadores que pueden crear movimientos bastante fluidos. Esta estructura es ideal para diseñadores que estén interesados en hacer estructuras móviles. Sin embargo, no siendo ingeniero mecánico, encontré la cinemática bastante difícil de traducir a código. Por lo tanto, proporcionaré un código Arduino básico que determina la cinemática directa e inversa para que pueda usarlo fácilmente en sus diseños futuros.;-)
¡Descargue el código a continuación!
* EDITAR: para un proyecto similar, eche un vistazo a https://haply.co *
Paso 1: construcción de la estructura
Dependiendo del propósito que tenga en mente, primero debe diseñar una estructura de 5 enlaces. Piense en las medidas, los actuadores que desea usar y cómo unir las articulaciones para movimientos suaves.
Para mi prototipo, ejecuto mi código en un Arduino DUE que está controlado en serie por un programa en mi Mac que se hizo en Open Frameworks. El programa utiliza una conexión UDP para comunicarse con un simulador de conducción basado en Unity 3D.
El prototipo Scribble utiliza cojinetes de 5 mm y está hecho de acrílico cortado con láser de 5 mm. Los actuadores son motores hápticos de Frank van Valeknhoef que permiten la actuación, la lectura de la posición y la salida de una fuerza variable. Esto los hizo ideales para las propiedades hápticas deseadas de Scribble. Puede encontrar más información sobre sus actuadores aquí:
Paso 2: conozca los valores de su hardware
La cinemática de avance se basa en la estación meteorológica Plot clock de SAP:
Como se muestra en su configuración se extiende el brazo para sostener un marcador para dibujar. Esto se ha eliminado ya que no servía para el prototipo de garabatos. Verifique su código si desea volver a agregar este componente. Los nombres de la imagen se mantienen iguales en mi configuración.
Dependiendo de su hardware, el algoritmo necesita conocer las propiedades de su hardware:
int leftActuator, rightActuator; // ángulo para escribir al actuador en grados, cambie a flotadores si desea más precisión
int posX, posY; // las coordenadas de la ubicación del puntero
Establezca la resolución de sus valores de entrada
int posStepsX = 2000;
int posStepsY = 1000;
Dimensiones de su configuración, los valores están en mm (consulte la imagen de SAP)
#define L1 73 // longitud del brazo del motor, consulte la imagen de SAP (la izquierda y la derecha son iguales)
#define L2 95 // brazo de extensión de longitud, consulte la imagen de SAP (la izquierda y la derecha son iguales)
#define rangeX 250 // rango máximo en la dirección X para que el punto se mueva (de izquierda a derecha, 0 - maxVal)
#define rangeY 165 // rango máximo en la dirección Y para que el punto se mueva (de 0 al alcance máximo mientras permanece centrado)
#define originL 90 // distancia de desplazamiento desde la mayoría del valor mínimo de X hasta la posición central del actuador
#define originR 145 // distancia de desplazamiento desde la mayoría del valor mínimo de X a la posición central del actuador, la distancia entre los dos motores es en este caso
Paso 3: cinemática de avance
Como se mencionó en el paso anterior, la cinemática directa se basa en el algoritmo de SAP.
El vacío actualiza los valores de ángulo deseados del actuador izquierdo y derecho definidos anteriormente. Basado en los valores de X e Y que están conectados, calculará los ángulos rectos para llevar el puntero a esta posición.
void set_XY (double Tx, double Ty) // ingrese su valor X e Y {// algunos valores que necesitamos pero no queremos guardar para long double dx, dy, c, a1, a2, Hx, Hy; // mapea la resolución de entrada al rango de tu configuración en el mundo real int realX = map (Tx, 0, posStepsX, 0, rangeX); // intercambiar si el mapeo si se invierte int realY = map (Ty, posStepsX, 0, 0, rangeY); // intercambiar si el mapeo si se invierte // ángulo calculado para el actuador izquierdo // cartesiano dx / dy dx = realX - originL; // incluye el desplazamiento dy = realY; // longitud polar (c) y ángulo (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = ángulo_de_retorno (L1, L2, c); leftActuator = piso (((M_PI - (a2 + a1)) * 4068) / 71); // ángulo final y convertir de rad a grados // ángulo calculado para el actuador derecho dx = realX - originR; // incluye el desplazamiento dy = realY; c = raíz cuadrada (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = ángulo_de_retorno (L1, L2, c); rightActuator = piso (((a1 - a2) * 4068) / 71); // ángulo final y convertir de rad a grados}
Vacío adicional para el cálculo de ángulos:
double return_angle (doble a, doble b, doble c) {// regla del coseno para el ángulo entre c y un retorno acos ((a * a + c * c - b * b) / (2 * a * c)); }
Paso 4: Cinemática inversa
La cinemática inversa funciona al revés. Conecta la rotación de sus actuadores en grados y el vacío actualizará la posición definida anteriormente.
Tenga en cuenta que necesitará actuadores o un sensor separado que pueda leer el ángulo del brazo. En mi caso, utilicé actuadores que pueden leer y escribir su posición simultáneamente. Siéntase libre de experimentar con esto y considere agregar algún tipo de calibración para estar seguro de que su ángulo se lee correctamente.
Recomendado:
Robot de dibujo con escudo de Adafruit (concurso Make It Move): 10 pasos (con imágenes)
Drawing Robot With Adafruit Shield (Concurso Make It Move): Hola, me llamo Jacob y yo vivimos en el Reino Unido. En este proyecto voy a construir un robot que dibuje para ti. * Estoy seguro de que muchos de ustedes quieren verlo, así que si quieren saberlo, salte directamente al penúltimo paso, pero asegúrese de volver aquí para ver
Tablero MXY - Tablero de robot de dibujo de trazador XY de bajo presupuesto: 8 pasos (con imágenes)
Tablero MXY - Tablero de robot de dibujo de plotter XY de bajo presupuesto: Mi objetivo era diseñar el tablero mXY para hacer que la máquina de dibujo del plotter XY sea de bajo presupuesto. Así que diseñé una placa que se lo pone más fácil a quienes quieran realizar este proyecto. En el proyecto anterior, mientras usaba 2 motores paso a paso Nema17, esta placa u
Zapato háptico para personas con discapacidad visual: 12 pasos
Zapato háptico para personas con discapacidad visual: hay más de 37 millones de personas con discapacidad visual en todo el mundo. La mayoría de estas personas usan un bastón, un palo o dependen de otra persona para viajar. No solo disminuye su autodependencia, sino que también, en algunos casos, les perjudica
Robot de dibujo para Arduino: 18 pasos (con imágenes)
Robot de dibujo para Arduino: Nota: ¡Tengo una nueva versión de este robot que usa una placa de circuito impreso, es más fácil de construir y tiene detección de obstáculos por infrarrojos! Échale un vistazo en http://bit.ly/OSTurtle Diseñé este proyecto para un taller de 10 horas para ChickTech.org cuyo objetivo es i
Robot de dibujo de bajo costo compatible con Arduino: 15 pasos (con imágenes)
Robot de dibujo de bajo costo compatible con Arduino: Nota: ¡Tengo una nueva versión de este robot que usa una placa de circuito impreso, es más fácil de construir y tiene detección de obstáculos por infrarrojos! Échale un vistazo en http://bit.ly/OSTurtle Diseñé este proyecto para un taller de 10 horas para ChickTech.org cuyo objetivo es i