
Hace poco más de un mes, cuando vimos en el canal de Hackers rusos en un telegrama el anuncio de un hackathon, e incluso uno robótico, y que también tenía lugar en otro país, mis amigos y yo decidimos: ¿por qué no? Participamos en una gran cantidad de hackatones en Rusia, pero nunca vimos cómo está allí, en el extranjero. Habiendo reunido y resuelto rápidamente el problema de la visa, fuimos a Helsinki a recoger robots de Lego Mindstorms.
En este artículo trataré de decir en orden lo que tuvimos que hacer, si valió la pena participar y cuánto nos costó tiempo y dinero. ¡Empecemos!
Sobre tareas
El evento se llamó Robot Uprising , para participar en él. fue necesario registrarse a más tardar 2.5 semanas (por cierto, se escribió que los equipos serían seleccionados, pero aparentemente un enlace a un github con un pequeño número de proyectos fue suficiente para pasar). La tarea principal era ensamblar un robot a partir de un conjunto de robots Lego Mindstorms que pasarían la pista:

Consistió en varias etapas principales:
- Laberinto con una línea blanca dibujada en el suelo. El laberinto se dividió en diagonal y al principio se separó para que fuera imposible pasar. Era necesario llamar al robot en la plataforma de presión amarilla, esperar unos segundos hasta que el laberinto retroceda y seguir adelante.
- La segunda etapa fue una plataforma con pasadores de metal (que los organizadores llamaron poéticamente árboles de hierro). Entre ellos era necesario conducir sin atascarse y no golpearlos.
- En la tercera etapa, fue necesario conducir hasta el final de la plataforma, hacer clic en el botón rojo, tomar el cubo que se cayó como resultado de presionarlo, y volver al principio con él, ponerlo en la plataforma; luego, la puerta se abrirá por donde puede conducir.
- En la tercera etapa, había tres discos giratorios ubicados uno tras otro y girando en diferentes direcciones. En estos discos, también se ubicaron pequeños obstáculos. En esta parte de la ruta solo tenías que conducir
- La penúltima etapa, en la que era necesario presionar el botón para subir la rampa, llamar y luego bajar a la parte final del camino. Esta etapa tenía diferentes grados de dificultad, que se podían seleccionar presionando botones multicolores: cuanto mayor era la dificultad, más puntos se otorgaban al pasar la etapa (por ejemplo, una de las opciones era que la rampa subía y bajaba constantemente).
- La etapa final. Después de completar la ruta, el robot queda para tomar uno de los seis lugares para los ganadores. Pero, dado que había mucho más de seis personas que pasaron la pista, después de tomar todos los lugares, las siguientes personas que pasaron la pista tuvieron que "desafiar" a alguien que ya estaba en el podio y sacarlo del ring.

Como se mencionó anteriormente, un sistema de puntos funcionó en la competencia. Se recibieron puntos en la final por el estilo del código, el paso claro de la pista, la complejidad de la penúltima etapa, el grado de autonomía. Por ejemplo, por su ausencia total (control desde una computadora / control remoto / joystick), establecen 0 puntos, para el paso omitido de la pista: 100 puntos, y se puede obtener un máximo de 500 puntos utilizando el aprendizaje automático.
Los puntos también se podían ganar incluso antes de la final, para esto tenía que pasar por misiones adicionales. Para obtener acceso a las tareas, era necesario encontrar un par de líneas encriptadas por el cifrado de Caesar en el sitio, descifrarlo, seguir el enlace, encontrar un enlace a otra página, y ya se publicaron allí un número bastante grande de misiones de diferente complejidad. Por ejemplo, había tales tareas: hay dos imágenes con ruido, una tenía que adivinar que tenían que superponerse y restarse para obtener una palabra que debía proporcionarse como respuesta. Por cierto, los puntos recibidos antes de la final también podrían gastarse, pero más sobre eso a continuación.
Y también, por lo interesante, los organizadores pensaron en los antecedentes y el entorno. Según la leyenda, el hackathon tuvo lugar en el territorio de una gran planta automatizada, que produce robots. Y, inesperadamente, algo salió mal :) La habitación en la que se llevó a cabo el hackathon, la ropa de los organizadores, todo estaba decorado al estilo de esta historia, y se veía muy bien. Y las tareas que debían completarse también se incluyeron en esta configuración.
Sobre el equipo

Los organizadores proporcionaron el kit Lego Mindstorm para el equipo, que consta de un controlador EV3, un sensor de color, un sonar, tres motores, un giroscopio y cables, que fueron suficientes para conectarlo. También se incluyeron bagatelas, como ruedas, pistas, bloques de lego. El conjunto resultó ser bastante pobre, ¿no?
Para resolver adecuadamente el problema, este conjunto no es suficiente, por lo que los participantes tenían dos opciones: llevar hierro adicional con ellos (como resultó más tarde, podría usar cualquier hierro, no solo lego), raspberry pi, arduino, diferentes cámaras Eso fue lo que hicieron la mayoría de los participantes, traer los módulos necesarios desde casa (bueno, pero no teníamos nada con nosotros). Pero para aquellos que actuaron tan descuidados como nosotros, había una especie de tienda donde se podía intercambiar. puntos ganados por módulos (derecha Sí, él ganó 15 horas antes del final del Hackaton que era un poco tarde).
Sobre nuestro robot

Probablemente, debe decirse que el controlador EV3, como todo el conjunto, ni siquiera estaba en manos de ninguno de los equipos antes del hackathon. Por lo tanto, en un compartimiento con la falta de las piezas necesarias y hierro adicional, el resultado que obtuvimos es bastante esperado.
Antes del viaje, mirando la información que nos enviaron los organizadores y buscando un poco en Google, descubrimos que el microcontrolador ARM3 (ARM9) está en EV3, y que Debian se puede colocar allí. Regocijados por el hecho de que podemos escribir sobre los profesionales y no conectar los bloques, estábamos ansiosos por trabajar con el nuevo hardware.
Pero en realidad, todo resultó no ser tan optimista como esperábamos. Nos dimos cuenta de que todo no será exactamente como esperábamos, tan pronto como lanzamos EV3 e intentamos actualizarlo. Porque simplemente colgó. Lo mismo sucedió al intentar instalar gcc. Después de habernos atormentado con esto durante bastante tiempo y llegar al fondo de mentores y miembros de otros equipos, descubrimos varias cosas importantes: la única opción para trabajar con ventajas es la compilación cruzada, casi todos los equipos escriben en Python (un par de personas intentaron hacer algo en JavaScript y C #) , y también que además de nosotros había varios participantes de habla rusa.

Después de tomar la difícil decisión de escribir en Python, finalmente nos pusimos manos a la obra. De hecho, incluso después de eso, encontramos una gran cantidad de pequeños problemas, pero no sobrecargaré este artículo con ellos.
Como resultado, al final del hackathon, logramos hacer y depurar correctamente solo el control remoto. Pero, a pesar de esto, obtuvimos el puesto 11 de 29, lo que, en mi opinión, es muy bueno por primera vez.
Sobre cómo organizaron el viaje

Ahora les contaré un poco sobre lo que había que hacer y cuánto dinero necesitábamos para el viaje. En primer lugar, escribimos a los organizadores y les preguntamos sobre todo lo que al menos nos resultaba un tanto incomprensible. Después de pasar la selección, a petición nuestra, los organizadores nos enviaron invitaciones para una visa, aunque las enviaron cuando presentamos los documentos durante casi una semana. Pero, en principio, las visas para Finlandia son una de las más fáciles, por lo que no temíamos especialmente que no nos las dieran. Por cierto, tuvimos suerte, y se emitieron a través del centro de visas en 5-6 días. La vivienda en Helsinki es costosa, por lo que, como estudiantes pobres, decidimos no alquilar una casa durante el hackatón, sino escribir el código todo el tiempo o dormir allí (por cierto, hubo problemas, para cien personas solo había dos hamacas y un pequeño columpio, lo que claramente no era suficiente ) Por cierto, el hackathon tenía tres comidas al día :)
Conseguimos un avión desde Moscú, pero tuvimos suerte, y Pobeda tenía una oferta especial, así que junto con la compra de equipaje y el pago de la selección de asientos, los boletos fueron lo suficientemente baratos.
Y algunas palabras sobre la barrera del idioma. En nuestro equipo de tres personas, solo una persona hablaba buen inglés y dos podían hacer algo a nivel principiante. Y eso fue suficiente. En principio, si su nivel de inglés está en el grado 11 de la escuela, no debe tener miedo: en casos extremos, puede comprar una tarjeta SIM local por 6 euros durante cinco días y usar el traductor de Google. Bueno, en casos extremos, en el hackathon encontramos varios finlandeses de habla rusa, incluso entre los organizadores.
Estimación aproximada para tres días de viaje:
- Visas a través del centro de visas ~ 5000 rublos (dependiendo del euro).
- Billetes de avión 3.000 rublos ida y vuelta, para la selección de equipaje y asiento otros 1.000 rublos.
- Tarjeta SIM, costos de transporte en Helsinki ~ 2000 rublos.
- Una noche en el hotel, ya que el avión estaba en la mañana ~ 1500 rublos
Total: 12,500 por persona.
Resumen

En conclusión, me gustaría decir que este fue probablemente el mejor hackathon de la organización, en el que participé (y había muchos de ellos). La participación en él nos trajo a mí y a mis compañeros de equipo una enorme experiencia de estar en el entorno de TI de otro país, y a pesar de una gran cantidad de problemas técnicos, recibimos muchas impresiones positivas. Por cierto, Robot Uprising se celebra anualmente, así que espero encontrarme con uno de los lectores de este artículo la próxima vez.
La publicación utiliza fotografías del grupo hackathon .