diff --git a/README.md b/README.md
index a3d6ae38db8f4e9093688179b66fbfeec48742b9..0e8f78685129c3523cd49bc33a308d6c83b76aa3 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,42 @@
-A C++ Toolbox with utilities for 2D laser scan processing, made at IRI (www.iri.upc.edu)
+A C++ Toolbox with utilities for 2D laser scan processing, made at IRI (www.iri.upc.edu).
+
+# Installation
+
+Clone the repository in your chosen directory. In a terminal:
+
+```
+cd <your/path>
+git clone <repo-link>
+```
+
+Create a directory to build all the source files:
+```
+$ mkdir build
+$ cd build
+```
+
+Compile the source files:
+
+```
+$ cmake ..
+$ make
+```
+
+## Optional dependencies
+
+**Canonical Scan Matching - CSM**
+
+To enable the compilation of iterative closest point algorithms, [CSM](https://github.com/AndreaCensi/csm) should be installed. Clone, compile and install:
+```
+cd <your/path>
+git clone https://github.com/AndreaCensi/csm.git
+cd csm
+cmake .
+make
+sudo make install
+```
+
+CSM depends on GSL that you probably have installed already. To install it: 
+```
+sudo apt install libgsl-dev
+```
\ No newline at end of file