Bienvenido: Ingresar
location: Robotica / RoMAARobotDev

Robot Móvil de Arquitectura Abierta - RoMAA

romaa12.jpg

El desarrollo actual de robot RoMAA-II puede verse aqui.

Descripción general

La construcción del robot RoMAA surge como respuesta a la necesidad de disponer de una plataforma sobre la cual ensayar y validar las investigaciones llevadas a cabo en el Centro de Investigación en Informática para la Ingeniería, las cuales se enmarcan en las áreas de visión por computadora, control automático y robótica.
La estructura elegida es de tracción diferencial de tres ruedas, dos de las cuales son de tracción controladas individualmente y una rueda giratoria atrás; esta configuración es una de las más apropiadas y utilizadas en ambientes interiores.
La zona de carga útil, al frente del vehículo, permite la colocación de sensores como cámaras, scanners laser, sensores ultrasónicos; así como actuadores: unidad pan and tilt y brazos robóticos.

Versiones

El desarrollo del robot móvil RoMAA, se llevo a cabo en diferentes etapas obteniendo como resultado dos versiones diferentes del proyecto.

La primer versión del desarrollo surge como proyecto interno dentro del área de robótica del Centro, de la cual se obtuvo un prototipo bautizado en ese momento como RoMAA (Robot Móvil de Arquitectura Abierta), el cual se presentó en las "V Jornadas Argentinas de Robótica" (JAR'08) [1].

La segunda versión o RoMAA-II, se desarrolló bajo el proyecto U.T.N. PID "Robot Móvil de Arquitectura Abierta RoMAA-II", de la Universidad Tecnológica Nacional, Regional Córdoba.

Características


Componentes

RoMMA

RoMAA-II

RoMAA.jpg

Robotica/Fotos/romaaii012.jpg

Motores

Motorreductor planetario Ignis MR103-400

Motores Remssi 551202

Reductores

a tornillo NMRV 025 1:7.5

Encoders Autonics

E40H-6-100-2-1-24 (Silge S.A.)

E40HB10-1000-3-T-24 (Silge S.A.)

Baterías Probattery

2xBSLA-12260-CPB

1xBSLA-12260-CPB

Desarrollo del robot RoMAA

Incialmente se comieza el desarrollo del robot móvil partiendo de la estructura mecánica, la cual incluye el sistema energético compuesto por 2 baterías de 12V (teniendo un bus de alimentación de 24V), dos motores de CC con caja reductora asociados a cada rueda, y los encoders ópticos incrementales para cerrar el lazo de control de tracción.
La electrónica de abordo para el control del robot incluye 2 drivers de potencia en configuración llave H para la excitación de cada motor, y un controlador para realizar el cálculo del cierre de lazo a partir de lectura de los encoders ópticos basado en un microcontrolador ARM7TDMI (de 32bits y 60MHz de frecuencia de clock), y generar las señanes de modulación de ancho de pulso (PWM) para comandar las llaves H.
El objetivo inicial del desarrollo era poder controlar tanto la velocidad lineal y angular (v,w) del robot, de manera que el controlador embebido tiene que generar las referencias de velocidad para cada motor (izq,der) para tal objetivo. Además, el controlador debe recibir los comandos de control a partir de una conexión serie (RS232) de la PC de abordo, y llevar un registro de los pulsos de encoders para el cálculo de la odometría del robot.

Las primeras versiones de prueba del controlador embebido se utilizan números enteros para representar todas las mediciones y comandos, y la trama de comunicación con la PC de a bordo estaba basada en caracteres ASCII, esto permitió poder hacer debbug del firmware mediante una terminal desde la PC de a bordo. Para enviar ordenes desde la PC de abordo se utilizaba un joystick para generar las referencias enviadas al controlador por el puerto serie. Una descripción mas detallada de su desarrollo y evolución puede verse en

Las diferentes versiones del hardware utilizado, tanto la llave H de potencia como la placa de control, puede verse en

Los detalles del firmware de esta version son:

Resultado

Como resultado de la primer versión del robot móvil RoMAA se obtivo un prototipo completamente funcional que permitió evaluar tanto la parte mecánica, eléctrica y de tracción, como la electrónica de a bordo del controlador embebido y electrónica de potencia.

En cuanto a la parte mecánica se pudo evaluar los motoreductores empleados y la mecánica de acoplamiento entre motor, caja reductora, encoder y rueda; a partir de la cual surgieron modificaciones para la versión II. Algunos de los puntos claves fueron

En cuanto a la parte electrónica se hizo evidente la necesidad de fuentes de alimentación conmutadas para el sistema de embebido, debido a la distintas tensiones necesarias y la tensión de batería de 24V.

Respecto al firmware, esta versión era bastante limitada, debido a que las operaciones del microcontroladore eran realizadas solamente con tipo de datos enteros, y el control de tracción se basaba únicamente en un controlador proporcional. El controlador embebido mantenía un registro de los pulsos de encoders pero no realizaba el cálculo de la odometría, que se hacía en la PC de a bordo.

El software de la PC de a bordo se desarrollo en base a una clase de comunicación escrita en lenguaje C++, y se escribió un driver para el entorno de desarrollo de robótica Player (v2.0).

Desarrollo del robot RoMAA-II

El robot móvil RoMAA-II pretende mejorar las características tanto constructivas como de prestaciones del robot RoMAA, arriba descripto. Algunas de las modificaciones mecánicas son

El nuevo motor utilizado y la electrónica se alimentan en esta versión a 12V, disponibles de una única batería con lo que se reduce el peso y el costo final del robot.

La plaqueta de ciruito impreso del controlador embebido fue rediseñada completamente, incluyendo conectores a los encoders, un conector a un panel de control y un controlador para comunicación USB.

El firmware del RoMAA-II opera completamente en punto flotante, realizando internamente el cálculo de la odometría, junto con los lazos de control PID tanto para controlar la velocidad de cada uno de los motores, como un lazo extra de acomplamiento cruzado para el control del robot mediante velocidad lineal y angular.

El software de la PC de a bordo consta de una clase de comunicación, similar a la versión anterior, pero adecuado al nuevo controlador; junto con el driver de entorno de desarrollo de robótica Player (v3.0).

Resultado

En cuanto a la parte mecánica, el robot móvil RoMAA-II resulta más secillo y por lo tanto económico; esto se logró eliminando algunas piezas mecánicas de la primer versión, principamente la pieza de apoyo de los ejes de las ruedas, debido al nuevo sistema de tracción; además, se redujeron las complejidades de mecanizado de las piezas correspondiente a los separadores de las placas metálicas y el soporte de la rueda castor.

Esta versión se alimenta con una única batería de 12V, esto hace más sencillo la etapa de regulación de tensiones del controlador embebido.

El controlador embebido se rediseño completamente. Se realizaron pequeñas modificaciones en las llaves H de potencia que manejan los motores de tracción, y un rediseño completo del PCB donde se encuentra el microcontrolador.

El firmware del controlador embebido cuenta con un sistema operativo en tiempo real, más precisamente el FreeRTOS. Y como principal modificación en relación a la anterior versión es que opera completamente con números de punto flotante, tanto para los controladores PID digitales como en el cálculo de la odometría; también se mejoró la comunicación empleando un buffer circular para almacenar los datos entrantes y salientes.

En relación al software de la PC de a bordo, se implementaron tanto el driver para el entorno de desarrollo de robótica Player, y el modelo de simulación para el simulador Stage [2].

Más detalles de lo antes mencionado se encuentra en las siguientes páginas:

Referencias

None: Robotica/RoMAARobotDev (última edición 2018-02-02 15:34:37 efectuada por DiegoGonzalez)