L'histoire de la façon dont ils ont recherché sur le hackathon AR SDK, mais ils ont collecté leurs propres

Dans le royaume de Far Far Away ... J'ai commencé mon histoire sur le hackathon à Wrike parce que le Hackathon est comme un conte de fées: les passionnés se réunissent pour donner vie à leurs idées. Une idée est en train de sortir, comme une fabuleuse flèche, puis elle peut tomber sur la cour du boyard, ou elle peut disparaître dans le marais de la vie quotidienne. Et, comme dans un conte de fées, c'est toujours excitant. Ce n'est pas facile de constituer une équipe en très peu de temps, de faire un produit à partir d'une idée, et même de le montrer de telle manière que des gens honnêtes vous surprendront.

Cyril

Mais sérieusement, je veux partager l'expérience de participer au hackathon, où nous avons développé notre réalité augmentée (RA). Je vais vous expliquer comment nous avons essayé de trouver un SDK AR prêt à l'emploi pour notre tâche, mais sans succès. En conséquence, ils ont décidé d'écrire eux-mêmes AR et il s'est avéré.

Le dicton


J'adore les hackathons: j'ai participé à plusieurs, je devais le faire moi-même, et si possible j'y participerai.

À la recherche du bonheur

Les hackathons sont souvent organisés par des organisations spécifiques, et cela fonctionne pour la marque RH de l'entreprise. Les objectifs peuvent être différents: une histoire sur une entreprise ou un produit, l'embauche d'un degré d'agressivité variable, l'organisation d'une communauté thématique, la recherche d'idées nouvelles ( malgré les armées de vos propres experts en produits, il peut être utile d'obtenir un tas d'idées de rêveurs ayant une vue claire du sujet ), etc. d.

Pour les participants, c'est l'occasion de se familiariser avec l'entreprise, car souvent un hackathon en est le reflet, et l'on peut en tirer des conclusions sur la cuisine interne. Pour comprendre les processus dans l'entreprise, vous pouvez voir comment elle organise le hackathon: quelles sont les restrictions pour les projets participant au hackathon ( étendue des tâches, domaine, technologie, outils, etc. ); niveau de l'événement; critères et transparence de la partie concurrentielle; arbitrage - composition et qualité; quelles sont les règles et les modalités de constitution des équipes. En général, les entreprises sont divisées entre celles qui mènent des hackathons ( internes ou publics ) et celles qui ne le font pas. Je préfère ceux qui dépensent, car ce sont des entreprises plus ouvertes.

Je vais moi-même aux hackathons non pour la victoire, mais pour la participation. Je me demande:

  • Essayez de nouvelles technologies. Lors d'un hackathon «alimentaire», nous avons pris Flutter et écrit une application pour iOS et Android. Bien qu'aucun d'entre nous n'ait essayé Flutter auparavant, nous savions comment Dart .
  • Pour faire connaissance et travailler avec de nouvelles personnes , donc après l'un des hackathons «ville», j'ai appelé un complice du projet hackathon pour travailler dans mon équipe pour le poste principal, ce que je n'ai jamais regretté. Le hackathon est un excellent moyen de tester un camarade en action.
  • Pour faire quelque chose dont j'ai vraiment besoin moi-même. Sur le hackathon interne, ils ont scié l'application, qui a ensuite été utilisée dans le travail.
  • Obtenez juste des émotions positives de la création. J'aime vraiment l'ambiance du hackathon!

Par conséquent, je suis heureux de participer à des hackathons Wrike ( cette année était le troisième hackathon interne ), où nous proposons et améliorons encore Wrike: certains des projets de hackathon précédents vivent déjà dans notre produit, et certains sont dans l'arriéré des équipes. L'échelle est également inspirante, malgré le fait que le hackathon soit interne, environ 30 équipes sont recrutées ( plus de 100 personnes ) - toutes avec de nouvelles idées cool.

Lors du hackathon 2018, j'ai décidé d'essayer de travailler avec AR . Dans MVP, je voulais que les tâches de saisie ( nom, statut, artistes, etc. ) s'affichent sur l'écran d'un téléphone mobile lorsque vous survolez un code graphique avec l'identificateur de tâche crypté, et également ajouter la possibilité de modifier le statut et de vous attribuer / supprimer des tâches. Il y a une idée, il y a un hackathon, l'équipe ne s'est pas impliquée non plus. Le jour fixé, tout s'est retourné.

J'ai demandé à Ash


Je ne me prépare pas particulièrement pour les hackathons en termes de configuration de l'environnement ( recherche de SDK et de frameworks; installation de logiciels; configuration, etc. ), écriture de code à l'avance, etc., mais uniquement élaboration d'idées, de fonctionnalités, de réflexion sur ce qu'il faut faire dans quel ordre etc. Par conséquent, l'équipe a consulté et décidé que nous allions écrire en Java (ils écrivent en natif dessus pour Android ), et il y avait une hypothèse qu'il y avait probablement beaucoup de bibliothèques AR prêtes à l'emploi. Notre plan: prenez un SDK pratique, ajoutez-y l' API Wrike , puis concentrez-vous sur l'écriture de la logique de notre application. Ainsi, notre première tâche a été de trouver un SDK Java AR pratique, qui vous permet de:

  • Dessinez quelque chose sur une surface virtuelle donnée.
  • Intégrer / contient déjà un scanner d'éléments graphiques dynamiques ( code-barres, QR, etc. ).
  • Travailler avec un seuil bas ( on est au hackathon, il faut vite ): il y a une démo, il y a de la documentation, il y a une version gratuite / d'essai.

Cela ressemble à une tâche assez simple. Et nous avons commencé à trier les options basées sur des articles comme « Top SDK de réalité augmentée en 2018 »

Soleil, Lune, Vent

ARCore de Google


Tout d'abord, nous avons examiné Google. Ils ont ouvert le " Quick Start ", ont tout fait selon les instructions, l'ont lancé et, voilà, tout fonctionne: des androïdes apparaissent sur ma table, qui peuvent également être déplacés. Le sentiment que nous avons trouvé le «fondement» de notre application. Mais la déception a suivi, la reconnaissance d'image ne fonctionne pas comme nous en avons besoin: il ne peut y avoir qu'une seule image, elle doit être clairement visible et elle doit provenir de la base de données d'images précédemment connues ( et nous devons avoir notre propre marqueur unique pour chaque tâche ). Et le plus triste est l'incapacité à contrôler la mise au point, c'est pourquoi capturer l'image dont nous avons besoin pour la reconnaissance devient une tâche difficile pour l'utilisateur. Certes, le problème a maintenant été résolu avec concentration, mais nous avons dû continuer la recherche. En général, Google s'est avéré être bon, mais pas pour notre tâche. Et également en raison des spécificités d'OpenGL sur OSX, nous n'avons pas pu faire fonctionner la démo dans l'émulateur et nous avons tout fait sur un téléphone en direct.

Vuforia


Nous avons lu la documentation, regardé les vidéos , ça a l'air impressionnant. Il existe de nombreuses fonctionnalités, par exemple, les cibles d'image . Nous avons décidé d'essayer: enregistré, téléchargé, collecté, lancé. L'application de démonstration a démarré, mais elle n'a fonctionné ni sur l'émulateur ni sur android-e en direct. Tenter de tester une fonctionnalité a bloqué l'application entière. Il a été décidé de ne pas perdre de temps à rechercher le problème et à le résoudre, et à passer au SDK suivant.

Wikitude


Nous avons téléchargé le SDK, suivi le didacticiel , lancé la démo. Il y a beaucoup de toutes sortes de possibilités, la démo est immédiatement impressionnante, un tas de mini exemples, nous en avons assez joué ( par exemple, il y a la reconnaissance faciale ), et, voilà, la démo a déjà la reconnaissance QR. Mais le problème est que nous obtenons ce qui est chiffré dans le code, mais nous ne savons pas où il se trouve. Ils ont commencé à comprendre comment le scanner QR est organisé. Il s'est avéré qu'il a été créé comme un module complémentaire sur ZBar sous la forme d'un plug-in positif pour SDK. Au début, j'ai eu l'idée folle de découvrir gcc et de terminer le plugin pour qu'il donne également les coordonnées, mais nous nous sommes arrêtés à temps.

Et ils se sont battus 3 jours et 3 nuits


Réalisant qu'un bon quart du temps alloué à la journée est en retard, et nous recherchons toujours notre SDK (il y avait des exemples d'autres solutions, non seulement décrites ci-dessus, mais aussi un fiasco là-bas ), nous avons décidé de ne plus chercher la «balle d'argent», mais de tout prendre pour vos mains. Un nouveau plan a mûri: en tant que marqueur de tâche, nous prenons un code QR, aussi simple et commun; pour leur reconnaissance nous prenons le ZXing , qui peut reconnaître plusieurs codes en même temps, et en plus de la valeur, la bibliothèque donne également les coordonnées de 3 points de «recherche» du QR code. Et puis, en plus du lecteur de code, nous mettrons en œuvre notre AR. Retroussez nos manches et partez, nous avons 3 points, ce qui signifie qu'avec l'aide de transformations affines nous pouvons obtenir tout ce dont nous avons besoin.

Grenouille princesse

Ils n'ont pas commencé à chercher une bibliothèque de mathématiques, car notre tâche n'est pas difficile. La première chose que nous avons faite a été de créer notre propre classe pour les coordonnées que nous devons recalculer. L'algorithme final pour travailler avec le code QR s'est avéré plutôt primitif:

  • L'image de la caméra est transférée vers ZXing, nous obtenons un tableau avec les coordonnées des points et les valeurs du QR code.
  • À partir des 3 coordonnées, nous calculons le 4e coin du carré, augmentons le carré une fois et demie pour chevaucher le code QR d'origine et obtenons la base de la carte.
  • Nous faisons une demande dans l'API Wrike pour collecter des données sur la tâche.
  • On dessine une carte, grâce aux transformations affines, on enregistre toutes les distorsions ( angle de vue, rotation, échelle ).

Nous avons lavé l'algorithme, cela fonctionne, nous testons, nous gérons les fuites de mémoire, nous ajoutons des effets visuels, nous apprécions le hackathon.

Et j'étais là, j'ai bu de la bière au miel


Dans les hackathons, outre votre produit lui-même, la façon dont vous le présentez est très importante. Tout le monde comprend que vous avez des délais très serrés et que vous n'attendez pas une solution techniquement belle de votre part, vous devez donc montrer la beauté de votre idée. J'aime toujours l'approche narrative, où le public comprend pour qui le produit est fabriqué, dans quelles conditions il est appliqué et quel problème il résout.

Hackathon Wrike

Par conséquent, dans notre présentation, en plus de démontrer la fonctionnalité obtenue, nous avons fait appel à la puissance de l'imagination et décrit des situations dans lesquelles une telle réalité augmentée ( les lunettes AR deviendront bientôt monnaie courante ) peuvent améliorer la vie de ceux qui travaillent en dehors de l'ordinateur, mais dont le travail est lié à la grève. Par exemple, pour l'interaction entre le concepteur-architecte qui est engagé dans la réparation de la maison et l'équipe qui met directement en œuvre le projet dans la maison elle-même.

Je pense que nous avons honorablement démontré notre MVP et attrapé nos rayons d'amour. L'été est terminé et la saison des pique-niques et des vacances tire à sa fin, et nous envisageons de consacrer des soirées d'automne au développement de notre Wrike AR.

Merci pour l'illustration, Sai Kin !

Source: https://habr.com/ru/post/fr421725/


All Articles