All Projects → wuzhengy → gpsCalibration

wuzhengy / gpsCalibration

Licence: Apache-2.0 license
GPS calibration using points cloud slam and other sensors

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to gpsCalibration

sweep-sdk
Sweep SDK
Stars: ✭ 88 (+10%)
Mutual labels:  lidar
gedi tutorials
GEDI L3 and L4 Tutorials
Stars: ✭ 61 (-23.75%)
Mutual labels:  lidar
CarND-Extended-Kalman-Filter-P6
Self Driving Car Project 6 - Sensor Fusion(Extended Kalman Filter)
Stars: ✭ 24 (-70%)
Mutual labels:  lidar
pole-localization
Online Range Image-based Pole Extractor for Long-term LiDAR Localization in Urban Environments
Stars: ✭ 107 (+33.75%)
Mutual labels:  lidar
LiDAR fog sim
LiDAR fog simulation
Stars: ✭ 101 (+26.25%)
Mutual labels:  lidar
Python-for-Remote-Sensing
python codes for remote sensing applications will be uploaded here. I will try to teach everything I learn during my projects in here.
Stars: ✭ 20 (-75%)
Mutual labels:  lidar
pcl localization ros2
ROS2 package of 3D LIDAR-based Localization using PCL (Not SLAM)
Stars: ✭ 74 (-7.5%)
Mutual labels:  lidar
whiteboxgui
An interactive GUI for WhiteboxTools in a Jupyter-based environment
Stars: ✭ 94 (+17.5%)
Mutual labels:  lidar
continuous-fusion
(ROS) Sensor fusion algorithm for camera+lidar.
Stars: ✭ 26 (-67.5%)
Mutual labels:  lidar
PointPainting
This repository is an open-source PointPainting package which is easy to understand, deploy and run!
Stars: ✭ 152 (+90%)
Mutual labels:  lidar
camera-pose-estimation
Given a map data (image + lidar), estimate the 6 DoF camera pose of the query image.
Stars: ✭ 23 (-71.25%)
Mutual labels:  lidar
mola-fe-lidar
MOLA module: Front-end for point-cloud sensors based on generic ICP algorithms. LiDAR odometry and loop closure.
Stars: ✭ 16 (-80%)
Mutual labels:  lidar
FLAT
[ICCV2021 Oral] Fooling LiDAR by Attacking GPS Trajectory
Stars: ✭ 52 (-35%)
Mutual labels:  lidar
MINet
Multi-scale Interaction for Real-time LiDAR Data Segmentation on an Embedded Platform (RA-L)
Stars: ✭ 28 (-65%)
Mutual labels:  lidar
EviLOG
TensorFlow training pipeline and dataset for prediction of evidential occupancy grid maps from lidar point clouds.
Stars: ✭ 30 (-62.5%)
Mutual labels:  lidar
LiDAR-GTA-V
A plugin for Grand Theft Auto V that generates a labeled LiDAR point cloud from the game environment.
Stars: ✭ 127 (+58.75%)
Mutual labels:  lidar
ndtpso slam
ROS package for NDT-PSO, a 2D Laser scan matching algorithm for SLAM
Stars: ✭ 32 (-60%)
Mutual labels:  lidar
opensource slam noted
open source slam system notes
Stars: ✭ 119 (+48.75%)
Mutual labels:  lidar
teraranger
Ros nodes for single TeraRanger sensors
Stars: ✭ 19 (-76.25%)
Mutual labels:  lidar
lidar-sync-mimics-gps
Open-Source LiDAR Time Synchronization System by Mimicking GPS-clock
Stars: ✭ 52 (-35%)
Mutual labels:  lidar

iMorpheus.ai - high availability sub-meter precise GPS

Through algorithm fusion of multiple data sources from different sensors such as lidar, radar, camera, gps, imu and point cloud, iMorpheus.ai brings about an high availability precision GPS measurement to outdoor robotics developer. iMorpheus integrate a number of advanced algorithm such as slam, kalman filter, ICP, feature selection and Gaussian Process.

We believe precise GPS signal should obtained by computing from cloud rather than measure the satellite, and soly software and cloud can solve the problem rather than expensive hardware. So that we committed into only software to solve the problem.

Copyrights

License

Current Version - alpha

The alpha version is a software package operate under off-line mode and using point clould and GPS to give you accurate GPS. Each GPS signal produced also comes with confidence level.

Installation Environment

1. Operating System

Prefer Ubuntu 14.04, Trusty

2. Robot Operating System - ROS

2.1 About ROS

ROS provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

2.2 Install ROS from

http://wiki.ros.org/cn/indigo/Installation/Ubuntu

2.3 Learn more about ROS from

http://wiki.ros.org/ROS/Tutorials

2.4 iMorpheus Perferred Version

ROS Indigo

3. Point Cloud Library - PCL

3.1 About PCL

PCL is a large scale, open source project for 2D/3D image and point cloud processing.

3.2 Install PCL from

http://pointclouds.org/downloads/

3.3 Learn more about PCL from

http://pointclouds.org/documentation/

3.4 iMorpheus Perferred Version

pcl-1.7.0

4.EIGEN

4.1 About EIGEN

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

4.2 Install EIGEN from

http://eigen.tuxfamily.org/index.php?title=Main_Page

4.3 Learn more about EIGEN from

http://eigen.tuxfamily.org/index.php?title=Main_Page

4.4 iMorpheus Perferred Version

Eigen-3.3

Module description

1. Modules

gpsCalibration has three modules include GPS, LOAM and Calibration.

1.1 GPS module

This module processes GPS data and transforms them into local coordinate system.

1.2 LOAM module

LOAM, Laser Odometry and Mapping, is a real-time method for state estimation and mapping using 3D lidar. The program contains two major threads running in parallel.

The "odometry" thread computes motion of the lidar between two sweeps, at a higher frame rate. It also removes distortion in the point cloud caused by motion of the lidar. The "mapping" thread takes the undistorted point cloud and incrementally builds a map, while simultaneously computes pose of the lidar on the map at a lower frame rate. The lidar state estimation is combination of the outputs from the two threads.

To learn more about LOAM, please refer to paper.

This package is a simple modified copy of loam_velodyne GitHub repository from laboshinl, if you want to get laboshinl, pleaser go to: https://github.com/laboshinl/loam_velodyne

We modified some codes in laserOdometry.cpp and scanRegistration.cpp to match the data generated by the lidar we use, and added some codes on transformMaintenance.cpp to get lidar's track with timestamp and map. Both are in txt format.

1.3 Calibration module

This module calls GPS module and LOAM module and use their data as input.

We use timestamped point set registration to match GPS and LOAM tracks in two steps. First, we calculate long LOAM segments and find their least absolute deviations with GPS track by means of iteratively re-weighted least squares. Second, the weights from the first step are used to register overlapping short LOAM segments with GPS track by means of weighted least squares.

The final output is calibrated GPS track. We only work on 2D GPS tracks in this version. Altitudes are set to a constant for the purpose of demonstration in Google Earth.

1.4 Flowchart

image

How to compile and run the project

1.Make sure that you have the message bag. it includes follow message types sensor_msgs/PointCloud2. and GPS coordinates matched with your run trail although GPS is not accurate and not continuous in time. If you don’t have lidar or GPS data, don’t worry, we have some data in advance for you to have a try.

2.Open the globalConfig.py in directory "iMorpheusAI/" set needed file directory correctly.

3.In directory "iMorpheusAI", run command :

$ catkin_make 
$ source setup.sh
$ mkdir data
$ cd data
$ touch bag_list.txt
  *add the point cloud data bag path*

4.Okay, you can run ./run.py.

5.Finally, you get a global position system coordinates matched with your run trail. It is accurate and reliable!

About system input and output

1. Input

1.1 .bag

A bag is a file format in ROS for storing ROS message data.

1.2 GPS

The GPSRMC is protocol of GPSRMC's communication, and the format is: $GPRMC,085223.136,A,3957.6286,N,11619.2078,E,0.06,36.81,180908,,,A*57

2. Output

The results of the program are stored in /data. We provide calibrated GPS in kml formats. If you want to see GPS track in Google Earth, you need to use kml. You can find Google Earth here: https://developers.google.com/kml/?hl=en-US.

3. Example

3.1 data download

3.2 demo results

image image

See More

Questions

You can ask any question here or send us emails.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].