diff --git a/deps/falkolib b/deps/falkolib
index 327bafa8ee1d9ea545d9766415986ea13a1064d1..0017c6c5be963b923684bfd8eb6bd8b7641ba1b6 160000
--- a/deps/falkolib
+++ b/deps/falkolib
@@ -1 +1 @@
-Subproject commit 327bafa8ee1d9ea545d9766415986ea13a1064d1
+Subproject commit 0017c6c5be963b923684bfd8eb6bd8b7641ba1b6
diff --git a/src/loop_closure_base.h b/src/loop_closure_base.h
index 1140c3b08f7c0b1d742e6b269db632fad5f429c3..1109b2dbc7656cc02f36c3a5279f7c4fb0d54933 100644
--- a/src/loop_closure_base.h
+++ b/src/loop_closure_base.h
@@ -36,8 +36,8 @@ public:
 
   /** \brief update the scene struct with keypoints and descriptors
    **/
-  virtual sceneBasePtr extractScene(LaserScan &scan,
-                                    LaserScanParams &scanParams) = 0;
+  virtual sceneBasePtr extractScene(const LaserScan &scan,
+                                    const LaserScanParams &scanParams) = 0;
 
   /** \brief Create and update a matchLoopClosure struct with the info that is
    *produced when matching two given scenes
diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index 59de67a9fb3467951af97375a19ef72729251ca9..6d8b76367bc1336c10c6c0645518cee7fe31e21a 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -39,9 +39,7 @@
 
 namespace laserscanutils {
 
-typedef falkolib::BSC bsc;
 typedef falkolib::BSCExtractor<falkolib::FALKO> bscExtractor;
-typedef falkolib::CGH cgh;
 typedef falkolib::CGHExtractor<falkolib::FALKO> cghExtractor;
 
 template <typename T, typename D> using nn_matcher = falkolib::NNMatcher<T, D>;
@@ -122,8 +120,8 @@ public:
 
   /** \brief Create and update the scene struct with keypoints and descriptors
    **/
-  sceneBasePtr extractScene(LaserScan &_scan,
-                            LaserScanParams &_scan_params) override {
+  sceneBasePtr extractScene(const LaserScan &_scan,
+                            const LaserScanParams &_scan_params) override {
     auto new_scene = std::make_shared<SceneFalko<D>>();
     auto scan_falko = convert2LaserScanFALKO(_scan, _scan_params);
     // Extract keypoints
@@ -137,8 +135,8 @@ public:
   /** \brief Convert scans from laserscanutils::LaserScan to
    *falkolib::LaserScan object
    **/
-  laserScanPtr convert2LaserScanFALKO(LaserScan &_scan,
-                                      LaserScanParams &_scan_params) {
+  laserScanPtr convert2LaserScanFALKO(const LaserScan &_scan,
+                                      const LaserScanParams &_scan_params) {
     auto scan_falko = std::make_shared<falkolib::LaserScan>(
       _scan_params.angle_min_, _scan_params.angle_max_,
       _scan.ranges_raw_.size());
diff --git a/src/scene_falko.h b/src/scene_falko.h
index ce8e99965a13cd92943f6f55ac8d9d9fc122b356..b74aa91732bd03d4d07685c646df894936cf3510 100644
--- a/src/scene_falko.h
+++ b/src/scene_falko.h
@@ -35,6 +35,9 @@
 
 namespace laserscanutils {
 
+typedef falkolib::BSC bsc;
+typedef falkolib::CGH cgh;
+
 template <typename D> struct SceneFalko : public SceneBase {
   std::vector<falkolib::FALKO> keypoints_list_;
   std::vector<D> descriptors_list_;