diff --git a/cfg/AdcLandmarksSlamSolver.cfg b/cfg/AdcLandmarksSlamSolver.cfg
index 736c419987526aed833d7eddc68687f8a8f4913c..2f9bcab69558ec4d33f067e25e434062fb37f4bf 100755
--- a/cfg/AdcLandmarksSlamSolver.cfg
+++ b/cfg/AdcLandmarksSlamSolver.cfg
@@ -71,6 +71,7 @@ ceres.add("update_problem_features_detected",     int_t,        0,           "Up
 ceres.add("wait_feature_detected_timeout",        double_t,     0,           "Timeout on a update problem event to wait for a feature detection",         0.2,   0.01, 0.5)
 ceres.add("landmarks_map_file",                   str_t,        0,           "Input txt file path",                                                       "landmarks.txt")
 ceres.add("load_landmarks_from_xodr",             bool_t,       0,           "If the landmarks map file is an xodr",                                      False)
+ceres.add("landmarks_xodr_scale",                 double_t,     0,           "Xodr scale",                                                                1.0, 0.0)
 ceres.add("problem_frame_window",                 int_t,        0,           "Max number of frames to add",                                               30, -1, 500)
 
 flags.add("publish_visualization",                bool_t,       0,           "Boolean to publish visualization markers",                                  False)
diff --git a/config/amcl_mapping.yaml b/config/amcl_mapping.yaml
index a6f5f655048a8b6001539c8dacd07d949f833b7e..f8dc941f26d6880f751eda3e18c0d87e5fdb82db 100644
--- a/config/amcl_mapping.yaml
+++ b/config/amcl_mapping.yaml
@@ -32,6 +32,7 @@ landmark_mahalanobis_dist: 3.5
 landmarks_min_detections: 4
 landmarks_filter_orientation_en: True
 landmarks_orientation_th: 0.4
+landmarks_xodr_scale: 10.0
 
 sensor_sigma_r: 0.2
 sensor_sigma_th: 0.3
diff --git a/config/landmarks_calibration.yaml b/config/landmarks_calibration.yaml
index 869beea07c900aa8de069881695ab811bd542420..7a1d39f4a6b96f3ae7f65281899765bbf88ef692 100644
--- a/config/landmarks_calibration.yaml
+++ b/config/landmarks_calibration.yaml
@@ -32,6 +32,7 @@ landmark_mahalanobis_dist: 3.5
 landmarks_min_detections: 4
 landmarks_filter_orientation_en: True
 landmarks_orientation_th: 0.4
+landmarks_xodr_scale: 10.0
 
 sensor_sigma_r: 0.2
 sensor_sigma_th: 0.3
diff --git a/config/landmarks_calibration_amcl.yaml b/config/landmarks_calibration_amcl.yaml
index a49cdf3f7bf0d2c69d2150ca9dac506292b34fa3..3f70650c7d42bd4f11572c5c95f1c51afab7b643 100644
--- a/config/landmarks_calibration_amcl.yaml
+++ b/config/landmarks_calibration_amcl.yaml
@@ -32,6 +32,7 @@ landmark_mahalanobis_dist: 3.5
 landmarks_min_detections: 4
 landmarks_filter_orientation_en: True
 landmarks_orientation_th: 0.4
+landmarks_xodr_scale: 10.0
 
 sensor_sigma_r: 0.2
 sensor_sigma_th: 0.3
diff --git a/config/localization.yaml b/config/localization.yaml
index b1c10392788aefb473cfbeeebcf9a419b595d734..3b1d6513d51542da662fda14c885dbf560905a8d 100644
--- a/config/localization.yaml
+++ b/config/localization.yaml
@@ -32,6 +32,7 @@ landmark_mahalanobis_dist: 3.5
 landmarks_min_detections: 4
 landmarks_filter_orientation_en: True
 landmarks_orientation_th: 0.4
+landmarks_xodr_scale: 10.0
 
 sensor_sigma_r: 0.2
 sensor_sigma_th: 0.3
diff --git a/config/slam_mapping.yaml b/config/slam_mapping.yaml
index 1442dc3762c9548de90921cb1613d4214c368c68..052370fd079ced7e0425c64a3fa26e82894d9359 100644
--- a/config/slam_mapping.yaml
+++ b/config/slam_mapping.yaml
@@ -32,6 +32,7 @@ landmark_mahalanobis_dist: 3.5
 landmarks_min_detections: 4
 landmarks_filter_orientation_en: True
 landmarks_orientation_th: 0.4
+landmarks_xodr_scale: 10.0
 
 sensor_sigma_r: 0.2
 sensor_sigma_th: 0.3
diff --git a/include/adc_landmarks_slam_solver_alg.h b/include/adc_landmarks_slam_solver_alg.h
index f47f01532f1a98024aef06a9d3bf3b19a57d121f..44bfa155397effde23e3679df92452200184aef1 100644
--- a/include/adc_landmarks_slam_solver_alg.h
+++ b/include/adc_landmarks_slam_solver_alg.h
@@ -52,6 +52,7 @@
 #define LOC_SIGN_ID_OFFSET 100
 #define LOC_SIGN_TRIANGLE_WIDTH 0.074
 #define LOC_SIGN_TRIANGLE_ANGLE M_PI/2
+#define LOC_SIGN_TRIANGLE_ANGLE_OFFSET M_PI/2
 
 //include adc_landmarks_slam_solver_alg main library
 
@@ -131,10 +132,12 @@ class AdcLandmarksSlamSolverAlgorithm
      * \param _fixed If landmarks are fixed.
      * 
      * \param _from_xodr If landamrks are loaded form an xodr file.
+     * 
+     * \param _scale Xodr scale.
      *
      * \return If success.
      */
-    bool load_landmarks(const std::string& _landmarks_file, bool _fixed, bool _from_xodr);
+    bool load_landmarks(const std::string& _landmarks_file, bool _fixed, bool _from_xodr, double _scale);
 
     /**
      * \brief Function to load landmarks map from a xodr file.
@@ -142,10 +145,12 @@ class AdcLandmarksSlamSolverAlgorithm
      * \param _landmarks_file The route to the landmarks file to be loaded.
      * 
      * \param _fixed If landmarks are fixed.
+     * 
+     * \param _scale Xodr scale.
      *
      * \return If success.
      */
-    bool load_from_xodr(const std::string& _landmarks_file, bool _fixed);
+    bool load_from_xodr(const std::string& _landmarks_file, bool _fixed, double _scale);
 
     /**
      * \brief Function to add a landmark.
diff --git a/launch/node.launch b/launch/node.launch
index 336600572dd4854dba192f093306d402cd96fd4f..bf95016a32102e874a43afc8fa380876bb04443c 100644
--- a/launch/node.launch
+++ b/launch/node.launch
@@ -6,6 +6,7 @@
   <arg name="launch_prefix"        default=""/>
   <arg name="config_file"          default="$(find iri_adc_landmarks_slam_solver)/config/params.yaml"/>
   <arg name="landmarks_map_file"   default="$(find iri_adc_landmarks_slam_solver)/data/landmarks.txt"/>
+  <arg name="load_landmarks_from_xodr"    default="false"/>
 
   <arg name="initial_pose_x"       default="0.0"/>
   <arg name="initial_pose_y"       default="0.0"/>
@@ -25,6 +26,7 @@
         launch-prefix="$(arg launch_prefix)">
     <rosparam file="$(arg config_file)" command="load"/>
     <param name="landmarks_map_file" value="$(arg landmarks_map_file)"/>
+    <param name="load_landmarks_from_xodr" value="$(arg load_landmarks_from_xodr)"/>
     <param name="initial_pose_x"     value="$(arg initial_pose_x)" />
     <param name="initial_pose_y"     value="$(arg initial_pose_y)" />
     <param name="initial_pose_yaw"     value="$(arg initial_pose_yaw)" />
diff --git a/launch/test.launch b/launch/test.launch
index 9a90334e7e2aac73c09ae0773c26ae6d642958ef..27a573f8d1ad22be27cc83adf9d43eb18acf4d5c 100644
--- a/launch/test.launch
+++ b/launch/test.launch
@@ -9,6 +9,7 @@
   <arg name="config_file"           default="amcl_mapping.yaml"/>
   <arg name="data_dir"              default="$(find iri_adc_landmarks_slam_solver)/data/"/>
   <arg name="landmarks_file"        default="landmarks.txt"/>
+  <arg name="load_landmarks_from_xodr"    default="false"/>
 
   <arg name="estimated_pose_topic_name" default="/$(arg ns)/estimated_pose"/>
   <arg name="initialpose_topic_name" default="/$(arg ns)/initialpose"/>
@@ -21,6 +22,7 @@
       <arg name="launch_prefix" value="$(arg launch_prefix)"/>
       <arg name="config_file"           value="$(arg config_dir)/$(arg config_file)"/>
       <arg name="landmarks_map_file"    value="$(arg data_dir)/$(arg landmarks_file)"/>
+      <arg name="load_landmarks_from_xodr"    value="$(arg load_landmarks_from_xodr)"/>
       <arg name="estimated_pose_topic_name"  value="$(arg estimated_pose_topic_name)"/>
       <arg name="initialpose_topic_name"  value="$(arg initialpose_topic_name)"/>
       <arg name="features_topic_name"  value="$(arg features_topic_name)"/>
diff --git a/src/adc_landmarks_slam_solver_alg.cpp b/src/adc_landmarks_slam_solver_alg.cpp
index 3a27d33517788e9864bb820e9f011005a16c87b5..be73746c1eae6f8c66bd63646087b2dc77263da1 100644
--- a/src/adc_landmarks_slam_solver_alg.cpp
+++ b/src/adc_landmarks_slam_solver_alg.cpp
@@ -55,10 +55,10 @@ void AdcLandmarksSlamSolverAlgorithm::config_update(Config& config, uint32_t lev
 }
 
 // AdcLandmarksSlamSolverAlgorithm Public API
-bool AdcLandmarksSlamSolverAlgorithm::load_landmarks(const std::string& _landmarks_file, bool _fixed, bool _from_xodr)
+bool AdcLandmarksSlamSolverAlgorithm::load_landmarks(const std::string& _landmarks_file, bool _fixed, bool _from_xodr, double _scale)
 {
   if (_from_xodr)
-    return load_from_xodr(_landmarks_file, _fixed);
+    return load_from_xodr(_landmarks_file, _fixed, _scale);
   std::ifstream landmarks_file;
   landmarks_file.open(_landmarks_file.c_str());
   if (!landmarks_file.good())
@@ -85,12 +85,13 @@ bool AdcLandmarksSlamSolverAlgorithm::load_landmarks(const std::string& _landmar
   return true;
 }
 
-bool AdcLandmarksSlamSolverAlgorithm::load_from_xodr(const std::string& _landmarks_file, bool _fixed)
+bool AdcLandmarksSlamSolverAlgorithm::load_from_xodr(const std::string& _landmarks_file, bool _fixed, double _scale)
 {
   COpendriveRoad road;
   std::string type, subtype;
   TOpendriveWorldPose world;
   try{
+    road.set_scale_factor(_scale);
     road.load(_landmarks_file);
     std::map<double, LandmarkInfo>().swap(this->landmarks_);
 
@@ -118,7 +119,7 @@ bool AdcLandmarksSlamSolverAlgorithm::load_from_xodr(const std::string& _landmar
           loc_yaw = M_PI + LOC_SIGN_TRIANGLE_ANGLE/2;
           l.pose(0) = world.x + loc_x*std::cos(world.heading) - loc_y*std::sin(world.heading);
           l.pose(1) = world.y + loc_x*std::sin(world.heading) + loc_y*std::cos(world.heading);
-          l.pose(2) = loc_yaw + world.heading;
+          l.pose(2) = loc_yaw + world.heading + LOC_SIGN_TRIANGLE_ANGLE_OFFSET;
 
           id = LOC_SIGN_ID_OFFSET + (sign.get_id()%LOC_SIGN_ID_OFFSET)*2-1;
           this->landmarks_[id] = l;
@@ -128,7 +129,7 @@ bool AdcLandmarksSlamSolverAlgorithm::load_from_xodr(const std::string& _landmar
           loc_yaw = -LOC_SIGN_TRIANGLE_ANGLE/2;
           l.pose(0) = world.x + loc_x*std::cos(world.heading) - loc_y*std::sin(world.heading);
           l.pose(1) = world.y + loc_x*std::sin(world.heading) + loc_y*std::cos(world.heading);
-          l.pose(2) = loc_yaw + world.heading;
+          l.pose(2) = loc_yaw + world.heading + LOC_SIGN_TRIANGLE_ANGLE_OFFSET;
 
           id = LOC_SIGN_ID_OFFSET + (sign.get_id()%LOC_SIGN_ID_OFFSET)*2;
           this->landmarks_[id] = l;
diff --git a/src/adc_landmarks_slam_solver_alg_node.cpp b/src/adc_landmarks_slam_solver_alg_node.cpp
index 5a6d4f4da9a77fba68e435c6dd32fba57fdc6381..2dd6158a42943c4120b14a1428dbe553dc550b6c 100644
--- a/src/adc_landmarks_slam_solver_alg_node.cpp
+++ b/src/adc_landmarks_slam_solver_alg_node.cpp
@@ -84,6 +84,15 @@ AdcLandmarksSlamSolverAlgNode::AdcLandmarksSlamSolverAlgNode(void) :
       ROS_WARN("AdcLandmarksSlamSolverAlgNode::AdcLandmarksSlamSolverAlgNode: param 'load_landmarks_from_xodr' not found. Setting it to false.");
       this->config_.load_landmarks_from_xodr = false;
     }
+
+    if (this->config_.load_landmarks_from_xodr)
+    {
+      if(!this->private_node_handle_.getParam("landmarks_xodr_scale", this->config_.landmarks_xodr_scale))
+      {
+        ROS_WARN("AdcLandmarksSlamSolverAlgNode::AdcLandmarksSlamSolverAlgNode: param 'landmarks_xodr_scale' not found. Setting it to false.");
+        this->config_.landmarks_xodr_scale = false;
+      }
+    }
     load_landmarks();
   }
   if (!this->config_.amcl_localization)
@@ -901,7 +910,7 @@ bool AdcLandmarksSlamSolverAlgNode::get_tf_map_odom(ros::Time _t, Eigen::Vector3
 void AdcLandmarksSlamSolverAlgNode::load_landmarks(void)
 {
   ROS_INFO_STREAM("AdcLandmarksSlamSolverAlgNode::load_landmarks -> Loading from file " << this->config_.landmarks_map_file);
-  if (!this->alg_.load_landmarks(this->config_.landmarks_map_file, this->config_.landmarks_pos_fixed, this->config_.load_landmarks_from_xodr))
+  if (!this->alg_.load_landmarks(this->config_.landmarks_map_file, this->config_.landmarks_pos_fixed, this->config_.load_landmarks_from_xodr, this->config_.landmarks_xodr_scale))
     ROS_ERROR_STREAM("AdcLandmarksSlamSolverAlgNode::load_landmarks -> File" << this->config_.landmarks_map_file << " can't be opened");
 }
 
@@ -948,7 +957,7 @@ void AdcLandmarksSlamSolverAlgNode::publish_landmarks_markers()
     this->landmarks_MarkerArray_msg_.markers[i].id = i;
     this->landmarks_MarkerArray_msg_.markers[i].ns = "landmarks";
     // this->landmarks_MarkerArray_msg_.markers[i].type = visualization_msgs::Marker::TEXT_VIEW_FACING;
-    this->landmarks_MarkerArray_msg_.markers[i].type = visualization_msgs::Marker::ARROW;
+    this->landmarks_MarkerArray_msg_.markers[i].type = visualization_msgs::Marker::CUBE;
     this->landmarks_MarkerArray_msg_.markers[i].action = visualization_msgs::Marker::ADD;
     // this->landmarks_MarkerArray_msg_.markers[i].lifetime = ros::Duration(0.1);