Auch bei Spezialsoftware erhöht eine komfortable und reaktionsschnelle Benutzeroberfläche die Effizienz der Nutzung. Dies gilt auch für Ozarkfalls - ein neues Softwareprojekt, das eine spezielle Lösung für die Steuerung und Planung der Feldarbeit von Militärrobotern bieten soll.
Technologies used
Bei der Steuerung von Robotern oder Drohnen besteht einer der beliebtesten Ansätze darin, eine spezielle Anwendung zuentwickeln, die sich wie ein Bedienfeld verhält. Auf diese Weise ist der Benutzer nicht gezwungen, zusätzliche Hardware zu kaufen, und die Entwickler können viele der Funktionen nutzen, die moderne Tablets, Telefone oder andere Gerätean Bord haben. Unser Ziel war es, eine Anwendung zu entwickeln, die es dem Benutzer ermöglicht,die benötigten Informationen vom Gerät abzurufen, sie zu visualisieren und korrekt analysierte Benutzereingabedaten an den Roboter zu senden. Und das alles auf eine einfache und benutzerfreundliche Art und Weise.
Wenn Sie mehr über den Entwicklungsprozess eines solchen Produkts mit Qt erfahren möchten, sind Sie hier genau richtig!
Dieses Projekt sollte ein MVP (Minimal Value Product) werden. Dieser Begriff beschreibt die Phase des Projekts, in der die meisten wichtigen Funktionen voll funktionsfähig sind, die Entwickler sich aber nicht auf das Aussehen der Benutzeroberfläche konzentrieren. Das Wichtigste ist, dass die Dinge gut funktionieren, nicht wie sie aussehen.
Jedes Projekt muss damit beginnen, eine Liste der benötigten Funktionen zu definieren und die Aufgaben in geeignete Meilensteine zu gruppieren. Gute Kommunikation ist einer der wichtigsten Faktoren bei der Definition der Projektanforderungen. Aus diesem Grund bieten wir unseren Kunden vor Beginn der Implementierung eine Beratung an, um einen reibungslosen Ablauf der App-Entwicklung zu gewährleisten. Um die höchste Qualität des Endprodukts und die Zufriedenheit unserer Kunden zu gewährleisten, stellen wir nach jeder Entwicklungsiteration fertige Pakete zur Verfügung, die vom Kunden überprüft werden können. Auf diese Weise können wir unser Produkt noch während der Produktion anpassen und das Feedback des Kunden berücksichtigen.
Zu den Funktionen mit der höchsten Priorität gehörte eine interaktive Karte – das Kernelement der Anwendung. Dank der hervorragenden Unterstützung von Qt konnte diese Funktionalität schnell und kostengünstig implementiert werden.
Wenn Sie der Karte benutzerdefinierte Elemente hinzufügen möchten, hilft Ihnen Qt, indem es fertige QML-Komponenten bereitstellt, die Sie nur noch konfigurieren müssen. Im Fall von Ozark Falls haben wir Wegpunkte erstellt, die der Roboter anfahren soll, und einen Roboter-Marker, der seine aktuelle Position auf der Karte anzeigt. Um diese korrekt auf einer interaktiven Karte anzuzeigen, wurde eine Kombination aus Qt Positionierung und Qt Location verwendet. Die von Qt zur Verfügung gestellten Karten-Plugins vereinfachen das Hinzufügen solcher Funktionen zu einer Karte erheblich – die grundlegende Implementierung erfordert nur ein paar Dutzend Zeilen.
Die Karte musste Satellitenansicht und Offline-Caching unterstützen – diese Funktionalitäten scheinen schwierig und teuer zu implementieren zu sein, aber mit Qt ist dies nicht der Fall. Qt Location Plugins bieten eine große Auswahl an Karten mit vielen verschiedenen Funktionen. Um Satellitenansicht und Caching zu aktivieren, müssen Sie nur ein paar Zeilen in das Plugin-Element einfügen.
Da die Anwendung es dem Benutzer ermöglichen sollte, die im Speicher des Roboters abgelegten Wegpunkte auszulesen und die auf der Karte hinzugefügten Wegpunkte an den Roboter zu senden, musste eine zuverlässige Zwei-Wege-Kommunikation implementiert werden. Aus diesem Grund wurden TCP-Sockets verwendet. Warum TCP? Auf diese Weise können wir sicherstellen, dass alle an das Gerät gesendeten Daten auch empfangen werden, während der Roboter auch Daten an das Benutzergerät senden kann.
Die Karte verwendet ein benutzerdefiniertes Modell, um Wegpunkte zu speichern. Mit Hilfe dieses Modells kann der Benutzer die Liste der Wegpunkte neu ordnen, indem er ihre Reihenfolge ändert oder ausgewählte Wegpunkte löscht. Alle Änderungen werden sofort in der Karte angezeigt.
Die gesamte Benutzeroberfläche wurde mit QML (Qt Markup Language) aus dem Modul QtQuick implementiert. Damit kann man im Handumdrehen eine ansprechende, flüssig animierte Benutzeroberfläche erstellen.
Ein weiterer Vorteil des Qt-Frameworks ist seine Rechen- und Speichereffizienz. Dadurch kann eine Anwendung auf allen Arten von Geräten eingesetzt werden, sogar auf eingebetteten Geräten. Die gesamte Kommunikations- und Dateiverwaltungslogik wurde in C++ geschrieben, weil wir sie schnell und effizient machen wollten. Qt ermöglicht eine einfache Verknüpfung von C++ und QML. Auf diese Weise erhielten wir eine blitzschnelle Anwendungslogik mit einer reaktionsschnellen und benutzerfreundlichen Oberfläche – eine großartige Kombination. Die App ist für Windows-Tablets gedacht, aber da sie auf Qt basiert, können wir sie auch auf Android oder iOS laufen lassen, ohne den Code ändern zu müssen. Plattformübergreifende Apps sind großartig!
Wenn Sie wissen möchten, wie man eine Qt-Anwendung unter Windows verwendet, lesen Sie den folgenden Blog-Eintrag.
Vertrauen Sie nicht nur unseren Worten – lesen Sie, was Chris über unsere Arbeit denkt:
„Ich habe das Team von Scythe-Studio mit einem Robotik-Mapping-Projekt beauftragt und bin mit dem Ergebnis sehr zufrieden. Sie haben aus meinen losen Vorgaben einen gut organisierten Zeitplan und eine Liste von Meilensteinen erstellt und jeden Punkt erfolgreich abgeschlossen. Das Projekt beinhaltete auch ein Kommunikationsschema, um mit einem Roboter im Feld zu kommunizieren. Ich hatte die Befürchtung, dass die Umsetzung dieses Teils des Projekts eine Herausforderung für die Person sein würde, die ich für diese Aufgabe ausgewählt hatte. Ich war sehr positiv überrascht, als das Team von Scythe Studio diesen Teil gleich beim ersten Versuch richtig und ohne Probleme umgesetzt hat. Großartige Arbeit!„
Versuchen Sie, diese Fragen zu beantworten:
Wenn Sie eine dieser Fragen mit „Ja“ beantwortet haben, rufen Sie uns an.
Wir bei Scythe Studio glauben, dass jede Idee in ein Softwareprodukt umgesetzt werden kann.
Neueste Projekte
Der Patienten-Vitalparameter-Monitor verfügt über ein Pulsoximeter und einen Herzfrequenzsensor. Er besteht aus einem Sensor und einem Mikrocontroller. Er kommuniziert mit dem Sensor, erhält Daten von ihm und sendet diese über ein USB-Kabel an einen Computer.
Anwendung, die auf einem eingebetteten Gerät läuft und den Betrieb eines medizinischen Lasers simulieren soll. Der Benutzer kann einen der vorbereiteten Vorgänge auswählen oder einen eigenen mit voreingestellten Parametern erstellen. Die Anwendung simuliert den Ablauf des Verfahrens.
Plattformübergreifende Anwendung zur Kommunikation und Steuerung des Dobot Magician-Roboterarms. Der Betrieb des Roboterarms wird auch durch ein 3D-Modell unterstützt, das die Position und Ausrichtung des physischen Modells in Echtzeit wiedergibt.