FAQs

¿Cuántos ordenadores necesito para llevar a cabo el reto?

Un ordenador es suficiente, sin embargo, debido a la alta consumición de recursos de las herramientas y el bajo rendimiento siempre ligado a la virtualización, se recomienda utilizar dos máquinas distintas.

¿Qué software necesito para llevar a cabo el reto?

Se necesita una distribución de Linux (siendo Ubuntu muy recomendada), una distribución de Windows, ROS/Gazebo en Linux, MATLAB en Windows y en caso de no tener nada más que un ordenador Oracle VM VirtualBox para la virtualización. Tanto la licencia de MATLAB como los archivos de configuración y programas que se ejecutarán en MATLAB y Gazebo se proporcionarán en el momento de la inscripción.

¿Qué es la virtualización?

En muy pocas palabras, virtualizar una máquina es hacer una nueva máquina dentro de otra. Esto quiere decir que la máquina anfitrión tiene que tener recursos suficientes para su propio funcionamiento y para que funcione otra máquina con sus mismos componentes. No han de ser idénticas, es más, no podrían coexistir dos máquinas virtuales con los mismos recursos que la máquina anfitrion ejecutándose a la vez. Sin embargo, si una máquina tiene 4GB de RAM podría ejecutar una máquina virtual con 2 GB de RAM sin ningún problema.

He conseguido dos máquinas diferentes, ¿cómo las conecto entre sí?

Lo primero es verificar que se encuentren las dos en la misma subred. Esto quiere decir que en el caso de una red de casa, se encuentren ambas máquinas conectadas de la misma manera, ya sea por cable o por WiFi. Una vez hecho eso, simplemente hay que cambiar la dirección IP en el fichero de conexión de MATLAB por la que aparece en la máquina con Linux al ejecutar en consola el comando “ifconfig” (sin comillas) en el apartado ethX al estar conectado por cable o wlanX al estar conectado por WiFi.

¿Por qué se utilizan dos Sistemas Operativos distintos?

Al no estar ROS/Gazebo desarrollado y operativo en Windows, y tener MATLAB notable mejor rendimiento en Windows, hemos decidido utilizar esta configuración para maximizar el rendimiento de equipos que tal vez no sean demasiado potentes.

¿Es necesario saber algo sobre Linux para la competición?

Al ser los videotutoriales completamente explícitos, en los que aparecen todas las instrucciones y la manera de ejecutarlas, no es necesario. Sin embargo, tener una buena fluidez con el Sistema Operativo puede ser de gran ayuda para entender por qué se ejecuta cada acción y para desenvolverse. Además, en el mundo de la informática, Linux es un pilar fundamental, así que sí se recomienda empezar a familiarizarse con él.

¿Por qué no puedo abrir Gazebo a veces?

Gazebo es una herramienta en desarrollo, con lo cual, todavía tiene algunos bug sin resolver. Uno de ellos es ese fallo en el arranque, que resulta en varias líneas rojas que aparecen en la terminal y un cierre o bloqueo del problema. Por desgracia, no tenemos (o no conocemos) la solución a ese problema, aunque se ha reportado una desaparición parcial si se cierra Gazebo siempre completamente sin ningún problema. Si aparece, simplemente intentad abrirlo otra vez, o reiniciad la máquina, en algún momento volverá a funcionar ;).

¿Cómo se evaluará mi propuesta?

Tanto en la ronda final como en la ronda de clasificación (si la hubiera), se evaluarán las propuestas de la misma manera. El código desarrollado se probará en tres circuitos o escenarios, en los cuales se otorgarán puntos por diversos logros (marcos cruzados, orden de cruce y vuelta a la base) y se medirá el tiempo consumido en el intento (incluidas penalizaciones).

¿Cómo se evalúa el cruce de un marco?

En un intento, se otorgará un punto por cada marco que el drone consiga atravesar. Atravesar el mismo marco varías veces no otorgará puntos adicionales. Es necesario atravesar el marco completamente y alejarse de él por el otro lado para conseguir el punto. Es decir, introducir parte del drone en el marco y luego retroceder no sería considerado válido.

¿Cómo se evalúa el orden de los marcos?

Se otorgará un punto si la secuencia de marcos ha sido correcta.

El drone puede pasar por todos los marcos que quiera siempre que se encuentre una secuencia (no necesariamente consecutiva) de paso en el orden RGB (rojo, verde y azul).

Por ejemplo, la secuencia ‘GBGRBGB‘ será válida, mientras que la secuencia ‘GRBRBGR’ no lo será. Pasar por más marcos de los estrictamente necesarios no penalizará más allá del tiempo empleado para ello.

¿Cómo se evalúa la vuelta a la base?

En un intento, se otorgará un punto si el drone consigue volver a la base tras haber atravesado al menos uno de los marcos.

Se considerará que ha vuelto a la base cuando, después de apagar los motores, el drone consigue posarse sobre la plataforma de la que despegó.

Un caso posible es que el drone no se pose completamente sobre la base y se descuelgue por una pared lateral, quedando enganchado por una pata. Este caso se considerará correcto si el drone no llega a caer al suelo.

Por supuesto, si al final del vuelo, el aparato quedara enganchado en un marco, o cae al suelo no se conseguirá este punto.

¿Cómo se cuenta el tiempo consumido en un intento?

En cada intento, el monitor del juego (en MATLAB) contará el tiempo transcurrido desde que el drone activa sus motores hasta que los apaga (o se agota el tiempo máximo para el intento, establecido en 3 minutos). Además, el tiempo que el drone permanezca fuera del área de vuelo marcada por el tatami (incluida la altura máxima, establecida en 4 metros) contará como doble.

¿Quién evalúa un intento?

Durante la fase final, el personal organizador irá mirando las propuestas de los distintos equipos de manera individual. Será ese personal el encargado de juzgar si el drone ha pasado correctamente por los distintos marcos, o si lo ha hecho en orden. En caso de duda, el personal tiene la última palabra, con lo que se recomienda que se note claramente que el drone ha pasado por el marco (alejándose de el, ya que si no pasa entero o no se ve con suficiente claridad, el personal se reserva el derecho de anular ese marco).

El tiempo, sin embargo, lo contará el monitor de MATLAB, que estará midiendo desde que se arrancan los motores hasta que se apagan. Una vez más, el equipo puede decidir apagar los motores con anticipación para hacer la mejor marca posible; pero arriesgándose al que el drone termine cayendo al suelo, ¡perdiendo el punto correspondiente!

¿Cómo puedo conocer la clasificación durante la fase final?

Mientras estamos probando vuestras propuestas, a través de esta página podréis consultar en tiempo real la clasificación virtual de la competición. Una vez concluida esta fase de pruebas, esta clasificación será definitiva.

MATLAB y Gazebo no conectan al actualizar los archivos

En las últimas versiones del simulador, se ha prescindido del archivo gazebo_connection.m para enlazar MATLAB y Gazebo. Para conectarse ahora, en Simulink hay que ir a la barra de menús (la de arriba), Tools > Robot Operating System > Configure Network Address. Saldrá una ventana emergente, y en ROS Master, cambias de Default a Custom, y en el campo Hostname/IP Address pones la IP correspondiente (la de la VM). No hace falta tocar el puerto. Por último, para comprobar la conexión, ahora es tan sencillo como hacer clic en el botón “Test” que hay en la ventana emergente.