diff --git a/src/examples/opendrive_test.cpp b/src/examples/opendrive_test.cpp
index 7798ea4a3211a89b0f6ca099f98cee85ebe43eb3..5a9ca6f987b8ad08c474ca9d356869b7824723ab 100644
--- a/src/examples/opendrive_test.cpp
+++ b/src/examples/opendrive_test.cpp
@@ -6,13 +6,13 @@
 
 int main(int argc, char *argv[])
 {
-//  TOpendriveWorldPoint closest_point;
-//  std::vector<double> x,y;
+//  TOpendriveWorldPose closest_pose;
+  std::vector<double> x,y;
   COpendriveRoad road,new_road;
   std::vector<unsigned int> path;
-  TOpendriveWorldPoint end_point,start_point;
-//  std::string xml_file="/home/sergi/iri-lab/adc_ws/code/autonomous_driving_tools/src/xml/add_road_full.xodr";
-  std::string xml_file="/home/sergi/iri-lab/adc_ws/code/autonomous_driving_tools/src/xml/adc_road.xodr";
+  TOpendriveWorldPose end_pose,start_pose;
+  std::string xml_file="/home/sergi/iri-lab/adc_ws/code/autonomous_driving_tools/src/xml/add_road_full.xodr";
+//  std::string xml_file="/home/sergi/iri-lab/adc_ws/code/autonomous_driving_tools/src/xml/adc_road.xodr";
   
   try
   {
@@ -21,7 +21,6 @@ int main(int argc, char *argv[])
     road.set_min_road_length(0.01);
     road.load(xml_file);
 //    std::cout << road << std::endl;
-/*
     for(unsigned int i=0;i<road.get_num_nodes();i++)
     {
       const COpendriveRoadNode &node=road.get_node(i);
@@ -33,6 +32,47 @@ int main(int argc, char *argv[])
           std::cout << x[k] << "," << y[k] << std::endl;
       }
     }
+/*
+    path.push_back(4);
+    start_pose.x=10.0;
+    start_pose.y=0.0;
+    start_pose.heading=0.0;
+    end_pose.x=17.0;
+    end_pose.y=0.0;
+    end_pose.heading=0.0;
+    road.get_sub_road(path,start_pose,end_pose,new_road);
+    std::cout << "road1" << std::endl;
+    std::cout << new_road << std::endl;
+*/
+/*
+    path.clear();
+    path.push_back(4);
+    path.push_back(6);
+    path.push_back(8);
+    path.push_back(150);
+    path.push_back(67);
+    path.push_back(69);
+    path.push_back(71);
+    start_pose.x=10.0;
+    start_pose.y=0.0;
+    start_pose.heading=0.0;
+    end_pose.x=18.5;
+    end_pose.y=22.0;
+    end_pose.heading=0.0;
+    road.get_sub_road(path,start_pose,end_pose,new_road);
+//    std::cout << "road2" << std::endl;
+//    std::cout << new_road << std::endl;
+    for(unsigned int i=0;i<new_road.get_num_nodes();i++)
+    {
+      const COpendriveRoadNode &node=new_road.get_node(i);
+      for(unsigned int j=0;j<node.get_num_links();j++)
+      {
+        const COpendriveLink &link=node.get_link(j);
+        link.get_trajectory(x,y);
+        for(unsigned int k=0;k<x.size();k++)
+          std::cout << x[k] << "," << y[k] << std::endl;
+      }
+    }
 */
 /*
     if(argc!=4)
@@ -41,33 +81,36 @@ int main(int argc, char *argv[])
       std::cout << argv[0] << " x y heading" << std::endl;
       return -1;
     }
-    end_point.x=std::stod(argv[1]);
-    end_point.y=std::stod(argv[2]);
-    end_point.heading=std::stod(argv[3]);
-    length=road.get_closest_point(end_point,closest_point);
-    std::cout << "closest point to: " << x << "," << y << "," << heading << " -> " << closest_point.x << "," << closest_point.y << "," << closest_point.heading << " at " << length << " m" << std::endl;
+    end_pose.x=std::stod(argv[1]);
+    end_pose.y=std::stod(argv[2]);
+    end_pose.heading=std::stod(argv[3]);
+    length=road.get_closest_pose(end_pose,closest_pose);
+    std::cout << "closest pose to: " << x << "," << y << "," << heading << " -> " << closest_pose.x << "," << closest_pose.y << "," << closest_pose.heading << " at " << length << " m" << std::endl;
 */  
+/*
     path.push_back(0);
-    start_point.x=1.0;
-    start_point.y=0.0;
-    start_point.heading=0.0;
-    end_point.x=2.0;
-    end_point.y=0.0;
-    end_point.heading=0.0;
-    road.get_sub_road(path,start_point,end_point,new_road);
+    start_pose.x=1.0;
+    start_pose.y=0.0;
+    start_pose.heading=0.0;
+    end_pose.x=2.0;
+    end_pose.y=0.0;
+    end_pose.heading=0.0;
+    road.get_sub_road(path,start_pose,end_pose,new_road);
     std::cout << "road1" << std::endl;
     std::cout << new_road << std::endl;
+*/
+/*
     path.clear();
     path.push_back(0);
     path.push_back(22);
     path.push_back(2);
-    start_point.x=1.0;
-    start_point.y=0.0;
-    start_point.heading=0.0;
-    end_point.x=5.0;
-    end_point.y=0.0;
-    end_point.heading=0.0;
-    road.get_sub_road(path,start_point,end_point,new_road);
+    start_pose.x=1.0;
+    start_pose.y=0.0;
+    start_pose.heading=0.0;
+    end_pose.x=5.0;
+    end_pose.y=0.0;
+    end_pose.heading=0.0;
+    road.get_sub_road(path,start_pose,end_pose,new_road);
     std::cout << "road2" << std::endl;
     std::cout << new_road << std::endl;
     path.clear();
@@ -80,15 +123,31 @@ int main(int argc, char *argv[])
     path.push_back(10);
     path.push_back(25);
     path.push_back(21);
-    start_point.x=1.0;
-    start_point.y=0.0;
-    start_point.heading=0.0;
-    end_point.x=3.0;
-    end_point.y=1.5;
-    end_point.heading=0.0;
-    road.get_sub_road(path,start_point,end_point,new_road);
+    path.push_back(24);
+    path.push_back(1);
+    start_pose.x=1.0;
+    start_pose.y=0.0;
+    start_pose.heading=0.0;
+    end_pose.x=2.0;
+    end_pose.y=0.0;
+    end_pose.heading=0.0;
+    road.get_sub_road(path,start_pose,end_pose,new_road);
     std::cout << "road3" << std::endl;
     std::cout << new_road << std::endl;
+*/
+/*
+    for(unsigned int i=0;i<new_road.get_num_nodes();i++)
+    {
+      const COpendriveRoadNode &node=new_road.get_node(i);
+      for(unsigned int j=0;j<node.get_num_links();j++)
+      {
+        const COpendriveLink &link=node.get_link(j);
+        link.get_trajectory(x,y);
+        for(unsigned int k=0;k<x.size();k++)
+          std::cout << x[k] << "," << y[k] << std::endl;
+      }
+    }
+*/
   }
   catch (CException &e)
   {