
Il y a un peu plus d'un mois, lorsque nous avons vu sur la chaîne Russian Hackers dans un télégramme l'annonce d'un hackathon, voire robotique, et se déroulant également dans un autre pays, mes amis et moi avons décidé - pourquoi pas? Nous avons participé à un grand nombre de hackathons en Russie, mais nous n'avons jamais vu comment cela se passe à l'étranger. Après avoir rapidement assemblé et réglé le problème des visas, nous sommes allés à Helsinki pour récupérer des robots de Lego Mindstorms.
Dans cet article, j'essaierai de dire dans l'ordre ce que nous devions faire, si cela valait la peine de participer et combien cela nous a coûté du temps et de l'argent. Commençons!
À propos des tâches
L'événement a été appelé Robot Uprising , afin d'y participer. il était nécessaire de s'inscrire au plus tard 2,5 semaines (au fait, il était écrit que les équipes seraient sélectionnées, mais apparemment un lien vers un github avec un petit nombre de projets était suffisant pour passer). La tâche principale était d'assembler un robot à partir d'un ensemble de robots Lego Mindstorms qui passeraient la piste:

Il comprenait plusieurs étapes principales:
- Labyrinthe avec une ligne blanche tracée sur le sol. Le labyrinthe a été divisé en diagonale et a d'abord été écarté de sorte qu'il était impossible de passer. Il a fallu appeler le robot sur la plateforme de pression jaune, attendre quelques secondes jusqu'à ce que le labyrinthe recule et avancer.
- La deuxième étape était une plate-forme avec des épingles métalliques (que les organisateurs appelaient poétiquement des arbres de fer). Entre eux, il fallait conduire sans se coincer et sans les frapper.
- À la troisième étape, il fallait conduire jusqu'au bout de la plate-forme, appuyer sur le bouton rouge, prendre le cube tombé à la suite d'une pression et revenir au début avec lui, le mettre sur la plate-forme - alors la porte s'ouvrira où vous pourrez traverser.
- Dans la troisième étape, il y avait trois disques rotatifs situés l'un après l'autre et tournant dans des directions différentes. Sur ces disques, de petits obstacles étaient également localisés. Sur cette partie de l'itinéraire, il fallait juste conduire
- L'avant-dernière étape, à laquelle il a fallu en appuyant sur le bouton pour monter la rampe, l'appeler, puis redescendre jusqu'à la dernière partie du chemin. Cette étape avait différents degrés de difficulté, qui pouvaient être sélectionnés en appuyant sur des boutons multicolores - plus la difficulté était élevée, plus il y avait de points accordés pour passer l'étape (par exemple, l'une des options était que la rampe montait et descendait constamment).
- L'étape finale. Après avoir terminé l'itinéraire, le robot reste pour prendre une des six places pour les gagnants. Mais, comme il y avait bien plus de six personnes qui ont passé la piste, après que toutes les places aient été prises, les personnes suivantes qui ont passé la piste ont dû «défier» quelqu'un déjà debout sur le podium et le pousser hors du ring.

Comme mentionné précédemment, un système de points a fonctionné dans la compétition. Des points à la finale ont été reçus pour le style de code, le passage clair de la piste, la complexité de l'avant-dernière étape, le degré d'autonomie. Par exemple, pour son absence totale (contrôle depuis un ordinateur / télécommande / joystick), ils ont fixé 0 point, pour un passage difficile de la piste - 100 points, et un maximum de 500 points pourrait être obtenu en utilisant l'apprentissage automatique.
Des points pouvaient également être gagnés avant même la finale - pour cela, vous deviez effectuer des quêtes supplémentaires. Pour accéder aux tâches, il fallait trouver quelques lignes chiffrées par le chiffre de César sur le site, le déchiffrer, suivre le lien, trouver un lien vers une autre page, et un assez grand nombre de quêtes de complexité différente y étaient déjà publiées. Par exemple, il y avait de telles tâches: il y a deux images avec du bruit, il fallait deviner qu'elles devaient être superposées et soustraites pour obtenir un mot qui devait être fourni comme réponse. Soit dit en passant, les points reçus avant la finale pourraient également être dépensés, mais plus à ce sujet ci-dessous.
Et aussi, de l'intéressant, les organisateurs ont pensé au fond et au cadre. Selon la légende, le hackathon aurait eu lieu sur le territoire d'une grande usine automatisée, qui produit des robots. Et, de façon inattendue, quelque chose s'est mal passé :) La salle dans laquelle le hackathon a eu lieu, les vêtements des organisateurs - tout était décoré dans le style de cette histoire, et ça avait l'air très cool. Et les tâches qui devaient être accomplies ont également été incluses dans ce paramètre.
À propos de l'équipement

Les organisateurs ont fourni le kit Lego Mindstorm à l'équipe, composé d'un contrôleur EV3, d'un capteur de couleur, d'un sonar, de trois moteurs, d'un gyroscope et de fils, qui étaient suffisants pour le connecter. Des bagatelles, telles que des roues, des pistes, des blocs lego, étaient également incluses. L'ensemble s'est avéré assez maigre, n'est-ce pas?
Afin de résoudre correctement le problème, un tel ensemble ne suffit pas, les participants avaient donc deux options - soit apporter du fer supplémentaire avec eux (comme il s'est avéré plus tard, vous pouvez utiliser n'importe quel fer, pas seulement lego - Raspberry Pi, Arduino, différentes caméras C’est ce que la plupart des participants ont fait, en apportant les modules nécessaires de chez eux (enfin, mais nous n’avions rien avec nous.) Mais pour ceux qui n’ont pas été aussi surveillés que nous, il y avait une sorte de magasin où vous pouviez échanger points gagnés pour les modules (à droite Oui, il a obtenu 15 heures avant la fin de Hackaton qui était un peu en retard).
À propos de notre robot

Probablement, il faut dire que le contrôleur EV3, comme l'ensemble, n'était même détenu par aucune des équipes avant le hackathon. Par conséquent, dans un compartiment avec le manque de pièces nécessaires et de fer supplémentaire, le résultat que nous avons obtenu est tout à fait attendu.
Avant le voyage, en regardant les informations que les organisateurs nous ont envoyées et un peu de recherche sur Google, nous avons constaté que le microcontrôleur ARM3 (ARM9) est dans EV3, et que Debian peut y être placé. Nous nous réjouissons du fait que nous pouvons écrire sur les pros et ne pas connecter les blocs, nous étions impatients de travailler avec le nouveau matériel.
Mais en réalité, tout s'est avéré ne pas être aussi rose que prévu. Nous avons réalisé que tout ne serait pas exactement comme prévu, dès que nous avons lancé EV3 et essayé de le mettre à jour. Parce que ça pendait. La même chose s'est produite lors de l'installation de gcc. Après nous être tourmentés avec cela pendant assez longtemps et être au courant des mentors et des membres d'autres équipes, nous avons découvert plusieurs choses importantes: la seule option pour travailler avec des avantages est la compilation croisée, presque toutes les équipes écrivent en python (quelques personnes ont essayé de faire quelque chose en JavaScript et C #) , et aussi qu'à côté de nous il y avait plusieurs participants russophones.

Après avoir pris la décision difficile d'écrire en python, nous nous sommes finalement mis au travail. En fait, même après cela, nous avons rencontré un grand nombre de petits problèmes, mais je ne surchargerai pas cet article avec eux.
En conséquence, à la fin du hackathon, nous avons réussi à faire correctement et à déboguer uniquement la télécommande. Mais malgré cela, nous avons pris la 11e place sur 29, ce qui, à mon avis, est très bon pour la première fois.
Comment ils ont organisé le voyage

Maintenant, je vais vous dire un peu ce qui devait être fait et combien d'argent nous avions besoin pour le voyage. Tout d'abord, nous avons écrit aux organisateurs et posé des questions sur tout ce qui était au moins un peu incompréhensible pour nous. Après avoir passé la sélection, à notre demande, les organisateurs nous ont envoyé des invitations pour un visa, bien qu'ils les aient envoyées alors que nous avions soumis des documents pendant près d'une semaine. Mais, en principe, les visas pour la Finlande sont l'un des plus faciles, nous n'avions donc pas particulièrement peur qu'ils ne nous soient pas donnés. Au fait, nous avons eu de la chance, et ils ont été délivrés par le centre des visas en 5-6 jours. Le logement à Helsinki coûte cher, donc nous, en tant qu'étudiants pauvres, avons décidé de ne pas louer une maison pour la durée du hackathon, mais d'y écrire tout le temps ou d'y dormir (au fait, il y avait des problèmes, pour une centaine de personnes il n'y avait que deux hamacs et une petite balançoire, ce qui n'était clairement pas suffisant) ) Au fait, le hackathon avait trois repas par jour :)
Nous avons eu un avion de Moscou, mais nous avons eu de la chance, et Pobeda avait une offre spéciale, donc en plus d'acheter des bagages et de payer pour la sélection des sièges, les billets étaient assez bon marché.
Et quelques mots sur la barrière de la langue. Dans notre équipe de trois personnes, une seule personne parlait bien l'anglais et deux pouvaient faire quelque chose au niveau débutant. Et c'était suffisant. En principe, si votre niveau d'anglais est au niveau de la 11e année de l'école, vous n'avez pas à avoir peur - dans les cas extrêmes, vous pouvez acheter une carte SIM locale pour 6 euros pour cinq jours et utiliser le traducteur Google. Eh bien, dans les cas extrêmes, lors du hackathon, nous avons trouvé plusieurs Finlandais russophones, y compris parmi les organisateurs.
Estimation approximative pour trois jours de voyage:
- Visas à travers le centre des visas ~ 5000 roubles (selon l'euro).
- Billets d'avion 3 000 roubles aller-retour, pour la sélection des bagages et des sièges, 1 000 roubles supplémentaires.
- Carte SIM, frais de transport à Helsinki ~ 2000 roubles.
- Une nuit à l'hôtel, car l'avion était le matin ~ 1500 roubles
Total: 12 500 par personne.
Résumé

En conclusion, je voudrais dire que ce fut probablement le meilleur hackathon de l'organisation auquel j'ai participé (et il y en avait beaucoup). Ma participation m'a procuré à mes coéquipiers une énorme expérience d'être dans l'environnement informatique d'un autre pays, et malgré un grand nombre de problèmes techniques, nous avons reçu beaucoup d'impressions positives. Soit dit en passant, Robot Uprising a lieu chaque année, j'espère donc y rencontrer l'un des lecteurs de cet article la prochaine fois.
La publication utilise des photographies du groupe de hackathon .