| | ||
Fitur utama Frontend adalah:
Gambar lain tersedia di folder ./images.
Gambar siap flash tersedia untuk Orange Pi Zero, Orange Pi Zero 2, Orange Pi Zero 3 SBC : Armbian_RTKBase
Jika Anda menggunakan Raspberry Pi, berkat jancelin, Anda dapat mengunduh file iso siap flash di sini.
Hubungkan penerima gnss Anda ke raspberry pi/orange pi/....
Buka terminal dan:
cd ~
wget https://raw.githubusercontent.com/Stefal/rtkbase/master/tools/install.sh -O install.sh
chmod +x install.sh
sudo ./install.sh --all release
Ambil kopi, ini akan memakan waktu cukup lama. Skrip akan menginstal perangkat lunak yang diperlukan, dan jika Anda menggunakan receiver U-Blox ZED-F9P yang tersambung ke Usb, perangkat lunak tersebut akan terdeteksi dan disetel agar berfungsi sebagai stasiun pangkalan. Jika Anda tidak menggunakan F9P, Anda harus mengkonfigurasi receiver Anda secara manual (lihat langkah 7 dalam instalasi manual), dan memilih port yang benar dari halaman pengaturan.
Buka browser web ke http://ip_of_your_sbc
(skrip akan mencoba menampilkan alamat ip ini). Kata sandi bawaannya adalah admin
. Halaman pengaturan memungkinkan Anda memasukkan pengaturan Anda sendiri untuk koordinat dasar, kredensial ntrip, dan sebagainya...
Jika Anda belum mengetahui koordinat tepat dasar Anda, sekarang saatnya membaca salah satu tutorial berikut:
Skrip install.sh
dapat digunakan tanpa opsi --all
untuk membagi proses instalasi menjadi beberapa langkah berbeda:
################################
RTKBASE INSTALLATION HELP
################################
Bash scripts to install a simple gnss base station with a web frontend.
* Before install, connect your gnss receiver to raspberry pi/orange pi/.... with usb or uart.
* Running install script with sudo
Easy installation: sudo ./install.sh --all release
Options:
-a | --all <rtkbase source>
Install all you need to run RTKBase : dependencies, RTKlib, last release of Rtkbase, services,
crontab jobs, detect your GNSS receiver and configure it.
<rtkbase source> could be:
release (get the latest available release)
repo (you need to add the --rtkbase-repo argument with a branch name)
url (you need to add the --rtkbase-custom-source argument with an url)
bundled (available if the rtkbase archive is bundled with the install script)
-u | --user
Use this username as User= inside service unit and for path to rtkbase:
--user=john will install rtkbase in /home/john/rtkbase
-d | --dependencies
Install all dependencies like git build-essential python3-pip ...
-r | --rtklib
Get RTKlib 2.4.3b34g from github and compile it.
https://github.com/rtklibexplorer/RTKLIB/tree/b34g
-b | --rtkbase-release
Get last release of RTKBase:
https://github.com/Stefal/rtkbase/releases
-i | --rtkbase-repo <branch>
Clone RTKBASE from github with the <branch> parameter used to select the branch.
-j | --rtkbase-bundled
Extract the rtkbase files bundled with this script, if available.
-f | --rtkbase-custom <source>
Get RTKBASE from an url.
-t | --unit-files
Deploy services.
-g | --gpsd-chrony
Install gpsd and chrony to set date and time
from the gnss receiver.
-e | --detect-gnss
Detect your GNSS receiver. It works only with receiver like ZED-F9P.
-n | --no-write-port
Doesn'''t write the detected port inside settings.conf.
Only relevant with --detect-gnss argument.
-c | --configure-gnss
Configure your GNSS receiver.
-s | --start-services
Start services (rtkbase_web, str2str_tcp, gpsd, chrony)
-h | --help
Display this help message.
Nah, jika Anda memang menginginkannya, mari kita lakukan instalasi manual dengan beberapa penjelasannya:
Instal dependensi dengan sudo ./install.sh --dependencies
, atau lakukan secara manual dengan:
sudo apt update
sudo apt install -y git build-essential pps-tools python3-pip python3-dev python3-setuptools python3-wheel libsystemd-dev bc dos2unix socat zip unzip pkg-config psmisc
Instal RTKLIB dengan sudo ./install.sh --rtklib
, atau:
dapatkan RTKlib
cd ~
wget -qO - https://github.com/rtklibexplorer/RTKLIB/archive/refs/tags/b34j.tar.gz | tar -xvz
kompilasi dan instal str2str:
Secara opsional, Anda dapat mengedit baris CTARGET di makefile di RTKLIB/app/str2str/gcc
cd RTKLIB/app/str2str/gcc
nano makefile
Untuk SBC Orange Pi Zero, saya menggunakan:
CTARGET = -mcpu=cortex-a7 -mfpu=neon-vfpv4 -funsafe-math-optimizations
Kemudian Anda dapat mengkompilasi dan menginstal str2str:
make
sudo make install
Kompilasi/instal rtkrcv
dan convbin
dengan cara yang sama seperti str2str
.
Dapatkan rilis rtkbase terbaru sudo ./install.sh --rtkbase-release
, atau:
wget https://github.com/stefal/rtkbase/releases/latest/download/rtkbase.tar.gz -O rtkbase.tar.gz
tar -xvf rtkbase.tar.gz
Jika mau, Anda dapat mengkloning repositori ini untuk mendapatkan kode terbaru.
Instal persyaratan rtkbase:
python3 -m pip install --upgrade pip setuptools wheel --extra-index-url https://www.piwheels.org/simple
python3 -m pip install -r rtkbase/web_app/requirements.txt --extra-index-url https://www.piwheels.org/simple
Instal layanan systemd dengan sudo ./install.sh --unit-files
, atau lakukan secara manual dengan:
rtkbase/unit/
) untuk mengganti {user}
dengan nama pengguna Anda.archive_and_clean.sh
akan melakukannya untuk Anda. Pengaturan default memampatkan data hari sebelumnya dan menghapus semua arsip yang lebih lama dari 90 hari. Untuk mengotomatiskan 2 tugas ini, aktifkan rtkbase_archive.timer
. Nilai default menjalankan skrip setiap hari pada pukul 04.00./etc/systemd/system/
lalu aktifkan server web, str2str_tcp dan rtkbase_archive.timer: sudo systemctl daemon-reload
sudo systemctl enable rtkbase_web
sudo systemctl enable str2str_tcp
sudo systemctl enable rtkbase_archive.timer
Instal dan konfigurasikan chrony dan gpsd dengan sudo ./install.sh --gpsd-chrony
, atau:
Instal chrony dengan sudo apt install chrony
lalu tambahkan parameter ini di file chrony conf (/etc/chrony/chrony.conf):
refclock SHM 0 refid GPS precision 1e-1 offset 0.2 delay 0.2
Edit file unit kroni. Anda harus mengatur After=gpsd.service
Instal rilis gpsd >= 3.2 atau rilis tersebut tidak akan berfungsi dengan F9P. File conf-nya harus berisi:
# Devices gpsd should connect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="tcp://localhost:5015"
# Other options you want to pass to gpsd
GPSD_OPTIONS="-n -b"
Edit file unit gpsd. Anda seharusnya memiliki sesuatu seperti ini di bagian "[Unit]":
[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket
BindsTo=str2str_tcp.service
After=str2str_tcp.service
sudo systemctl daemon-reload
sudo systemctl enable chrony
sudo systemctl enable gpsd
Hubungkan receiver gnss Anda ke raspberry pi/orange pi/.... dengan usb atau uart, dan periksa port com mana yang digunakannya (ttyS1, ttyAMA0, yang lain...). Jika itu adalah receiver U-Blox F9P (usb atau uart) atau Septentrio Moses-X5 (usb), Anda dapat menggunakan sudo ./install.sh --detect-gnss
. Tuliskan hasilnya, Anda mungkin membutuhkannya nanti.
Jika Anda belum mengonfigurasi penerima gnss, Anda harus mengaturnya agar mengeluarkan data mentah:
Jika itu U-Blox ZED-F9P (usb atau uart), atau Septentrio Moses-X5 (usb) Anda dapat menggunakan
sudo ./install.sh --detect-gnss --configure-gnss
Jika Anda perlu menggunakan alat konfigurasi dari komputer lain (seperti U-center), Anda dapat menggunakan socat
:
sudo socat tcp-listen:128,reuseaddr /dev/ttyS1,b115200,raw,echo=0
Ubah nilai ttyS1 dan 115200 jika diperlukan. Kemudian Anda dapat menggunakan koneksi jaringan di U-center dengan alamat ip stasiun pangkalan dan port n°128.
Sekarang Anda dapat memulai layanan dengan sudo ./install.sh --start-services
, atau:
sudo systemctl start rtkbase_web
sudo systemctl start str2str_tcp
sudo systemctl start gpsd
sudo systemctl start chrony
sudo systemctl start rtkbase_archive.timer
Semuanya harus siap, sekarang Anda dapat membuka browser web ke alamat ip stasiun pangkalan Anda.
RTKBase menggunakan beberapa instance str2str
RTKLIB yang dimulai dengan run_cast.sh
sebagai layanan systemd. run_cast.sh
mendapatkan pengaturannya dari settings.conf
str2str_tcp.service
adalah contoh utama. Itu terhubung ke penerima gnss dan menyiarkan data mentah pada TCP untuk semua layanan lainnya.str2str_ntrip_A.service
mendapatkan data dari instance utama, mengonversi data menjadi rtcm dan mengalirkannya ke kastor Ntrip.str2str_ntrip_B.service
ambil data dari instance utama, ubah data menjadi rtcm dan alirkan ke kastor Ntrip lain.str2str_local_ntrip_caster.service
mendapatkan data dari instance utama, mengonversi data menjadi rtcm, dan bertindak sebagai kastor Ntrip lokal.str2str_rtcm_svr.service
dapatkan data dari instance utama, ubah data menjadi rtcm dan alirkan ke klienstr2str_rtcm_serial.service
mendapatkan data dari instance utama, mengonversi data menjadi rtcm dan mengalirkannya ke port serial (tautan radio, atau periferal lainnya)str2str_file.service
mendapatkan data dari instance utama, dan mencatat data ke file. GUI web tersedia saat layanan rtkbase_web
berjalan.
Stasiun pangkalan offline tanpa penerima U-Blox, cara mendapatkan tanggal dan waktu: Jika gpsd tidak dapat memahami data mentah dari penerima gnss Anda, Anda dapat mengaktifkan layanan raw2nmea. Ini akan mengkonversi data mentah ke port tcp yang diatur di settings.conf
(nmea_port) dan gpsd akan menggunakannya untuk memberi makan chrony. systemctl enable --now rtkbase_raw2nmea
Gambar udara: Latar belakang peta default adalah OpenStreetMap, namun Anda dapat beralih ke lapisan udara seluruh dunia jika Anda memiliki kunci Maptiler. Untuk mengaktifkan lapisan ini, buat akun gratis di Maptiler, buat kunci dan tambahkan ke settings.conf
di dalam bagian [general]
: maptiler_key=your_key
Opsi penerima: str2str menerima beberapa opsi yang bergantung pada penerima. Jika Anda menggunakan U-Blox, parameter -TADJ=1
direkomendasikan sebagai solusi untuk nilai kedua yang tidak dibulatkan dalam keluaran Rtcm dan Ntrip. Anda dapat memasukkan parameter ini di dalam formulir pengaturan. Informasi lebih lanjut di sini dan di sini.
Jika Anda ingin menginstal RTKBase dari cabang dev, Anda dapat melakukannya dengan perintah berikut:
cd ~
wget https://raw.githubusercontent.com/Stefal/rtkbase/dev/tools/install.sh -O install.sh
chmod +x install.sh
sudo ./install.sh --all repo --rtkbase-repo dev
Penerima gnss dengan output timepulse adalah jam stratum 0 yang sangat akurat sehingga stasiun pangkalan gnss Anda dapat bertindak sebagai rekan ntp strata 1 untuk jaringan lokal Anda dan/atau kumpulan ntp. Ada beberapa langkah untuk melakukan ini:
Hubungkan output timepulse + GND ke beberapa input GPIO di SBC Anda.
Konfigurasikan input ini sebagai PPS di sistem operasi Anda.
Contoh Raspberry Pi:
dtoverlay=pps-gpio,gpiopin=18
pada baris baru. '18' adalah input yang digunakan untuk timepulse.pps-gpio
pada baris baru, jika belum ada.Contoh Orange Pi Zero, di dalam /boot/armbianEnv.txt:
pps-gpio
ke baris overlays
.param_pps_pin=PA19
<- ubah 'PA19' ke input Anda.Setel gpsd dan chrony untuk menggunakan PPS
gpsd: beri komentar pada baris DEVICE
di /etc/defaut/gpsd
dan batalkan komentar #DEVICES="tcp:\127.0.0.1:5015 devpps0
. Edit port jika Anda menggunakan layanan rtkbase_raw2nmea.
chrony: di dalam /etc/chrony/chrony.conf
hapus komentar pada baris refclock pps dan tambahkan noselect ke 'refclock SHM 0`. Anda harus memiliki sesuatu seperti ini:
refclock SHM 0 refid GPS precision 1e-1 offset 0 delay 0.2 noselect
refclock PPS /dev/pps0 refid PPS lock GPS
chronyc sources -v
Anda harus membaca sesuatu seperti ini, perhatikan '*' sebelum 'PPS': basegnss@orangepizero:~$ chronyc sources -v
210 Number of sources = 6
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| | | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#? GPS 0 4 377 17 +64ms[ +64ms] +/- 200ms
#* PPS 0 4 377 14 +363ns[ +506ns] +/- 1790ns
^- ntp0.dillydally.fr 2 6 177 16 -12ms[ -12ms] +/- 50ms
^? 2a01:e35:2fba:7c00::21 0 6 0 - +0ns[ +0ns] +/- 0ns
^- 62-210-213-21.rev.poneyt> 2 6 177 17 -6488us[-6487us] +/- 67ms
^- kalimantan.ordimatic.net 3 6 177 16 -27ms[ -27ms] +/- 64ms
Distro dasar Debian >= 11 (Bullseye) Python >= 3.8
Lihat log perubahan
RTKBase dilisensikan di bawah AGPL 3 (lihat file LISENSI).
RTKBase menggunakan beberapa bagian perangkat lunak lain:
RTKBase menggunakan ubin OpenStreetMap. Terima kasih kepada semua kontributor!