Skip to content

Commit

Permalink
updated README and added several files
Browse files Browse the repository at this point in the history
  • Loading branch information
gonzafernan committed Nov 12, 2019
1 parent 62dc17f commit 3196df1
Show file tree
Hide file tree
Showing 8 changed files with 1,465 additions and 1 deletion.
28 changes: 27 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,27 @@
# Realidad Aumentada en Herramientas de Robótica
# Realidad Aumentada en Herramientas de Robótica
El proyecto consiste en una aplicación educativa de realidad aumentada para dispositivos móviles con sistema operativo Android, que se comunicac mediante protocolo TCP/IP con un programa desarrollado por el usuario en su computador con MATLAB, utilizando el toolbox *Robotics, Vision & Control* desarrollado por Peter Corke. El objetivo de la aplicación es la simulación, es un entorno de realidad aumentada, de los robots manipuladores serie estudiados en las cátedras vinculadas a la robótica.

## Modo de uso de la Aplicación Móvil para Establecer la Comunicación con MATLAB
El modo en que el usuario debe usar la aplicación móvil para efectuar exitosamente la simulación con datos de su programa en MATLAB es el siguiente:

1. Crear el programa en MATLAB, basado en un manipulador tipo *UnityLink*, con por ejemplo un bucle que calcula las diferentes configuraciones articulares deseadas y luego las envía mediante el método *UnityLink.SnedQ*.
2. Abrir la aplicación móvil desarrollada en Unity.
3. En la pantalla principal de la aplicación, introducir la dirección IP del dispositivo móvil, y el puerto en el que se desea establecer la comunicación.
4. Al objeto *UnityLink* creado en el programa en MATLAB, cambiarle sus atributos *ip* y *port* por los mismos introducidos en la aplicación (Es importante que la IP sea de la misma red que la computadora).
5. Habilitar la conexión con MATLAB en la aplicación móvil con la opción *EnableConnection*.
6. Proceder a la escena con la cámara de Vuforia presionando en la aplicación el botón *Start*.
7. Apuntar al target impreso, donde aparecerá el modelo 3D del robot en realidad aumentada.
8. Ejecutar el programa en MATLAB para que envíe la secuencia de configuraciones articulares. El robot en la aplicación móvil debería moverse si la conexión fue exitosa.

## Trabajo a Futuro
Dadas las limitaciones del tiempo del trabajo quedan aspectos que se desearía continuar desarrollando. Algunos de estos aspectos son:

- Incorporación de otros modelos de robot comerciales de distintos fabricantes que se utilicen en el programa de Robótica I y Robótica II, para que el estudiante pueda apreciar sus dimensiones reales, y su desempeño en un espacio de trabajo similar al real.
- Mejorar la interfaz para los comandos manuales al robot desde la aplicación.
- Mejorar el aspecto visual de la aplicación, incorporar la posibilidad de utilizar el dispositivo móvil en posición vertical.
- Limpiar el código y crear prefabs de Unity que permitan que el proyecto sea más escalable.
- Ampliar la comunicación con MATLAB a otras herramientas de robótica distintas, por ejemplo, el uso de ROS (Robot Operating System) con el software de simulación Gazebo. Esto se vio imposibilitado dado la poca experiencia con la herramienta.
- Trabajar sobre el protocolo de comunicación, sobre el protocolo TCP/IP utilizado. Analizar y estudiar con mayor profundidad los diferentes aspectos de la comunicación implementada. - Corregir errores, y plantear la posibilidad de hacer broadcast para la comunicación con múltiples dispositivos móviles o la posibilidad de una interfaz de comunicación distinta.
- Trabajar con distintos marcadores para los aspectos de realidad aumentada.
- Plantear la posibilidad de simular trabajos cooperativos entre múltiples robot en un entorno de realidad aumentada.
- Continuar con el desarrollo de la clase UnityLink para facilitarle al usuario el desarrollo de su aplicación en MATLAB.
3 changes: 3 additions & 0 deletions src/unity/Assets/Scripts/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ private void Start(){
connectionToggle = GameObject.Find("EnableConnection");
inputIP = GameObject.Find("InputIP");
inputPort = GameObject.Find("InputPort");

AppData.setSceneToLoad(2);
}

public void EnableConnection(){
Expand Down Expand Up @@ -51,6 +53,7 @@ public void EditedPort(){
}

public void PlayScene(){
Debug.Log("Starting Loading Scene");
sceneTransition.GetComponent<SceneTransition>().LoadScene(0);
}

Expand Down
45 changes: 45 additions & 0 deletions src/unity/Packages/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"dependencies": {
"com.ptc.vuforia.engine": "8.3.9",
"com.unity.collab-proxy": "1.2.16",
"com.unity.ext.nunit": "1.0.0",
"com.unity.ide.rider": "1.0.8",
"com.unity.ide.vscode": "1.0.7",
"com.unity.package-manager-ui": "2.2.0",
"com.unity.test-framework": "1.0.13",
"com.unity.textmeshpro": "2.0.1",
"com.unity.timeline": "1.1.0",
"com.unity.ugui": "1.0.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.cloth": "1.0.0",
"com.unity.modules.director": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0",
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.physics2d": "1.0.0",
"com.unity.modules.screencapture": "1.0.0",
"com.unity.modules.terrain": "1.0.0",
"com.unity.modules.terrainphysics": "1.0.0",
"com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.ui": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.umbra": "1.0.0",
"com.unity.modules.unityanalytics": "1.0.0",
"com.unity.modules.unitywebrequest": "1.0.0",
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
"com.unity.modules.unitywebrequestaudio": "1.0.0",
"com.unity.modules.unitywebrequesttexture": "1.0.0",
"com.unity.modules.unitywebrequestwww": "1.0.0",
"com.unity.modules.vehicles": "1.0.0",
"com.unity.modules.video": "1.0.0",
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0"
}
}
6 changes: 6 additions & 0 deletions src/unity/UIElementsSchema/UIElements.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.PackageManager.UI" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
<xs:import schemaLocation="UnityEditor.UIElements.xsd" namespace="UnityEditor.UIElements" />
<xs:import schemaLocation="UnityEditor.PackageManager.UI.xsd" namespace="UnityEditor.PackageManager.UI" />
</xs:schema>
Loading

0 comments on commit 3196df1

Please sign in to comment.