diff --git a/CMakeLists.txt b/CMakeLists.txt
index 92d6c792a1c227723a572d4858e0a3847bc9d4ea..7aec78bde7836d9280644fb003fdac7a16e6fda4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,12 @@ endif()
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
 
+FIND_PACKAGE(Eigen3 3.3 REQUIRED)
+IF(Eigen3_FOUND)
+    INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS})
+ENDIF(Eigen3_FOUND)
+
+
 # Testing
 IF(NOT BUILD_TESTS)
   OPTION(BUILD_TESTS "Build Unit tests" ON)
diff --git a/deps/RTKLIB b/deps/RTKLIB
index 4ab9a199ff46b1220fb4fe99b019c8df526e53e9..0260d91932df0ca0691842aa99b39acde5d49c45 160000
--- a/deps/RTKLIB
+++ b/deps/RTKLIB
@@ -1 +1 @@
-Subproject commit 4ab9a199ff46b1220fb4fe99b019c8df526e53e9
+Subproject commit 0260d91932df0ca0691842aa99b39acde5d49c45
diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
index befead7c9810d6b2e06e2e44bb069c278a7e23d2..cf3c80b25b51685df6362d5ab9e6757cb3073782 100644
--- a/include/gnss_utils/gnss_utils.h
+++ b/include/gnss_utils/gnss_utils.h
@@ -13,7 +13,7 @@ extern "C" {
 #include <memory>
 #include <cassert>
 // eigen
-#include <eigen3/Eigen/Dense>
+#include <Eigen/Dense>
 
 #ifndef RAD2DEG
 #define RAD2DEG 180.0 / 3.14159265358979323846
diff --git a/include/gnss_utils/snapshot.h b/include/gnss_utils/snapshot.h
index 732d1913292feb8c3a7c48ee6091e172beaac10f..e2ef0cefc5d3144f0e916e92619edd2b50e4fd37 100644
--- a/include/gnss_utils/snapshot.h
+++ b/include/gnss_utils/snapshot.h
@@ -7,7 +7,7 @@
 #include <memory>
 #include <cassert>
 
-#include <eigen3/Eigen/Dense>
+#include <Eigen/Dense>
 
 #include "gnss_utils/gnss_utils.h"
 
diff --git a/include/gnss_utils/utils/rcv_position.h b/include/gnss_utils/utils/rcv_position.h
index c72676642d09884073821b7968db7f0a1a7cc8b4..c5ced3ffc75b04c88253d2688426b03aea196bac 100644
--- a/include/gnss_utils/utils/rcv_position.h
+++ b/include/gnss_utils/utils/rcv_position.h
@@ -8,9 +8,9 @@
 #ifndef INCLUDE_GNSS_UTILS_UTILS_RCV_POSITION_H_
 #define INCLUDE_GNSS_UTILS_UTILS_RCV_POSITION_H_
 
-#include <eigen3/Eigen/Dense>
-#include <eigen3/Eigen/Geometry>
-#include <eigen3/Eigen/Sparse>
+#include <Eigen/Dense>
+#include <Eigen/Geometry>
+#include <Eigen/Sparse>
 
 #include "gnss_utils/observations.h"
 #include "gnss_utils/navigation.h"
diff --git a/include/gnss_utils/utils/satellite.h b/include/gnss_utils/utils/satellite.h
index 4cfda619d786bef11a5640ea73a950a1408ac70b..491f331cba40bf7de69909cc7a712909afae87c5 100644
--- a/include/gnss_utils/utils/satellite.h
+++ b/include/gnss_utils/utils/satellite.h
@@ -8,8 +8,8 @@
 #ifndef INCLUDE_GNSS_UTILS_UTILS_SAT_POSITION_H_
 #define INCLUDE_GNSS_UTILS_UTILS_SAT_POSITION_H_
 
-#include <eigen3/Eigen/Dense>
-#include <eigen3/Eigen/Geometry>
+#include <Eigen/Dense>
+#include <Eigen/Geometry>
 
 #include "gnss_utils/gnss_utils.h"
 
diff --git a/include/gnss_utils/utils/transformations.h b/include/gnss_utils/utils/transformations.h
index 10ddc0ac8462d9bd8636dc9a42d273cfcaed9a81..da3cb6a9e8fa4cd6c855115f1f6eee951501a5fe 100644
--- a/include/gnss_utils/utils/transformations.h
+++ b/include/gnss_utils/utils/transformations.h
@@ -8,9 +8,9 @@
 #ifndef INCLUDE_GNSS_UTILS_UTILS_TRANSFORMATIONS_H_
 #define INCLUDE_GNSS_UTILS_UTILS_TRANSFORMATIONS_H_
 
-#include <eigen3/Eigen/Dense>
-#include <eigen3/Eigen/Geometry>
-#include <eigen3/Eigen/Sparse>
+#include <Eigen/Dense>
+#include <Eigen/Geometry>
+#include <Eigen/Sparse>
 #include "gnss_utils/gnss_utils.h"
 
 namespace GnssUtils