Geschichte, wie das AR SDK beim Hackathon durchsucht wurde

Published on September 02, 2018

Geschichte, wie das AR SDK beim Hackathon durchsucht wurde

    Im Königreich der dreißiger Jahre im dreißigsten Staat ... begann ich meine Geschichte über den Hackathon in Wrike, weil Hackathon wie ein Märchen ist: Enthusiasten versammeln sich, um ihren Ideen Leben einzuhauchen. Eine Idee wird freigesetzt, wie ein Märchenpfeil, und dann kann sie auf den Hof des Boyars fallen oder vielleicht im Sumpf des Alltags verschwinden. Und wie im Märchen ist es immer spannend. Es ist nicht nur eine sehr kurze Zeit, ein Team zusammenzustellen und aus einer Idee ein Produkt zu machen und es auch so zu zeigen, dass ehrliche Menschen überraschen.

    Cyril

    Aber im Ernst, ich möchte die Erfahrungen mit der Teilnahme am Hackathon teilen, wo wir unsere Augmented Reality (AR) entwickelt haben. Ich erzähle Ihnen, wie wir versucht haben, ein fertiges AR SDK für unsere Aufgabe zu finden, aber wir konnten es nicht. Am Ende haben wir uns entschlossen, AR selbst zu schreiben und haben es geschafft.

    Ein tipp


    Ich liebe Hackathons sehr: Ich habe an mehreren teilgenommen, ich musste es selbst machen, und wenn ich könnte, würde ich mitmachen.

    Auf der Suche nach Glück

    Hakatons werden häufig von bestimmten Organisationen durchgeführt, und dies funktioniert für die HR-Marke des Unternehmens. Die Ziele können unterschiedlich sein: eine Geschichte über ein Unternehmen oder ein Produkt, die Einstellung von Aggressivität in unterschiedlichem Umfang, die Organisation einer thematischen Gemeinschaft, die Suche nach neuen Ideen ( trotz der Armeen ihrer eigenen Produktologen kann es nützlich sein, sich eine Reihe von Ideen von Träumern mit einem direkten Blick auf das Themengebiet zu holen ) und so weiter. d.

    Für die Teilnehmer ist es eine Gelegenheit, sich mit dem Unternehmen vertraut zu machen, da oft ein Hackathon reflektiert wird und man Rückschlüsse auf die interne Küche ziehen kann. Um die Prozesse in einem Unternehmen zu verstehen, können Sie sehen, wie ein Hackathon organisiert wird: Welche Einschränkungen bestehen für Projekte, die an einem Hackathon teilnehmen ( Aufgabenbereich, Themenbereich, Technologie, Werkzeuge usw. ); das Niveau der Veranstaltung; Kriterien und Transparenz des Wettbewerbsteils; Schiedsrichter - Zusammensetzung und Qualität; Welche Regeln und Methoden gibt es, um Teams zu bilden. Im Allgemeinen unterscheiden sich Unternehmen in Unternehmen, die Hackathons ( intern oder öffentlich ) durchführen, und solche, die dies nicht tun. Ich ziehe die vor, die das durchführen Dies sind mehr offene Unternehmen.

    Ich selbst gehe zu Hackathons nicht um des Sieges willen, sondern um der Teilnahme willen. Es interessiert mich:

    • Probieren Sie neue Technologien aus. Bei einem „Food“ -Hackathon nahmen wir Flutter mit und schrieben die Anwendung unter ios und android. Obwohl keiner von uns vorher Flutter versucht hat, ist die Wahrheit, dasswir Dart konnten .
    • Um neue Leute kennenzulernen und mit ihnen zusammenzuarbeiten , rief ich einen Komplizen des Hakaton-Projekts nach einem der "urbanen" Hackathons dazu auf, in meinem Team für den Hauptjob zu arbeiten, was ich nie bereute. Hackathon ist eine großartige Möglichkeit, einen Kameraden in Aktion zu testen.
    • Etwas zu tun, das ich selbst brauche. Auf dem internen Hackathon notierten sie die Anwendung, die später in der Arbeit verwendet wurde.
    • Holen Sie sich einfach positive Emotionen von der Schöpfung. Ich mag die Hackathon-Atmosphäre wirklich!

    Daher bin ich froh, an den Wrike-Hackathons teilzunehmen ( dieses Jahr war bereits der dritte interne Hackathon ), bei dem wir Wrike erfinden und noch besser machen: Einige der vorherigen Hackathon-Projekte leben bereits in unserem Produkt und einige sind in Teamstaus. Inspirieren und skalieren Sie, obwohl der Hackathon intern ist, es werden etwa 30 Teams ( mehr als 100 Mitarbeiter ) eingestellt - alle mit frischen, coolen Ideen.

    Beim Hackathon 2018 entschied ich mich, mit AR zu arbeiten . In MVP wollte ich Wrike-Aufgaben anzeigen ( Name, Status, Künstler usw.).) auf dem Bildschirm des Mobiltelefons, wenn Sie einen Grafikcode mit der darin verschlüsselten Aufgaben-ID anfahren und die Möglichkeit hinzufügen, den Status zu ändern und die Aufgabe von Ihnen selbst zuzuweisen / zu entfernen. Es gibt eine Idee, es gibt einen Hackathon, der Fall folgte dem Team auch nicht. Am verabredeten Tag begann sich alles zu drehen.

    Ich habe Asche gefragt


    Ich bereite mich nicht besonders auf Hackathons vor , wenn es darum geht , die Umgebung einzurichten ( nach SDK und Frameworks suchen, Software installieren, konfigurieren usw. ), Code im Voraus schreiben usw., sondern nur an Ideen, Funktionen arbeiten und überlegen, was zu tun ist. usw. Daher haben wir mit dem Team beschlossen, dass wir in Java schreiben werden ( es wird nativ auf Android geschrieben ), und es wurde die Hypothese aufgestellt, dass es vollständige AR-Bibliotheken geben muss. Unser Plan ist es, ein praktisches SDK zu verwenden, die Wrike-API daran anzubinden und uns darauf zu konzentrieren, die Logik unserer Anwendung zu schreiben. Daher bestand unsere erste Aufgabe darin, ein praktisches Java AR SDK zu finden, mit dem Sie:

    • Zeichnen Sie etwas auf eine bestimmte virtuelle Oberfläche.
    • Integrate / enthält bereits einen Scanner mit dynamischen Grafikelementen ( Barcode, QR usw. ).
    • Arbeiten Sie mit einer niedrigen Eintrittsschwelle ( wir befinden uns auf dem Hackathon, wir müssen schnell ): Es gibt eine Demo, es gibt Dokumentation, es gibt eine kostenlose / Testversion.

    Sieht aus wie eine ziemlich einfache Aufgabe. Wir haben angefangen, Optionen anhand von Artikeln wie " Top Augmented Reality SDK im Jahr 2018 " zu sortieren.

    Sonne, Mond, Wind

    Googles ARCore


    Zuerst haben wir unsere Ansichten bei Google geändert. Sie öffneten den " Quick Start ", machten alles gemäß den Anweisungen, starteten und, oh, ein Wunder, alles funktioniert: Ich habe Androids auf meinem Schreibtisch, die auch verschoben werden können. Das Gefühl, dass wir die "Grundlage" für unsere Anwendung gefunden haben. Es folgte eine weitere Enttäuschung: Die Bilderkennung funktioniert nicht so, wie wir es brauchen: Es kann nur ein Bild geben, es sollte deutlich sichtbar sein, und es sollte aus der Datenbank der zuvor bekannten Bilder stammen ( und wir sollten für jede Aufgabe einen eigenen Marker haben ). Und das Traurigste ist die Unfähigkeit, den Fokus zu steuern, was es für den Benutzer schwierig macht, das Bild zu erkennen, das wir für die Erkennung benötigen. Die Wahrheit ist jetzt mit dem Problem gelöstund wir mussten die Suche fortsetzen. Im Allgemeinen war Google gut, aber nicht für unsere Aufgabe. Aufgrund der Besonderheiten der Arbeit von OpenGL unter OSX konnten wir die Demo im Emulator nicht funktionieren lassen und alles auf einem Live-Telefon erledigen.

    Vuforia


    Lesen Sie die Dokumentation, schauen Sie sich die Videos an , es sieht beeindruckend aus. Viele Funktionen, z. B. Bildziele . Wir haben uns für den Versuch entschieden: registriert, heruntergeladen, gesammelt, gestartet. Die Demo-Anwendung wurde gestartet, aber weder auf dem Emulator noch auf Live-Android-e funktionierte dies nicht. Beim Versuch, eine Funktion zu überprüfen, stürzte die gesamte Anwendung ab. Es wurde beschlossen, keine Zeit zu verschwenden, um nach einem Problem zu suchen, es zu beheben und zum nächsten SDK überzugehen.

    Wikitude


    Wir haben das SDK heruntergeladen, sind zum Tutorial gegangen und haben die Demo gestartet. Hier gibt es viele Möglichkeiten, die Demo ist sofort beeindruckend, viele Mini-Beispiele, wir haben genug gespielt ( zum Beispiel gibt es Gesichtserkennung ), und, oh, ein Wunder, die Demo hat bereits QR-Anerkennung. Das Problem ist jedoch, dass wir bekommen, was im Code verschlüsselt ist, aber nicht wissen, wo es sich befindet. Beginnen Sie zu verstehen, wie der QR-Scanner angeordnet ist. Es stellte sich heraus, dass es als Superstruktur über ZBar in Form eines Plus-Plug- Ins für das SDK erstellt wurde. Zunächst kam ein verrückter Gedanke auf, das gcc aufzudecken und das Plug-in zu beenden, so dass auch die Koordinaten angegeben wurden, aber wir stoppten rechtzeitig.

    Und sie haben 3 Tage und 3 Nächte gekämpft


    Nachdem wir erkannt hatten, dass ein gutes Viertel der Zeit der zugewiesenen Tage zurückliegt, und wir immer noch nach unserem SDK suchen (es gab Tests und andere Lösungen, die nicht nur oben beschrieben wurden, sondern es gab auch ein Fiasko ), entschieden wir uns, nicht mehr nach einer "silbernen Kugel" zu suchen, sondern alles zu nehmen deine hände Ein neuer Plan ist gereift: Als Taskmarker verwenden wir einen QR-Code, der einfach und häufig ist. Zur Erkennung nehmen wir ZXing , das mehrere Codes gleichzeitig erkennen kann. Neben dem Wert gibt die Bibliothek auch die Koordinaten von 3 "Suchpunkten" des QR-Codes an. Und zusätzlich zum Codeleser implementieren wir unsere AR. Wir haben die Ärmel hochgekrempelt und vorgerückt, wir haben 3 Punkte, was bedeutet, dass wir mit Hilfe von affinen Transformationen alles bekommen, was wir brauchen.

    Prinzessin Frosch

    Wir haben nicht nach einer Bibliothek für Mathematik gesucht, da die Aufgabe nicht schwierig ist. Zunächst haben wir unsere Klasse für die notwendige Neuberechnung der Koordinaten erstellt. Der endgültige Algorithmus für die Arbeit mit QR-Code erwies sich als ziemlich primitiv:

    • Das Bild der Kamera wird auf ZXing übertragen, wir erhalten ein Array mit den Koordinaten der Punkte und den Werten des QR-Codes.
    • Aus den drei Koordinaten berechnen wir den vierten Winkel des Quadrats, vergrößern das Quadrat um das Eineinhalbfache, um den ursprünglichen QR-Code zu erfassen, und erhalten die Basis für die Karte.
    • Stellen Sie eine Anfrage an die Wrike-API, um Daten zu der Aufgabe abzurufen.
    • Wir zeichnen eine Karte, dank affiner Transformationen speichern wir alle Verzerrungen ( Blickwinkel, Drehung, Skalierung ).

    Wir haben einen Algorithmus hinzugefügt, es funktioniert, wir testen, wir kämpfen mit Speicherlecks, wir fügen visuelle Effekte hinzu, wir freuen uns über den Hackathon.

    Und ich war dort, Honigbier trank


    Bei Hackathons ist es neben Ihrem Produkt selbst sehr wichtig, wie Sie es präsentieren. Jeder weiß, dass Sie eine sehr kurze Zeit haben und eine technisch schöne Lösung nicht von Ihnen erwartet wird. Sie müssen also die Schönheit Ihrer Idee zeigen. Ich mag den Storytelling-Ansatz immer, wenn es den Hörern klar ist, für wen das Produkt hergestellt wird, unter welchen Bedingungen es verwendet wird und welche Aufgabe es löst.

    Wrike Hackathon

    Daher haben wir in unserer Präsentation neben der Demonstration der erzielten Funktionalität auch die Vorstellungskraft angesprochen und Situationen beschrieben, in denen eine solche erweiterte Realität ( AR-Brille) bald alltäglich wird) kann das Leben derer verbessern, die nicht mit einem Computer arbeiten, deren Arbeit jedoch mit Wrike zusammenhängt. Zum Beispiel für die Interaktion zwischen dem Designer und dem Architekten, der das Haus repariert, und dem Team, das das Projekt direkt im Haus selbst implementiert.

    Ich denke, wir haben unseren MVP ehrenhaft demonstriert und unsere Liebesstrahlen erwischt. Der Sommer ist vorbei, Picknicks und Feiertage gehen zu Ende, und wir denken daran, Herbstabende der Entwicklung unseres Wrike AR zu widmen.

    Danke für die Illustrationen Sai Kin !