Inicio » Aula » Perrobot

Perrobot

Robot impreso en 3D con aspecto de mascota robótica (perro) basado en el diseño de Daniel Hingston.

Perrobot

Perrobot

En primer lugar destacar que este proyecto de robot ha sido posible gracias al diseño realizado por el usuario Daniel Hingston en Instructables.

A lo largo de este blog contaré mi experiencia en el desarrollo del mismo y las modificaciones que le he hecho. Hablaremos sobre los componentes que lo conforman, el proceso de montaje y la cinemática inversa tras la cual se esconden los movimientos del perro. Además trataré las diferentes aplicaciones que han sido programadas, la app desarrollada para controlarlo y las mejoras que he hecho y que recomiendo hacer de base.

Componentes

Los componentes que conforman este robot son:

  • Piezas del perro  (impresas en la UPV).
  • Arduino Uno.
  • 8 x Servomotores DS939MG (de gran par, 2.5kg/cm y reducido tamaño).
  • PCA9685 (para el control de los servomotores utilizando los mínimos puertos posibles).
  • Batería 7.4 V 5200 mAh.
  • XL4015 Convertidor DC a DC (este ha sido elegido, ya que los servos tienen un gran consumo, y tiene una salida de hasta 5A).
  • 2 x HC-SR04.
  • Módulo Bluetooth CC2541 (para el control mediante app desarrollada con Thunkable).
  • PCB (en la que realizaremos las conexiones para la alimentación de los distintos componentes del perro).
  • Cables Dupont.
  • Cable.
  • LDR.
  • 2 x LED (Indicarán si está en modo Automático o Manual).

Montaje

Una vez se tienen todas las piezas impresas podemos empezar con el montaje.

Modelo 3D del perro

El primer lugar deberemos pulir todas las piezas y asegurarnos de que todas ellas encajan perfectamente.

Después de esto, montaremos en primer lugar las patas, en las que colocaremos los servos y una vez estén bien pegados (con pegamento termofusible o con superglue) deberemos posicionarlos en 90º para poder tener controlada su posición inicial y así facilitar los cálculos de offset. Terminaremos de montar las patas, pero antes de ensamblarlas con el cuerpo de perro nos tendremos que asegurar de que la cabeza del perro está correctamente pegada y que los sensores de ultrasonidos y la LDR funcionan correctamente en su posición. Hecho esto procederemos a ensamblar las patas con el cuerpo del perro.

Montaje de la electrónica

Una vez que hemos montado las patas, procederemos con el montaje de la electrónica. Insertaremos en primer lugar el Arduino en el hueco establecido, y realizaremos el mismo proceso con PCA9685 y el módulo bluetooth. Antes de conectar los servos al PCA9685, para tener una mejor maniobrabilidad en el montaje, deberemos soldar los cables de la alimentación y de la comunicación. Algunos servos van a tener que conectarse a cables Dupont para que lleguen al PCA9685.

Por último solo quedará poner la tapa y las almohadillas a las patas del perro (estas son opcionales y muy situacionales, el diseño que hizo Daniel de almohadilla está enfocado
a que el perro funcione en una moqueta, mientras que el mío está enfocado a que pueda ir por tierra). En este montaje debido a la cantidad de componentes que conforman
el perro y el tamaño de la batería, esta ha quedado situada en la tapa del perro.

Cinemática Inversa

La forma de controlar los movimientos del perro, se puede resolver de la siguiente manera:

Utilizando el teorema del coseno:

cos(α) = (b^2+c^2-a^2)/(2*b*c)
cos(β) = (a^2+c^2-b^2)/(2*a*c)
cos(γ) = (a^2+b^2-c^2)/(2*a*b)

a y b serán siempre fijas ya que son las distancias entre los ejes que atraviesan los servos perpendicularmente, de valores 85 y 78 mm respectivamente. De esta manera solo nos quedará jugar con la altura al suelo (c) y el ángulo A para poder movernos.

Para hacer el resto de movimientos se utilizaría el mismo método teniendo en cuenta que las dos patas delanteras se deben de quedar en la misma posición que en la de reposo.

Podremos observar que en algunos casos los giros no ocurren como esperamos. Eso puede ser debido a que durante el montaje hayamos implementado offset a los servos. Esto lo podemos solucionar con variables offset para cada uno de los servos afectados.

Aplicaciones

El perro tiene dos modos de funcionamiento:

Tenemos el modo Manual, en el cual podremos elegir lo que hace el perro; podremos elegir entre que camine hacia delante, gire a la derecha o la izquierda, además, de que sea capaz de hacer trucos como que se siente o que nos dé la pata delantera. En este modo el perro también podrá interactuar con nosotros, gracias al uso de la LDR para comprobar si estamos tocando la cabeza al perro, y en este caso se sentará.

También podemos elegir el modo Automático, en el cual el perro tomará las decisiones a partir de las distancias medidas por los sensores de ultrasonidos que tiene ubicados en la cabeza, y elegir la dirección que más le conviene en función del espacio de la sala en la que se encuentre.

Antes de entrar en esos modos también podremos hacer que haga los trucos que hemos mencionado anteriormente en el modo manual.

App

Para el control del robot se ha desarrollado una app que permite el control del perro mediante bluetooth.

En esta app podremos configurar las conexiones de la misma con diferentes dispositivos y controlar el robot.

En el modo de control podremos elegir entre modo automático, en el cual se guía gracias a los sensores de ultrasonidos, y el modo manual en el que nosotros podemos
elegir lo que hace el robot, desde moverse hacia delante y los lados, hasta incluso que realice algunos trucos como sentarse o dar la pata.

La interfaz:

Configuración Bluetooth
Menú de inicio
Control del robot

La programación por bloques quedaría de la siguiente manera:

Pantalla de Inicio

En la pantalla de inicio antes de entrar al modo de control, desconectaremos el Bluetooth para evitar posibles fallos de conexión.

Programación bloques Bluetooth 1

Programación bloques Bluetooth 2.

Programación bloques Bluetooth 2

Como podemos observar se ocultarán o se mostrarán botones en función del modo que hayamos decidido escoger.

Mejoras

Una de las mejoras que llevé a cabo fue el diseño de un nuevo sistema de agarre al suelo, para que el perro fuera un poco todoterreno. Este diseño de agarre está basado en las ruedas de las grúas, que tienen una mejor tracción en tierra. De esta manera tendríamos dos agarres, el diseñado por Daniel Hingston para ir en moquetas y este.

   Diseño en SolidWorks

    Pieza impresa.

Otra de las mejoras que se pueden implementar, es hacer agujeros en las rodillas del perro, que en mi caso los he hecho con un taladro. Una manera más eficaz es imprimir la pieza sin el agujero, ya que disminuye la cantidad de plástico utilizado y queda un mejor resultado; este agujero sirve para que las patas queden mejor sujetas aprovechando el tornillo del servo, no dependiendo únicamente de la inserción del servo en los accesorios de plástico que lo acompañan.

  Modificación en la rodilla

Luis Ortiz Enguix

Grado en Ingeniería Electrónica Industrial y Automática

Robótica Móvil 2020-2021

ETSID-UPV