diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 48f474bcf30b38f20b9bb5142f3544252fdaee03..f763e2af954a30d49b8d48b6d04719b296b31b59 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -54,7 +54,9 @@ SET(sources
 	descriptors/lucid/descriptor_lucid_load_yaml.cpp	
 	matchers/matcher_base.cpp 
 	matchers/flannbased/matcher_flannbased.cpp
-	matchers/flannbased/matcher_flannbased_load_yaml.cpp)
+	matchers/flannbased/matcher_flannbased_load_yaml.cpp
+	matchers/bruteforce/matcher_bruteforce.cpp
+	matchers/bruteforce/matcher_bruteforce_load_yaml.cpp	)
 
 # application header files
 SET(headers 
@@ -92,7 +94,8 @@ SET(headers
 	descriptors/lucid/descriptor_lucid.h
 	matchers/matcher_factory.h
 	matchers/matcher_base.h
-	matchers/flannbased/matcher_flannbased.h)
+	matchers/flannbased/matcher_flannbased.h
+	matchers/bruteforce/matcher_bruteforce.h)
 
 # locate the necessary dependencies
 FIND_PACKAGE(Eigen3 REQUIRED)
diff --git a/src/examples/test_matcher.cpp b/src/examples/test_matcher.cpp
index bcb56acb32ec8364955ce68c7cad3d0ad8da9d2f..3ac6eb6bba9ef2e7f89e66f0da80d60c615e179e 100644
--- a/src/examples/test_matcher.cpp
+++ b/src/examples/test_matcher.cpp
@@ -36,6 +36,7 @@
 
 // Matchers
 #include "../matchers/flannbased/matcher_flannbased.h"
+#include "../matchers/bruteforce/matcher_bruteforce.h"
 
 int main(void)
 {
@@ -116,7 +117,7 @@ int main(void)
 
     std::cout << "\n================ MATCHER TEST  =================" << std::endl;
 
-    std::string def_matcher = "FLANNBASED";
+    std::string def_matcher = "BRUTEFORCE";
     std::cout << std::endl << "Which MATCHER do you want to test? Type one of the registered names  [default: " << def_matcher << "]: ";
     std::string mat_name = readFromUser(def_matcher);
 
@@ -124,6 +125,8 @@ int main(void)
 
     if (mat_name.compare("FLANNBASED") == 0)
     	mat_ptr = std::static_pointer_cast<MatcherFLANNBASED>(mat_ptr);
+    if (mat_name.compare("BRUTEFORCE") == 0)
+    	mat_ptr = std::static_pointer_cast<MatcherBRUTEFORCE>(mat_ptr);
 
     std::cout << std::endl << "... Testing " << det_ptr->getName() << " with " <<  des_ptr->getName() << " and " <<  mat_ptr->getName() << " ..." << std::endl;
 
diff --git a/src/examples/yaml/BRUTEFORCE.yaml b/src/examples/yaml/BRUTEFORCE.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..77ad4e1654ab71f603cd75642bb553e0227d2a7e
--- /dev/null
+++ b/src/examples/yaml/BRUTEFORCE.yaml
@@ -0,0 +1,5 @@
+sensor:
+  type: "USB_CAM"
+matcher:
+  type: "BRUTEFORCE"
+  match type: 1     #  Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3
\ No newline at end of file
diff --git a/src/matchers/bruteforce/matcher_bruteforce.cpp b/src/matchers/bruteforce/matcher_bruteforce.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6acd1f57c535eac54dbe337ac6648594c97e5f10
--- /dev/null
+++ b/src/matchers/bruteforce/matcher_bruteforce.cpp
@@ -0,0 +1,17 @@
+#include "matcher_bruteforce.h"
+
+namespace vision_utils {
+
+MatcherBRUTEFORCE::MatcherBRUTEFORCE(void)
+{}
+
+MatcherBRUTEFORCE::~MatcherBRUTEFORCE(void)
+{}
+
+} /* namespace vision_utils */
+
+// Register in the MatchersFactory
+namespace vision_utils
+{
+VU_REGISTER_MATCHER("BRUTEFORCE", MatcherBRUTEFORCE);
+} /* namespace vision_utils */
diff --git a/src/matchers/bruteforce/matcher_bruteforce.h b/src/matchers/bruteforce/matcher_bruteforce.h
new file mode 100644
index 0000000000000000000000000000000000000000..2aee80f80b022110b794ec66697c96eb1bb6b48b
--- /dev/null
+++ b/src/matchers/bruteforce/matcher_bruteforce.h
@@ -0,0 +1,66 @@
+#ifndef _MATCHER_BRUTEFORCE_H_
+#define _MATCHER_BRUTEFORCE_H_
+
+#include "../matcher_base.h"
+#include "../matcher_factory.h"
+
+// yaml-cpp library
+#ifdef USING_YAML
+	#include <yaml-cpp/yaml.h>
+#endif
+
+namespace vision_utils {
+
+// Create all pointers
+VU_PTR_TYPEDEFS(MatcherBRUTEFORCE);
+VU_PTR_TYPEDEFS(MatcherParamsBRUTEFORCE);
+
+/** \brief Class parameters
+ *
+ */
+struct MatcherParamsBRUTEFORCE: public MatcherParamsBase
+{
+	// TODO: Add possible parameters
+};
+
+/** \brief DETECTOR class
+ *
+ */
+class MatcherBRUTEFORCE : public MatcherBase {
+
+    public:
+		MatcherBRUTEFORCE();
+        virtual ~MatcherBRUTEFORCE(void);
+
+        // Factory method
+        static MatcherBasePtr create(const std::string& _unique_name, const ParamsBasePtr _params);
+
+    private:
+
+        void defineMatcher(const ParamsBasePtr _params);
+};
+
+/*
+ * brief Define detector
+ */
+inline void MatcherBRUTEFORCE::defineMatcher(const ParamsBasePtr _params)
+{
+	params_base_ptr_ = std::static_pointer_cast<MatcherParamsBase>(_params);
+	MatcherParamsBRUTEFORCEPtr params_ptr = std::static_pointer_cast<MatcherParamsBRUTEFORCE>(_params);
+    matcher_ = cv::DescriptorMatcher::create("BruteForce");
+}
+
+/*
+ * brief Create object in factory
+ */
+inline MatcherBasePtr MatcherBRUTEFORCE::create(const std::string& _unique_name, const ParamsBasePtr _params)
+{
+    MatcherBRUTEFORCEPtr mat_ptr = std::make_shared<MatcherBRUTEFORCE>();
+    mat_ptr->setName(_unique_name);
+    mat_ptr->defineMatcher(_params);
+    return mat_ptr;
+}
+
+} /* namespace vision_utils */
+
+#endif /* _MATCHER_BRUTEFORCE_H_ */
diff --git a/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1749c0f2e035b303be6510bc5e9c8a46e0f95566
--- /dev/null
+++ b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp
@@ -0,0 +1,46 @@
+#include "matcher_bruteforce.h"
+
+#ifdef USING_YAML
+
+// yaml-cpp library
+#include <yaml-cpp/yaml.h>
+
+namespace vision_utils
+{
+
+namespace
+{
+
+static ParamsBasePtr createParamsBRUTEFORCEMatcher(const std::string & _filename_dot_yaml)
+{
+	MatcherParamsBRUTEFORCEPtr params_ptr = std::make_shared<MatcherParamsBRUTEFORCE>();
+
+    using std::string;
+    using YAML::Node;
+    Node yaml_params = YAML::LoadFile(_filename_dot_yaml);
+    if (!yaml_params.IsNull())
+    {
+        Node d_yaml = yaml_params["matcher"];
+        if(d_yaml["type"].as<string>() == "BRUTEFORCE")
+        {
+        	params_ptr->match_type	= d_yaml["match type"].as<int>();
+        	// TODO: Add possible parameters
+        }else
+        {
+            std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl;
+            return nullptr;
+        }
+    }
+
+	return params_ptr;
+}
+
+// Register in the SensorFactory
+const bool registered_matBRUTEFORCE_params = ParamsFactory::get().registerCreator("BRUTEFORCE MAT", createParamsBRUTEFORCEMatcher);
+
+} /* namespace [unnamed] */
+
+} /* namespace vision_utils */
+
+#endif /* IF USING_YAML */
+