All Projects → yyccR → Location

yyccR / Location

Smartphone navigation positionning, fusion GPS and IMU sensors.

Projects that are alternatives of or similar to Location

Multi sensor fusion
Multi-Sensor Fusion (GNSS, IMU, Camera) 多源多传感器融合定位 GPS/INS组合导航 PPP/INS紧组合
Stars: ✭ 357 (+310.34%)
Mutual labels:  fusion, gps, imu
telegram-nearby-map
Discover the location of nearby Telegram users 📡🌍
Stars: ✭ 329 (+278.16%)
Mutual labels:  gps, location
gps-share
Utility to share your GPS device on local network
Stars: ✭ 49 (-43.68%)
Mutual labels:  gps, location
EasyWayLocation
This library contain all utils related to google location. like, getting lat or long, Address and Location Setting dialog, many more...
Stars: ✭ 142 (+63.22%)
Mutual labels:  gps, location
Eskf
ROS Error-State Kalman Filter based on PX4/ecl. Performs GPS/Magnetometer/Vision Pose/Optical Flow/RangeFinder fusion with IMU
Stars: ✭ 63 (-27.59%)
Mutual labels:  gps, imu
gpx-builder
Builder of GPX files
Stars: ✭ 25 (-71.26%)
Mutual labels:  gps, location
android-amap-track-collect
这阵子由于项目需要,需要从手机上采集用户的运动轨迹数据,这样的功能大家都见到的很多了,比如咕咚、悦动圈,对跑步运动轨迹数据进行采集,再如,微信运动、钉钉运动,对于每一天你走步进行计数,如果要记录轨迹就离不开的手机定位,如果要记录步数那就离不开陀螺仪(角速度传感器),花了一天多的时间实现了一个定位数据实时采集的功能。
Stars: ✭ 50 (-42.53%)
Mutual labels:  gps, location
surger
⚡ Is there surge pricing around me right now?
Stars: ✭ 20 (-77.01%)
Mutual labels:  gps, location
Navego
NaveGo: an open-source MATLAB/GNU Octave toolbox for processing integrated navigation systems and performing inertial sensors analysis.
Stars: ✭ 294 (+237.93%)
Mutual labels:  gps, imu
Rxgps
Finding current location cannot be easier on Android !
Stars: ✭ 307 (+252.87%)
Mutual labels:  gps, location
aic-mobile-ios
Art Institute of Chicago Official Mobile App
Stars: ✭ 29 (-66.67%)
Mutual labels:  gps, location
Indoorgps
Position Calculating with Trilateration via Bluetooth Beacons(Estimote)
Stars: ✭ 59 (-32.18%)
Mutual labels:  gps, location
imu ekf
6-axis(3-axis acceleration sensor+3-axis gyro sensor) IMU fusion with Extended Kalman Filter.
Stars: ✭ 56 (-35.63%)
Mutual labels:  imu, fusion
roam-reactnative
React Native Location SDK. High accuracy and battery efficient location SDK for iOS and Android by Roam.ai
Stars: ✭ 20 (-77.01%)
Mutual labels:  gps, location
orange3-geo
🍊 🌍 Orange add-on for dealing with geography and geo-location
Stars: ✭ 22 (-74.71%)
Mutual labels:  gps, location
react-native-device-country
Get device location by telephony (SIM card) or settings without using GPS tracker.
Stars: ✭ 33 (-62.07%)
Mutual labels:  gps, location
ESP32 IMU BARO GPS VARIO
GPS altimeter/variometer with LCD display, routes with waypoints, data/gps track logging, bluetooth NMEA sentence transmission, wifi AP + webpage configuration
Stars: ✭ 72 (-17.24%)
Mutual labels:  gps, imu
Atlas
🌎 Atlas is a set of APIs for looking up information about locations
Stars: ✭ 21 (-75.86%)
Mutual labels:  gps, location
ios logger
Application for camera and sensor data logging (iOS)
Stars: ✭ 60 (-31.03%)
Mutual labels:  gps, imu
Gnss Ins Sim
Open-source GNSS + inertial navigation, sensor fusion simulator. Motion trajectory generator, sensor models, and navigation
Stars: ✭ 422 (+385.06%)
Mutual labels:  gps, imu

LOCATION

Build Status

Positioning is the most basic and crucial step in the driving navigation. An accurate positioning can effectively improve the accuracy of the road-binding, and can also sense the change of the driving pattern more accurately. Since the project is mainly based on mobile phones for navigation and positioning, Currently used is the built-in sensor data (gyroscope, accelerometer, geomagnetic meter, direction sensor, gravity sensor) and GPS data fusion positioning.

Sensor data required.

  • [X] gyroscope(x, y, z).
  • [X] accelerometer(x, y, z).
  • [X] geomagnetic meter(x, y, z).
  • [X] gravity sensor(x, y, z).
  • [X] direction sensor(roll, pitch, yaw).
  • [X] compass(degree).
  • [X] road info(distance to next cross, bearing, road type).
  • [X] GPS(lng, lat, alt, accuracy, speed, bearing, t).

Some implement details

  • sensor data filter.
  • GPS fusion INS under uncoupling system.

Quick start

First make sure gcc and cmake was installed, and include this library into your project.

git clone https://github.com/yyccR/Location.git

Second open your CMakeLists.txt and add these:

include_directories(${PROJECT_SOURCE_DIR}/Location/include/eigen3)

include_directories(${PROJECT_SOURCE_DIR}/Location/math)
add_subdirectory(Location/math)

include_directories(${PROJECT_SOURCE_DIR}/Location/models)
add_subdirectory(Location/models)

include_directories(${PROJECT_SOURCE_DIR}/Location/location)
add_subdirectory(Location/location)

include_directories(${PROJECT_SOURCE_DIR}/Location/sensor)
add_subdirectory(Location/sensor)

include_directories(${PROJECT_SOURCE_DIR}/Location/system)
add_subdirectory(Location/system)

target_link_libraries(${PROJECT_NAME} Location_math)
target_link_libraries(${PROJECT_NAME} Location_models)
target_link_libraries(${PROJECT_NAME} Location_location)
target_link_libraries(${PROJECT_NAME} Location_sensor)
target_link_libraries(${PROJECT_NAME} Location_system)
target_link_libraries(${PROJECT_NAME} Location_test)

final open your main file, and add the test code.

#include <iomanip>
#include <Eigen/Dense>
#include "sensor/GPS.h"
#include "location/Location.h"

using namespace Eigen;
using namespace std;

int main() {

    Location location;
    Vector3d gyro_data_v(0.004263,0.019169,-0.001014);
    Vector3d mag_data_v(-2.313675,-82.446960,-366.183838);
    Vector3d acc_data_v(0.105081,0.108075,9.774973);
    VectorXd gps_data_v(7);
    gps_data_v << 114.174118,22.283789,0.0,0.0,24.0,0.0,1554348968704.665039;
    Vector3d g_data_v(0.094139, 0.107857,9.808955);
    Vector3d ornt_data_v(-0.549866,0.629957,-0.069398);
    Vector3d road_data(1000.0, 0.0, 0);
    location.PredictCurrentPosition(gyro_data_v,acc_data_v,mag_data_v,gps_data_v,g_data_v,ornt_data_v, road_data);
    cout << location.GetGNSSINS().lng << " " << location.GetGNSSINS().lat << endl;
    return 0;
}

if you see the output 114.174 22.2838 that means this library was embedded to your project successfully.

Input data format.

  • gyroscope(x, y, z), origin gyroscope data, unit rad/s

  • accelerometer(x, y, z), origin accelerometer data, unit m/s²

  • geomagnetic meter(x, y, z), origin geomagnetic data, unit μt

  • gravity sensor(x, y, z), origin gravity data, unit m/s²

  • direction sensor(roll, pitch, yaw), origin sensor data, unit degree

Note that direction sensor doesn't exit actually , the 'sensor data' is computation result from system underlying algorithm.

  • compass(degree), origin sensor data, unit degree

  • road info(distance to next cross, bearing, road type)

This data is from map data, and if you couldn't search map server data, just fill in all zero (0.0, 0.0, 0.0)

  • GPS(lng, lat, alt, accuracy, speed, bearing, t)
    • lng, longitude, double
    • lat, latitude, double
    • alt, altitude, double
    • accuracy, double
    • speed, double
    • bearing, double, unit degree
    • t, timestampe, unit millisecond

More detail tutorial.

TODO

  • [X] improve CMake.
  • [X] Clean the garbage code.
  • [ ] Template processing.
  • [X] Using smart pointer instead.
  • [X] Complete all kinds of documents.
  • [X] Add quick start.
  • [ ] Add more test case.
  • [ ] Design a suitable pattern.

reference:

  1. 《惯性导航》秦永元
  2. 《捷联惯性导航技术(第2版 译本)》译者:张天光/王秀萍/王丽霞 作者:DavidH.Titte
  3. An efficient orientation filter for inertial and inertial/magnetic sensor arrays
  4. Estimation of IMU and MARG orientation using a gradient descent algorithm
  5. Direction Cosine Matrix IMU Theory
  6. METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS
  7. A Calibration Algorithm for Microelectromechanical Systems Accelerometers in Inertial Navigation Sensors
  8. A Calibration Method of Three-axis Magnetic Sensor Based on Ellipsoid Fitting
  9. Accuracy Improvement of Low Cost INS/GPS for Land Applications
  10. Trajectory preprocessing: Computing with Spatial Trajectories
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].