UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA ELÉCTRICA CENTRO REGIONAL DE AZUERO MAESTRÍA EN INGENIERÍA ELÉCTRICA CON ESPECIALIZACIÓN EN ELECTRÓNICA DIGITAL Y CONTROL AUTOMÁTICO
DISEÑO Y CONTROL DE ROBOTS PROFESOR: DR. RONY CABALLERO
Diseño, Implementación y control de robot DCR-01
Realizado por: Francisco Canto Hector Vergara
1. Resumen: Este trabajo trata acerca de la implementación de un robot móvil con tracción en las 4 ruedas, utilizando ARDUINO, en conjunto con Matlab, al que se le ha dado el nombre DCR01, donde las letras DCR provienen del nombre de la materia Diseño y Control de Robots. Dichos programas permitirán por medio de una interfaz gráfica controlar remotamente los 4 motores paso a paso que mueven las 4 ruedas del motor. El robot diferencial permite realizar diferentes maniobras dependiendo del ángulo de giro de cada una de sus cuatro ruedas. Puede rotor sobre su centro debido a la tracción en las 4 ruedas. El interfaz gráfico se le colocó un teléfono celular y por medio de programación en MatLab el robot puede seguir el color rojo mostrándolo con sus coordenadas en la pantalla.
2. Descripción: El Robot DCR-01 es un robot diferencial que posee 4 ruedas. Cada una de estas ruedas posee un motor paso a paso que puede ser controlado de forma independiente por medio de Arduino. La estructura del robot está hecha con cajillas de uso eléctrico de PVC y otros materiales reciclados. También cuenta con una cámara la cual consiste en un celular montado en la estructura del robot y que por medio de una red inalámbrica WiFi, permite obtener imágenes en tiempo real de forma remota desde una computadora. Este robot puede ser controlado a distancia o moverse de forma automática. Posee una interfaz gráfica hecha en Matlab que permite visualizar las imágenes enviadas por la cámara y a la vez permite controlar el robot de una manera amigable para el usuario.
3. Especificaciones:
4 ruedas 4 baterías de 9V, una por cada motor. 1 batería de 2500 mAh. Para el Arduino
2
3.1. Especificaciones de los motores Se utilizó un motor paso a paso unipolar, muy usado con Arduino por su pequeño tamaño y bajo costo, el 28BYJ-48 y su adaptador ULN2003A
Esquemático del motor paso a paso
Tensión nominal de entre 5 y 12 V.
Consumo de unos 55 mA.
4 Fases.
8 pasos por vuelta.
Resistencia 50 Ω.
Reductora de 1/64.
Par motor de 34 Newton / metro más o menos 0,34 Kg por cm.
Angulo por paso: 5.625°/64
El motor trabaja con 4 bobinas lo cual permite 4 pasos (Steps), u 8 medios pasos (half-Steps) por vuelta y usa una reductora de 1 /64, por lo que necesitamos dar 4 pasos x 64=256 pasos por vuelta.
3
4. Cinemática del robot
Esquemático del DCR-01
Asignamos un marco de coordenadas locales en el centro de masa del robot. Las coordenadas del centro de masa en el marco inercial pueden escribirse como COM = (X, Y, Z). Considerando solo el movimiento en un plano, la coordenada Z del centro de masa
Diagrama de cuerpo Libre
2
(COM) es constante. Ahora suponemos que el robot se mueve en un plano con una velocidad 𝑇
lineal expresada en coordenadas locales como 𝑣 = [𝑣𝑥 𝑣𝑦 0] y rota con un vector de velocidad angular 𝜃 = [0 0 𝜃]𝑇 . Si 𝑞 = [𝑋 𝑌 𝜃]𝑇 es el vector de estado que escribe las 𝑇 coordenadas generalizadas del robot, luego 𝑞̇ = [𝑋̇ 𝑌̇ 𝜃̇] denota el vector de velocidades.
Se puede observar que las variables 𝑋̇ 𝑦 𝑌̇ están relacionadas a las coordenadas locales de velocidad:
Como el movimiento es en un solo plano también podemos escribir 𝜃̇ = 𝜔 no supone ninguna restricción en el movimiento en un plano del robot, ya que describe solamente la cinemática de cuerpo libre del robot. De este modo es necesario también analizar la relación entre las velocidades de las llantas y las velocidades locales. Supóngase que la 𝑖𝑡ℎ llanta rota con una velocidad angular 𝜔𝑖 (𝑡), donde 𝑖 = 1, 2, 3, 4, las cuales pueden ser una entrada de control. Por simplicidad del análisis el ancho de las llantas es despreciado, y se asume que está en contacto con el plano en un punto 𝑃𝑖 como se muestra en la figura.
Velocidad de una llanta
3
Considerando solo el movimiento en un plano, asumiendo que no existe desplazamiento lateral. Se puede escribir 𝑣𝑥 = 𝑟𝑖 𝑤𝑖
Se muestra una representación de las velocidades de las cuatro llantas del vehículo.
Velocidades de las llantas del DCR-01
Las distancias 𝑑1 , 𝑑2 , 𝑑3 , 𝑑4 se miden del punto de contacto de las llantas al centro instantáneo de rotación. Por geometría podemos determinar que: 𝑑1𝑥 𝑑3𝑦 𝑑1𝑥 𝑑2𝑥
= 𝑑2𝑦 = 𝑑4𝑦 = 𝑑4𝑥 = 𝑑3𝑥
Las relaciones de velocidades angulares 𝑉𝐿 = 𝑣1𝑥 = 𝑣2𝑥 𝑉𝑅 = 𝑣3𝑥 = 𝑣4𝑥 𝑉𝐹 = 𝑣2𝑦 = 𝑣3𝑦 𝑉𝐵 = 𝑣1𝑦 = 𝑣4𝑦
4
Existiendo una relación entre velocidades angulares y lineales. 𝑤𝐿 + 𝑤𝑅 𝑣 𝜂 = [ 𝑥 ] = 𝑟 [−𝑤 2+ 𝑤 ] 𝑤 𝐿 𝑅 2𝑐 Donde 𝜂 es el nuevo control de entrada introducido al nivel cinemático, la velocidad del robot se plantea como: 𝑞̇ = 𝑆(𝑞)𝜂 Donde 𝑆(𝑞) viene dada por: cos 𝜃 𝑆(𝑞) = [ sin 𝜃 0
𝑋𝐼𝐶𝑅 sin 𝜃 −𝑋𝐼𝐶𝑅 cos 𝜃] 1
De la ecuación anterior, se puede observar que la posición 𝑋𝐼𝐶𝑅 influye en el movimiento del robot. Teóricamente, puede moverse durante el desplazamiento del robot, sin embargo 𝑋𝐼𝐶𝑅 sale de la distancia entre los ejes, el robot se desliza y pierde estabilidad. Para resolver este problema se introduce una restricción matemática no holonómica, descrita por: 𝑣𝑦 = 𝑥0 𝜃̇ Donde 𝑥0 , denota una coordenada fija del ICR Por lo tanto 𝑆(𝑞) se puede escribir como: cos 𝜃 𝑆(𝑞) = [ sin 𝜃 0
𝑥0 sin 𝜃 −𝑥0 cos 𝜃] 1
El valor de 𝑥0 es arbitrario lo elegimos cero para simplificar el modelo y obtener que el modelo cinemático del DCR-01, se aproxime al de un robot diferencial de dos ruedas, cuyas ecuaciones se describen a continuación: 𝑡
𝑤𝑅 + 𝑤𝐿 cos 𝜃 𝑑𝑡 2
𝑋(𝑡) = 𝑋(0) + ∫ 𝑟 0 𝑡
𝑤𝑅 + 𝑤𝐿 sin 𝜃 𝑑𝑡 2
𝑌(𝑡) = 𝑌(0) + ∫ 𝑟 0
𝑡
𝜃(𝑡) = 𝜃(0) + ∫ 𝑟 0
𝑤𝑅 − 𝑤𝐿 𝑑𝑡 2𝐶
5
Esta matriz se utiliza para mapear el movimiento con una referencia global
Para una rueda estándar fija las restricciones cinemáticas son: 𝑅. 𝐶. 𝐴𝑣𝑎𝑛𝑐𝑒: [𝑆𝑖𝑛(𝛼 + 𝛽) − 𝐶𝑜𝑠(𝛼 + 𝛽) (−𝑙)𝐶𝑜𝑠(𝛽)]𝑅(𝜃)𝜉𝐼̇ − 𝑟𝜑̇ =0 𝑅. 𝐶. 𝐷𝑒𝑠𝑙𝑖𝑧𝑎𝑚𝑖𝑒𝑛𝑡𝑜: [𝐶𝑜𝑠(𝛼 + 𝛽) 𝑆𝑖𝑛(𝛼 + 𝛽) 𝑙𝑆𝑖𝑛(𝛽)]𝑅(𝜃)𝜉𝐼̇ = 0
6
5. Imágenes del Proyecto
7
8
6. Conclusiones-Recomendaciones La interfaz gráfica permite controlar de forma amigable el robot por medio de botones y a la vez visualizar las imágenes enviadas por la cámara. A la vez se agregaron botones que permitirán desarrollar futuras aplicaciones para el robot. Existen dos formas para controlar el robot una manualmente, y la otra es en el modo seguidor de color, el cual se programó para seguir el color rojo, dándonos las coordenadas en el plano xy, del objeto en la pantalla, y de acuerdo a los movimientos de este en la pantalla, el robot lo seguirá. Los motores paso a paso y las ruedas utilizadas obtenidas permiten una buena tracción en superficies lisas y ante obstáculos pequeños, sin embargo, serían necesarias algunas mejoras para para librar obstáculos más grandes y superficies irregulares. Uno de los principales problemas en la elaboración y primeras pruebas, fue el consumo de energía, el cual se logró mejorar bastante mediante el uso de un arduino MEGA, que tiene mayor capacidad, en lugar de los 3 arduino UNO que teníamos inicialmente.
7. Dirección del video del proyecto en youtube https://youtu.be/hyR1mdzSV-M
8. Referencias [1] PROMETEC, «PROMETEC,» [En línea]. Available: http://www.prometec.net/motor-28byj-48/. [2] D. P. Krzysztof Kozlowski, «Modeling and Control of a 4-Wheel Skid-Steering Mobile Robot,» International Journal Applied Mathematics and Computer Science, pp. 477-496, 2004. [3] S. N. Sidek, Dynamic Modeling and Control of Nonholonomic Wheeled Mobile Robot Subjected to Wheel Slip, Nashville, Tennessee, 2008. [4] C. C. W. a. K. Iagnemma, «A Dynamic-Model-Based Wheel Slip Detector for Mobile Robots on Outdoor Terrain,» IEEE Transactions on Robotics , vol. 24, nº 4, pp. 821-831, 2008. [5] D. P. I. R. J. T. Krzysztof Kozlowski, «Modeling and Control of a 4-wheel skid-steering mobile robot: From theory to practice». 9
[6] Y. W. J. L. C. H. J. C. a. Q. Z. Tianmiao Wang, «Analysis and Experimental Kinematics of a SkidSteering Wheeled Robot Based on a Laser Scanner Sensor,» Sensors, 2015. [7] W. C. Guy Campion, «Wheeled Robots,» de Springer Handbook of Robotics, pp. 391-410.
10