= 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. * El firmware del control embebido. * Librería de programación en C++ (clase) para la comunicación con el robot. * Driver para el entorno de desarrollo de robotica Player. * Modelo de simulación para el simulador Stage, con diferentes sensores a bordo. == 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. (08/10/10) || ||Gabinete adecuado para contener tanto los drives de los motores y la placa del uC. ||Daniel Marchetti y Lucas Martini ||<> ||3 sem. (08/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) || ||Cargador de Baterías conmutado (12V/3-4A) ||Daniel Marchetti y Néstor Palomeque ||<> ||1 sem. (29/10/10) || === 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. (29/10/10) || ||Corregir el bug que impide forzar a los motores (por ejemplo funcionamiento sobre alfombra). ||Néstor Palomeque y David Gaydou. ||<> ||1 sem. (29/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 Martini y Santiago Pérez. ||<> ||1 sem. (29/10/10) || === 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 || === 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. (29/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]] * [[LabElectronica/CableadoElectrico|Cableado eléctrico]] * [[LabElectronica/ConjuntoMecanico|Conjunto mecánico]] ------ === 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 ==== Para la comunicación con el controlador embebido del robot RoMAA se utiliza una clase de C++ incluida en las librerías [[http://proyectos.ciii.frc.utn.edu.ar/ciiilibs/|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}}}. Esta clase 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 [[http://proyectos.ciii.frc.utn.edu.ar/romaa_player_driver_v2.0/|driver de Player]] utilizado corresponde a la revisión `3`. Utilizando [[http://mercurial.selenic.com/|mercurial]] y se descarga mediante el comando {{{hg clone -r 3 https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_player_driver_v2.0}}}. El código fuente del driver incluye el archivo de configuración [[attachment:romaa.inc]] para el robot RoMAA y otro [[attachment:romaajoy.cfg]] que utiliza el driver del joystick para comandar el robot. Se puede ver una descripción de la programación del driver y el archivo de configuración [[Robotica/PlayerDriverRoMAA200Web|aqui]]. ==== 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]]