Skip to content

An ESKF algorithm for fusing IMU and GNSS data

Notifications You must be signed in to change notification settings

PythonLidar/imu_gnss_eskf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imu_gnss_eskf

The project is to implement an ESKF algorithm to fuse IMU and GNSS data. The theory can be referred to Quaternion kinematics for the error-state Kalman filter. The implementation can be referred to imu_gps_localization. The test dataset can be referred to EU.

1. Requirements

It is tested under Ubuntu 18.04 + ROS melodic.

  • nav_msgs is used for ROS publishing.
  • eigen_conversions is used for ROS publishing.
  • nmea_navsat_driver is used for GNSS data processing.
  • Eigen is used for matrix computation.
  • GeographicLib is used for transformation between LLA and ENU.
 sudo apt-get install libeigen3-dev 
 sudo apt-get install ros-melodic-geographic-* geographiclib-* libgeographic-*
 sudo apt-get install ros-melodic-nav-msgs ros-melodic-eigen-conversions ros-melodic-nmea-navsat-driver
 sudo ln -s /usr/share/cmake/geographiclib/FindGeographicLib.cmake /usr/share/cmake-3**/Modules/ (* is the version of your cmake)

2. Build

Clone the repository to the catkin work space eg. /catkin_ws/src

git clone https://github.com/zouyajing/imu_gnss_eskf.git

Compile

cd ~/catkin_ws
catkin_make

3. Run with EU dataset

Run the following launch file

roslaunch imu_gnss_eskf imu_gnss_eskf.launch

Play the following bag file

rosbag play utbm_robocar_dataset_**.bag

About

An ESKF algorithm for fusing IMU and GNSS data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.9%
  • CMake 3.1%