Ver/Abrir - Universidad Pedagógica Nacional
Transcripción
Ver/Abrir - Universidad Pedagógica Nacional
Manual de Desarrollador RoboticSAD Universidad Pedagógica Nacional – Licenciatura en Electrónica Elaborado por: Yuli Marcela Marín Peña Manual de Desarrollador RoboticSAD RoboticSAD es un Software de Apoyo Didáctico enfocado en la enseñanza y aprendizaje de conceptos de Robótica, aunque se encuentra en la primera de tres fases planteadas: Fase 1. Esta fase corresponde a la simulación grafica de un brazo robótico de mínimo tres grados de libertad y un robot móvil. Fase 2. En esta fase se complementará el software agregando herramientas de programación por código, integrando un componente de comunicación con el Hardware. Fase 3. Es esta fase se desarrollará una base de datos que pueda evaluar y hacer seguimiento de los procesos llevados a cabo en el software. También se deberá crear una página web que esté conectada al software y que contenga información y material didáctico acerca del proyecto general que se divide en: Software, Hardware y componente pedagógico. En este manual se explican elementos importantes para tener en cuenta en la continuación de desarrollo del software. Descripción General Este software se desarrolla en el motor de video juegos Unity 3D® versión 4.0.0 y utilizando el lenguaje de programación C# Script. En la culminación de la fase 1 se implementaron cuatro escenas: escena GUI inicial, escena Simulación Brazo Robótico, escena Simulación Robot Móvil y escena Comunicación Brazo Robótico, para conocer el funcionamiento de dichas escenas se puede remitir al Manual de Usuario RoboticSAD o directamente ejecutar el software. Acceso al software Antes de empezar a trabajar con el software se recomienda hacer un backup del mismo, leer el manual de usuario y ejecutar el software para realizar pruebas de funcionamiento. Primero debe instalar descargar e instalar Unity 3D en su página oficial http://unity3d.com/, posteriormente abra la carpeta RoboticSAD_Final que se encuentra en el CD del proyecto y luego Assets, allí encontrara las cuatro escenas mencionadas anteriormente con el Logotipo de Unity 3D. Al abrir cualquiera de estas escenas tendrá acceso al proyecto en general, en el cual se encuentran los scripts y demás recursos del software. Conocimiento básico de Unity 3D Al abrir Unity en la parte superior izquierda se encuentra el desplegable para elegir la configuración de ventanas, en el caso de la imagen se encuentra en 2 by 3. Partiendo de esta configuración se tienen las siguientes ventanas: 1. Scene. Aquí se puede ver cómo están organizados los objetos de nuestra escena en el entorno tridimensional. 2. Game. Aquí se aprecia la vista de la escena en ejecución, según las cámaras involucradas. 3. Hierarchy. Esta es la jerarquía de los objetos en la escena. 4. Project. Aquí se encuentran organizados los recursos del proyecto: escenas, carpetas, modelos 3D importados, scripts, prefabs, etc. 5. Subventana de Project. En esta ventana se pueden ver los recursos de cada carpeta. 6. Inspector. En esta ventana se pueden ver y manipular las propiedades de los objetos y scripts. Acceso a escenas, objetos y scripts Para abrir una escena del software, diríjase a la ventana de Project y de clic en Assets, en la Subventana de Project se encontraran las escenas del proyecto y las carpetas de recursos para cada una de ellas. Los objetos se encuentran ubicados en la ventana de Hierarchy y para acceder a ellos se puede dar clic en dicha ventana o directamente en la ventana Scene. Los scripts de cada escena se encuentran en las carpetas respectivas, para abrirlos se da doble clic sobre ellos o un clic y luego open en la ventana de inspector. Se abrirá el entorno de desarrollo .NET “MonoDevelop®” incluido en el paquete de Unity, aquí se pueden hacer las modificaciones de scripts si es el caso. Crear nuevos recursos 1. Scripts. En la pestaña Assets ir a Create y elegir C# Script, el archivo aparecerá en la Subventana de Project. 2. Importar modelos 3D y otros recursos. En la pestaña de Assets elegir Import New Asset y abrir la ubicación del archivo, el nuevo recurso aparecerá en la Subventana de Project. Si el recurso a importar es un modelo 3D realizado en Blender, basta con arrastrar el archivo .blend desde su ubicación y soltarlo en la Subventana de Project. 3. Objetos. Unity permite crear algunos objetos sencillos como cubos, esferas, cilindros, entre otros; para crear un objeto se debe ir a la pestaña GameObject, luego elegir Create Other y seleccionamos el tipo de objeto. Si se quiere crear un objeto a partir de un modelo 3D importado, arrastramos el archivo desde la ventana Project hasta la ventana de Secene o Hierarchy, hecho esto se puede ver el modelo en la escena y empezar a modificar sus propiedades; cabe aclarar que solo se modificará el objeto creado en escena y no el recurso de modelo 3D, es decir que se puede usar este como plantilla para crear varios objetos (el recurso de modelo 3D funciona como un prefab). 4. Otros. Unity permite crear terrenos y adecuarlos con árboles, flores, hierba, agua, cielos, entre otros. Para conocer las herramientas de Unity puede consultar su Manual en línea http://docs.unity3d.com/Documentation/Manual/index.html. Crear una nueva escena Para crear una nueva escena en el proyecto se hace en la pestaña File y se elige New Scene, así se podrá complementar el software con escenas creadas desde cero. Scripts asignados GUI_INICIAL.cs. Esta asignado al objeto “Main Camera” de “ESCENA_GUI_INICIAL”. SIM_BRAZO.cs. Pertenece a “ESCENA_SIM_BRAZO” y está asignado al objeto “brazo_real1_aristas reducidas_7”. SIM_MOVIL.cs. Esta signado al objeto “movil2” de “ESCENA_SIM_MOVIL”. colisioMovil.cs. También pertenece a “ESCENA_SIM_MOVIL” y esta signado al objeto “Armature” que se encuentra como hijo del objeto “movil2”. COM_BRAZO.cs. Este script está asignado al objeto “brazo corregido” perteneciente a “ESCENA_COM_MOVIL”. comunicacion.cs. También pertenece a “ESCENA_COM_MOVIL” y está asignado al objeto “entorno_com”. Para entender la estructura de estos scripts se pueden abrir en el proyecto, aquí se encuentran comentadas las partes más importantes; también se incluye una breve descripción de su funcionamiento en el documento de tesis. Instrucciones importantes en C# utilizadas en los scripts. transform.Find("Armature/vacio_base") Esta instrucción encuentra el objeto en la ubicación jerárquica indicada, en este caso ubica al objeto hijo Armature y luego al hijo de este llamado vacio_base. transform.rotation Devuelve la rotación del objeto transform en el espacio global y la almacena como un Quaternion (Los Quaternion en Unity son tipo de datos que se usan para representar rotaciones1). Quaternion.Slerp(desde Quaternion, hasta Quaternion, velocidad * Time.deltaTime) 1 http://docs.unity3d.com/Documentation/ScriptReference/Quaternion.html Interpolación esférica. Esta instrucción se traduce en la rotación indicada de un objeto desde una rotación cuaternión, hasta otra rotación cuaternión y a una velocidad tipo float indicada que puede ser en función del tiempo o por frames. Quaternion.Lerp(desde Quaternion, hasta Quaternion, velocidad * Time.deltaTime) Interpolación lineal. Esta instrucción funciona de casi de igual manera que Quaternion.Slerp con la única diferencia de que la rotación con Lerp es más rápida pero se ve extraño si las rotaciones son distantes. Si se quiere un movimiento más sofisticado o más suave usar Slerp. Quaternion.Euler (float x, float y, float z); Representa la rotación de un objeto en ángulos de Euler asi: “x” grados alrededor del eje “x”, “y” grados alrededor eje “y”, y “z” grados alrededor del eje “z”. Quaternion.identity Este método representa la rotación identidad, lo que hace es volver al objeto a la rotación inicial. transform.localRotation Devuelve la rotación del objeto transform en el espacio local, es decir respecto a la rotación del objeto transform padre, y la almacena como un Quaternion. transform.localPosition Devuelve la posición del objeto transform en el espacio local, es decir respecto a la posición del objeto transform padre. Vector3.MoveTowards(desde Vector3, hasta Vector3, velocidad * Time.deltaTime) Mueve el objeto transform desde una posición indicada hacia un punto destino en línea recta, también se le puede indicar un parámetro de velocidad tipo float que puede ser por frames o respecto al tiempo. Nota: para más información de las clases y métodos de Unity consulte su manual scripting en línea http://docs.unity3d.com/Documentation/ScriptReference/index.html.