diff --git a/talos_description/gazebo/gazebo.urdf.xacro b/talos_description/gazebo/gazebo.urdf.xacro
index 916a7dc2b37c47e293baa7115ec0d41d4270547b..9ec18fde3fdb355471e697f0330a9bb6f41b5aab 100644
--- a/talos_description/gazebo/gazebo.urdf.xacro
+++ b/talos_description/gazebo/gazebo.urdf.xacro
@@ -14,6 +14,7 @@
     <plugin filename="libgazebo_world_odometry.so" name="gazebo_ros_odometry">
       <frameName>torso_2_link</frameName>
       <topicName>floating_base_pose</topicName>
+      <updateRate>100.0</updateRate>
     </plugin>
   </gazebo>
 
diff --git a/talos_description/urdf/arm/arm.urdf.xacro b/talos_description/urdf/arm/arm.urdf.xacro
index 1c7f08a94c68b84a1a522e352bcf39b10e069106..f020b56582734810dec708cd0b2702cf1d28b479 100644
--- a/talos_description/urdf/arm/arm.urdf.xacro
+++ b/talos_description/urdf/arm/arm.urdf.xacro
@@ -205,18 +205,22 @@
    <gazebo reference="${name}_${side}_1_link">
      <mu1>0.9</mu1>
      <mu2>0.9</mu2>
+     <material>Gazebo/FlatBlack</material>
    </gazebo>
    <gazebo reference="${name}_${side}_2_link">
      <mu1>0.9</mu1>
      <mu2>0.9</mu2>
+     <material>Gazebo/FlatBlack</material>
    </gazebo>
    <gazebo reference="${name}_${side}_3_link">
      <mu1>0.9</mu1>
      <mu2>0.9</mu2>
+     <material>Gazebo/FlatBlack</material>
    </gazebo>
    <gazebo reference="${name}_${side}_4_link">
      <mu1>0.9</mu1>
      <mu2>0.9</mu2>
+     <material>Gazebo/FlatBlack</material>
    </gazebo>
 
    <gazebo reference="${name}_${side}_1_joint">
diff --git a/talos_description/urdf/arm/wrist.urdf.xacro b/talos_description/urdf/arm/wrist.urdf.xacro
index f2c3af786290b92b0d798399ef8ca54a7a002ba6..efa3435abf660f039d5c3ce6eee3ddc80a300aa3 100644
--- a/talos_description/urdf/arm/wrist.urdf.xacro
+++ b/talos_description/urdf/arm/wrist.urdf.xacro
@@ -167,6 +167,7 @@
     <gazebo reference="${name}_${side}_7_link">
       <mu1>0.9</mu1>
       <mu2>0.9</mu2>
+      <material>Gazebo/FlatBlack</material>
     </gazebo>
 
     <gazebo reference="${name}_${side}_5_joint">
diff --git a/talos_description/urdf/gripper/gripper.gazebo.xacro b/talos_description/urdf/gripper/gripper.gazebo.xacro
index 5a1f5e1a4412b892d10b4dee741fef75a0b72fb3..9a2a7412a0281afe669e32ed86a2c157bd28a18b 100644
--- a/talos_description/urdf/gripper/gripper.gazebo.xacro
+++ b/talos_description/urdf/gripper/gripper.gazebo.xacro
@@ -10,43 +10,144 @@
 -->
 <robot xmlns:xacro="http://ros.org/wiki/xacro">
 
-  <!-- MACROS FOR MIMIC JOINTS -->
-  <xacro:macro name="finger_mimics" params="name">
-    <plugin name="mimic_${name}_inner_double_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
-      <joint>${name}_joint</joint>
-      <mimicJoint>${name}_inner_double_joint</mimicJoint>
-      <multiplier>1.0</multiplier>
-      <offset>0.0</offset>
-      <hasPID/>
-    </plugin>
-    <plugin name="mimic_${name}_fingertip_1_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
-      <joint>${name}_joint</joint>
-      <mimicJoint>${name}_fingertip_1_joint</mimicJoint>
-      <multiplier>-1.0</multiplier>
-      <offset>0.0</offset>
-      <hasPID/>
-    </plugin>
-    <plugin name="mimic_${name}_fingertip_2_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
-      <joint>${name}_joint</joint>
-      <mimicJoint>${name}_fingertip_2_joint</mimicJoint>
-      <multiplier>-1.0</multiplier>
-      <offset>0.0</offset>
-      <hasPID/>
-    </plugin>
-    <plugin name="mimic_${name}_motor_single_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
-      <joint>${name}_joint</joint>
-      <mimicJoint>${name}_motor_single_joint</mimicJoint>
-      <multiplier>1.0</multiplier>
-      <offset>0.0</offset>
-      <hasPID/>
-    </plugin>
-    <plugin name="mimic_${name}_fingertip_3_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
-      <joint>${name}_joint</joint>
-      <mimicJoint>${name}_fingertip_3_joint</mimicJoint>
-      <multiplier>-1.0</multiplier>
-      <offset>0.0</offset>
-      <hasPID/>
-    </plugin>
+  <!-- VIRTUAL (mimic) JOINTS -->
+  <xacro:macro name="virtual_joints" params="name">
+    <gazebo>
+      <plugin name="mimic_${name}_inner_double_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_inner_double_joint</mimicJoint>
+        <multiplier>1.0</multiplier>
+        <offset>0.0</offset>
+        <!-- <hasPID/> -->
+      </plugin>
+      <plugin name="mimic_${name}_fingertip_1_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_fingertip_1_joint</mimicJoint>
+        <multiplier>-1.0</multiplier>
+        <offset>0.0</offset>
+        <!-- <hasPID/> -->
+      </plugin>
+
+      <plugin name="mimic_${name}_fingertip_2_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_fingertip_2_joint</mimicJoint>
+        <multiplier>-1.0</multiplier>
+        <offset>0.0</offset>
+        <!-- <hasPID/> -->
+      </plugin>
+      
+      <plugin name="mimic_${name}_inner_single_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_inner_single_joint</mimicJoint>
+        <multiplier>-1.0</multiplier>
+        <offset>0.0</offset>
+        <!-- <hasPID/> -->
+      </plugin>
+
+      <plugin name="mimic_${name}_motor_single_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_motor_single_joint</mimicJoint>
+        <multiplier>-1.0</multiplier>
+        <offset>0.0</offset>
+        <!-- <hasPID/> -->
+      </plugin>
+      <plugin name="mimic_${name}_fingertip_3_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+        <joint>${name}_joint</joint>
+        <mimicJoint>${name}_fingertip_3_joint</mimicJoint>
+        <multiplier>-1.0</multiplier>
+        <offset>0.0</offset>
+       <!-- <hasPID/> -->
+      </plugin>
+  </gazebo>
+
+<!--     <plugin filename="libgazebo_underactuated_finger.so" name="gazebo_${name}_underactuated">
+      <actuatedJoint>${name}_joint</actuatedJoint>
+      <virtualJoint>
+        <name>${name}_inner_double_joint</name>
+        <scale_factor>1.0</scale_factor>
+      </virtualJoint> -->
+<!--       <virtualJoint>
+        <name>${name}_fingertip_1_joint</name>
+        <scale_factor>-1.0</scale_factor>
+      </virtualJoint>
+      <virtualJoint>
+        <name>${name}_fingertip_2_joint</name>
+        <scale_factor>-1.0</scale_factor>
+      </virtualJoint>
+      <virtualJoint>
+        <name>${name}_motor_single_joint</name>
+        <scale_factor>1.0</scale_factor>
+      </virtualJoint>
+      <virtualJoint>
+        <name>${name}_fingertip_3_joint</name>
+        <scale_factor>-1.0</scale_factor>
+      </virtualJoint> -->
+<!--     </plugin> -->
+
+
+  <gazebo reference="${name}_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_inner_double_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_1_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_2_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_motor_single_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_3_joint">
+    <implicitSpringDamper>1</implicitSpringDamper>
+    <provideFeedback>1</provideFeedback>
+  </gazebo>
+
+  <gazebo reference="${name}_base_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+
+  <gazebo reference="${name}_motor_double_link">
+    <material>Gazebo/Orange</material>
+  </gazebo>
+
+  <gazebo reference="${name}_inner_double_link">
+    <material>Gazebo/Orange</material>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_1_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+
+  <gazebo reference="${name}_motor_single_link">
+    <material>Gazebo/Orange</material>
+  </gazebo>
+  
+
+  <gazebo reference="${name}_inner_single_link">
+    <material>Gazebo/Orange</material>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_2_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+
+  <gazebo reference="${name}_fingertip_3_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+
   </xacro:macro>
 
 </robot>
\ No newline at end of file
diff --git a/talos_description/urdf/gripper/gripper.transmission.xacro b/talos_description/urdf/gripper/gripper.transmission.xacro
index 86e9439741311d5141309b53f642b29c32cda74f..ea9b889e41a3218d737e07ddd89cc0db90329092 100644
--- a/talos_description/urdf/gripper/gripper.transmission.xacro
+++ b/talos_description/urdf/gripper/gripper.transmission.xacro
@@ -22,4 +22,17 @@
     </transmission>
   </xacro:macro>
 
+  <xacro:macro name="gripper_virtual_transmission" params="name reduction" >
+    <transmission name="${name}_trans">
+      <type>transmission_interface/SimpleTransmission</type>
+      <actuator name="${name}_motor" >
+        <mechanicalReduction>${reduction}</mechanicalReduction>
+      </actuator>
+      <joint name="${name}_joint" >
+        <hardwareInterface>hardware_interface/JointStateInterface</hardwareInterface>
+      </joint>
+    </transmission>
+  </xacro:macro>
+
+
 </robot>
\ No newline at end of file
diff --git a/talos_description/urdf/gripper/gripper_v2.urdf.xacro b/talos_description/urdf/gripper/gripper_v2.urdf.xacro
index 7b0ccae44ff0b8819350474fc037b29de507529d..1ab5ac0f2513c433ad2c7e9f41a78f213e97f65a 100644
--- a/talos_description/urdf/gripper/gripper_v2.urdf.xacro
+++ b/talos_description/urdf/gripper/gripper_v2.urdf.xacro
@@ -113,7 +113,7 @@
               <origin xyz="0.00000 0.00525 -0.05598" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${-60.0 * deg_to_rad}" upper="${0.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${1.0}" offset="0.0" />
 
             </joint> 
@@ -152,9 +152,9 @@
               <origin xyz="0.03200 0.04589 -0.06553" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${0.0 * deg_to_rad}" upper="${60.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${-1.0}" offset="0.0" />
-            </joint>
+           </joint>
 
 
             <link name="${name}_fingertip_2_link">
@@ -188,12 +188,12 @@
               <origin xyz="-0.03200 0.04589 -0.06553" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${0.0 * deg_to_rad}" upper="${60.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${-1.0}" offset="0.0" />
-            </joint>
+           </joint>
 
 
-             <link name="${name}_motor_single_link">
+            <link name="${name}_motor_single_link">
               <inertial>
                 <origin xyz="0.02589 -0.01284 -0.00640" rpy="0.00000 0.00000 0.00000"/>
                 <mass value="0.14765"/>
@@ -224,13 +224,13 @@
               <origin xyz="0.00000 -0.02025 -0.03000" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${0.0 * deg_to_rad}" upper="${60.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${-1.0}" offset="0.0" />
-            </joint>
+           </joint>
 
 
 
-          <link name="${name}_inner_single_link">
+            <link name="${name}_inner_single_link">
               <inertial>
                 <origin xyz="0.00000 -0.03253 -0.01883" rpy="0.00000 0.00000 0.00000"/>
                 <mass value="0.05356"/>
@@ -261,10 +261,10 @@
               <origin xyz="0.00000 -0.00525 -0.05598" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${0.0 * deg_to_rad}" upper="${60.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${-1.0}" offset="0.0" />
 
-            </joint> 
+           </joint> 
 
 
             <link name="${name}_fingertip_3_link">
@@ -298,14 +298,23 @@
               <origin xyz="0.00000 -0.04589 -0.06553" 
                       rpy="${0.00000 * deg_to_rad} ${0.00000 * deg_to_rad} ${180.00000 * deg_to_rad}"/>
               <axis xyz="1 0 0" />
-              <limit lower="${0.00000 * deg_to_rad}" upper="${0.00000 * deg_to_rad}" effort="1.0" velocity="1.0" />
+              <limit lower="${0.0 * deg_to_rad}" upper="${60.0 * deg_to_rad}" effort="100.0" velocity="1.0" />
               <mimic joint="${name}_joint" multiplier="${-1.0}" offset="0.0" />
-            </joint>
+           </joint> 
+         
 
 
-        <xacro:finger_mimics name="${name}" />
+        <xacro:virtual_joints name="${name}" />
         <xacro:gripper_transmission name="${name}" reduction="1.0" />
 
+        <!-- virtual mimic joints -->
+        <xacro:gripper_virtual_transmission name="${name}_inner_double" reduction="1.0"/>
+        <xacro:gripper_virtual_transmission name="${name}_fingertip_1" reduction="1.0"/>
+        <xacro:gripper_virtual_transmission name="${name}_fingertip_2" reduction="1.0"/>
+        <xacro:gripper_virtual_transmission name="${name}_inner_single" reduction="1.0"/>
+        <xacro:gripper_virtual_transmission name="${name}_motor_single" reduction="1.0"/>
+        <xacro:gripper_virtual_transmission name="${name}_fingertip_3" reduction="1.0"/>
+
  </xacro:macro>
 
 </robot>
diff --git a/talos_description/urdf/head/head.urdf.xacro b/talos_description/urdf/head/head.urdf.xacro
index a24c9c9be38f94b645c5d9c6188e31e08775659d..c2cdb352639816e9090e06af679c414f71c06157 100644
--- a/talos_description/urdf/head/head.urdf.xacro
+++ b/talos_description/urdf/head/head.urdf.xacro
@@ -72,8 +72,15 @@
     <gazebo reference="${name}_joint">
        <implicitSpringDamper>1</implicitSpringDamper>
     </gazebo>
+
+    <gazebo reference="${name}_link">
+      <material>Gazebo/FlatBlack</material>
+    </gazebo>
+
   </xacro:macro>
 
+  
+
   <!--************************-->
   <!--      HEAD_2 (PAN)      -->
   <!--************************-->
@@ -127,6 +134,11 @@
     </gazebo>
 
 
+    <gazebo reference="${name}_link">
+      <material>Gazebo/White</material>
+    </gazebo>
+
+
   </xacro:macro>
 
   <xacro:macro name="talos_head" params="name parent">
diff --git a/talos_description/urdf/leg/leg_v2.urdf.xacro b/talos_description/urdf/leg/leg_v2.urdf.xacro
index 9b298279d2ce6f605a3b467d21c89417acc84244..5f5a4e9bc66799b5f9bd4e4a21c8a45245d38b87 100644
--- a/talos_description/urdf/leg/leg_v2.urdf.xacro
+++ b/talos_description/urdf/leg/leg_v2.urdf.xacro
@@ -330,6 +330,25 @@
      <provideFeedback>1</provideFeedback>
    </gazebo>
 
+  <gazebo reference="leg_${prefix}_1_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+  <gazebo reference="leg_${prefix}_2_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+  <gazebo reference="leg_${prefix}_3_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+  <gazebo reference="leg_${prefix}_4_link">
+    <material>Gazebo/FlatBlack</material>
+  </gazebo>
+  <gazebo reference="leg_${prefix}_5_link">
+    <material>Gazebo/White</material>
+  </gazebo>
+  <gazebo reference="leg_${prefix}_6_link">
+    <material>Gazebo/White</material>
+  </gazebo>
+
  </xacro:macro>
    
 </robot>
diff --git a/talos_description/urdf/sensors/xtion_pro_live.gazebo.xacro b/talos_description/urdf/sensors/xtion_pro_live.gazebo.xacro
index 92066ecb9a0f93510308441fc2e5fd4979fe620d..6ac77d35e06b960a6bd84586b26f4efee3132787 100644
--- a/talos_description/urdf/sensors/xtion_pro_live.gazebo.xacro
+++ b/talos_description/urdf/sensors/xtion_pro_live.gazebo.xacro
@@ -90,6 +90,8 @@
           <distalostionT2>0.00000001</distalostionT2>
         </plugin>
       </sensor>
+
+      <material>Gazebo/FlatBlack</material>
     </gazebo>
   </xacro:macro>
 </robot>