## page was renamed from Robotica/GazeboModels
#acl BecariosGrupo:read,write,revert All:read
#acl Default All:read
= Modelos en Gazebo =
== Archivos .world ==
Los [[http://playerstage.sourceforge.net/doc/Gazebo-manual-0.8.0-pre1-html/config_syntax.html | archivos world]] contienen una '''descripción del entorno''' a ser simulado en ''Gazebo''. Este describe el diseño de robots, sensores, fuente de luz, componentes de la interfaz de usuario, y demás. El archivo world también se puede usar para controlar algunos aspectos del motor de simulación, tales como la fuerza de gravedad o los pasos temporales de la simulación.
Los archivos world de ''Gazebo'' estan escritos en XML lo que permite crearlos y modificarlos usando un editor de texto.
== Conceptos claves ==
El mundo consiste principalmente de delaraciones de '''modelos'''. Un modelo puede ser un robot (por ej. Pioneer2AT), un sensor (por ej. SICK LMS200), una característica física del entorno (por ej. el terreno) o algun objeto manipulable.
Otros elementos dentro del archivo world indican como renderizar la escena mediante la declaración ''ogre'' (Open source 3D Graphics Engine), atributos del GUI mediante declaración ''gui'', y propiedades físicas del motor mediante declaración ''ode'' (Open Dinamics Engine); estas ''declaraciones'' se refiere a secciones del archivo xml.
== Sintaxis del modelo ==
Un '''modelo''' (model) es una entidad física dentro del mundo. Esta consiste de uno o mas '''cuerpos''' (body), cada uno conteniendo una o mas '''geometrías''' (geom).
Los modelos pueden estar escritos en archivos separados e incluirlos dentro del .world.
{{{
}}}
(embedded : False if the included file does not need parameters overwritten.)
=== Controladores e Interfaces ===
Un modelo puede contener uno o mas controladores. Se utiliza un '''controlador''' para leer datos desde sensores o manipular cuerpos. Cada controlador hace uso de una o mas interfaces. Una '''interfaz''' define que datos se exportan mediante ''libgazebo'', por ejemplo el controlador pioneer2dx_position2d puede utilizar la interfaz position.
== Creación de modelos ==
Los modelos son archivos ''xml'' ([[http://playerstage.sourceforge.net/doc/Gazebo-manual-0.8.0-pre1-html/tutorial_model.html | Ver]])
{{{
}}}
El ejemplo incorporado en la instalación de ''Gazebo'' del robot !Pioneer2DX esta creado a partir de sus partes importado dentro del arhivo .model (xml) en formato .mesh binarios compatibles con OGRE (estos archivos .mesh forman la sección ''geom'' del modelo). Las partes móviles (ej. ruedas) y fijas se unen mediantes uniones (joints).
== Exportar archivos .mesh compatibles con ogre desde blender ==
Los archivo mesh puede ser exportados desde blender utilizando un script de python ''BlenderExport'' creado por Ogre (motor 3D de Gazebo) que puede descargarse desde [[http://www.ogre3d.org/download/tools | aquí]]; este script exporta archivos .mesh en formato xml. El script puede utilizar la herramienta ''OgreXMLConverter'' para convertir los mesh xml a binarios, dicha herramienta se encuentra dentro del paquete {{{ogre-tools}}} de debian.
Para instalar !BlenderExport hay que copiar el script y subdirectorios a `~/.blender/scripts/`