# 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.
## 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](http://www.frc.ri.cmu.edu/%7Ejizhang03/Publications/RSS_2014.pdf).
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](https://github.com/iMorpheusAI/gpsCalibration/raw/master/demo/flowchart.jpg)
## 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.*
* [point cloud data](http://www.imorpheus.ai/download/dataForDemo/bagDemo)
* [GPS data](http://www.imorpheus.ai/download/dataForDemo/original_gps_data)
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
* [point cloud data](http://www.imorpheus.ai/download/dataForDemo/bagDemo)
* [GPS data](http://www.imorpheus.ai/download/dataForDemo/original_gps_data)
#### 3.2 demo results
![image](https://github.com/iMorpheusAI/gpsCalibration/raw/master/demo/demo1.png)
![image](https://github.com/iMorpheusAI/gpsCalibration/raw/master/demo/demo2.png)
##### [See More](http://www.imorpheus.ai/demo/)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SLAM_使用点云SLAM+其他传感器进行GPS校准_优质项目实战.zip (87个子文件)
SLAM_使用点云SLAM+其他传感器进行GPS校准_优质项目实战
src
CMakeLists.txt 610B
lidar_slam
CMakeLists.txt 83B
.vscode
settings.json 216B
tasks.json 3KB
launch.json 717B
src
loam
include
loam_velodyne
common.h 2KB
CMakeLists.txt 1KB
src
laserOdometry.cpp 47KB
laserMapping.cpp 49KB
transformMaintenance.cpp 15KB
scanRegistration.cpp 29KB
LICENSE 2KB
rviz_cfg
loam_velodyne.rviz 6KB
package.xml 1KB
launch
loam.launch 422B
rviz.launch 234B
README.md 1KB
CMakeLists.txt 111B
input_data
CMakeLists.txt 7KB
src
input_data.cpp 15KB
package.xml 2KB
launch
input_data.launch 343B
README.md 760B
README.md 2KB
.catkin_workspace 98B
track_icp
CMakeLists.txt 715B
src
track_icp.cpp 27KB
package.xml 2KB
launch
track_icp.launch 403B
README.md 1KB
icp_weight_coe
CMakeLists.txt 82B
src
CMakeLists.txt 93B
icp_weight_coe
CMakeLists.txt 7KB
src
icp_weight_coe.cpp 5KB
package.xml 2KB
launch
icp_weight_coe.launch 384B
README.md 1KB
gps_process
include
color.h 2KB
interpolation_by_time.h 3KB
Gaussion_transform.h 5KB
parse_config.h 5KB
UTM_transform.h 5KB
WGS84_parameter.h 418B
CMakeLists.txt 620B
src
local_to_GPS.cpp 5KB
GPS_to_local.cpp 17KB
create_KML.cpp 2KB
README.md 2KB
config
kml_config.xml 266B
package.xml 2KB
short_distance_track_process
CMakeLists.txt 201B
src
results_merge
include
average.h 9KB
CMakeLists.txt 7KB
src
merge.cpp 4KB
package.xml 2KB
short_distance_track_icp
include
short_distance_track_icp.hpp 6KB
CMakeLists.txt 7KB
src
short_distance_track_icp.cpp 3KB
package.xml 2KB
README.md 1004B
data_preprocess
CMakeLists.txt 7KB
src
prefile.cpp 3KB
package.xml 2KB
.rosinstall 75B
README.md 1KB
.catkin_workspace 98B
msg
IMLocalXYZT.msg 63B
IMTrack.msg 20B
long_distance_track_process
CMakeLists.txt 82B
src
CMakeLists.txt 106B
long_distance_track_process
include
long_distance_track_process
devided_segment_icp.h 689B
CMakeLists.txt 7KB
src
devided_segment_icp.cpp 3KB
long_distance_track_process.cpp 1KB
package.xml 2KB
launch
long_distance_track_process.launch 467B
README.md 1022B
AUTHORS 320B
demo
demo2.png 398KB
demo1.png 706KB
flowchart.jpg 53KB
CONTRIBUTING.md 339B
run.py 8KB
globalConfig.py 4KB
README.md 6KB
setup.sh 86B
.catkin_workspace 98B
共 87 条
- 1
资源评论
__AtYou__
- 粉丝: 3506
- 资源: 2175
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功