This repository is the implementation of the GNSS weighted least square (WLS) positioning. The input is the pseudorange measurements from multiple satellites. The states to be estimated are the position (x, y, z) of the GNSS receiver in ECEF frame and the receiver clock bias.
Authors: Weisong Wen, Li-ta Hsu from the Intelligent Positioning and Navigation Laboratory, The Hong Kong Polytechnique University
Measurement model of pseudorange measurements. Software flowchart of GNSS positioning.Ubuntu 64-bit 16.04. ROS Kinetic. ROS Installation
# CMake
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
# Novatel msgs
sudo apt-get install ros-kinetic-novatel-msgs
Follow Ceres Installation.
Clone the repository and catkin_make:
mkdir NavCodeMonitor/src
cd ~/NavCodeMonitor/src
git clone https://github.com/weisongwen/NavCodeMonitor.git
cd ../
# if you fail in the last catkin_make, please source and catkin_make again
catkin_make
source ~/NavCodeMonitor/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 NavCodeMonitor is validated using static dataset collected near TST of Hong Kong. Several parameters are as follows:
- GPS second span: 270147 to 270332
- satellite system: GPS/BeiDou (you can choose GPS only or GPS/BeiDou fusion)
source ~/NavCodeMonitor/devel/setup.bash
cd ~/NavCodeMonitor
# read GNSS raw data and publish as ROS topic
rosrun global_fusion spp_node
Related Papers: (paper is not exactly same with code)
-
Wen, Weisong, Guohao Zhang, and Li-Ta Hsu. "Exclusion of GNSS NLOS receptions caused by dynamic objects in heavy traffic urban scenarios using real-time 3D point cloud: An approach without 3D maps." Position, Location and Navigation Symposium (PLANS), 2018 IEEE/ION. IEEE, 2018.
-
Wen, W., Zhang, G., Hsu, Li-Ta (Presenter), Correcting GNSS NLOS by 3D LiDAR and Building Height, ION GNSS+, 2018, Miami, Florida, USA.
if you use GraphGNASLib for your academic research, please cite our related papers