francklin2 / rtklib_touchscreen_gui Goto Github PK
View Code? Open in Web Editor NEWRTKLIB GUI for Raspberry Pi with touchscreen made with Qt by the ENSG students
RTKLIB GUI for Raspberry Pi with touchscreen made with Qt by the ENSG students
The usage of sudo should be remove.
User could poweroff the pi without typing sudo.
Proposal :
dbus command should be tested as it's very more simple. I don't have Raspberry Pi at this time but I could test in a virtual machine inside Qemu
Now a correct file is created by optionsstr2str.cpp but the file sauvegardepositionbaseManual.txt only report the default value of the QlineEdit and cannot be edited by typing value in the fields.
Hi @Francklin2
first thanks for the nice project. Great idea. I just try to adapt it for my my courses...
I've setup and assembled a copy of your hardware the only difference to your proposed setup is that I did not weld the cables but use the usb port to connect the GNSS Ublox M8T to the raspi 3. I have installed your image . So finally I am obvously getting a signal from the antenna but there is no sync to the satellites or by other words the signal is not decoded. What do I miss?
Any suggestions are welcome.
cheers Chris
edit:
in difference to one of your videos the MT8 has a steady orange light and after a while it is blinking green.
I have modified the readme file.
If you have suggestion, please send your message here.
Your line has a duplicate "install" in the apt-get command:
sudo apt-get install --assume-yes libxtst-dev build-essential libqt4-dev qt4-qmake libqt4-core libqt4-gui --->install<--- libqt4-xml libqt4
I would also suggest to add a set -e
at the beginning of the shell script so it aborts if a command fails.
It is more obvious then, that somethings went wrong.
Thanks!
On my Raspbian image I add a custom splash screen and removed boot messages,it works but I'm not sure it's the best method to do this. Here is what I did:
Now the str2str server is launched by strings so the correct base position should be input, a stream is send by the base and received by the rover but the stream looks unreadable by the rover (tried with the microsoft app and same résult: the ascci stream dont look like rtcm).
I think the string used to launch str2str is wrong, on the display inn CURRENT STR2STR OPTIONS we see that the each blank space return to next line(we should have one line), I can be only the display but I"m not sure...
On the old base the string used for messages was ::
-msg 1004,1019,1012,1020,1006,1008
and in our string the is:-msg "1004,1019,1012,1020,1006,1008"
I dont know how to add the "" in the string correctly, it alway think it's a new string !
Only added the radiobuttion to optionsstr2str.ui . I have to put a if condition to select position file in affichestr2str.cpp
Francklin,
J'ai renommé les fichiers présents dans le répertoire ConfFiles qui étaient tous nommés .ubx en .conf. : plus approprié !
Tu peux vérifier si ça n'impacte pas le fonctionnement. Auquel cas il faudra modifier les autres fichiers mais pas revenir en arrière sur le nommage des fichiers de conf.
A+
Hi!
Great work with this GUI so far!
I'm using the pre-installed image of RTKBASE and I have tried to upgrade the RTKLIB to latest beta version by replacing the content in the /lib/rtklib/src folder and rebuilding RTKBASE. However, I run into trouble since the current rtkrcv.c in RTKBASE folder is not compatible with the new RTKLIB version.
Is it possible to make it work?
thank you for your answer!
Well let me share that the first test compile was "sucessfull" but ./RTKLIB is missing I am running a second compile to view if the file appear. In the other hand I compile in ubuntu and was 100% sucessfull. So if someone have some recomendation it will be welcome
The script build_rtkbase.sh does not contain all neccessary packages to be able to build RTKBASE.
I needed to additionally install qtcreator and qt4-dev-tools to be able to build.
If the needed packages are not installed qmake will fail and the user will not be notified. Also there is no information on where to find the log which contains the error. The success message could be based on the presence of the RTKBASE binary at the end of the script to prevent confusion.
Hi, after some testing of RTK with the ZED-F9P ive encountered a few issues that would be nice to fix.
When recieveing corrections from NTRIP client, I am only able to achieve fix solution on GPS and GLONASS satellites. the status page tell me that i have 20-25 satellites observed for both rover and base, but in the fix-solution only 8-12 are used, i have an elevation mask on 10 degrees and SNR mask on 20, which should not be a problem. (i think this may be due to the "Integer Ambiguity Resolution" in the setting 2 menu is only available for GPS and GLONASS) It would be nice if Galileo and Beidou could be added.
Another minor issue is that when saving points with RTK, the coordinates and solution freeze until the given amount of measurements is done. I did looked into the point-file, and its only the GUI that freeze, we get different coordinates on the points saved, but some are way off because i was moving and lost fix. But the solution status was also freezed, so i had no idea that i didnt have fix.
Salut @Francklin2,
Tu peux décrire la méthode pour le calcul depuis plusieurs corrections stp ?
Merci
Now base position is transmited to the rover but when you enter Lat= 48.2508 Long= 2.8546 Height= 145.23 rover only receive Lat= 48,000 Long= 2,000 Height= 145,000 .
I will try with a , instead of . in the gui to see if changes something.
(After this issue base should be opérationnal, I didn't check if this issue affect Release 1.0 or the automatic mode) .
before applying the strinf there is a :
m_str1.replace(",",".");
So I think a , should only be used to have a . in the string
Is it possible to set Raspberry pi clock with the GNSS clock ? it"s done after boot with internet clock if internet connexion is avalaible
Due to this bug : tomojitakasu/RTKLIB#174 (comment)
I would be nice to have the latest rtklib version on master branch
Is there any way that I can make this run on 3.5 inch screen also. I Navigated through the code repository but no luck at all. Am I missing something?
All help are appreciated. Thank You!
The radio button in the base station options are not functionnal, in fact the str2str has a initialisation string in optionstr2str.cpp who lauch the default 1& 2 button.
I will remove the stream setting button and replace them in the master branch by a menu to choose betwen
a automatic base position or a manual input of the base position.
Hi people, one question If I have two ZED-F9 is possible to use self corrections of the module I mean use the output RTCM of ZED-F9 in the serial port of this GUI?
Hello, this is not really an issue, but if someone is able to help me out that would be amazing.
I am currently trying to connect to a NTRIP client to recieve correction data for my ZED-F9P. But im not able to figure out how to enter my username and password correctly in the string to authenticate correctly. Maybe someone could post an example string with a login.
Thanks in advance.
/home/akas13/Desktop/RTKLIB_Touchscreen_GUI-master/RTKBASE/MainthreadStr2str.h:26: error: ISO C++ forbids in-class initialization of non-const static member 'm_choix'
Hi there,
very nice project. Is it possible to use this project in BaseStation Mode together wtih ArduCopter/Pixhawk (as a rover)?
Has anyone tried this yet or can point me in the right direction?
If this was possible it would be awesome since ArduCopter has build-in support for the 3DR-Radios which can be used in this project as well.
Thank you very much!
Thomas
RTKBASE is built with several command like :
It's more simple to add one command to do that like run_build.sh or other name. Script below :
_
!/bin/bash
cd lib/rtklib
chmod +x make_library.sh
sh make_library.sh
cd ../../
make clean
qmake
make
_
I saw in the code that the -p option send to str2str is a fixed value for testing but not the position from the base position files.the default button send this string 👍
arga={"carlepremierargtoujorsleprog","-in","serial://ttyACM0:115200:8:n:1:#ubx","-out","serial://ttyUSB0:38400:8:n:1:#RTCM3","-msg","1004,1019,1012,1020,1006,1008","
The part -p","48.2","12.2","120.23"}; should have variables instead of fixed value
After updating RTKlib from 2.4.2p11 to 2.4.3b28 we have some errors on the build,
I noticed that in the rover/position window the rtcm stream is not seen if you use a Ntrip base, rtcm type is not detected too. I will try to update some values in rtklib.h for the new api names like crc24q to rtk_crc24q
I let a build log with raspbian jessie a raspberry pi 3
logs.zip
Hi Francklin,
I found this antenna which seems to be the same as the implemented ebee one or heliceo or drobit system => 25g
Antenna Spec
Frequency Range GPS L1/L2
GLONASS L1/L2
BDS B1/B2
Impedance 50ohm
Polarization RHCP
Axial Ratio ≤3dB
Azimuth Coverage 360°
Output VSWR ≤2.0
Peak Gain 2dBi
LNA Spec
LNA Gain 33±2dB
Noise Figure ≤2dB
Output VSWR ≤2.0
Operation Voltage 3~12VDC
Operation Current ≤55mA
Ripple ±2dB
Mechanical Spec
Dimension ¢27.5*59mm
Weight ≤25g
Connector SMA
Environment Spec
Operating Temp -40℃~+70℃
Storage Temp -40℃~+70℃
Humidity 95% No-condensing
On a Rpi3 fresh install of rasbian I get the error "-bash: ./2-Build_rtkbase.sh: /bin/sh^M: bad interpreter no such file or directory". After googling I found that the command "sed -i -e 's/\r$//' 2-Build_rtkbase.sh" fixed the issue and then it runs fine after that.
I would like to use RTKLIB touchscreen with a Raspignss but I am not sure if it will be compatible?
Where could I find a basic getting started guide for RTKLIB touchscreen (preferably in English).
Great project - looking forward to using it!
Thanks for your help
I can't use RTK Kinematic in Rover (but i can use Single and DGPS), when i choose Status, Sat Rover Number don't show anythung although Sat Base Number is counting.
Please, can you check my code ?
console-passwd =admin
console-timetype =utc # (0:gpst,1:utc,2:jst,3:tow)
console-soltype =deg # (0:dms,1:deg,2:xyz,3:enu,4:pyl)
console-solflag =1 # (0:off,1:std+2:age/ratio/ns)
inpstr1-type =serial #(0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr2-type =serial #(0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-type = off # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr1-path =ttyACM0:115200:8:n:1:off
inpstr2-path =ttyUSB0:115200:8:n:1:off
inpstr3-path =
inpstr1-format =ubx # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)
inpstr2-format =ubx # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)
inpstr3-format = #
(0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)
inpstr2-nmeareq =off # (0:off,1:latlon,2:single)
inpstr2-nmealat =0 # (deg)
inpstr2-nmealon =0 # (deg)
outstr1-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr2-type = #serial # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr1-path =/home/pi/RTK/solution/ppp-sol_%Y%m%d%h%M.pos
outstr2-path = #ttyAMA0:115200:8:e:1:off
outstr1-format =llh # (0:llh,1:xyz,2:enu,3:nmea)
outstr2-format =llh # (0:llh,1:xyz,2:enu,3:nmea)
logstr1-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr2-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr3-type =file # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr1-path =/home/pi/RTK/solution/rov_%Y%m%d%h%M.log
logstr2-path =/home/pi/RTK/solution/ref_%Y%m%d%h%M.log
logstr3-path =/home/pi/RTK/solution/cor_%Y%m%d%h%M.log
misc-svrcycle =10 # (ms)
misc-timeout =30000 # (ms)
misc-reconnect =30000 # (ms)
misc-nmeacycle =5000 # (ms)
misc-buffsize =32768 # (bytes)
misc-navmsgsel =rover # (0:all,1:rover,1:base,2:corr)
misc-startcmd =/home/pi/RTK/startscripts/rtkstart.sh
misc-stopcmd =/home/pi/RTK/startscripts/rtkshut.sh
file-cmdfile1=/home/pi/RTK/startscripts/ubx_m8t_raw_1hz.cmd
file-cmdfile2 =
file-cmdfile3 =
pos1-posmode=kinematic
#(0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp- static)
pos1-frequency =l1 # (1:l1,2:l1+l2,3:l1+l2+l5)
pos1-soltype =forward # (0:forward,1:backward,2:combined)
pos1-elmask =15 # (deg)
pos1-snrmask =off # (dBHz)
pos1-dynamics =off # (0:off,1:on)
pos1-tidecorr =off # (0:off,1:on)
pos1-ionoopt =brdc # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec)
pos1-tropopt =saas # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph =brdc # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
.....
Don't change.
Good morning.
I wanted to ask if you can give me an updated list of the best components (Hardware) to buy to carry out the project.
Best regards
Hi !
I can't compil RTKBASE on my Raspberry Pi 2. Here is the logs:
check here :
bzg/logiciel-libre-esr#35
For the coordinate transformation we add cs2cs from Proj4 in the post processing and for the saved point output (settings are in rover mode>status>save point options). The cs2cs Proj4 library is installed in the system with apt-get install proj_bin and called in rtkbase by a Qprocess., cs2cs is very powerfull and can be used with different syntax under command line, C++ or python, rtkbase is able to get a output from cs2cs but is it the correct way to use it..?
I use this (easy) syntax in rtkbase for ECEF to Lambert93 RGF93/CC42 :
cs2cs +init=epsg:4328 +to +init=epsg:3942
I also tried for the same transformation this syntax who gave me the same results :
cs2cs +proj=geocent +datum=WGS84 +units=m +no_defs +to +proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
If we add the geoid correction files the results are the same if we use these 2 syntax, so I use the short EPSG syntax in rtkbase (much easier to write) :
cs2cs +init=epsg:4328 +to +init=epsg:3942 +geoidgrids=/home/pi/geoid_correction_file.gtx
or
cs2cs +proj=geocent +datum=WGS84 +units=m +no_defs +to +proj=lcc +geoidgrids=/home/pi/geoid_correction_file.gtx +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Note that the absolute path to the geoid correction file have to be write else cs2cs won't find it.
Those 2 way to use cs2cs apparently give me the same results, can we keep the +init EPSG syntax in rtkbase ?
Please, change RTKLIB-2.4.2p13 package on RTKLIB-2.4.3b31 from https://github.com/rtklibexplorer/RTKLIB.git for support receiver Ublox ZED-F9P.
If it possible.
Regards.
Very simple but many method to do it :
1) Add software to rc.local
Run :
sed -i -e '$i \cd /home/pi/RTKLIB_Touchscreen_GUI/RTKBASE/ && RTKBASE\n' rc.local
2) Use system root LXDE autostart :
Run :
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Add this :
@/home/pi/RTKLIB_Touchscreen_GUI/RTKBASE/
@RTKBASE
nano ~/.config/lxsession/LXDE/autostart
@/home/pi/RTKLIB_Touchscreen_GUI/RTKBASE/
@RTKBASE
4) Add desktop entry to user config :
Run :
nano ~/.config/autostart/rtkbase
Copy paste entry below :
[Desktop Entry]
Name=RTKBASE
Type=Application
Comment=RTKLIB Touchscreen : graphic interface to use GNSS.
Exec=/home/pi/RTKLIB_Touchscreen_GUI/RTKBASE/RTKBASE
Make it executable :
chmod +x ~/.config/autostart/rtkbase
Best way for me is option 4 because I do not use LXDE
Source : http://www.raspberrypi-spy.co.uk/2014/05/how-to-autostart-apps-in-rasbian-lxde-desktop/ and my own knowledge
Hi !
I tested with a NS-HP, but it doesn't work.
If I change the settings in the conf files, it always wait for ubx data in the status window.
I use pre installed image in pi 3 but it not boot
I have the same problem if i use the firmware update in manual install.
When RTCM data is displayed on rover position window, it create a line too long for the screen, the code in affichesolution.cpp need something to set a max lenght for the line.
I was not able to build RTKbase with RTKlib 2.4.3b29, the library build with some errors like in 2.4.3b28, we get a fatal build error on RTKbase. rtkrcv.c and str2str.c have to be updated, first try with just adding the missing new values gives a running software with bugs: base mode crash we we stop the base and PPP can't get a fix. So I actually try to edit the original 2.4.3b29 rtkrcv and str2str with RTKbase modifications.
I still cannot build yet but most of the build errors are gone on rtkrcv.c
Hi.
I managed to successfully execute the ./build_rtkbase.sh after using the "chmod u+x build_rtkbase" command because it had not execution privileges. After that, I was willing to execute the RTKBASE.sh but it says that the command doesn't exist. I mannualy execute it, but the terminal just pop-up for like 0.5 sec and is closed again.
I'm using a Raspberry Pi 2 B+. I don't know what else to do.
Hi!
I have been following all the installation steps on a Raspberry pi 3B+. ./build_rtkbase.sh seems to build everything fine, but there is no RTKBASE in the folder that I can run (./RTKBASE). Any ideas why this might be happening?
Thanks!
Hello,
I like this project. It work very well !
I have an question:
Is it possible to make an autostart (e.g. Rover RTK Mode) when starting the raspberry ?
Hi Francklin,
I created a new branch which is the copy of the actual revision.
Please start development or modifying files in master branch.
What do you think about versionning and numerotation ? Starting at 1.0 is a good choice ?
I am running Linux 8.0 (jessie) on RPi 3 and I ran into an issue where the RTKBASE does not finish building. I followed the instructions on:
https://github.com/Francklin2/RTKLIB_Touchscreen_GUI/wiki/1---Installation
Followed the part Installation on Raspberry Pi 3
It exits/crash at the ./build_rtkbase.sh when its building the RTKBASE
I super appreciate any help I can get on this. Thank you.
Sorry but I'm not very experienced. Work only with L1 or even with L2 ???
Hello
I have a big issue on post processing L1 data with rtklib 2.43b31, after checking why rtkbase post processing was crashing with 2.43b31, I found that the issue came from rnx2rtkp wich doen't give solution in static mode (static and ppp-static), the other mode are working properly.
I tested with the same raw .ubx file from a L1 ublox M8T on a fresh rasbian strech install and on ubuntu x86_64 PC : same result, if you run rnx2rtkp from 2.42 you have a solution and nothing on 2.4.3, ppp static on L1 is officialy not supported on 2.43 with L1 only, it may be the same for post processing in (rtk) static mode.
It have to be tested with a L1/L2 GNSS to see if there is a solution in static mode with automatic post processing from rtkbase or rnx2rtkp, I don't have a L1/L2 GNSS, if someone can do the test or share a 35minutes L1/L2 raw observation file to try if it works.
Does someone else have the same issue, or have a idea to solve it?
Can we mix rtklib 2.43b31 and rnx2rtkp 2.42p13 for M8T users and still have a correct solution ?
Just finished installing on Rpi 2 v1.2 with latest stretch image. For this you need to temporary increase your swap, as the 433Mb ram(512-60gpu) and 100Mb swap are not sufficient.
Seen swap usage up-to 276 Mb while using the script. After increasing build was successful in about 1h40min.
Increase swap before installing:
pi@raspberrypi:~/Installer $ sudo su -c 'echo "CONF_SWAPSIZE=1024" > /etc/dphys-swapfile'
pi@raspberrypi:~/Installer $ sudo dphys-swapfile setup
want /var/swap=1024MByte
, checking existing: deleting wrong size file (104857600), generating swapfile ... of 1024MBytes
pi@raspberrypi:~/Installer $
pi@raspberrypi:~/Installer $ sudo dphys-swapfile swapon
pi@raspberrypi:~/Installer $
run installer:
pi@raspberrypi:~/Installer $ ./install.sh
Restore default swap when done:
pi@raspberrypi:~/Installer $ sudo su -c 'echo "CONF_SWAPSIZE=100" > /etc/dphys-swapfile'
pi@raspberrypi:~/Installer $ sudo dphys-swapfile setup
want /var/swap=100MByte
, checking existing: deleting wrong size file (1073741824), generating swapfile ... of 100MBytes
pi@raspberrypi:~/Installer $
pi@raspberrypi:~/Installer $ sudo dphys-swapfile swapon
pi@raspberrypi:~/Installer $
Is it a functionnality to close the software when clicking on Help button ?
I think it's not a good idea. Help come in foreground, when we close the pdf viewer launched by help button we should return to the software. Tell me what you do you think.
The workaround is very simple. Actually we have this code in mainwindow.cpp :
void MainWindow::OuvreHelp()
{
QDesktopServices::openUrl(QUrl("./doc/manual_RTKBASE.pdf"));
//this->hide();
qApp->quit();
}
We just have to comment the line 132 like this :
void MainWindow::OuvreHelp()
{
QDesktopServices::openUrl(QUrl("./doc/manual_RTKBASE.pdf"));
//this->hide();
//qApp->quit();
}
Tell me if you want I remove the quit finction
Under Rtkbase folder, there is a file called RTKBASE which in fact is a binary from a previous building.
We need to remove this file from source code.
RTKBASE binary should generated from build_rtkbase.sh script or make command
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.