# 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](https://img.shields.io/badge/License-Apache2.0-blue.svg)
## 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/)
## Questions
You can ask any question [here](https://github.com/iMorpheusAI/gpsCalibration/issues) or send us [emails](product@imorpheus.ai).
没有合适的资源?快使用搜索试试~ 我知道了~
使用点云大满贯和其他传感器进行 GPS 校准_C++_代码_相关文件_下载
共89个文件
txt:18个
cpp:15个
md:11个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 163 浏览量
2022-07-13
21:48:45
上传
评论
收藏 1.25MB ZIP 举报
温馨提示
高可用性亚米级精确 GPS 通过算法融合来自不同传感器(如激光雷达、雷达、摄像头、gps、imu 和点云)的多个数据源,iMorpheus.ai 为户外机器人开发人员带来了高可用性的精确 GPS 测量。iMorpheus集成了slam、卡尔曼滤波、ICP、特征选择和高斯过程等多项先进算法。 我们认为精确的 GPS 信号应该通过云计算而不是测量卫星来获得,只有软件和云才能解决问题,而不是昂贵的硬件。使我们致力于只用软件来解决问题。 更多详情、使用方法,请下载后细读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
gpsCalibration-develop.zip (89个子文件)
gpsCalibration-develop
LICENSE 11KB
run.py 8KB
CONTRIBUTING.md 339B
src
lidar_slam
src
loam
include
loam_velodyne
common.h 2KB
launch
loam.launch 422B
rviz.launch 234B
LICENSE 2KB
src
transformMaintenance.cpp 15KB
laserMapping.cpp 49KB
laserOdometry.cpp 47KB
scanRegistration.cpp 29KB
CMakeLists.txt 1KB
README.md 1KB
rviz_cfg
loam_velodyne.rviz 6KB
package.xml 1KB
CMakeLists.txt 111B
input_data
launch
input_data.launch 343B
src
input_data.cpp 15KB
CMakeLists.txt 7KB
README.md 760B
package.xml 2KB
.catkin_workspace 98B
CMakeLists.txt 83B
README.md 2KB
.vscode
launch.json 717B
settings.json 216B
tasks.json 3KB
msg
IMLocalXYZT.msg 63B
IMTrack.msg 20B
short_distance_track_process
src
data_preprocess
src
prefile.cpp 3KB
CMakeLists.txt 7KB
package.xml 2KB
.rosinstall 75B
CMakeLists.txt 49B
results_merge
include
average.h 9KB
src
merge.cpp 4KB
CMakeLists.txt 7KB
package.xml 2KB
short_distance_track_icp
include
short_distance_track_icp.hpp 6KB
src
short_distance_track_icp.cpp 3KB
CMakeLists.txt 7KB
README.md 1004B
package.xml 2KB
.catkin_workspace 98B
CMakeLists.txt 201B
README.md 1KB
icp_weight_coe
src
icp_weight_coe
launch
icp_weight_coe.launch 384B
src
icp_weight_coe.cpp 5KB
CMakeLists.txt 7KB
package.xml 2KB
CMakeLists.txt 93B
README.md 1KB
CMakeLists.txt 82B
long_distance_track_process
src
long_distance_track_process
include
long_distance_track_process
devided_segment_icp.h 689B
launch
long_distance_track_process.launch 467B
src
devided_segment_icp.cpp 3KB
long_distance_track_process.cpp 1KB
CMakeLists.txt 7KB
package.xml 2KB
CMakeLists.txt 106B
CMakeLists.txt 82B
README.md 1022B
gps_process
config
kml_config.xml 266B
include
color.h 2KB
Gaussion_transform.h 5KB
interpolation_by_time.h 3KB
parse_config.h 5KB
WGS84_parameter.h 418B
UTM_transform.h 5KB
src
create_KML.cpp 2KB
local_to_GPS.cpp 5KB
GPS_to_local.cpp 17KB
CMakeLists.txt 620B
README.md 2KB
CMakeLists.txt 610B
track_icp
launch
track_icp.launch 403B
src
track_icp.cpp 27KB
CMakeLists.txt 715B
README.md 1KB
package.xml 2KB
package.xml 2KB
.catkin_workspace 98B
globalConfig.py 4KB
AUTHORS 320B
demo
flowchart.jpg 53KB
demo2.png 398KB
demo1.png 706KB
README.md 6KB
setup.sh 86B
共 89 条
- 1
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功