<?xml version="1.0"?>
-<robot name="bhand" xmlns:xacro="http://ros.org/wiki/xacro">
+<robot name="bhand" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:property name="M_PI" value="3.1415926535897931" />
<xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_base.urdf.xacro" />
- <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_finger.urdf.xacro" />
+ <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_link1.urdf.xacro" />
+ <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_link2.urdf.xacro" />
+ <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_link3.urdf.xacro" />
- <xacro:bhand_base />
+ <link name="bhand_origin"/>
- <xacro:bhand_finger parent="base_link" link="finger1_link_1" joint="spread" type="revolute">
- <origin xyz="0.0 0.02475 0.1325" rpy="0.0 0 0" />
+ <xacro:bhand_base parent="origin" link="base_link" joint="base_joint"/>
+
+ <xacro:bhand_link1 parent="base_link" link="finger1_link_1" joint="spread" type="revolute">
+ <inertial_attr>
+ <inertial>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Finger spread frame
+-->
+ <mass value="0.14109"/>
+ <origin xyz="0.030616 -7.3219e-5 -0.011201"/>
+ <inertia ixx="2.0672e-5" ixy="2.6024e-7" ixz="6.3481e-6" iyy="7.4105e-5" iyz="1.7118e-8" izz="6.8207e-5"/>
+ </inertial>
+ </inertial_attr>
+ <origin xyz="0.02475 0.0 ${0.1325-0.06}" rpy="0.0 0 ${M_PI}" />
<limit effort="30" velocity="1.5" lower="0.0" upper="${M_PI}" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
<mimic_attr/>
- </xacro:bhand_finger>
+ </xacro:bhand_link1>
<xacro:bhand_transmission joint="spread" />
- <xacro:bhand_finger parent="base_link" link="finger2_link_1" joint="spread_finger2" type="revolute">
- <origin xyz="0.0 -0.02475 0.1325" rpy="0.0 0 0" />
+ <xacro:bhand_link1 parent="base_link" link="finger2_link_1" joint="spread_finger2" type="revolute">
+ <inertial_attr>
+ <inertial>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Finger spread frame
+-->
+ <mass value="0.14109"/>
+ <origin xyz="0.030616 -7.3219e-5 -0.011201"/>
+ <inertia ixx="2.0672e-5" ixy="2.6024e-7" ixz="6.3481e-6" iyy="7.4105e-5" iyz="1.7118e-8" izz="6.8207e-5"/>
+ </inertial>
+ </inertial_attr>
+ <origin xyz="-0.02475 0.0 ${0.1325-0.06}" rpy="0.0 0 ${M_PI}" />
<limit effort="30" velocity="1.5" lower="-${M_PI}" upper="0.0" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
<mimic_attr>
<mimic joint="bhand_spread" multiplier="-1.0" offset="0" />
</mimic_attr>
- </xacro:bhand_finger>
+ </xacro:bhand_link1>
- <xacro:bhand_finger parent="base_link" link="finger3_link_1" joint="finger3_joint_1" type="fixed">
- <origin xyz="0.0 0.0 0.1325" rpy="0.0 0 0" />
+ <xacro:bhand_link1 parent="base_link" link="finger3_link_1" joint="finger3_joint_1" type="fixed">
+ <inertial_attr/>
+ <origin xyz="0.0 0.0 ${0.1325-0.06}" rpy="0.0 0 ${M_PI}" />
<limit effort="30" velocity="0.0" lower="0.0" upper="0.0" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
- <mimic_attr/>
- </xacro:bhand_finger>
-
- <xacro:bhand_finger parent="finger1_link_1" link="finger1_link_2" joint="finger1_joint_2" type="revolute">
- <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" />
- <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
- <mimic_attr/>
- </xacro:bhand_finger>
-
- <xacro:bhand_transmission joint="finger1_joint_2" />
-
- <xacro:bhand_finger parent="finger2_link_1" link="finger2_link_2" joint="finger2_joint_2" type="revolute">
- <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" />
- <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
- <mimic_attr/>
- </xacro:bhand_finger>
-
- <xacro:bhand_transmission joint="finger2_joint_2" />
-
- <xacro:bhand_finger parent="finger3_link_1" link="finger3_link_2" joint="finger3_joint_2" type="revolute">
- <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" />
- <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
<mimic_attr/>
- </xacro:bhand_finger>
+ </xacro:bhand_link1>
- <xacro:bhand_transmission joint="finger3_joint_2" />
+ <xacro:bhand_link2 parent="finger1_link_1" link="finger1_link_2" joint="finger1_joint_2" />
+ <xacro:bhand_link2 parent="finger2_link_1" link="finger2_link_2" joint="finger2_joint_2" />
+ <xacro:bhand_link2 parent="finger3_link_1" link="finger3_link_2" joint="finger3_joint_2" />
- <xacro:bhand_finger parent="finger1_link_2" link="finger1_link_3" joint="finger1_joint_3" type="revolute">
- <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" />
- <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
-<!--
- <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
- <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
--->
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
-
- <mimic_attr>
- <mimic joint="bhand_finger1_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
- </mimic_attr>
- </xacro:bhand_finger>
-
- <xacro:bhand_finger parent="finger2_link_2" link="finger2_link_3" joint="finger2_joint_3" type="revolute">
- <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" />
- <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
-<!--
- <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
- <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
--->
- <mimic_attr>
- <mimic joint="bhand_finger2_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
- </mimic_attr>
- </xacro:bhand_finger>
-
- <xacro:bhand_finger parent="finger3_link_2" link="finger3_link_3" joint="finger3_joint_3" type="revolute">
- <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" />
- <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
- <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
-<!--
- <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
- <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
--->
- <mimic_attr>
- <mimic joint="bhand_finger3_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
- </mimic_attr>
- </xacro:bhand_finger>
+ <xacro:bhand_link3 parent="finger1_link_2" link="finger1_link_3" joint="finger1_joint_3" mimic_joint="finger1_joint_2" />
+ <xacro:bhand_link3 parent="finger2_link_2" link="finger2_link_3" joint="finger2_joint_3" mimic_joint="finger2_joint_2" />
+ <xacro:bhand_link3 parent="finger3_link_2" link="finger3_link_3" joint="finger3_joint_3" mimic_joint="finger3_joint_2" />
</robot>
<?xml version="1.0"?>
-<robot name="bhand" xmlns:xacro="http://ros.org/wiki/xacro">
+<robot name="bhand" xmlns:xacro="http://www.ros.org/wiki/xacro">
<link name="world" />
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
- <xacro:macro name="bhand_base">
- <link name="bhand_origin"/>
-
- <link name="bhand_base_link">
+ <xacro:property name="M_PI" value="3.1415926535897931" />
+
+ <xacro:macro name="bhand_base" params="parent link joint">
+
+ <link name="bhand_${link}">
<inertial>
- <mass value="0.8"/>
- <origin rpy="0 0 0" xyz="0 0 0" />
- <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Hand base frame without palm pad. Mass and inertia of finger 3 link
+ 1 are included.
+-->
+ <mass value="0.59573"/>
+ <origin rpy="0 0 0" xyz="5.1098e-5 -0.0050433 0.036671" />
+ <inertia ixx="0.00067154" ixy="2.9365e-7" ixz="-7.6321e-7" iyy="0.00048844" iyz="-7.1984e-5" izz="0.00060401"/>
</inertial>
<visual>
- <origin rpy="0 0 0" xyz="0 0 0"/>
+ <origin rpy="0 0 ${-M_PI/2}" xyz="0 0 -0.06"/>
<geometry>
<mesh filename="package://ufrgs_bhand_description/meshes/bh_base.stl" />
</geometry>
</material>
</visual>
<collision>
- <origin rpy="0 0 0" xyz="0 0 0"/>
+ <origin rpy="0 0 ${-M_PI/2}" xyz="0 0 -0.06"/>
<geometry>
<mesh filename="package://ufrgs_bhand_description/meshes/bh_base.stl" />
</geometry>
</collision>
</link>
- <gazebo reference="bhand_base_link">
+ <gazebo reference="bhand_${link}">
<selfCollide>true</selfCollide>
<material>Gazebo/Blue</material>
</gazebo>
- <joint name="bhand_base_joint" type="fixed">
+ <joint name="bhand_${joint}" type="fixed">
<!--origin rpy="0 0 0" xyz="-0.060 -0.140 0.206"/-->
<!--origin rpy="0 0 0" xyz="0.22 0.14 0.346"/-->
- <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
- <child link="bhand_base_link"/>
- <parent link="bhand_origin"/>
+ <origin xyz="0.0 0.0 0.06" rpy="0.0 0.0 0.0" />
+ <child link="bhand_${link}"/>
+ <parent link="bhand_${parent}"/>
</joint>
</xacro:macro>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
- <xacro:macro name="bhand_finger" params="parent link joint type *origin *limit *mesh **mimic_attr">
+ <xacro:macro name="bhand_link1" params="parent link joint type **inertial_attr *origin *limit **mimic_attr">
<link name="bhand_${link}">
+
+ <xacro:insert_block name="inertial_attr"/>
<inertial>
- <mass value="0.1"/>
- <origin xyz="0 0 0" />
- <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Finger spread frame
+-->
+ <mass value="0.14109"/>
+ <origin xyz="0.030616 -7.3219e-5 -0.011201"/>
+ <inertia ixx="2.0672e-5" ixy="2.6024e-7" ixz="6.3481e-6" iyy="7.4105e-5" iyz="1.7118e-8" izz="6.8207e-5"/>
</inertial>
<visual>
- <origin rpy="0 0 0" xyz="0 0 0"/>
+ <origin rpy="0 0 ${M_PI/2}" xyz="0 0 0"/>
<geometry>
- <xacro:insert_block name="mesh" />
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
</geometry>
<material name="Grey">
<color rgba="0.5 0.5 0.5 1.0"/>
</material>
</visual>
<collision>
- <origin rpy="0 0 0" xyz="0 0 0"/>
+ <origin rpy="0 0 ${M_PI/2}" xyz="0 0 0"/>
<geometry>
- <xacro:insert_block name="mesh" />
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
</geometry>
<contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
</collision>
--- /dev/null
+<?xml version="1.0" ?>
+
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+ <xacro:macro name="bhand_link2" params="parent link joint">
+
+ <link name="bhand_${link}">
+ <inertial>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Finger inner link frame with fingertip torque sensor
+-->
+ <mass value="0.062139"/>
+ <origin xyz="0.023133 0.00078642 0.00052792"/>
+ <inertia ixx="4.8162e-6" ixy="5.7981e-7" ixz="-7.2483e-7" iyy="4.3317e-5" iyz="-2.6653e-9" izz="4.4441e-5"/>
+ </inertial>
+ <visual>
+ <origin rpy="0 0 0" xyz="0 0 0"/>
+ <geometry>
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
+ </geometry>
+ <material name="Grey">
+ <color rgba="0.5 0.5 0.5 1.0"/>
+ </material>
+ </visual>
+ <collision>
+ <origin rpy="0 0 0" xyz="0 0 0"/>
+ <geometry>
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
+ </geometry>
+ <contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
+ </collision>
+ </link>
+
+ <gazebo reference="bhand_${link}">
+ <material>Gazebo/Grey</material>
+ <selfCollide>true</selfCollide>
+ </gazebo>
+
+ <joint name="bhand_${joint}" type="revolute">
+ <!--origin xyz="-0.02475 0.0 0.0395" rpy="0.0 0 1.57079633" /-->
+ <!--origin xyz="0.0 0.02475 0.1325" rpy="0.0 0 0" /-->
+
+ <origin xyz="0.0 0.05 0.0" rpy="${M_PI/2} 0.0 ${M_PI/2}" />
+ <parent link="bhand_${parent}"/>
+ <child link="bhand_${link}" />
+ <axis xyz="0 0 1"/>
+ <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
+
+ <!--joint_properties damping="100.0" friction="1000.0" /-->
+ <dynamics damping="1000"/>
+
+ </joint >
+
+ <transmission name="bhand_${joint}_transmission">
+ <type>transmission_interface/SimpleTransmission</type>
+ <joint name="bhand_${joint}">
+ <hardwareInterface>PositionJointInterface</hardwareInterface>
+ </joint>
+ <actuator name="bhand_${joint}_actuator">
+ <hardwareInterface>PositionJointInterface</hardwareInterface>
+ <mechanicalReduction>1</mechanicalReduction>
+ </actuator>
+ </transmission>
+
+ </xacro:macro>
+
+</robot>
--- /dev/null
+<?xml version="1.0" ?>
+
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+ <xacro:macro name="bhand_link3" params="parent link joint mimic_joint">
+
+ <link name="bhand_${link}">
+ <inertial>
+<!--
+ Inertia parameters from http://support.barrett.com/wiki/Hand/280/MassProperties
+
+ Fingertip frame without fingertip pressure pad
+-->
+ <mass value="0.041377"/>
+ <origin xyz="0.022825 0.0010491 0.00042038"/>
+ <inertia ixx="3.1053e-6" ixy="4.3996e-7" ixz="-2.9595e-7" iyy="1.6812e-5" iyz="-1.8205e-8" izz="1.5673e-5"/>
+ </inertial>
+ <visual>
+ <origin rpy="0 0 0" xyz="0 0 0"/>
+ <geometry>
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
+ </geometry>
+ <material name="Grey">
+ <color rgba="0.5 0.5 0.5 1.0"/>
+ </material>
+ </visual>
+ <collision>
+ <origin rpy="0 0 0" xyz="0 0 0"/>
+ <geometry>
+ <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
+ </geometry>
+ <contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
+ </collision>
+ </link>
+
+ <gazebo reference="bhand_${link}">
+ <material>Gazebo/Grey</material>
+ <selfCollide>true</selfCollide>
+ </gazebo>
+
+ <joint name="bhand_${joint}" type="revolute">
+ <!--origin xyz="-0.02475 0.0 0.0395" rpy="0.0 0 1.57079633" /-->
+ <!--origin xyz="0.0 0.02475 0.1325" rpy="0.0 0 0" /-->
+ <!--origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" /-->
+
+ <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" />
+ <parent link="bhand_${parent}"/>
+ <child link="bhand_${link}" />
+ <axis xyz="0 0 1"/>
+
+ <!--limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/-->
+ <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
+
+ <!--joint_properties damping="100.0" friction="1000.0" /-->
+ <dynamics damping="1000"/>
+
+ <mimic joint="bhand_${mimic_joint}" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
+
+ </joint >
+
+ </xacro:macro>
+
+ <xacro:macro name="bhand_transmission" params="joint">
+
+ <transmission name="bhand_${joint}_transmission">
+ <type>transmission_interface/SimpleTransmission</type>
+ <joint name="bhand_${joint}">
+ <hardwareInterface>PositionJointInterface</hardwareInterface>
+ </joint>
+ <actuator name="bhand_${joint}_actuator">
+ <hardwareInterface>PositionJointInterface</hardwareInterface>
+ <mechanicalReduction>1</mechanicalReduction>
+ </actuator>
+ </transmission>
+
+ </xacro:macro>
+
+</robot>