diff --git a/install_wolf.sh b/install_wolf.sh
index 0d94c31236f363bcada7e0ac75113e606392e60f..7704d90127917f7bfa47966edd039f67ec67dd10 100755
--- a/install_wolf.sh
+++ b/install_wolf.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-## FUNCTIONS
+## FUNCTIONS #####################################################
 func_make_install () {
    if [ "$UID" -eq 0 -o "$EUID" -eq 0 ]; then
       make install
@@ -10,24 +10,118 @@ func_make_install () {
 }
 
 func_echo () {
-	if [ $VERBOSE == "true" ]; then
-	   echo "$1"
-	fi
+   if [ $VERBOSE == "true" ]; then
+      echo "$1"
+   fi
+}
+
+usage() { 
+   echo "Usage: $0 [-v] [-a] [-d <string>] [-w <string>] [-p <string>] [-f <y/n>] [-c <y/n>]"
+   echo "  v: disables echo"
+   echo "  a: installs all plugins (incompatible with -p)"
+   echo "  d: dependencies destination path (either /global/path or relative/path). If not set, will be asked later."
+   echo "  w: wolf folder destination path (either /global/path or relative/path). If not set, will be asked later."
+   echo "  p: plugins to be installed (incompatible with -a) being a string of 6 chars y/n corresponding to plugins imu, gnss, laser, vision, apriltag, bodydynamics (for example 'ynynnn'). Plugins apriltag and bodydynamics won't be installed if vision and imu plugins are installed, respectively."
+   echo "  f: y/n install Falko optional dependency. If not set, will be asked later."
+   echo "  c: y/n install CSM optional dependency. If not set, will be asked later."  
+}
+
+func_check_yn () {
+   if [ "$1" != "y" ] && [ "$1" != "n" ]; then
+      echo "options -p, -f, -c should containing only 'y' or 'n'"
+      usage
+      exit 0
+   fi
 }
 
-# verbose
+## OPTIONS #####################################################
 VERBOSE="true"
-while getopts "he" option; do
-   case $option in
-      e) # disable verbose
+INSTALL_PLUGINS=""
+INSTALL_IMU="undefined"
+INSTALL_GNSS="undefined"
+INSTALL_LASER="undefined"
+INSTALL_VISION="undefined"
+INSTALL_APRILTAG="undefined"
+INSTALL_BODYDYNAMICS="undefined"
+INSTALL_FALKO="undefined"
+INSTALL_CSM="undefined"
+DEPS_PATH="undefined"
+WOLF_PATH="undefined"
+
+while getopts "vap:d:w:hf:c:" opt; do
+   case ${opt} in
+      v) # disable verbose
          VERBOSE="false"
          ;;
+      a) # install all plugins
+      	 if [ "$INSTALL_PLUGINS" != "" ]; then
+      	    echo "options -p and -a are incompatible!"
+      	    usage
+      	    exit 0
+      	 fi
+         INSTALL_PLUGINS="a"
+         INSTALL_IMU="y"
+         INSTALL_GNSS="y"
+         INSTALL_LASER="y"
+         INSTALL_VISION="y"
+         INSTALL_APRILTAG="y"
+         INSTALL_BODYDYNAMICS="y"
+         ;;
+      p) # install all plugins
+      	 if [ "$INSTALL_PLUGINS" != "" ]; then
+      	    echo "options -p and -a are incompatible!"
+      	    usage
+      	    exit 0
+      	 fi
+         if [ ${#OPTARG} != 6 ]; then
+            echo "option -p should contain 6 characters"
+      	    usage
+      	    exit 0
+      	 fi
+         INSTALL_PLUGINS=$OPTARG
+         INSTALL_IMU=${INSTALL_PLUGINS:0:1}
+         INSTALL_GNSS=${INSTALL_PLUGINS:1:1}
+         INSTALL_LASER=${INSTALL_PLUGINS:2:1}
+         INSTALL_VISION=${INSTALL_PLUGINS:3:1}
+         INSTALL_APRILTAG=${INSTALL_PLUGINS:4:1}
+         INSTALL_BODYDYNAMICS=${INSTALL_PLUGINS:5:1}
+         func_check_yn $INSTALL_IMU
+         func_check_yn $INSTALL_GNSS
+         func_check_yn $INSTALL_LASER
+         func_check_yn $INSTALL_VISION
+         func_check_yn $INSTALL_APRILTAG
+         func_check_yn $INSTALL_BODYDYNAMICS
+         ;;
+      f) # install falko      
+         INSTALL_FALKO=$OPTARG
+         func_check_yn $INSTALL_FALKO
+      c) # install csm      
+         INSTALL_CSM=$OPTARG
+         func_check_yn $INSTALL_CSM
+      d) # deps path      
+         DEPS_PATH=$OPTARG
+      w) # wolf path       
+         WOLF_PATH=$OPTARG
+         ;;
+      h )
+         usage
+         exit 0
+         ;;
+      :)
+         echo "Error: -${OPTARG} requires an argument."
+         usage
+         exit 1
+         ;;
+      *)
+         usage
+         exit 1
+         ;;
    esac
 done
 
+# START #####################################################
 CORES=$(nproc)
 func_echo "The number of available cores on this machine is $CORES"
-
 RUN_PATH=$PWD
 
 # UBUNTU
@@ -51,8 +145,10 @@ fi
 
 # WOLF DEPENDENCIES #####################################################
 func_echo "You are in folder $PWD"
-echo "Enter path for dependencies (either /global/path or relative/path):"
-read DEPS_PATH
+if [ $DEPS_PATH == "undefined" ]; then
+   echo "Enter path for dependencies (either /global/path or relative/path):"
+   read DEPS_PATH
+fi
 cd $DEPS_PATH
 DEPS_PATH=$PWD
 func_echo "path dependencies: $DEPS_PATH"
@@ -112,13 +208,15 @@ func_make_install
 # WOLF #####################################################
 cd $RUN_PATH
 func_echo "You are in folder $PWD"
-echo "Enter path for wolf folder (either /global/path or relative/path):"
-read WOLF_PATH
+if [ $WOLF_PATH == "undefined" ]; then
+   echo "Enter path for wolf folder (either /global/path or relative/path):"
+   read WOLF_PATH
+fi
 cd $WOLF_PATH
 mkdir wolf
 cd wolf
 WOLF_PATH=$PWD
-func_echo "wolf folder path: $PWD/wolf"
+func_echo "wolf folder path: $WOLF_PATH"
 
 
 # CORE -----------------------------------------------------
@@ -141,8 +239,10 @@ ctest -j$CORES
 
 
 # IMU --------------------------------------------------
-echo "Do you want to download and install plugin imu? (y/n)"
-read INSTALL_IMU
+if [ $INSTALL_IMU == "undefined" ]; then
+   echo "Do you want to download and install plugin imu? (y/n)"
+   read INSTALL_IMU
+fi
 if [ $INSTALL_IMU == "y" ]; then
 
    func_echo "Cloning plugin imu..."
@@ -166,8 +266,10 @@ else
 fi
 
 # GNSS --------------------------------------------------
-echo "Do you want to download and install plugin gnss? (y/n)"
-read INSTALL_GNSS
+if [ $INSTALL_GNSS == "undefined" ]; then
+   echo "Do you want to download and install plugin gnss? (y/n)"
+   read INSTALL_GNSS
+fi
 if [ $INSTALL_GNSS == "y" ]; then
 
    func_echo "Installing plugin gnss dependencies..."
@@ -203,15 +305,19 @@ fi
 
 
 # LASER --------------------------------------------------
-echo "Do you want to download and install plugin laser? (y/n)"
-read INSTALL_LASER
+if [ $INSTALL_LASER == "undefined" ]; then
+   echo "Do you want to download and install plugin laser? (y/n)"
+   read INSTALL_LASER
+fi
 if [ $INSTALL_LASER == "y" ]; then
 
    func_echo "Installing plugin laser dependencies..."
 
    # CSM
-   echo "Do you want to install CSM to enable ICP processors? (y/n)"
-   read INSTALL_CSM
+   if [ $INSTALL_CSM == "undefined" ]; then
+      echo "Do you want to install CSM to enable ICP processors? (y/n)"
+      read INSTALL_CSM
+   fi
    if [ $INSTALL_CSM == "y" ]; then
       cd $DEPS_PATH
       git clone https://gitlab.iri.upc.edu/labrobotica/algorithms/csm.git
@@ -225,8 +331,10 @@ if [ $INSTALL_LASER == "y" ]; then
    fi
 
    # FALKO
-   echo "Do you want to install FALKO to enable Falko loop closure processors? (y/n)"
-   read INSTALL_FALKO
+   if [ $INSTALL_FALKO == "undefined" ]; then
+      echo "Do you want to install FALKO to enable Falko loop closure processors? (y/n)"
+      read INSTALL_FALKO
+   fi
    if [ $INSTALL_FALKO == "y" ]; then
       cd $DEPS_PATH
       git clone https://gitlab.iri.upc.edu/labrobotica/algorithms/falkolib.git
@@ -275,8 +383,10 @@ else
 fi
 
 # VISION --------------------------------------------------
-echo "Do you want to download and install plugin vision (requires to install opencv 3.3.0)? (y/n)"
-read INSTALL_VISION
+if [ $INSTALL_VISION == "undefined" ]; then
+   echo "Do you want to download and install plugin vision (requires to install opencv 3.3.0)? (y/n)"
+   read INSTALL_VISION
+fi
 if [ $INSTALL_VISION == "y" ]; then
 
    func_echo "Installing plugin vision dependencies..."
@@ -319,8 +429,10 @@ fi
 
 # APRILTAG --------------------------------------------------
 if [ $INSTALL_VISION == "y" ]; then
-   echo "Do you want to download and install plugin apriltag? (y/n)"
-   read INSTALL_APRILTAG
+   if [ $INSTALL_APRILTAG == "undefined" ]; then
+      echo "Do you want to download and install plugin apriltag? (y/n)"
+      read INSTALL_APRILTAG
+   fi
    if [ $INSTALL_APRILTAG == "y" ]; then
 
       func_echo "Installing plugin apriltag dependencies..."
@@ -358,9 +470,11 @@ fi
 
 # BODYDYNAMICS --------------------------------------------------
 if [ $INSTALL_IMU == "y" ]; then
-   echo "Do you want to download and install plugin bodydynamics? (y/n)"
-   read INSTALL_BD
-   if [ $INSTALL_BD == "y" ]; then
+   if [ $INSTALL_BODYDYNAMICS == "undefined" ]; then
+      echo "Do you want to download and install plugin bodydynamics? (y/n)"
+      read INSTALL_BODYDYNAMICS
+   fi
+   if [ $INSTALL_BODYDYNAMICS == "y" ]; then
 
       func_echo "Cloning plugin bodydynamics..."
       cd $WOLF_PATH