Open DIY Projects › Stuhlkreis › STorM32 Featuers › GPS Tracking, Alles rund um die APP
- Dieses Thema hat 26 Antworten sowie 4 Teilnehmer und wurde zuletzt vor vor 9 Jahren, 5 Monaten von digaus aktualisiert.
-
AutorBeiträge
-
31. März 2015 um 19:30 Uhr #838digausModerator
Hier wird immer der aktuelle Stand der App für das GPS Tracking zu finden sein und ihr könnte natürlich auf Fehler hinweisen oder Wünsche äußern.
Grundsätzlich besteht die App momentan aus vier Tabs.
Neben den Tabs gibt es einen Button mit welchem ihr euch jederzeit mit dem Copter verbinden könnt.Der erste Tab
dient zur manuellen Steuerung des Gimbals. Dieser beinhaltet einen Onscreen Joystick, ein Button zum Erstellen eines Panoramas und ein Button zum Umschalten vom Pan und Hold Modus der Yaw Achse.
———————————————————————————————————————————————————-
Der zweite Tab
ist für das GPS Tracking zuständig. Hier kann man über ein etwas längeres Drücken einen Punkt auf der Karte festlegen auf welchen das Gimbal fokussieren soll. Zudem kann die Höhe in der linken oberen Ecke manuell festgelegt werden.
Durch das Drücken das Buttons „Start“ wird das GPS Tracking gestartet.
Soll das GPS des Handys als Zielobjekt festgelegt werden, so muss die Checkbox des Start Buttons angewählt werden.
Über den Slider kann zudem ein Offset für die Yaw Achse festgelegt werden, falls das Gimbal nicht korrekt ausgerichtet wurde.
———————————————————————————————————————————————————-
Der dritte Tab
ermöglicht das Senden oder Empfangen von GPS Koordinaten über das mobile Internet. Da die Kommunikation über das Internet recht komplex ist und einen Server voraussetzt, habe ich auf die Bibliothek von „Pubnub“ zurückgegriffen. Diese stellt eine Messenger Funktion zur Verfügung, welche ich verwende. Die kostenlose Version dieses Services ist jedoch eingeschränkt. So können pro Monat maximal 1Mio Nachrichten verschickt werden und es können sich nur 20 unterschiedliche IP Adressen innerhalb von 24 Stunden verbinden. Deshalb müsst ihr euch unter http://www.pubnub.com/ euren eigenen Account anlegen. Unter den Settings der App könnt ihr dann euren Publish Key und euren Subscribe Key eingeben. Die Geräte die dieselben Keys verwenden können dann ihre GPS Daten untereinander „austauschen“. Wenn ihr GPS Daten empfangt und den Haken beim Start Button gesetzt habt, werden diese für das Tracking verwendet.
———————————————————————————————————————————————————-
Der letzte Tab
ist für die Einstellungen da. Hier könnt ihr unter anderem die Größe des Joysticks festlegen, die Panoramafunktion konfigurieren und die Verbindung zum Copter festlegen.
———————————————————————————————————————————————————-
Einschränkungen:
Die App setzt mindestens Android 4.0.3 voraus.Weitere Schritte:
Kommunikation über den Pixhawk ohne Raspberry Pi und mit USB Telemetrie Modul.Attachments:
You must be logged in to view attached files.31. März 2015 um 21:45 Uhr #841EagleEiAdministratorHallo Digaus,
unglaublich wie gut dein GPS-Tracking funktioniert, tolle APP, Respekt!!!
Klasse dass du dein Projekt auf dieser Seite zur Verfügung stellst!Bin gespannt wie sich dies Weiterentwickelt.
Wie ist der aktuelle Status der Kommunikation zwischen APM und dem SToRM32 Board? … Bis wann kann man auf den Rasparry verzichten?
31. März 2015 um 22:10 Uhr #842digausModeratorDanke, ich finde so eine Funktion hätte es schon viel früher geben sollen. Ist ja im Grunde nichts anderes wie ein Tracker, nur halt auf dem Copter 😉
Leider wird es eine Kommunikation von APM zu STorM nie! geben. Das liegt daran, dass für die APM keine Updates mehr bereit gestellt werden. Das heißt, wenn man auf den Raspberry Pi verzichten möchte, dann muss man zum Pixhawk wechseln. Die Kommunikation zwischen Pixhawk und STorM ist meines Wissens auch schon in der Alpha vorhanden.
Das Problem ist, dass ich keinen Pixhawk habe um das zu testen. Außerdem habe ich es noch nicht geschafft mir eine Custom Mavlink Message zu erstellen, welche ich an das STorM schicken kann. Habe dazu eine Anfrage in der 3dr Developer Group gestellt aber bisher noch keine Antwort erhalten.
Wenn ich so eine Nachricht erstellen kann und wenn ich dann jemanden habe, der das für mich testen könnte, dann sollte es maximal eine Woche dauern, bis ich das in meine App eingebaut habe.31. März 2015 um 22:45 Uhr #846EagleEiAdministratorSchade dass der APM keinen Support mehr bekommt, allerdings ist klar, das Ding ist ausgereizt!
Dann stellt sich die Frage ob alternativ zu dem PIXHAWK der AUAV-X2 auch geeignet wäre?
von http://arsovtech.comIch sehe schon, noch ein Grund das Ding endlich mal zu testen, oh nein, nicht schon wieder ein weiteres Projekt! 😉
3. April 2015 um 22:12 Uhr #855sandmenTeilnehmer@digaus,
was brauchst du für eine message?
Entweder ich erstelle dir diese oder erkläre es dir.7. April 2015 um 20:57 Uhr #894digausModerator@EagleEi
ja den AUAV-X2 habe ich acuh im Auge, damit sollte es auf jeden Fall funktionieren.@sandmen
Die Nachrichten die ich benötige sind hier beschrieben: http://www.olliw.eu/storm32bgc-wiki/Serial_Communication
Und zwar benötige ich hauptsächlich die Nachricht MAVLINK_MSG_ID_COMMAND_LONG, diese besteht aus MAV_CMD_DO_SET_PARAMETER und MAV_CMD_DO_MOUNT_CONTROLAber die Frage ist dann auch, wie ich diese Nachricht mit der 3dr Services Library senden kann.
Dort gibt es den Typen „MAVLinkMessage“ welcher an „MavlinkMessageWrapper“ übergeben wird, dieser kann dann mit „sendMavlinkMessage()“ versendet werden.Hier ist die komplette java Dokumentation der Library: http://android.dronekit.io/javadoc/
Wäre super, wenn du mir da helfen könntest.
Edit:
Ich habe festgestellt, dass die hochgeladene App falsch kompiliert wurde und deshalb nicht installiert werden konnte. Habe die korrekte Version jetzt hochgeladen.8. April 2015 um 8:44 Uhr #903sandmenTeilnehmer@Digaus,
nur das ich das richtig verstehe, Ziel ist es von der App direkt auf den Gimbal (Storm) zu kommen?
Oder möchtest Du vom APM auf den Controller kommen ?8. April 2015 um 19:15 Uhr #904digausModeratorAlso im Grunde möchte ich mit dem STorM und dem Pixhawk über einen Telemetrie Link kommunizieren.
Das heißt das STorM ist wie hier beschrieben mit dem Pixhawk verbunden: http://copter.ardupilot.com/wiki/common-optional-hardware/common-cameras-and-gimbals/common-storm32-gimbal/
Der Pixhawk wiederum ist über einen Telemetrie Link mit dem Handy verbunden.
Ich habe jetzt angenommen, dass der Pixhawk die Mavlink Messages an das STorM weiterleitet wenn ich die Message vom Handy an den Pixhawk schicke.9. April 2015 um 12:27 Uhr #914sandmenTeilnehmerIch denke, so sollte das gehen.
msg_command_long ist normalerweise ein „common“ message object.
Diese msg könntest Du vom Android Phone zum Storm senden.Wenn Du durch den PixHawk senden möchtest, sollte target_component eigentlich die ID des Storm’s sein, und die target_system vom PixHawk. Aber ob der Pixhawk das so implementiert hat, weiß ich nicht. Rein theoretisch, solltest Du das untere einfach laufen lassen können 🙂
//MAV_CMD_DO_SET_PARAMETER (#180)
msg_command_long msg_to_storm = new msg_command_long();
msg_to_storm.target_system = drone.getSysid();
msg_to_storm.target_component = drone.getCompid();
msg_to_storm.command = 180; //--> MAV_CMD_DO_SET_PARAMETER (#180)
msg_to_storm.param1 = 0.0f; // parameter Index
msg_to_storm.param2 = 0.0f; // parameter value
msg_to_storm.param3 = 0.0f;
msg_to_storm.param4 = 0.0f;
msg_to_storm.param5 = 0.0f;
msg_to_storm.param6 = 0.0f;
msg_to_storm.param7 = 0.0f;
drone.getMavClient().sendMavPacket(msg.pack());//MAV_CMD_DO_MOUNT_CONTROL (#205)
msg_command_long msg_to_storm = new msg_command_long();
msg_to_storm.target_system = drone.getSysid();
msg_to_storm.target_component = drone.getCompid();
msg_to_storm.command = 205; //--> MAV_CMD_DO_MOUNT_CONTROL (#205)
msg_to_storm.param1 = 0.0f; // parameter Index
msg_to_storm.param2 = 0.0f; // parameter value
msg_to_storm.param3 = 0.0f;
msg_to_storm.param4 = 0.0f;
msg_to_storm.param5 = 0.0f;
msg_to_storm.param6 = 0.0f;
msg_to_storm.param7 = 0.0f;
drone.getMavClient().sendMavPacket(msg.pack());
10. April 2015 um 20:07 Uhr #917digausModeratorHi Sandmen,
danke, das ist schonmal sehr hilfreich!
Leider gibt es die Funktion getSysid(), getCompid() und getMavClient() bei mir nicht(siehe Screenshot)
Für den letzten Befehl zum Senden der Nachricht, habe ich eine entsprechende Funktion gefunden, die genau das machen sollte (siehe dazu auch Screenshot), aber ich weiß nicht wie ich die Sysid und Compid vom Copter bekommen kann…Attachments:
You must be logged in to view attached files.11. April 2015 um 13:03 Uhr #919sandmenTeilnehmerWelche library benutzt Du den? Also den original Source-code, oder eine bereits fertig library?
Dann könnte ich diese mal ziehen, und in ein „example-mavlink“ Android Project ziehen.
Bei dir existiert das Object drone nicht ?
Hat dann avClient getSysId ?
Ich benutze seit Jahren das repo von Guillaum.
https://github.com/ghelle/MAVLinkJava11. April 2015 um 14:47 Uhr #920digausModeratorMeine App basiert auf der 3dr Services library. Darauf ist auch Die Tower App (Droidplanner 3) aufgebaut. Habe mich an dieses Tutorial gehalten: http://android.dronekit.io/first_app.html
Das Object drone existiert, aber das Objekt hat die Funktionen nicht. Kann ich die IDs nicht manuell festlegen? Die target_component sollte ja eigentlich auch die des STorMs sein.14. April 2015 um 16:53 Uhr #932sandmenTeilnehmerIch habe mir mal das Beispiel nachgeschaut, da sollte doch das drone-object vorhanden sein.
In der MainActivity -> this.drone.connect(connectionParams);14. April 2015 um 22:50 Uhr #938digausModeratorHi sandmen,
ja das drone Objekt gibt es, habe ich auch nie bestritten 😉
Aber das Objekt verfügt nicht über die von dir genannten Funktionen getSysid() und getCompid().
Habe noch mal ein Screenshot vom drone Objekt mit allen verfügbaren get-Funktionen angehängt.Attachments:
You must be logged in to view attached files.20. April 2015 um 13:35 Uhr #957sandmenTeilnehmerSo schmeißt mir das Ding auf jeden Fall mal keine Fehlermeldung.
Vielleicht probierst Du das mal so aus, target (SysId und Component) wird scheinbar weiter unten
ermittelt.msg_command_long msg_to_storm = new msg_command_long(); this.controlTower.sendParameter(this.drone, msg_to_storm);
Ich weiß aber auch warum ich diese Lib nicht einsetze 🙂
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.