Giter Site home page Giter Site logo

jabastien / touchrtkstation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from francklin2/touchrtkstation

0.0 1.0 0.0 1.29 MB

Single-Frequency RTK-GNSS Rover/Base Station based on RTKLIB

License: MIT License

Python 98.98% Batchfile 0.68% Shell 0.34%

touchrtkstation's Introduction

TouchRTKStation

日本語で説明はこちら

Introduction

  • TouchRTKStation is an open-source single-frequency RTK-GNSS rover and base station project
  • Single frequency GNSS antenna/receiver+ Raspberry Pi + Touchscreen + RTKLIB + Case

Functions

Rover station

  • GNSS raw data and RTK-GNSS solutions can be stored in USB memory
  • Single point positioning, Kinematic RTK-GNSS, and Static RTK-GNSS are supported

Base station

  • GNSS raw data can be stored in USB memory
  • TCP server, Ntrip Server, and Ntrip caster functions can be used to transmit GNSS data to a rover station
  • Wireless communication devices such as ZigBee can be used

Features

  • Using RTKLIB for processing GNSS data
  • This project is inspired by RTKLIB_Touchscreen_GUI
  • To compared with RTKLIB_Touchscreen_GUI
    • More smaller (5 inch => 4 inch)
    • Simple implementation using RTKLIB applications (rtkrcv and str2str)
    • GUI is developed by PyQT and easily customizable

How to assemble

Parts

  • Case: Create using 3D printer (STL data is here)
  • GNSS receiver: u-blox M8T CSG shop
  • Mini-USB cable:
  • GNSS antenna: Tallysman TW3710 or TW3740 (GPS+GLO+BDS L1) Digi-Key(TW3710) or Digi-Key(TW3710)
  • Raspberry Pi 3:
  • micro SD card:
  • TNC(P)-SMA(J) connector:
  • SMA(P)-SMA(P) cable:
  • 4inch Display: Waveshare 4inch_RPi_LCD Waveshare
  • DC-DC converter: 7.4V to 5V Strawberry Linux, Amazon
  • micro-USB cable:
  • Battery holder: Lilliput Battery Plate for Sony Battery F-970 eBay, Amazon
  • Battery: Sony NP-F550/F570 (2900mAh) or NP-F750/F770 (5000mAh) Amazon
  • 5/8 inch nut:
  • Ground plane:

Setup (Hardware)

  • Modify the battery holder

  • Open and directly connect to the DC-DC converter

  • Mount the battery holder to the main case

  • Mount Raspberry Pi to the main case

  • Mount the Tallysman GNSS antenna to the top plate

  • Connect the GNSS antenna cable to the GNSS receiver.

  • Connect the USB cables

  • Mount the touch screen and put the top plate to the main case

Setup (Software)

Install Raspbian

Install TouchRTKStation

  1. Connect the Raspberry Pi to the internet.
  2. Download the TouchRTKStation
    $ cd /home/pi/
    $ git clone https://github.com/taroz/TouchRTKStation.git
  3. Connect the 4inch touch screen to the Raspberry Pi. Run Install.sh
    $ cd /home/pi/TouchRTKStation/install
    $ sudo sh Install.sh
  4. 4inch touch screen is enabled. If you want to return back to HDMI output,
    $ cd LCD-show
    ./LCD-hdmi
  5. Run TouchRTKStation
    $ sudo python3 /home/pi/TouchRTKStation/TouchRTKStation.py
  6. If you want to quit the TouchRTKStation, use Alt+F4
  7. If you want to automatically start the TouchRTKStation
    $ cd /home/pi/TouchRTKStation/install
    $ sudo sh Autostart.sh

How to use

  1. Insert a USB memory to the Raspberry Pi. GNSS raw data (.ubx file) is stored in the USB memory. In the rover mode, positioning results (.pos file) are also stored. If there is no USB memory, GNSS data are stored in the home directory of the Raspberry Pi.
  2. To connect NTRIP caster or NTRIP server in the rover mode, or to connect a rover in the base mode, a network connection via WiFI is needed. The wireless communication device such as ZigBee dongle, which can be recognize as USB serial port, is also can be used.

Rover mode

  1. Select “Rover” tab. Select “Single”,”RTK(Static)”, or “RTK(Kinematic)
  2. Push “Config”. For RTK-GNSS, setup the input stream information in the “Correction1” tab. If ZigBee or any wireless communication device, which are recognized as USB serial port, is used to receive the GNSS data, setup the input stream information in “Correction2” tab. In the “BasePos” tab, input the base sanitation position.
  3. Push “Start”. Positioning results will be shown after GNSS ephemeris data are decoded.
  4. Push “Stop”. GNSS Raw data and positioning result are stored in the USB memory.

Base mode

  1. Select “Base” tab.
  2. Push “Config”. To broadcast GNSS correction data, setup a output stream information in the “Output1” tab. If ZigBee or any wireless communication device, which are recognized as USB serial port, is used to transmit the GNSS data, setup the output stream information in “Output2” tab. If you want to convert the UBX format to the RTCM format, input the base station position in "BasePos” tab.
  3. Push “Start”. GNSS data will be stored or broadcasted.
  4. Push “Stop”. GNSS Raw data are stored in the USB memory.

Configure default settings

Modify L26 to L97 in "TouchRTKStation.py"

# ublox command file for Base/Rover mode
ubxcmd = dirtrs+'/conf/ubx_m8t_bds_raw_1hz.cmd'

# Default Base position configuration
basepos_type = (['LLH','RTCM']) # for Rover
basepos_itype = 1 # for Rover
basepos_lat = '35.0'
basepos_lon = '139.0'
basepos_hgt = '50.0'

# Default Input stream configration
input_iport= 2         # ttyACM0
input_ibitrate = 9     # 115200 bps
input_ibytesize = 1    # 8 bit
input_iparity = 0      # None
input_istopbits = 0    # 1 bit
input_iflowcontrol = 0 # None

# Default Correction stream configration
corr_flag = False
corr_type = (['NTRIP Client','TCP Client'])
corr_itype = 0
corr_format = (['RTCM2','RTCM3','BINEX','UBX'])
corr_iformat = 1
corr_user = 'user'
corr_addr = 'test.net'
corr_port = '2101'
corr_pw = 'password'
corr_mp = 'RTCM'

# Default Correction(Serial) stream configration
corr2_flag = False
corr2_format = (['RTCM2','RTCM3','BINEX','UBX'])
corr2_iformat = 3
corr2_iport= 4         # ttyUSB0
corr2_ibitrate = 9     # 115200 bps
corr2_ibytesize = 1    # 8 bit
corr2_iparity = 0      # None
corr2_istopbits = 0    # 1 bit
corr2_iflowcontrol = 0 # None

# Default Log/Solution stream configration
log_flag = True
sol_flag = True
dir = glob.glob('/media/*/*/') # Find USB memory
if len(dir)==0:
    dir = [dirtrs+'/']
sol_filename = dir[0]+'%Y-%m%d-%h%M%S.pos'
log_filename = dir[0]+'%Y-%m%d-%h%M%S.ubx'

# Default Output stream configration
output_flag = False
output_type=(['TCP Server','NTRIP Server','NTRIP Caster'])
output_itype = 0    # TCP Server
output_format = (['UBX','RTCM3'])
output_iformat = 0  # UBX
output_user = 'user'
output_addr = 'test.net'
output_port = '2101'
output_pw = 'password'
output_mp = 'TRS'

# Default Output(Serial) stream configration
output2_flag = False
output2_format = (['UBX','RTCM3'])
output2_iformat = 0      # UBX
output2_iport= 4         # ttyUSB0
output2_ibitrate = 9     # 115200 bps
output2_ibytesize = 1    # 8 bit
output2_iparity = 0      # None
output2_istopbits = 0    # 1 bit
output2_iflowcontrol = 0 # None

Configure positioning settings

Modify the "xxxx.conf" file of RTKLIB. Configuration files are in the following directory

$ cd /home/pi/TouchRTKStation/conf/

  • Single point positioning: /home/pi/TouchRTKStation/conf/single.conf
  • RTK-GNSS (Kinematic): /home/pi/TouchRTKStation/conf/kinematic.conf
  • RTK-GNSS(Static): /home/pi/TouchRTKStation/conf/static.conf

touchrtkstation's People

Contributors

francklin2 avatar taroz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.