diff --git a/cfg/TiagoArmBtClient.cfg b/cfg/TiagoArmBtClient.cfg
index 1925d3ed05cc57bf420cc05f775f87af7530d981..98c3e8728e1a6f89238f9cfbcecb419dcda70f6b 100755
--- a/cfg/TiagoArmBtClient.cfg
+++ b/cfg/TiagoArmBtClient.cfg
@@ -48,12 +48,7 @@ add_bt_client_params(gen)
 gen.add("START",                    bool_t,     0,                              "synchronous start",                       False)
 gen.add("RESTART",                  bool_t,     0,                              "asynchronous restart of BT",              False)
 
-arm_to_move_enum = gen.enum([ gen.const("tiago_arm",            int_t,        0,      "Tiago Arm"),
-                              gen.const("ivo_left_arm",         int_t,        1,      "Ivo left arm"),
-                              gen.const("tiago_dual_left_arm",  int_t,        2,      "Tiago dual left arm")],
-                              "The posibles arms to control")
 move_joints.add("set_joints",           bool_t,    0,                          "Set selected angles",            False)
-move_joints.add("arm_to_move",          int_t,     0,                          "The arm to move",                0,          0,     1,      edit_method=arm_to_move_enum)
 move_joints.add("torso",                double_t,  0,                          "Target angle for torso",         0.15,       0.0, 0.35)
 move_joints.add("joint1",               double_t,  0,                          "Target angle for joint 1",       0.2,       -3.14159, 3.14159)
 move_joints.add("joint2",               double_t,  0,                          "Target angle for joint 2",       -1.3,       -3.14159, 3.14159)
diff --git a/config/ari_arm_module_default.yaml b/config/ari_arm_module_default.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ba28a4c7c40889df7159dd967bd4c263f5baaaab
--- /dev/null
+++ b/config/ari_arm_module_default.yaml
@@ -0,0 +1,26 @@
+arm_module_rate_hz: 1.0
+
+move_num_retries: 1
+move_feedback_watchdog_time_s: 1.0
+move_enable_watchdog: False
+move_timeout_s: 10.0
+move_enable_timeout: True
+move_enabled: True
+
+#joint states watchdog time
+js_watchdog_time_s: 1.0
+
+planner_id: "RRTkConfigDefault"
+group_name: "arm_left"
+max_plan_attempts: 5
+max_plan_time: 10.0
+max_vel_scale: 1.0
+end_effector_tool: "arm_left_grasping_frame"
+
+ws_frame_id: "/base_footprint"
+ws_x_min: -1.0
+ws_y_min: -1.0
+ws_z_min: -1.0
+ws_x_max: 1.0
+ws_y_max: 1.0
+ws_z_max: 1.0
diff --git a/config/ari_move_groups.yaml b/config/ari_move_groups.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c38d0a514f42e3e0eedb4c84d3f605f774bb84d1
--- /dev/null
+++ b/config/ari_move_groups.yaml
@@ -0,0 +1,13 @@
+move_groups:
+  - arm_left
+  - arm_right
+arm_left:
+  - arm_left_1_joint
+  - arm_left_2_joint
+  - arm_left_3_joint
+  - arm_left_4_joint
+arm_right:
+  - arm_right_1_joint
+  - arm_right_2_joint
+  - arm_right_3_joint
+  - arm_right_4_joint
diff --git a/include/tiago_arm_module/tiago_arm_bt_module.h b/include/tiago_arm_module/tiago_arm_bt_module.h
index 417bd3136ec0463a4140f0b7d7351e0f6d93996b..8debac86c60e4884879a6c2cc5ce2273028ad0a8 100644
--- a/include/tiago_arm_module/tiago_arm_bt_module.h
+++ b/include/tiago_arm_module/tiago_arm_bt_module.h
@@ -83,7 +83,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   joint_targets (sensor_msgs::JointState): The target JointState
+      *   target_joints (sensor_msgs::JointState): The target JointState
       *
       *   joint_tol (double): [Optional] Joints tolerance.
       *
@@ -105,7 +105,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   joint_targets (sensor_msgs::JointState): The target JointState
+      *   target_joints (sensor_msgs::JointState): The target JointState
       *
       *   joint_tol (double): [Optional] Joints tolerance.
       *
@@ -419,7 +419,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       *   pose (geometry_msgs::PoseStamped): The object pose.
       *
@@ -443,7 +443,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       *   pose (geometry_msgs::PoseStamped): The new object pose.
       *
@@ -461,7 +461,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       *   width (double): The object width.
       *
@@ -483,7 +483,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       * \return a BT:NodeStatus indicating whether the request has been
       * successfull (BT:NodeStatus::SUCCESS) or not (BT:NodeStatus::FAILURE).
@@ -499,7 +499,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       * \return a BT:NodeStatus indicating whether the request has been
       * successfull (BT:NodeStatus::SUCCESS) or not (BT:NodeStatus::FAILURE).
@@ -515,7 +515,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       * \return a BT:NodeStatus indicating whether the request has been
       * successfull (BT:NodeStatus::SUCCESS) or not (BT:NodeStatus::FAILURE).
@@ -531,7 +531,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       *   link (std::string): [Optional] The gripper link.
       *
@@ -549,7 +549,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       * \return a BT:NodeStatus indicating whether the request has been
       * successfull (BT:NodeStatus::SUCCESS) or not (BT:NodeStatus::FAILURE).
@@ -565,7 +565,7 @@ class CTiagoArmModuleBT
       *
       * It has the following input ports:
       *
-      *   name (std::string): The object name.
+      *   obj_name (std::string): The object name.
       *
       * \return a BT:NodeStatus indicating whether the request has been
       * successfull (BT:NodeStatus::SUCCESS) or not (BT:NodeStatus::FAILURE).
diff --git a/launch/ari_arm_bt_client.launch b/launch/ari_arm_bt_client.launch
new file mode 100644
index 0000000000000000000000000000000000000000..989a98214f6e6abc74ab603ce31524b795c3ea52
--- /dev/null
+++ b/launch/ari_arm_bt_client.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launch>
+  <arg name="node_name" default="arm_client" />
+  <arg name="output" default="screen" />
+  <arg name="launch_prefix" default="" />
+  <arg name="config_file" default="$(find tiago_arm_module)/config/ari_arm_module_default.yaml" />
+  <arg name="move_groups_file" default="$(find tiago_arm_module)/config/ari_move_groups.yaml" />
+  <arg name="joint_states_topic" default="/joint_states"/>
+  <arg name="arm_action" default="/move_group"/>
+  <arg name="planning_scene_topic" default="/planning_scene"/>
+  <arg name="get_planning_scene_service" default="/get_planning_scene"/>
+
+  <arg name="tree_path"          default="$(find tiago_arm_module)/src/xml" />
+  <arg name="tree_file"          default="bt_test" />
+  <arg name="bt_client_rate"     default="10" />
+
+  <!-- launch the play motion client node -->
+  <node name="$(arg node_name)"
+        pkg="tiago_arm_module"
+        type="tiago_arm_bt_client"
+	output="$(arg output)"
+	launch-prefix="$(arg launch_prefix)">
+    <remap from="~/arm_module/joint_states"
+             to="$(arg joint_states_topic)"/>
+    <remap from="~/arm_module/arm"
+             to="$(arg arm_action)"/>
+    <remap from="~/arm_module/planning_scene"
+             to="$(arg planning_scene_topic)"/>
+    <remap from="~/arm_module/get_planning_scene"
+             to="$(arg get_planning_scene_service)"/>
+    <rosparam file="$(arg config_file)" command="load" ns="arm_module" />
+    <rosparam file="$(arg move_groups_file)" command="load" ns="arm_module" />
+    <param name="path"                value="$(arg tree_path)"/>
+    <param name="tree_xml_file"       value="$(arg tree_file)"/>
+    <param name="bt_client_rate"      value="$(arg bt_client_rate)"/>
+  </node>
+
+  <!-- launch dynamic reconfigure -->
+  <node name="rqt_reconfigure" pkg="rqt_reconfigure" type="rqt_reconfigure" respawn="false"
+    output="screen"/>
+
+</launch>
+
diff --git a/launch/ari_arm_client.launch b/launch/ari_arm_client.launch
new file mode 100644
index 0000000000000000000000000000000000000000..04f117840ad172b1e5045d4a1fae2712e772633a
--- /dev/null
+++ b/launch/ari_arm_client.launch
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launch>
+  <arg name="node_name" default="arm_client" />
+  <arg name="output" default="screen" />
+  <arg name="launch_prefix" default="" />
+  <arg name="config_file" default="$(find tiago_arm_module)/config/ari_arm_module_default.yaml" />
+  <arg name="move_groups_file" default="$(find tiago_arm_module)/config/ari_move_groups.yaml" />
+  <arg name="joint_states_topic" default="/joint_states"/>
+  <arg name="arm_action" default="/move_group"/>
+  <arg name="planning_scene_topic" default="/planning_scene"/>
+  <arg name="get_planning_scene_service" default="/get_planning_scene"/>
+
+  <!-- launch the play motion client node -->
+  <node name="$(arg node_name)"
+        pkg="tiago_arm_module"
+        type="tiago_arm_client"
+	output="$(arg output)"
+	launch-prefix="$(arg launch_prefix)">
+    <remap from="~/arm_module/joint_states"
+             to="$(arg joint_states_topic)"/>
+    <remap from="~/arm_module/arm"
+             to="$(arg arm_action)"/>
+    <remap from="~/arm_module/planning_scene"
+             to="$(arg planning_scene_topic)"/>
+    <remap from="~/arm_module/get_planning_scene"
+             to="$(arg get_planning_scene_service)"/>
+    <rosparam file="$(arg config_file)" command="load" ns="arm_module" />
+    <rosparam file="$(arg move_groups_file)" command="load" ns="arm_module" />
+  </node>
+
+  <!-- launch dynamic reconfigure -->
+  <node name="rqt_reconfigure" pkg="rqt_reconfigure" type="rqt_reconfigure" respawn="false"
+    output="screen"/>
+
+</launch>
+
diff --git a/src/tiago_arm_bt_client_alg_node.cpp b/src/tiago_arm_bt_client_alg_node.cpp
index 0512a8ca7a0e6c0628d3b6d2dfad2f1cad046efa..46214478d9feeda1a757764f6b14784e58bbc5da 100644
--- a/src/tiago_arm_bt_client_alg_node.cpp
+++ b/src/tiago_arm_bt_client_alg_node.cpp
@@ -47,6 +47,7 @@ TiagoArmModuleBtClientAlgNode::~TiagoArmModuleBtClientAlgNode(void)
 
 void TiagoArmModuleBtClientAlgNode::node_config_update(tiago_arm_module::TiagoArmBtClientConfig &config, uint32_t level)
 {
+  std::string move_group;
   this->lock();
 
   if(config.START)
@@ -68,36 +69,37 @@ void TiagoArmModuleBtClientAlgNode::node_config_update(tiago_arm_module::TiagoAr
     config.set_joints = false;
     std::vector<std::string>().swap(this->target_joint_states.name);
     std::vector<double>().swap(this->target_joint_states.position);
-    if (config.arm_to_move == 0)//tiago_arm
+    move_group=this->tiago_arm_module.get_group_name();
+    this->target_joint_states.name=this->tiago_arm_module.get_group_joints();
+    this->target_joint_states.position.resize(this->target_joint_states.name.size());
+    if(move_group.find("torso")!=std::string::npos) // Tiago with torso
     {
-      this->target_joint_states.name.push_back("torso_lift_joint");
-      this->target_joint_states.name.push_back("arm_1_joint");
-      this->target_joint_states.name.push_back("arm_2_joint");
-      this->target_joint_states.name.push_back("arm_3_joint");
-      this->target_joint_states.name.push_back("arm_4_joint");
-      this->target_joint_states.name.push_back("arm_5_joint");
-      this->target_joint_states.name.push_back("arm_6_joint");
-      this->target_joint_states.name.push_back("arm_7_joint");
+      this->target_joint_states.position[0]=config.torso;
+      this->target_joint_states.position[1]=config.joint1;
+      this->target_joint_states.position[2]=config.joint2;
+      this->target_joint_states.position[3]=config.joint3;
+      this->target_joint_states.position[4]=config.joint4;
+      this->target_joint_states.position[5]=config.joint5;
+      this->target_joint_states.position[6]=config.joint6;
+      this->target_joint_states.position[7]=config.joint7;
     }
-    else if (config.arm_to_move == 1 || config.arm_to_move == 2)//ivo_left_arm or tiago_dual_left_arm
+    else if (this->target_joint_states.position.size() == 7) //Tiago
     {
-      this->target_joint_states.name.push_back("torso_lift_joint");
-      this->target_joint_states.name.push_back("arm_left_1_joint");
-      this->target_joint_states.name.push_back("arm_left_2_joint");
-      this->target_joint_states.name.push_back("arm_left_3_joint");
-      this->target_joint_states.name.push_back("arm_left_4_joint");
-      this->target_joint_states.name.push_back("arm_left_5_joint");
-      this->target_joint_states.name.push_back("arm_left_6_joint");
-      this->target_joint_states.name.push_back("arm_left_7_joint");
+      this->target_joint_states.position[0]=config.joint1;
+      this->target_joint_states.position[1]=config.joint2;
+      this->target_joint_states.position[2]=config.joint3;
+      this->target_joint_states.position[3]=config.joint4;
+      this->target_joint_states.position[4]=config.joint5;
+      this->target_joint_states.position[5]=config.joint6;
+      this->target_joint_states.position[6]=config.joint7;
+    }
+    else if (this->target_joint_states.position.size() == 4) //ari
+    {
+      this->target_joint_states.position[0]=config.joint1;
+      this->target_joint_states.position[1]=config.joint2;
+      this->target_joint_states.position[2]=config.joint3;
+      this->target_joint_states.position[3]=config.joint4;
     }
-    this->target_joint_states.position.push_back(config.torso);
-    this->target_joint_states.position.push_back(config.joint1);
-    this->target_joint_states.position.push_back(config.joint2);
-    this->target_joint_states.position.push_back(config.joint3);
-    this->target_joint_states.position.push_back(config.joint4);
-    this->target_joint_states.position.push_back(config.joint5);
-    this->target_joint_states.position.push_back(config.joint6);
-    this->target_joint_states.position.push_back(config.joint7);
   }
 
   if (config.set_pose)
diff --git a/src/tiago_arm_client_alg_node.cpp b/src/tiago_arm_client_alg_node.cpp
index d34a58e827581f378f7fbaa7b8e2e6e2978951a1..7a6dcb848a44d65817fa08114d7d8c815a882383 100644
--- a/src/tiago_arm_client_alg_node.cpp
+++ b/src/tiago_arm_client_alg_node.cpp
@@ -59,7 +59,7 @@ void TiagoArmClientAlgNode::node_config_update(Config &config, uint32_t level)
     move_group=this->arm.get_group_name();
     joint_states.name=this->arm.get_group_joints();
     joint_states.position.resize(joint_states.name.size());
-    if(move_group.find("torso")!=std::string::npos)
+    if(move_group.find("torso")!=std::string::npos) // Tiago with torso
     {
       joint_states.position[0]=config.torso;
       joint_states.position[1]=config.joint1;
@@ -70,7 +70,7 @@ void TiagoArmClientAlgNode::node_config_update(Config &config, uint32_t level)
       joint_states.position[6]=config.joint6;
       joint_states.position[7]=config.joint7;
     }
-    else
+    else if (joint_states.position.size() == 7) //Tiago
     {
       joint_states.position[0]=config.joint1;
       joint_states.position[1]=config.joint2;
@@ -80,6 +80,15 @@ void TiagoArmClientAlgNode::node_config_update(Config &config, uint32_t level)
       joint_states.position[5]=config.joint6;
       joint_states.position[6]=config.joint7;
     }
+    else if (joint_states.position.size() == 4) //ari
+    {
+      joint_states.position[0]=config.joint1;
+      joint_states.position[1]=config.joint2;
+      joint_states.position[2]=config.joint3;
+      joint_states.position[3]=config.joint4;
+    }
+    else
+      ROS_ERROR("TiagoArmClientAlgNode -> Number of joints not recognized");
     this->arm.move_to(joint_states,config.joint_tol);
     config.start_joints=false;
   }
diff --git a/src/xml/bt_definitions.xml b/src/xml/bt_definitions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8a1cdd15abac17e8f75c0047e8ec7086d1164169
--- /dev/null
+++ b/src/xml/bt_definitions.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<root main_tree_to_execute="BehaviorTree">
+    <!-- ////////// -->
+    <BehaviorTree ID="BehaviorTree">
+    </BehaviorTree>
+    <!-- ////////// -->
+    <TreeNodesModel>
+        <!-- tiago_arm_module -->
+        <Action ID="sync_cancel_tiago_arm_action"/>
+        <Action ID="async_cancel_tiago_arm_action"/>
+        <Action ID="async_is_tiago_arm_finished"/>
+        <Action ID="set_tiago_arm_workspace">
+            <input_port name="frame_id"> Workspace's frame ID</input_port>
+            <input_port name="x_min"> Workspace's x min</input_port>
+            <input_port name="y_min"> Workspace's y min</input_port>
+            <input_port name="z_min"> Workspace's z min</input_port>
+            <input_port name="x_max"> Workspace's x max</input_port>
+            <input_port name="y_max"> Workspace's y max</input_port>
+            <input_port name="z_max"> Workspace's z max</input_port>
+        </Action>
+        <Action ID="sync_tiago_arm_move_to_joints">
+            <input_port name="target_joints"> The target JointState</input_port>
+            <input_port name="joint_tol"> Joints tolerance</input_port>
+        </Action>
+        <Action ID="async_tiago_arm_move_to_joints">
+            <input_port name="target_joints"> The target JointState</input_port>
+            <input_port name="joint_tol"> Joints tolerance</input_port>
+            <input_port name="new_goal"> If it's a new_goal</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_current_joint_angles">
+            <output_port name="joint_states"> The current JointState</output_port>
+        </Action>
+        <Action ID="sync_tiago_arm_move_to_pose">
+            <input_port name="pose">  The target pose</input_port>
+            <input_port name="position_tol"> Position tolerance</input_port>
+            <input_port name="orientation_tol"> Orientation tolerance</input_port>
+        </Action>
+        <Action ID="async_tiago_arm_move_to_pose">
+            <input_port name="pose">  The target pose</input_port>
+            <input_port name="position_tol"> Position tolerance</input_port>
+            <input_port name="orientation_tol"> Orientation tolerance</input_port>
+            <input_port name="new_goal"> If it's a new_goal</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_current_pose">
+            <output_port name="pose"> The current pose</output_port>
+        </Action>
+        <Action ID="set_tiago_arm_planner">
+            <input_port name="planner_id"> The planner id</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_planner">
+            <output_port name="planner_id"> The planner id</output_port>
+        </Action>
+        <Action ID="set_tiago_arm_group_name">
+            <input_port name="group_id"> The group id</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_group_name">
+            <output_port name="group_id"> The group id</output_port>
+        </Action>
+        <Action ID="get_tiago_arm_group_joints">
+            <output_port name="joint_names"> The group joints' names</output_port>
+        </Action>
+        <Action ID="set_tiago_arm_max_planning_attempts">
+            <input_port name="num"> The num of maximum planning attempts</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_max_planning_attempts">
+            <output_port name="num"> The num of maximum planning attempts</output_port>
+        </Action>
+        <Action ID="set_tiago_arm_max_planning_time">
+            <input_port name="time"> The maximum planning time</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_max_planning_time">
+            <output_port name="time"> The maximum planning time</output_port>
+        </Action>
+        <Action ID="set_tiago_arm_velocity_scale_factor">
+            <input_port name="scale"> The velocity scale factor</input_port>
+        </Action>
+        <Action ID="get_tiago_arm_velocity_scale_factor">
+            <output_port name="scale"> The velocity scale factor</output_port>
+        </Action>
+        <Action ID="tiago_arm_add_object">
+            <input_port name="obj_name">  The object name</input_port>
+            <input_port name="pose">  The object pose</input_port>
+            <input_port name="width">  The object width</input_port>
+            <input_port name="length">  The object length</input_port>
+            <input_port name="height">  The object height</input_port>
+        </Action>
+        <Action ID="tiago_arm_update_object_pose">
+            <input_port name="obj_name">  The object name</input_port>
+            <input_port name="pose">  The object pose</input_port>
+        </Action>
+        <Action ID="tiago_arm_update_object_size">
+            <input_port name="obj_name">  The object name</input_port>
+            <input_port name="width">  The object width</input_port>
+            <input_port name="length">  The object length</input_port>
+            <input_port name="height">  The object height</input_port>
+        </Action>
+        <Action ID="tiago_arm_remove_object">
+            <input_port name="obj_name">  The object name</input_port>
+        </Action>
+        <Action ID="tiago_arm_add_object_to_environment">
+            <input_port name="obj_name">  The object name</input_port>
+        </Action>
+        <Action ID="tiago_arm_remove_object_from_environment">
+            <input_port name="obj_name">  The object name</input_port>
+        </Action>
+        <Action ID="tiago_arm_attach_object_to_robot">
+            <input_port name="obj_name">  The object name</input_port>
+            <input_port name="link"> The gripper link</input_port>
+        </Action>
+        <Action ID="tiago_arm_dettach_object_from_robot">
+            <input_port name="obj_name">  The object name</input_port>
+        </Action>
+        <Action ID="tiago_arm_disable_collision">
+            <input_port name="obj_name">  The object name</input_port>
+        </Action>
+        <Action ID="tiago_arm_get_current_planning_scene">
+            <input_port name="component">  Planing scene component</input_port>
+        </Action>
+        <Action ID="tiago_arm_clear_path_constraints"/>
+        <Action ID="tiago_arm_add_orientation_path_constraint">
+            <input_port name="quat">  The orientation constraint</input_port>
+            <input_port name="orientation_tol"> The orientation constraint tolerance</input_port>
+        </Action>
+        <Action ID="tiago_arm_add_plane_path_constraint">
+            <input_port name="plane">  The plane definition</input_port>
+            <input_port name="frame_id">  The plane frame_id</input_port>
+            <input_port name="offset"> The plane offset</input_port>
+            <input_port name="position_tol"> The position tolerance</input_port>
+        </Action>
+        <Action ID="tiago_arm_add_plane_path_constraint_normal">
+            <input_port name="normal">  The plane definition</input_port>
+            <input_port name="frame_id">  The plane frame_id</input_port>
+            <input_port name="offset"> The plane offset</input_port>
+            <input_port name="position_tol"> The position tolerance</input_port>
+        </Action>
+        <Action ID="tiago_arm_add_joint_goal_constraint">
+            <input_port name="joint_names">  The joint names</input_port>
+            <input_port name="position">  The joint positions</input_port>
+            <input_port name="tol"> The joints tolerance</input_port>
+        </Action>
+        <Condition ID="is_tiago_arm_finished"/>
+        <Condition ID="is_tiago_arm_module_running"/>
+        <Condition ID="is_tiago_arm_module_success"/>
+        <Condition ID="is_tiago_arm_module_action_start_fail"/>
+        <Condition ID="is_tiago_arm_module_timeout"/>
+        <Condition ID="is_tiago_arm_module_fb_watchdog"/>
+        <Condition ID="is_tiago_arm_module_aborted"/>
+        <Condition ID="is_tiago_arm_module_preempted"/>
+        <Condition ID="is_tiago_arm_module_rejected"/>
+        <Condition ID="is_tiago_arm_module_no_joint_states"/>
+    </TreeNodesModel>
+    <!-- ////////// -->
+</root>
+
+
diff --git a/src/xml/bt_test.xml b/src/xml/bt_test.xml
index 55d3aa789711f170ecafacc1e6eab69bc9bdfb41..a7c2f8180f3f0014cd503e023585ec2eb7f87101 100644
--- a/src/xml/bt_test.xml
+++ b/src/xml/bt_test.xml
@@ -95,40 +95,40 @@
             <output_port name="scale"> The velocity scale factor</output_port>
         </Action>
         <Action ID="tiago_arm_add_object">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
             <input_port name="pose">  The object pose</input_port>
             <input_port name="width">  The object width</input_port>
             <input_port name="length">  The object length</input_port>
             <input_port name="height">  The object height</input_port>
         </Action>
         <Action ID="tiago_arm_update_object_pose">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
             <input_port name="pose">  The object pose</input_port>
         </Action>
         <Action ID="tiago_arm_update_object_size">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
             <input_port name="width">  The object width</input_port>
             <input_port name="length">  The object length</input_port>
             <input_port name="height">  The object height</input_port>
         </Action>
         <Action ID="tiago_arm_remove_object">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
         </Action>
         <Action ID="tiago_arm_add_object_to_environment">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
         </Action>
         <Action ID="tiago_arm_remove_object_from_environment">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
         </Action>
         <Action ID="tiago_arm_attach_object_to_robot">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
             <input_port name="link"> The gripper link</input_port>
         </Action>
         <Action ID="tiago_arm_dettach_object_from_robot">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
         </Action>
         <Action ID="tiago_arm_disable_collision">
-            <input_port name="name">  The object name</input_port>
+            <input_port name="obj_name">  The object name</input_port>
         </Action>
         <Action ID="tiago_arm_get_current_planning_scene">
             <input_port name="component">  Planing scene component</input_port>