Tabla de contenido:
- Paso 1: proceso de diseño
- Paso 2: el papel del Arduino
- Paso 3: Materiales necesarios
- Paso 4: Piezas impresas en 3D
- Paso 5: preparación de los soportes de servo
- Paso 6: Hacer las piezas de enlace
- Paso 7: ensamblar las piernas
- Paso 8: PCB y cableado personalizados
- Paso 9: Montaje del cuerpo
- Paso 10: Configuración inicial
- Paso 11: Un poco sobre la cinemática
- Paso 12: Programando el Arduino
- Paso 13: Resultados finales: es hora de experimentar
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Proyectos Fusion 360 »
Siempre me han intrigado los robots, especialmente los que intentan imitar las acciones humanas. Este interés me llevó a intentar diseñar y desarrollar un bípedo robótico que pudiera imitar el caminar y correr de los humanos. En este Instructable, te mostraré el diseño y montaje del bípedo robótico.
El objetivo principal al construir este proyecto era hacer que el sistema fuera lo más robusto posible, de modo que mientras experimentaba con varios pasos para caminar y correr, no tendría que preocuparme constantemente por las fallas del hardware. Esto me permitió llevar el hardware al límite. Un objetivo secundario era hacer que el bípedo tuviera un costo relativamente bajo utilizando piezas de hobby fácilmente disponibles e impresión 3D, dejando espacio para nuevas actualizaciones y expansiones. Estos dos objetivos combinados proporcionan una base sólida para realizar varios experimentos, lo que permite desarrollar el bípedo para requisitos más específicos.
Continúe para crear su propio Robotic Biped controlado por Arduino y vote en el "Concurso Arduino" si le gustó el proyecto.
Paso 1: proceso de diseño
Las piernas humanoides se diseñaron en el software de modelado 3D Fusion 360 de uso gratuito de Autodesk. Comencé importando los servomotores en el diseño y construí las patas alrededor de ellos. Diseñé soportes para el servomotor que proporciona un segundo punto de pivote diametralmente opuesto al eje del servomotor. Tener dos ejes en cada extremo del motor le da estabilidad estructural al diseño y elimina cualquier sesgo que pueda ocurrir cuando las patas están hechas para soportar algo de carga. Los enlaces fueron diseñados para sostener un cojinete mientras que los soportes usaban un perno para el eje. Una vez que los enlaces se montaron en los ejes usando una tuerca, el rodamiento proporcionaría un punto de pivote suave y robusto en el lado opuesto del eje del servomotor.
Otro objetivo al diseñar el bípedo era mantener el modelo lo más compacto posible para aprovechar al máximo el par proporcionado por los servomotores. Las dimensiones de los eslabones se hicieron para lograr un amplio rango de movimiento y minimizar la longitud total. Hacerlos demasiado cortos haría que los soportes colisionen, reduciendo el rango de movimiento, y hacerlo demasiado largo ejercería un par innecesario sobre los actuadores. Finalmente, diseñé el cuerpo del robot en el que se montarían el Arduino y otros componentes electrónicos.
Nota: Las piezas se incluyen en uno de los siguientes pasos.
Paso 2: el papel del Arduino
En este proyecto se utilizó un Arduino Uno. El Arduino fue responsable de calcular las trayectorias de movimiento de los distintos pasos que se probaron e instruyó a los actuadores para que se movieran a ángulos precisos a velocidades precisas para crear un movimiento suave al caminar. Un Arduino es una gran opción para desarrollar proyectos debido a su versatilidad. Proporciona un montón de pines IO y también proporciona interfaces como serie, I2C y SPI para comunicarse con otros microcontroladores y sensores. El Arduino también proporciona una gran plataforma para la creación rápida de prototipos y pruebas y también brinda a los desarrolladores espacio para mejoras y capacidad de expansión. En este proyecto, otras versiones incluirán una unidad de medición inercial para el procesamiento de movimiento, como la detección de caídas y locomoción dinámica en terrenos irregulares, y un sensor de medición de distancia para evitar obstáculos.
El IDE de Arduino se utilizó para este proyecto. (Arduino también proporciona un IDE basado en web)
Nota: Los programas para el robot se pueden descargar desde uno de los siguientes pasos.
Paso 3: Materiales necesarios
Aquí está la lista de todos los componentes y piezas necesarios para hacer su propio robot Bipedal con Arduino. Todas las piezas deben estar comúnmente disponibles y ser fáciles de encontrar.
ELECTRÓNICA:
Arduino Uno x 1
Servomotor Towerpro MG995 x 6
Perfboard (tamaño similar al Arduino)
Pines de cabezal macho y hembra (aproximadamente 20 de cada uno)
Cables de puente (10 piezas)
MPU6050 IMU (opcional)
Sensor ultrasónico (opcional)
HARDWARE:
Rodamiento de patineta (8x19x7mm)
Tuercas y tornillos M4
Filamento de impresora 3D (en caso de que no tenga una impresora 3D, debe haber una impresora 3D en un espacio de trabajo local o las impresiones se pueden hacer en línea por un precio bastante bajo)
Excluyendo Arduino y la impresora 3D, el costo total de este proyecto es de 20 $.
Paso 4: Piezas impresas en 3D
Las piezas necesarias para este proyecto tenían que diseñarse a medida, por lo que se utilizó una impresora 3D para imprimirlas. Las impresiones se realizaron con un relleno del 40%, 2 perímetros, boquilla de 0,4 mm y una altura de capa de 0,1 mm con PLA, el color de su elección. A continuación puede encontrar la lista completa de piezas y los STL para imprimir su propia versión.
Nota: A partir de aquí, se hará referencia a las piezas utilizando los nombres de la lista.
- soporte de servo de pie x 1
- espejo de soporte de servo de pie x 1
- soporte de servo de rodilla x 1
- espejo de soporte de servo de rodilla x 1
- soporte de servo de pie x 1
- espejo de soporte de servo de pie x 1
- enlace de cojinete x 2
- enlace de bocina servo x 2
- enlace de pie x 2
- puente x 1
- montaje de electrónica x 1
- espaciador de electrónica x 8 (opcional)
- espacio de bocina servo x 12 (opcional)
En total, excluyendo los espaciadores, hay 14 partes. El tiempo total de impresión es de unas 20 horas.
Paso 5: preparación de los soportes de servo
Una vez impresas todas las partes, puede comenzar configurando los servos y los soportes de los servos. Primero introduzca un cojinete en el soporte del servo de rodilla. El ajuste debe ser ceñido, pero recomendaría lijar un poco la superficie interior del orificio en lugar de forzar el cojinete, lo que puede provocar el riesgo de romper la pieza. Luego, pase un perno M4 a través del orificio y apriételo con una tuerca. A continuación, agarre el eslabón de pie y coloque un servo cuerno circular con los tornillos suministrados. Fije el eslabón de pie al soporte del servo de rodilla con los tornillos que utilizará para fijar también el servomotor. Asegúrese de alinear el motor de modo que el eje esté en el mismo lado del perno que había colocado anteriormente. Finalmente asegure el servo con el resto de tuercas y tornillos.
Haga lo mismo con el soporte del servo de cadera y el soporte del servo de pie. Con esto, debe tener tres servomotores y sus correspondientes soportes.
Nota: estoy proporcionando instrucciones para construir una pierna, la otra simplemente está reflejada.
Paso 6: Hacer las piezas de enlace
Una vez que los soportes estén ensamblados, comience a hacer los enlaces. Para hacer el enlace del rodamiento, una vez más lije ligeramente la superficie interior de los orificios para el rodamiento y luego empuje el rodamiento en el orificio en ambos lados. Asegúrese de empujar el cojinete hacia adentro hasta que un lado esté nivelado. Para construir el enlace de la bocina del servo, tome dos bocinas circulares y los tornillos suministrados. Coloque los cuernos en la impresión 3D y alinee los agujeros, luego atornille el cuerno en la impresión 3D colocando el tornillo del lado de impresión 3D. Recomiendo usar un espaciador de bocina de servo impreso en 3D para estos tornillos. Una vez que se construyen los enlaces, puede comenzar a ensamblar la pierna.
Paso 7: ensamblar las piernas
Una vez que los enlaces y los soportes estén ensamblados, puede combinarlos para construir la pierna del robot. Primero, use el enlace de la bocina del servo para unir el soporte del servo de cadera y el soporte del servo de rodilla. Nota: No atornille la bocina al servo todavía, ya que hay una etapa de configuración en la siguiente etapa y sería un inconveniente si la bocina se atornillara al servomotor.
En el lado opuesto, monte el enlace del cojinete en los pernos que sobresalen usando tuercas. Por último, coloque el soporte del servo de pie insertando el perno que sobresale a través del cojinete del soporte del servo de rodilla. Y fije el eje del servo al cuerno del servo conectado al soporte del servo de rodilla en el otro lado. Esta puede ser una tarea complicada y recomendaría un segundo par de manos para esto.
Repite los pasos con la otra pierna. Utilice las imágenes adjuntas a cada paso como referencia.
Paso 8: PCB y cableado personalizados
Este es un paso opcional. Para hacer el cableado más ordenado, decidí hacer una PCB personalizada usando la placa perf y los pines del cabezal. La PCB contiene puertos para conectar directamente los cables del servomotor. Además, también dejé puertos adicionales en caso de que quisiera expandir y agregar otros sensores como unidades de medición inercial o sensores de distancia ultrasónicos. También contiene un puerto para la fuente de alimentación externa necesaria para alimentar los servomotores. Se utiliza una conexión de puente para cambiar entre USB y alimentación externa para el Arduino. Monte el Arduino y la PCB a cada lado del soporte de la electrónica con tornillos y espaciadores impresos en 3D.
Nota: asegúrese de desenchufar el puente antes de conectar el Arduino a su computadora a través de USB. No hacer esto puede dañar el Arduino.
Si decide no usar la PCB y en su lugar usa una placa de prueba, aquí están las conexiones de servo:
- Cadera izquierda >> pin 9
- Cadera derecha >> pin 8
- Rodilla izquierda >> pin 7
- Rodilla derecha >> pin 6
- Pie izquierdo >> pin 5
- Pie derecho >> pin 4
Si decide hacer la PCB, siga el mismo orden que el anterior utilizando los puertos de la PCB de derecha a izquierda con el puerto IMU hacia arriba. Y use cables de puente macho a hembra regulares para conectar la PCB al Arduino usando los números de pin anteriores. Asegúrese de conectar también el pin de tierra y crear el mismo potencial de tierra y el pin Vin para cuando decida ejecutarlo sin alimentación USB.
Paso 9: Montaje del cuerpo
Una vez que las dos patas y la electrónica estén ensambladas, combínelas para construir el cuerpo del robot. Usa la pieza del puente para unir las dos piernas. Utilice los mismos orificios de montaje en el soporte del servo de cadera y las tuercas y pernos que sujetan el servomotor. Finalmente, conecte el soporte de la electrónica al puente. Alinee los orificios en el puente y el montaje de la electrónica y use tuercas y pernos M4 para hacer la unión.
Consulte las imágenes adjuntas para obtener ayuda. Con esto, ha completado la construcción de hardware del robot. A continuación, vayamos al software y demos vida al robot.
Paso 10: Configuración inicial
Lo que noté mientras construía este proyecto es que los servomotores y las bocinas no necesitan alinearse perfectamente para permanecer relativamente paralelos. Es por eso que la "posición central" de cada servomotor debe ajustarse manualmente para alinearse con las patas. Para lograr esto, quite las bocinas de cada servo y ejecute el boceto initial_setup.ino. Una vez que los motores se hayan asentado en su posición central, vuelva a colocar los cuernos de manera que las piernas queden perfectamente rectas y el pie perfectamente paralelo al suelo. Si este es el caso, estás de suerte. De lo contrario, abra el archivo constants.h que se encuentra en la pestaña adyacente y modifique los valores de compensación del servo (líneas 1-6) hasta que las piernas estén perfectamente alineadas y el pie esté plano. Juega con los valores y te harás una idea de lo que es necesario en tu caso.
Una vez que se hayan establecido las constantes, anote estos valores, ya que los necesitará más adelante.
Consulte las imágenes para obtener ayuda.
Paso 11: Un poco sobre la cinemática
Para que el bípedo realice acciones útiles como correr y caminar, es necesario programar los distintos pasos en forma de trayectorias de movimiento. Las trayectorias de movimiento son trayectorias a lo largo de las cuales viaja el efector final (los pies en este caso). Hay dos formas de lograrlo:
- Un enfoque sería alimentar los ángulos de articulación de los distintos motores mediante fuerza bruta. Este enfoque puede llevar mucho tiempo, ser tedioso y también estar lleno de errores, ya que el juicio es puramente visual. En cambio, existe una forma más inteligente de lograr los resultados deseados.
- El segundo enfoque gira en torno a alimentar las coordenadas del efector final en lugar de todos los ángulos de articulación. Esto es lo que se conoce como cinemática inversa. El usuario ingresa coordenadas y los ángulos de las articulaciones se ajustan para colocar el efector final en las coordenadas especificadas. Este método puede considerarse como una caja negra que toma como entrada una coordenada y da salida a los ángulos de articulación. Para aquellos que estén interesados en cómo se desarrollaron las ecuaciones trigonométricas de esta caja negra, pueden mirar el diagrama de arriba. Para aquellos que no estén interesados, las ecuaciones ya están programadas y se pueden utilizar mediante la función pos que toma como entrada x, zy emite tres ángulos correspondientes a los motores.
El programa que contiene estas funciones se puede encontrar en el siguiente paso.
Paso 12: Programando el Arduino
Antes de programar el Arduino, es necesario realizar ligeras modificaciones en el archivo. ¿Recuerdas las constantes que te pedí que borraras una nota? Modifique las mismas constantes a los valores que estableció en el archivo constants.h.
Nota: Si ha utilizado los diseños proporcionados en este Instructable, no tiene nada que cambiar. En caso de que algunos de ustedes hayan hecho sus propios diseños, tendrán que cambiar algunos valores más junto con las compensaciones. La constante l1 mide la distancia entre el pivote de la cadera y el pivote de la rodilla. La constante l2 mide la distancia entre el pivote de la rodilla y el pivote del tobillo. Entonces, si diseñó su propio modelo, mida estas longitudes y modifique las constantes. Las dos últimas constantes se utilizan para los pasos. La constante stepClearance mide qué tan alto se levantará el pie mientras avanza después de un paso y la constante stepHeight mide la altura desde el suelo hasta la cadera mientras da pasos.
Una vez que todas las constantes se modifican de acuerdo con su necesidad, puede cargar el programa principal. El programa principal simplemente inicializa al robot en una posición para caminar y comienza a dar pasos hacia adelante. Las funciones se pueden modificar de acuerdo con su necesidad de explorar los distintos pasos, velocidades y longitudes de paso para ver qué funciona mejor.
Paso 13: Resultados finales: es hora de experimentar
El bípedo puede realizar pasos que varían de 10 a 2 cms de largo sin volcar. La velocidad también se puede variar manteniendo la marcha equilibrada. Este bípedo combinado con la potencia del Arduino proporciona una plataforma robusta para experimentar con varios otros modos de caminar y otros objetivos, como saltar o equilibrarse mientras patea una pelota. Le recomendaría que intente cambiar las trayectorias de movimiento de las piernas para crear sus propios pasos y descubrir cómo los diferentes modos de caminar afectan el rendimiento del robot. Se pueden agregar sensores como una IMU y un sensor de distancia al sistema para aumentar sus funcionalidades, mientras que se pueden agregar sensores de fuerza a las piernas para experimentar con la locomoción dinámica en superficies irregulares.
Espero que hayas disfrutado de este Instructable y sea suficiente inspiración para construir el tuyo propio. Si te gustó el proyecto, apóyalo votando en el "Concurso Arduino".
¡Haciendo feliz!
Primer premio en el Concurso Arduino 2020