This repository is the implementation of the open-sourced package, the GraphGNSSLib, which makes use of the factor graph optimization (FGO) to perform the postprocessing of GNSS positioning and real-time kinematic (RTK) positioning. In this package, measurements from the historical and current epochs are structured into a factor graph which is then solved by non-linear optimization. The package is based on C++ which is compatible with the robot operation system (ROS) platform. Meanwhile, this package combines the RTKLIB (version: 2.4.3 b33) to read/decode the GNSS RINEX files. Users from Robotics field can easily have access to GNSS raw data for further study. We are still improving the code readibility with the hope that this package can benefit the research community.
Important Notes:
Authors: Weisong Wen, Li-ta Hsu from the Intelligent Positioning and Navigation Laboratory, The Hong Kong Polytechnic University
Related Papers: (paper is not exactly same with code)
if you use GraphGNSSLib for your academic research, please cite our related papers
Software flowchart of GraphGNSSLib, more information please refer to our paper.
Ubuntu 64-bit 16.04, ROS Kinetic. ROS Installation. We only test it on Ubuntu 16.04 with ROS Kinetic.
Follow the following instructions to install Ceres-solver instead of using the latest version of Ceres-solver.
Step 1: Download the Ceres-solver which is compatible with GraphGNSSLib.
Step 2: make and install
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# make Ceres-solver
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver
sudo make -j4
sudo make test
sudo make install
sudo apt-get install ros-kinetic-novatel-msgs
Clone the repository and catkin_make:
mkdir GraphGNSSLib/src
cd ~/GraphGNSSLib/src
mkdir result
git clone https://github.com/weisongwen/GraphGNSSLib.git
cd ../
# if you fail in the last catkin_make, please source and catkin_make again
catkin_make
source ~/GraphGNSSLib/devel/setup.bash
catkin_make
(if you fail in this step, try to find another computer with clean system or reinstall Ubuntu and ROS)
The GNSS positioning via FGO is validated using static dataset collected near TST of Hong Kong. Several parameters are as follows:
~/GraphGNSSLib/trajectory_psr_dop_fusion.csv
please enable the following in rtklib.h
#define RTK_FGO 0
source ~/GraphGNSSLib/devel/setup.bash
# read GNSS raw data and publish as ROS topic
# we provide several datasets, enjoy it!
roslaunch global_fusion dataublox_TST20190428.launch
# run pseudorange and doppler fusion
roslaunch global_fusion psr_doppler_fusion.launch
Trajectories of three methods (GNSS positioning using WLS with the red curve, GNSS positioning using EKF with the green curve, and GNSS positioning using FGO with blue curve throughout the test. The x-axis and y-axis denote the east and north directions, respectively
The GNSS RTK-FGO is validated using static dataset collected near TST of Hong Kong. Several parameters are as follows:
~/GraphGNSSLib/FGO_trajectoryllh_pdrtk.csv
please enable the following in rtklib.h
#define RTK_FGO 1
source ~/GraphGNSSLib/devel/setup.bash
# read GNSS raw data and publish as ROS topic
roslaunch global_fusion dataublox_TST20200603.launch
# run GNSS RTK
roslaunch global_fusion psr_doppler_car_rtk.launch
Trajectories of three methods (RTK-EKF with the red dots and RTK-FGO with the blue dots throughout the test. The x-axis and y-axis denote the east and north directions, respectively.
We use Ceres-solver for non-linear optimization and RTKLIB for GNSS data decoding, etc. Some functions are originated from VINS-mono. The rviz_satellite is used for visualization. If there is any thing inappropriate, please contact me through 17902061r@connect.polyu.hk (Weisong WEN).
The source code is released under GPLv3 license. We are still working on improving the code reliability. For any technical issues, please contact Weisong Wen 17902061r@connect.polyu.hk. For commercial inquiries, please contact Li-ta Hsu lt.hsu@polyu.edu.hk.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。