Seite 1 von 1

Serielle Ausgabe von RTKlib

Verfasst: 24.08.2014 - 15:41
von quadroRTK
Hallo Zusammen,

ich entwerfe momentan eine Möglichkeit einen bereits bestehenden Quadrocopter vom Typ Asctec Hummingbird mittels RTKlib mit Positionsdaten zu versorgen.
Das RTKlib soll mittels RTK-GPS die Position berechnen. Mein GPS-Receiver ist der Neo 6p von ublox. Dieser ist mittels USB an ein RaspberryPi angeschlossen. Auf dem RPi läuft Arch Linux. RTKlib habe ich bereits compiliert. Als Basisstation verwende ich den Mountpoint Warnemünde des igs-ip.net. Leider ist meine Basislinie ca. 160 km, sodass sich hier schon erhebliche Fehler einschleichen. Aber derzeit habe ich keine anderen Möglichkeit. Die Anwendung rtkrcv läuft mit der angefügten Konfigurationsdatei bereits und liefert nur SINGLE Lösungen. Woran das liegt, weiß ich nicht. Auch auf Windows erhalte ich mit rtknavi lediglich SINGLE Lösungen. Bei beiden wird mir angezeigt, dass Daten von igs heruntergeladen werden. Kann es vielleicht daran liegen, dass der Receiver Daten mit GPS-Zeit liefert, die igs-Daten aber mit einer anderen Zeit, z.b. Mitteleuropäische Sommerzeit, arbeiten? Vielleicht kann mir hier jemand weiterhelfen.

Mein dringlicheres Problem liegt allerdings in der Kommunikation mittels UART zwischen RPi und Quadrocopter. Damit die Positionsdaten vom Quadrocopter verwendet werden können, müssen die empfangenen Daten an die entsprechenden Variablen in der Steuerung des Quadrocopter weitergegeben werden. Allerdings weiß ich nicht, was genau von RTKlib über UART geschickt wird. Eine Überprüfung des Signals mittels PC hat kein Ergebnis geliefert. Ein sinnvolles Muster war für mich nicht zu erkennen. Hier wäre ich für Hilfe sehr dankbar.

Re: Serielle Ausgabe von RTKlib

Verfasst: 24.08.2014 - 20:00
von monokultur
Hallo

zum Thema Singel Lösung > Float/Fix:
- stell mal unter Input Streams als Correction noch den Ntrip stream "EUREF02" ein
- stell unter Optionen alles ein wie auf den Bildern
- das Antennen-File findest du hier

Mit den Einstellungen solltest du zumindest eine gute Float-Lösung erreichen können.

Gruß Peter

Re: Serielle Ausgabe von RTKlib

Verfasst: 25.08.2014 - 15:53
von quadroRTK
Hallo Peter,

vielen Dank für deine Antwort. Leider haben aber auch diese Umstellungen nicht zu einer Float oder Fix Lösung geführt. rtknavi gibt weiterhin nur Single Lösungen aus. Das ganze ist für mich umso verwunderlicher, da jemand der sich schon vorher mit diesem Thema befasst hat mit genau derselben Konfigurationsdatei auch Fix Lösungen erhalten hat.
Die von dir vorgeschlagenen Änderungen sind in der angehängten Datei eingearbeitet. Vielleicht habe ich ja auch einen Fehler gemacht.

Gruß Jan

Re: Serielle Ausgabe von RTKlib

Verfasst: 26.08.2014 - 22:31
von archie
hallo Jan,
Zwei Fehler sind mir aufgefallen.

erste fehler:
inpstr3-type =ntripcli # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
Die dritte input ist vor ppp korrekturen vorgesehen und muss bei dir ausgeschaltet sein ("leer" oder "off"). Du brauchst auch nur ein Basisstation.

zweites:
inpstr2-path =nutzer:pw@igs-ip.net:/WARN1:
Hier fehlt die portnummer und der doppelpunkt ist zuviel. (nutzer:pw@igs-ip.net:2101/WARN1)


Grüsse Pieter

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.10.2014 - 13:29
von quadroRTK
Das Problem mit der Single Lösung hat sich mitlerweile ergeben und ich bekomme durch ein Update auf Version 2.4.2 nun auch Float/Fix Lösungen.

Das Problem mit der seriellen Ausgabe von RTKLib konnte ich bisher leider noch nicht lösen, daher nochmal:

Damit die Positionsdaten vom Quadrocopter verwendet werden können, müssen die empfangenen Daten an die entsprechenden Variablen in der Steuerung des Quadrocopter weitergegeben werden. Allerdings weiß ich nicht, was genau von RTKlib über UART geschickt wird. Eine Überprüfung des Signals mittels PC hat kein verwertbares Ergebnis geliefert. Ein sinnvolles Muster war für mich nicht zu erkennen. Hier wäre ich für Hilfe sehr dankbar.

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.10.2014 - 20:47
von NosDE
Hallo Jan,

die RTKLIB gibt so wie sie ist über die serielle Schnittstelle nicht die notwendigen Informationen aus, die Du für Deine Quadrocoptesteuerung benötigst. Um ein weiteres Ausgabeformat, welches zu implementieren ist, wirst Du nicht herumkommen.
Für eine optimale Steuerung benötigst Do u.A. folgende Werte: Timestamp, Lat, Lon, Alt, VelX, VelY, VelZ, Solutionstatus, NumOfSATs. Das Ganze dann noch in ein gescheites Binärformat gepackt, damit es die Flugsteuerung direkt weiterverarbeiten kann :)

Gruß
Marco

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.10.2014 - 20:49
von Taurus
Ohne tief in deinem Copter drin zu stecken...
Seit wann gibt RTKLib Steuerungssignale für Quadrocopter aus?
Oder wandelst du auf dem RPi noch die Ausgabe von RTKLib in Steuersignale die zu deinem Copter passen?

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.10.2014 - 20:55
von NosDE
Er möchte die Position von der RTKLIB in seine vorhandene Flugsteuerung geben, anstatt die vom ursprünglichen GPS.

Re: Serielle Ausgabe von RTKlib

Verfasst: 30.10.2014 - 09:12
von quadroRTK
:D Möglicherweise habe ich mich da auch nicht ganz präzise ausgedrückt.
Ich versuche momentan nur herauszufinden wie die serielle Ausgabe der durch RTKLib berechneten Position aussieht, sodass ich diese dann weiterverarbeiten und dann an den Quadrocopter weitergeben kann. Das heißt, mir ist nicht bekannt, ob die Position in ASCII-Code codiert ist, als einfache Binärzahlen ausgegeben wird oder ein anderer Code verwendet wird. Die Analyse des Signals über das Programm USBlyzer hat leider zu keinem Ergebnis geführt. Ich hatte nicht erwartet, dass RTKLib die Quadrocoptersteuerung übernimmt ;).

Vielen Dank für die Hilfe schonmal ! :)

Re: Serielle Ausgabe von RTKlib

Verfasst: 31.10.2014 - 01:11
von NosDE
Hi,

outstr1-type =serial # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr1-path ={dein comport/device incl. baudangabe}
outstr1-format =nmea # (0:llh,1:xyz,2:enu,3:nmea)

Dann kommt das Ganze als ASCII über die eingestellte serielle Schnittstelle raus.

Gruß
Marco

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.11.2014 - 18:17
von quadroRTK
Ich muss doch nochmal eine Frage stellen.
Im Grunde geht es immernoch um das selbe Problem, und zwar versuche ich Die Daten, die von RTKLib berechnet werden per UART-Schnittstelle vom Raspberry-Pi an eine UART Schnittstelle an einem Quadrokopter weiterzugeben um Sie dort weiterzuverarbeiten.
Nun möchte ich mir erstmal anschauen, wie der Ouput von rtkrcv dann wirklich aussieht um dann ein Programm zu schreiben, was dann die Daten am Quadrokopter weiterverarbeiten kann. Dazu habe ich den Pi per UART zu USB Kabel an den meinen Windowsrechner angeschloßen und lasse das Programm Bray's Terminal(https://sites.google.com/site/terminalbpp/) laufen um mir die Daten anzuschauen.

Der Ouput in ASCII sieht z.B. so aus :
<0>”1ñ+!…!ÿmðÀ€#" «B.Sºê^¥có)c1rhû8H«os8- öh€^³V Ž)%s´JÑöÒLc#ÿÒL#°ÿÒLc)ÿÆ2ÆJýÒLc#ÿ8ðÀVOtOÁíJIJÂŽiabpB#mC*¼ÂÓ¥+fº[íe!¤cóCÌ[—9ômð-C•L1ÆH¢B=chb/{ùG-%àS ª¶9l˜¾+4‘¤!ÿ8(hbj¡Ô5"¼µ<0>¬C%{ jsÿBÛMÈcp•JA3aǸIOk-h­¨Gk*­-Ås©2pê°)óC¸^kõmC+¸Ä !€<0>á|€Ž`SÑ$Bóÿ8(BbXóÂZ!g{p’)c8ÿÒLc)OÒ¦(Œ-¥•b‚jjVKbk`•Jj!í)sd€‘ðmC*¸«8½„!) ê²s8j£B¸™RrY‘!b!± CìBÏkPr¤c2䭁„c= 1BÛ1RLl*by0IÆ{‘ b:¶+Œý-¥*1Lc
R£¡#aÇs¾/Xo3ˆ°ÿkZJ­S°æhr™
J8s4jÂ1#þ-J“Z5Fg/^beIB€4j!%s/)î8kR§Bt¥p1¥<B!Ç0‘¤ˆB²J)¶1d¡Ô!¡Ö1JZmclBp›R#ü8C<é{§Bt¥j1–w—!†°‡pÆ1b=18R¢Bt…1Íëw—!’°ÖpÆpb= 18Hª/stD )B1VB`R!ňj²mC"¸ˆ=z<0>ÃÞ{%J¥LK­#>zó(ŒãBÛŽbš*S1b8B€4j!%s¾o)îK1ô1d¹”ˆCŠœ×ŒR[–9ÒümC"¼bñ¥„!)Æ1
J 8s4jÂ1)þG
%r)L­¨/yŠBt¥ÍY‹Jo3ˆ°ÿGkV{r;X^•L1†ºî^¤cz£B¸›RŽcû8q‰BºFðéîs¼ê(²c0ä1b=RjRmC>ëj‰j Ë*9•*­j£B¸›RŽcû`ŒÈ $X+C`Æ0ÚåR!ňj°38Yš¯c8= ¶9€‹f˜¾{ÌmclB³›–9ÒümC*¼'€ˆså2«H‰B ½nC¸ok‚Ö8YŠÃ^ˆ2…Ђå›5¢BƒmT/RJ!‘ð8H

In HEX so:
6D 43 3C EF 7A A7 AB 10 A5 84 21 21 21 14 C0 25
73 A0 08 52 0A 62 C9 56 C7 78 31 E6 38 28 68 31
85 A0 AA B6 39 08 A1 1D 9A 28 46 09 61 E8 AF 49
08 42 64 AD 03 30 FF C7 0D 4B D2 23 22 A0 0A AD
42 B0 2B A7 50 4A AD 6B 70 30 AF 43 08 42 42 21
03 BC 03 38 6B 0C 52 85 08 46 21 85 70 81 42 22
64 26 AC 63 02 96 31 E2 C0 63 D4 7B B4 2A EE 38
43 0A 42 94 A2 46 74 85 31 CF EF 7B E6 72 8C 63
98 38 7A A3 42 B8 99 52 8B 59 FF 38 48 DA 53 0C
88 4C 60 28 42 79 60 52 36 AE 73 B4 B2 D6 31 D6
31 72 BE 2F 69 F5 38 59 AA 6F 63 38 2D 20 B6 68
91 DE D6 31 0C 4A CC CD 3C A2 43 4C 63 02 48 4A
81 C2 6D 08 42 EB 08 52 50 68 21 A6 31 D0 31 50
26 A4 63 88 08 7A A3 42 B8 99 52 8E 63 FB 92 60
91 53 5C 03 A9 20 4B 21 81 48 CA 03 89 42 09 09
BD EE 52 4A 89 1A B5 6B 4A FF 92 60 89 63 94 A7
EA 5E A1 D4 21 89 0A 00 8E 29 21 4C 4B AD 23 3E
7A F3 28 8C E3 38 48 AA 6F 63 38 37 71 E6 04 0A
48 CA 03 89 42 09 09 BD EE 52 4A 89 3A B5 6B 4A


Ich muss sagen, ich erkenne da kein System und auch wenn ich versuche das ganze in Text zu konvertieren kommt dabei nur quatsch raus.
Hat jemand eine Idee wie ich weiterkommen könnte ? Sind die empfangenen Daten so völligst ok und ich bin einfach nur so doof ein System zu erkennen oder wird hier durch die Verbindung über USB evtl quatsch draus ? Ich weiss einfach nicht, wie ich ein Programm schreiben soll, das die Daten verwendet, wenn ich die Daten nicht verstehe :(.

Danke für die Hilfe !

Re: Serielle Ausgabe von RTKlib

Verfasst: 29.11.2014 - 19:25
von quadroRTK
Alles klar, hat sich erledigt, stellt sich raus, das die Baudrate einfach zu hoch eingestellt war. Habe die Baudrate des Ouputs auf 9600 gestellt und nun bekomme ich wunderschöne Daten :)