= Etapa final de desarrollo del robot RoMAA-II = <> == Introducción == El desarrollo del robot móvil [[Robotica/RoMAA|RoMAA]] se llevo a cabo en diferentes etapas en las cuales fueron evolucionando las distintas partes que componen el proyecto. Las que pueden ser divididas principalmente entre la parte mecánica, el hardware y el software, tanto el firmware del control embebido como el de la PC de a bordo. == Objetivos generales == La etapa final del desarrollo del robot RoMAA-II tiene como objetivos obtener una versión congelada de las diferentes partes que formar el robot RoMAA para disponer de una versión operativa completa para transferencia y como plataforma de experimentación en robótica móvil. Además, de generar la documentación y el manual de usuario correspondiente. == Objetivos particulares == Los objetivos particulares corresponden a obtener las versiones finales de: * El hardware del control embebido de abordo del robot RoMAA.<
>Responsables: '''Daniel Marchetti, Lucas Martini y Santiago Pérez. ''' * El firmware del control embebido.<
>Responsables: '''Lucas Martini, Néstor Palomeque y Santiago Pérez. ''' * Librería de programación en C++ (clase) para la comunicación con el robot.<
>Responsables: '''Lucas Martini, Néstor Palomeque y ''''''Gonzalo Pérez Paina''''''.''' * Driver para el entorno de desarrollo de robotica Player.<
>Responsable: '''Gonzalo Pérez Paina.''' * Modelo de simulación para el simulador Stage, con diferentes sensores a bordo.<
>Responsable: '''Gonzalo Pérez Paina.''' == Desarrollo == <> === Hardware de control embebido === El hardware de control embebido consta de la electrónica para controlar los motores de tracción y comunicación con la PC de a bordo. Incluye drivers de potencia basados en llave H y la unidad de proceso basada en un microcontrolador ARM7. Los desarrollos necesarios para obtener la versión final correspondiente al RoMAA-II son: ||''Tareas'' ||''Responsable'' ||''Estado'' ||Plazo || ||El montaje de la placa de procesamiento con uC ARM7 basada en el desarrollo realizado en [1], con las modificaciones necesarias para el funcionamiento de los motores con 12V. ||Daniel Marchetti y Santiago Pérez ||<> ||3 sem. (01/10/10) || ||Gabinete adecuado para contener tanto los drives de los motores y la placa del uC. ||Daniel Marchetti y Lucas Martini ||<> ||3 sem. (01/10/10) || ||Panel de control que se conecta a la placa del uC y dispone de las conexiones e indicadores necesarios para la operación del robot. Además, de parada de emergencia de fácil accionamiento. ||Daniel Marchetti y Lucas Martini || <> ||3 sem. (08/10/10) || ==== Notas ==== 20/09/2010 * Se ha montado todo lo referido al funcionamiento del LPC2114. Solo falta el regulador de 3.3V y el conversor USB-RS232 por falta de stock, para poder probar el funcionamiento del microcontrolador. ('''Daniel Marchetti y Santiago Pérez''')<
>Se debe definir la adquisición de dichos componentes en esta semana. ('''Santiago Pérez''')<
>Se intentará finalizar con el armado de la placa en esta semana, si se poseen todos los componentes. ('''Daniel Marchetti''') * Se están probando las nuevas llaves H y definiendo en esta semana los conectores que se usarán con los motores, como así también el gabinete y el montaje que se realizará. Se intentará finalizarlo esta semana. ('''Lucas Martini''') 25/09/2010 * Se termino de soldar todo lo referente al funcionamiento del microcontrolador y se probó su correcto funcionamiento. Ya tiene FreeRTOS embebido funcionando.<
>No se consiguió aún el CP2102 (el funcionamiento se probó con un MAX232). En teoría la semana que viene "deberían" llegar. Esta semana se consultará nuevamente a Electrocomponentes para saber de su procedencia. ('''Santiago Pérez''') * Se terminaron de probar las llaves H y ya se montaron en la placa madre vieja para ser usadas a modo de prueba durante un tiempo. ('''Lucas Martini''')<
>Se consiguieron los conectores aéreos para la conexión llaves H con motores. Se están montando. ('''Lucas Martini''') * Se comenzó con el diseño del panel de control externo. ('''Lucas Martini''') === Firmware === El firmware del uC ARM7 para esta versión corresponde [1]. Las modificaciones necesarias son: ||''Tareas'' ||''Responsable'' ||''Estado'' ||Plazo || ||Cerrar la versión de las ciiiemblibs a utilizar y subirlas al servidor Mercurial. ||Néstor Palomeque ||<> ||- || ||Modificar el firmware (con RTOS) para utilizar la última versión de las ciiiemblibs. ||Santiago Pérez ||<> ||4 sem. (08/10/10) || ||Corregir el bug que impide forzar a los motores (por ejemplo funcionamiento sobre alfombra). ||Santiago Pérez ||Pasivo ||1 sem. (15/10/10) || ||Crear el proyecto en el servidor de Mercurial para el firmware del RoMAA-II. ||Santiago Pérez ||Pasivo ||1 día. (15/10/10) || ||Manual final de los modos de funcionamiento y comandos del control embebido. ||Lucas Martiniy Santiago Pérez. ||Pasivo ||1 sem. (08/10/10) || ==== Notas ==== 20/09/2010 * Se comenzará con el agregado de las nuevas {{{ciiiemblibs}}} al control del RoMAA-II. ('''Santiago Pérez''') * Se trabajará con la optimización del funcionamiento del FreeRTOS, tanto en su "limpieza" y ordenamiento de código, como así también con la utilización de los recursos del RTOS. ('''Santiago Pérez''') === Librería de programación === La librería para comunicarse con el control embebido del robot pertenece a las ciiilibs. Tareas a realizar son: ||''Tareas'' ||''Responsable'' ||''Estado'' ||Plazo || ||Terminar la programación de la clase de comunicación con el robot utilizando las librerías de com. serie flexiport. ||Lucas Martini y Néstor Palomeque ||<> ||1 sem. (27/09/10) || ||Probar la clase para detectar posible errores de comunicación (sincronización) entre la PC de a bordo y el control embebido. ||Néstor Palomeque || <> ||1 sem. (01/10/10) || ||Agregar la versión final de la clase a las ciiilibs en el servidor de Mercurial. ||Gonzalo Perez Paina || <> ||1 día || ==== Notas ==== 27/09/2010 * Se finalizó la corrección de la clase de comunicación utilizando las librerías {{{flexiport}}}, con el agregado de delays para el correcto funcionamiento de la recepción por RS232. ('''Néstor Palomeque''') * Se está probando la comunicación con el control embebido para detectar posibles errores. ('''Néstor Palomeque''') === Driver de Player === Driver plugin que utiliza la clase romaacomms compatible con la versión 3.0 de Player. Tareas a realizar: ||''Tareas'' ||''Responsable'' ||''Estado'' ||Plazo || ||Programación del nuevo driver que permita manejar el robot RoMAA con Player tanto con comandos de velocidad lineal y angular como de velocidad de cada rueda. ||Gonzalo Pérez Paina ||<> ||4 sem. (08/10/10) || ||Subir el driver al repositorio Mercurial. ||Gonzalo Pérez Paina ||Pasivo ||1 día. (08/10/10) || === Modelo para el simulador Stage === Modelo para el simulador Stage compatible con la versión 3.2, con la posibilidad de agregarle sensores como un anillo de sonares o escáner láser. ||''Tareas'' ||''Responsable'' ||''Estado'' ||Plazo || ||Modelo para el Simulador Stage compatible con la versión 3.2 ||Gonzalo Pérez Paina ||<> ||1 sem. (24/09/10) || == Documentación == El robot RoMAA-II se componen de las siguientes partes: ==== Nota ==== En esta sección deben estar los links directos para descargar los esquemáticos, PCB, librerías, software, etc. Además, puede estar el link a la página de desarrollo con mayor explicación. Pero todo debería ser descargado de aquí. ------ === Hardware === * [[LabElectronica/LlaveH110|Drivers de potencia basadas en llaves H]] * [[LabElectronica/FreeRTOSLpc2114Web|Placa de control]] * [[LabElectronica/PanelInterruptores100|Panel de control]] ------ === Firmware === ==== ciiiemblibs ==== La versión de las `ciiiemblibs` utilizadas por el firmware del robot RoMAA-II corresponde a la `revisión 0`. Y se pueden descargar de [[http://proyectos.ciii.frc.utn.edu.ar/ciiiemblibs|ciiiemblibs]] con el comando {{{hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/ciiiemblibs}}} ==== Firmware de control con RTOS ==== ------ === Software PC === ==== Clase de comunicación ==== La clase de comunicación con el robot RoMAA se encuentra en las librerías `ciiilibs` correspondientes a la revisión `74`. Se puede descargar del servidor con {{{hg clone -r 74 https://proyectos.ciii.frc.utn.edu.ar/hg/ciiilibs}}} La clase de comunicación utiliza la librería [[http://gearbox.sourceforge.net/group__gbx__library__flexiport.html|flexiport]] del proyecto [[http://gearbox.sourceforge.net/index.html|GearBox]], que deben estar instaladas para la compilación. ==== Driver del RoMAA para Player ==== El driver de Player se puede descargar del... . Descripción de la programación del driver y el archivo de configuración [[Robotica/PlayerDriverRoMAA200Web|aqui]] (Para compilar el driver de Player se necesita la librería de comunicación) ==== Modelo de simulación para Stage ==== El modelo de simulación del robot RoMAA con sensores de ultrasonido es [[attachment:Robotica/StageRoMAA200Web/romaa.inc|romaa.inc]]. Se puede ver una descripción breve de la generación del modelo y archivos de ejemplo [[Robotica/StageRoMAA200Web|aqui]]. ------ === Conjunto Mecánico === * Deberíamos poner también los planos constructivos, los materiales de las placas, datos de los conjuntos motorreductores, etc. Estaría bueno tener los indicados los costos. == Referencias == * [1].- ''"Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización"''. Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino. [[LabElectronica/FreeRTOSLpc2114Web|Ir]]