Skip to content

Instantly share code, notes, and snippets.

@drohr5D
Created May 9, 2013 23:05
Show Gist options
  • Save drohr5D/5551267 to your computer and use it in GitHub Desktop.
Save drohr5D/5551267 to your computer and use it in GitHub Desktop.
pr2.urdf
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--
===================================================================================
-->
<!--
| This document was autogenerated by xacro from /opt/ros/groovy/stacks/pr2_common/pr2_description/robots/pr2.urdf.xacro |
-->
<!--
| EDITING THIS FILE BY HAND IS NOT RECOMMENDED |
-->
<!--
===================================================================================
-->
<robot xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller" xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface" xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#slider" xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor" xmlns:xacro="http://ros.org/wiki/xacro" name="pr2">
<!--
The following included files set up definitions of parts of the robot body
-->
<!-- misc common stuff? -->
<!-- PR2 Arm -->
<!-- PR2 gripper -->
<!-- PR2 head -->
<!-- PR2 tilting laser mount -->
<!-- PR2 torso -->
<!-- PR2 base -->
<!-- Head sensors -->
<!-- Camera sensors -->
<!-- Texture projector -->
<!--
generic simulator_gazebo plugins for starting mechanism control, ros time, ros battery
-->
<gazebo>
<plugin filename="libgazebo_ros_controller_manager.so" name="gazebo_ros_controller_manager">
<alwaysOn>true</alwaysOn>
<updateRate>1000.0</updateRate>
</plugin>
<plugin filename="libgazebo_ros_power_monitor.so" name="gazebo_ros_power_monitor_controller">
<alwaysOn>true</alwaysOn>
<updateRate>1.0</updateRate>
<timeout>5</timeout>
<powerStateTopic>power_state</powerStateTopic>
<powerStateRate>10.0</powerStateRate>
<fullChargeCapacity>87.78</fullChargeCapacity>
<dischargeRate>-474</dischargeRate>
<chargeRate>525</chargeRate>
<dischargeVoltage>15.52</dischargeVoltage>
<chargeVoltage>16.41</chargeVoltage>
</plugin>
</gazebo>
<!-- materials for visualization -->
<material name="Blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="Green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="Grey">
<color rgba="0.7 0.7 0.7 1.0"/>
</material>
<material name="Grey2">
<color rgba="0.9 0.9 0.9 1.0"/>
</material>
<material name="Red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="White">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<material name="Black">
<color rgba="0.1 0.1 0.1 1.0"/>
</material>
<material name="LightGrey">
<color rgba="0.6 0.6 0.6 1.0"/>
</material>
<material name="Caster">
<texture filename="package://pr2_description/materials/textures/pr2_caster_texture.png"/>
</material>
<material name="Wheel_l">
<texture filename="package://pr2_description/materials/textures/pr2_wheel_left.png"/>
</material>
<material name="Wheel_r">
<texture filename="package://pr2_description/materials/textures/pr2_wheel_right.png"/>
</material>
<material name="RollLinks">
<texture filename="package://pr2_description/materials/textures/pr2_wheel_left.png"/>
</material>
<!--
Now we can start using the macros included above to define the actual PR2
-->
<!--
The first use of a macro. This one was defined in base.urdf.xacro above.
A macro like this will expand to a set of link and joint definitions, and to additional
Gazebo-related extensions (sensor plugins, etc). The macro takes an argument, name,
that equals "base", and uses it to generate names for its component links and joints
(e.g., base_link). The included origin block is also an argument to the macro. By convention,
the origin block defines where the component is w.r.t its parent (in this case the parent
is the world frame). For more, see http://www.ros.org/wiki/xacro
-->
<link name="base_link">
<inertial>
<mass value="116.0"/>
<origin xyz="-0.061 0.0 0.1465"/>
<inertia ixx="5.652232699207" ixy="-0.009719934438" ixz="1.293988226423" iyy="5.669473158652" iyz="-0.007379583694" izz="3.683196351726"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/base.dae"/>
</geometry>
<material name="White"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/base_L.stl"/>
</geometry>
</collision>
</link>
<link name="base_footprint">
<inertial>
<mass value="1.0"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.01 0.01 0.01"/>
</geometry>
<material name="White"/>
</visual>
<collision>
<!--
represent base collision with a simple rectangular model, positioned by base_size_z s.t. top
surface of the collision box matches the top surface of the PR2 base
-->
<origin rpy="0 0 0" xyz="0 0 0.071"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<joint name="base_footprint_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0.051"/>
<child link="base_link"/>
<parent link="base_footprint"/>
</joint>
<link name="base_bellow_link">
<inertial>
<mass value="1.0"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.05 0.37 0.3"/>
</geometry>
<material name="Black"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.05 0.37 0.3"/>
</geometry>
</collision>
</link>
<joint name="base_bellow_joint" type="fixed">
<origin rpy="0 0 0" xyz="-0.29 0 0.8"/>
<parent link="base_link"/>
<child link="base_bellow_link"/>
</joint>
<joint name="base_laser_joint" type="fixed">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0.275 0.0 0.252"/>
<parent link="base_link"/>
<child link="base_laser_link"/>
</joint>
<link name="base_laser_link" type="laser">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.000001" iyz="0" izz="0.0001"/>
</inertial>
</link>
<gazebo reference="base_laser_link">
<sensor name="base_laser" type="ray">
<always_on>true</always_on>
<update_rate>20</update_rate>
<pose>0 0 0 0 0 0</pose>
<visualize>false</visualize>
<ray>
<scan>
<horizontal>
<samples>640</samples>
<resolution>1</resolution>
<min_angle>-2.2689</min_angle>
<max_angle>2.2689</max_angle>
</horizontal>
</scan>
<range>
<min>0.08</min>
<max>10.0</max>
<resolution>0.01</resolution>
</range>
</ray>
<plugin filename="libgazebo_ros_laser.so" name="gazebo_ros_base_laser_controller">
<gaussianNoise>0.005</gaussianNoise>
<alwaysOn>true</alwaysOn>
<updateRate>20</updateRate>
<topicName>base_scan</topicName>
<frameName>base_laser_link</frameName>
</plugin>
</sensor>
</gazebo>
<joint name="fl_caster_rotation_joint" type="continuous">
<axis xyz="0 0 1"/>
<limit effort="6.5" velocity="10"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="10"/>
<calibration rising="-0.785398163397"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0.2246 0.2246 0.0282"/>
<parent link="base_link"/>
<child link="fl_caster_rotation_link"/>
</joint>
<link name="fl_caster_rotation_link">
<inertial>
<mass value="3.473082"/>
<origin xyz="0 0 0.07"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster.stl"/>
</geometry>
<material name="Caster"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="fl_caster_rotation_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fl_caster_rotation_motor"/>
<joint name="fl_caster_rotation_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<joint name="fl_caster_l_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 0.049 0"/>
<parent link="fl_caster_rotation_link"/>
<child link="fl_caster_l_wheel_link"/>
</joint>
<link name="fl_caster_l_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_l"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="fl_caster_l_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="fl_caster_l_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fl_caster_l_wheel_motor"/>
<joint name="fl_caster_l_wheel_joint"/>
<mechanicalReduction>79.2380952381</mechanicalReduction>
</transmission>
<joint name="fl_caster_r_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 -0.049 0"/>
<parent link="fl_caster_rotation_link"/>
<child link="fl_caster_r_wheel_link"/>
</joint>
<link name="fl_caster_r_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_r"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="fl_caster_r_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="fl_caster_r_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fl_caster_r_wheel_motor"/>
<joint name="fl_caster_r_wheel_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<gazebo reference="fl_caster_rotation_link">
<material value="PR2/caster_texture"/>
</gazebo>
<joint name="fr_caster_rotation_joint" type="continuous">
<axis xyz="0 0 1"/>
<limit effort="6.5" velocity="10"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="10"/>
<calibration rising="-0.785398163397"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0.2246 -0.2246 0.0282"/>
<parent link="base_link"/>
<child link="fr_caster_rotation_link"/>
</joint>
<link name="fr_caster_rotation_link">
<inertial>
<mass value="3.473082"/>
<origin xyz="0 0 0.07"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster.stl"/>
</geometry>
<material name="Caster"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="fr_caster_rotation_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fr_caster_rotation_motor"/>
<joint name="fr_caster_rotation_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<joint name="fr_caster_l_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 0.049 0"/>
<parent link="fr_caster_rotation_link"/>
<child link="fr_caster_l_wheel_link"/>
</joint>
<link name="fr_caster_l_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_l"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="fr_caster_l_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="fr_caster_l_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fr_caster_l_wheel_motor"/>
<joint name="fr_caster_l_wheel_joint"/>
<mechanicalReduction>79.2380952381</mechanicalReduction>
</transmission>
<joint name="fr_caster_r_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 -0.049 0"/>
<parent link="fr_caster_rotation_link"/>
<child link="fr_caster_r_wheel_link"/>
</joint>
<link name="fr_caster_r_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_r"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="fr_caster_r_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="fr_caster_r_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="fr_caster_r_wheel_motor"/>
<joint name="fr_caster_r_wheel_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<gazebo reference="fr_caster_rotation_link">
<material value="PR2/caster_texture"/>
</gazebo>
<joint name="bl_caster_rotation_joint" type="continuous">
<axis xyz="0 0 1"/>
<limit effort="6.5" velocity="10"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="10"/>
<calibration rising="2.35619449019"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="-0.2246 0.2246 0.0282"/>
<parent link="base_link"/>
<child link="bl_caster_rotation_link"/>
</joint>
<link name="bl_caster_rotation_link">
<inertial>
<mass value="3.473082"/>
<origin xyz="0 0 0.07"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster.stl"/>
</geometry>
<material name="Caster"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="bl_caster_rotation_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="bl_caster_rotation_motor"/>
<joint name="bl_caster_rotation_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<joint name="bl_caster_l_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 0.049 0"/>
<parent link="bl_caster_rotation_link"/>
<child link="bl_caster_l_wheel_link"/>
</joint>
<link name="bl_caster_l_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_l"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="bl_caster_l_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="bl_caster_l_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="bl_caster_l_wheel_motor"/>
<joint name="bl_caster_l_wheel_joint"/>
<mechanicalReduction>79.2380952381</mechanicalReduction>
</transmission>
<joint name="bl_caster_r_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 -0.049 0"/>
<parent link="bl_caster_rotation_link"/>
<child link="bl_caster_r_wheel_link"/>
</joint>
<link name="bl_caster_r_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_r"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="bl_caster_r_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="bl_caster_r_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="bl_caster_r_wheel_motor"/>
<joint name="bl_caster_r_wheel_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<gazebo reference="bl_caster_rotation_link">
<material value="PR2/caster_texture"/>
</gazebo>
<joint name="br_caster_rotation_joint" type="continuous">
<axis xyz="0 0 1"/>
<limit effort="6.5" velocity="10"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="10"/>
<calibration rising="2.35619449019"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="-0.2246 -0.2246 0.0282"/>
<parent link="base_link"/>
<child link="br_caster_rotation_link"/>
</joint>
<link name="br_caster_rotation_link">
<inertial>
<mass value="3.473082"/>
<origin xyz="0 0 0.07"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster.stl"/>
</geometry>
<material name="Caster"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/caster_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="br_caster_rotation_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="br_caster_rotation_motor"/>
<joint name="br_caster_rotation_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<joint name="br_caster_l_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 0.049 0"/>
<parent link="br_caster_rotation_link"/>
<child link="br_caster_l_wheel_link"/>
</joint>
<link name="br_caster_l_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_l"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="br_caster_l_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="br_caster_l_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="br_caster_l_wheel_motor"/>
<joint name="br_caster_l_wheel_joint"/>
<mechanicalReduction>79.2380952381</mechanicalReduction>
</transmission>
<joint name="br_caster_r_wheel_joint" type="continuous">
<axis xyz="0 1 0"/>
<limit effort="7" velocity="15"/>
<!-- alpha tested effort and velocity limits -->
<safety_controller k_velocity="10"/>
<dynamics damping="1.0" friction="0.0"/>
<origin rpy="0 0 0" xyz="0 -0.049 0"/>
<parent link="br_caster_rotation_link"/>
<child link="br_caster_r_wheel_link"/>
</joint>
<link name="br_caster_r_wheel_link">
<inertial>
<mass value="0.44036"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.012411765597" ixy="-0.000711733678" ixz="0.00050272983" iyy="0.015218160428" iyz="-0.000004273467" izz="0.011763977943"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/base_v0/wheel.dae"/>
</geometry>
<material name="Wheel_r"/>
</visual>
<collision>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<!--
rotation because cyl. geom primitive has symmetry axis in +x direction
-->
<geometry>
<cylinder length="0.034" radius="0.074792"/>
</geometry>
</collision>
</link>
<gazebo reference="br_caster_r_wheel_link">
<mu1 value="100.0"/>
<mu2 value="100.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<maxVel value="100.0"/>
<minDepth value="0.0"/>
</gazebo>
<transmission name="br_caster_r_wheel_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="br_caster_r_wheel_motor"/>
<joint name="br_caster_r_wheel_joint"/>
<mechanicalReduction>-79.2380952381</mechanicalReduction>
</transmission>
<gazebo reference="br_caster_rotation_link">
<material value="PR2/caster_texture"/>
</gazebo>
<gazebo reference="base_link">
<selfCollide>false</selfCollide>
<sensor name="base_contact_sensor" type="contact">
<always_on>true</always_on>
<update_rate>100.0</update_rate>
<contact>
<collision>base_link_geom</collision>
</contact>
<plugin filename="libgazebo_ros_bumper.so" name="base_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bumperTopicName>base_bumper</bumperTopicName>
</plugin>
</sensor>
</gazebo>
<gazebo reference="base_bellow_link">
<material value="PR2/Black"/>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_p3d.so" name="p3d_base_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>base_link</bodyName>
<topicName>base_pose_ground_truth</topicName>
<gaussianNoise>0.01</gaussianNoise>
<frameName>map</frameName>
<xyzOffsets>0 0 0</xyzOffsets>
<rpyOffsets>0 0 0</rpyOffsets>
</plugin>
<canonicalBody>base_footprint</canonicalBody>
</gazebo>
<joint name="torso_lift_joint" type="prismatic">
<axis xyz="0 0 1"/>
<limit effort="10000" lower="0.0" upper="0.33" velocity="0.013"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="2000000" soft_lower_limit="0.0115" soft_upper_limit="0.325"/>
<calibration falling="0.00475"/>
<dynamics damping="20000.0"/>
<origin rpy="0 0 0" xyz="-0.05 0 0.739675"/>
<parent link="base_link"/>
<child link="torso_lift_link"/>
</joint>
<link name="torso_lift_link">
<inertial>
<mass value="36.248046"/>
<origin xyz="-0.1 0 -0.0885"/>
<inertia ixx="2.771653750257" ixy="0.004284522609" ixz="-0.160418504506" iyy="2.510019507959" iyz="0.029664468704" izz="0.526432355569"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/torso_v0/torso_lift.dae"/>
</geometry>
<material name="Grey2"/>
</visual>
<collision name="torso_lift_collision">
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/torso_v0/torso_lift_L.stl"/>
</geometry>
</collision>
</link>
<joint name="l_torso_lift_side_plate_joint" type="fixed">
<origin xyz="0.0535 0.209285 0.176625"/>
<!-- location of bottom front bolt hole location -->
<parent link="torso_lift_link"/>
<child link="l_torso_lift_side_plate_link"/>
</joint>
<link name="l_torso_lift_side_plate_link">
<inertial>
<mass value="0.1"/>
<origin xyz="-0.0625 0.0 0.05"/>
<!-- center of the 12.5cm by 10cm bolt hole pattern -->
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="r_torso_lift_side_plate_joint" type="fixed">
<origin xyz="0.0535 -0.209285 0.176625"/>
<!-- location of bottom front bolt hole location -->
<parent link="torso_lift_link"/>
<child link="r_torso_lift_side_plate_link"/>
</joint>
<link name="r_torso_lift_side_plate_link">
<inertial>
<mass value="0.1"/>
<origin xyz="-0.0625 0.0 0.05"/>
<!-- center of the 12.5cm by 10cm bolt hole pattern -->
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<link name="torso_lift_motor_screw_link">
<inertial>
<mass value="1.0"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<!--
for debugging only
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.5 0.7 0.01" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.5 0.7 0.01" />
</geometry>
</collision>
-->
</link>
<joint name="torso_lift_motor_screw_joint" type="continuous">
<origin xyz="-0.15 0.0 0.7"/>
<axis xyz="0 0 1"/>
<parent link="base_link"/>
<child link="torso_lift_motor_screw_link"/>
<dynamics damping="0.0001"/>
</joint>
<gazebo reference="torso_lift_link">
<sensor name="torso_lift_contact_sensor" type="contact">
<contact>
<collision>torso_lift_link_geom</collision>
</contact>
<update_rate>100.0</update_rate>
<plugin filename="libgazebo_ros_bumper.so" name="torso_lift_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bumperTopicName>torso_lift_bumper</bumperTopicName>
</plugin>
</sensor>
</gazebo>
<gazebo>
<joint name="torso_lift_screw_torso_lift_joint" type="screw">
<parent>torso_lift_link</parent>
<child>torso_lift_motor_screw_link</child>
<axis>
<xyz>0 0 1</xyz>
</axis>
<thread_pitch>3141.6</thread_pitch>
</joint>
</gazebo>
<transmission name="torso_lift_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="torso_lift_motor"/>
<joint name="torso_lift_joint"/>
<mechanicalReduction>-47641.53</mechanicalReduction>
<simulated_actuated_joint name="torso_lift_motor_screw_joint" simulated_reduction="3141.6"/>
</transmission>
<joint name="imu_joint" type="fixed">
<axis xyz="0 1 0"/>
<origin rpy="0 3.14159265359 0" xyz="-0.02977 -0.1497 0.164"/>
<parent link="torso_lift_link"/>
<child link="imu_link"/>
</joint>
<link name="imu_link">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.000001" iyz="0" izz="0.0001"/>
</inertial>
</link>
<gazebo>
<plugin filename="libgazebo_ros_imu.so" name="imu_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>imu_link</bodyName>
<topicName>torso_lift_imu/data</topicName>
<gaussianNoise>2.89e-08</gaussianNoise>
<xyzOffset>0 0 0</xyzOffset>
<rpyOffset>0 -180.0 0</rpyOffset>
</plugin>
</gazebo>
<!--
The xacro preprocesser will replace the parameters below, such as ${cal_head_x}, with
numerical values that were specified in common.xacro which was included above
-->
<joint name="head_pan_joint" type="revolute">
<axis xyz="0 0 1"/>
<limit effort="2.645" lower="-3.007" upper="3.007" velocity="6"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="1.5" soft_lower_limit="-2.857" soft_upper_limit="2.857"/>
<calibration rising="0.0"/>
<dynamics damping="0.5"/>
<origin rpy="0.0 0.0 0.0" xyz="-0.01707 0.0 0.38145"/>
<parent link="torso_lift_link"/>
<child link="head_pan_link"/>
</joint>
<link name="head_pan_link">
<inertial>
<mass value="6.339"/>
<!-- mass/cog/moi updated per 100505_link_data.xls -->
<origin rpy="0 0 0" xyz="0.010907 0.031693 0.090507"/>
<inertia ixx="0.032497592" ixy="0.00063604088" ixz="0.0025851534" iyy="0.046545627" iyz="-0.0024534295" izz="0.057652724"/>
</inertial>
<visual>
<origin rpy="0 0 0 " xyz="0 0 0.0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/head_v0/head_pan.dae"/>
</geometry>
<material name="Blue"/>
</visual>
<collision>
<geometry>
<mesh filename="package://pr2_description/meshes/head_v0/head_pan_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="head_pan_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="head_pan_motor"/>
<joint name="head_pan_joint"/>
<mechanicalReduction>6.0</mechanicalReduction>
</transmission>
<joint name="head_tilt_joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="18" lower="-0.471238" upper="1.39626" velocity="5"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="3.0" soft_lower_limit="-0.3712" soft_upper_limit="1.29626"/>
<calibration falling="0.0"/>
<dynamics damping="10.0"/>
<origin rpy="0 0 0" xyz="0.068 0 0"/>
<parent link="head_pan_link"/>
<child link="head_tilt_link"/>
</joint>
<link name="head_tilt_link">
<inertial>
<mass value="4.479"/>
<!-- mass/cog/moi updated per 100505_link_data.xls -->
<origin rpy="0 0 0" xyz="0.001716 -0.019556 0.055002"/>
<inertia ixx="0.024223222" ixy="0.00062063507" ixz="-0.000096909696" iyy="0.054723086" iyz="0.00279702400" izz="0.067306377"/>
</inertial>
<visual>
<origin rpy="0.0 0.0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/head_v0/head_tilt.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/head_v0/head_tilt_L.stl"/>
</geometry>
</collision>
</link>
<transmission name="head_tilt_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="head_tilt_motor"/>
<joint name="head_tilt_joint"/>
<mechanicalReduction>6.0</mechanicalReduction>
</transmission>
<joint name="head_plate_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.0232 0 0.0645"/>
<parent link="head_tilt_link"/>
<child link="head_plate_frame"/>
</joint>
<link name="head_plate_frame">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.01 0.01 0.01"/>
</geometry>
<material name="Blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.01 0.01 0.01"/>
</geometry>
</collision>
</link>
<gazebo reference="head_plate_frame">
<material value="Gazebo/Grey"/>
</gazebo>
<!-- Camera package: double stereo, prosilica -->
<joint name="sensor_mount_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
<parent link="head_plate_frame"/>
<child link="sensor_mount_link"/>
</joint>
<link name="sensor_mount_link">
<inertial>
<!-- Needs verification with CAD -->
<mass value="0.05"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.01"/>
</inertial>
<!--
Should probably get real visuals here at some point
-->
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.01 0.01 0.01"/>
</geometry>
<material name="Blue"/>
</visual>
</link>
<joint name="high_def_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.046457 -0.110 0.054600"/>
<parent link="sensor_mount_link"/>
<child link="high_def_frame"/>
</joint>
<link name="high_def_frame">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="high_def_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0.0 0.0 0.0"/>
<parent link="high_def_frame"/>
<child link="high_def_optical_frame"/>
</joint>
<link name="high_def_optical_frame">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<gazebo reference="high_def_frame">
<sensor name="high_def_sensor" type="depth">
<always_on>true</always_on>
<update_rate>20.0</update_rate>
<camera>
<horizontal_fov>0.785398163397</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>2448</width>
<height>2050</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_prosilica.so" name="high_def_controller">
<updateRate>20.0</updateRate>
<cameraName>prosilica</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<pollServiceName>request_image</pollServiceName>
<frameName>high_def_optical_frame</frameName>
<CxPrime>1224.5</CxPrime>
<Cx>1224.5</Cx>
<Cy>1025.5</Cy>
<focalLength>2955</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<material value="Gazebo/Black"/>
</gazebo>
<joint name="double_stereo_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
<parent link="sensor_mount_link"/>
<child link="double_stereo_link"/>
</joint>
<link name="double_stereo_link">
<inertial>
<!-- Needs verification with CAD -->
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.01"/>
</inertial>
<!--
Should probably get real visuals here at some point
-->
<visual>
<origin rpy="0 0 0" xyz="-0.01 0 0.025"/>
<geometry>
<box size="0.02 0.12 0.05"/>
</geometry>
<material name="Blue"/>
</visual>
</link>
<joint name="wide_stereo_frame_joint" type="fixed">
<origin rpy="0.0 0.0 0.0" xyz="0.045 0.03 0.0501"/>
<parent link="double_stereo_link"/>
<child link="wide_stereo_link"/>
</joint>
<link name="wide_stereo_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
<!-- this inertia is made up for now. -->
</inertial>
</link>
<joint name="wide_stereo_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<!--
rotate frame from x-forward to z-forward camera coords
-->
<parent link="wide_stereo_link"/>
<child link="wide_stereo_optical_frame"/>
</joint>
<link name="wide_stereo_optical_frame" type="camera"/>
<joint name="wide_stereo_l_stereo_camera_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="wide_stereo_link"/>
<child link="wide_stereo_l_stereo_camera_frame"/>
</joint>
<link name="wide_stereo_l_stereo_camera_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="wide_stereo_l_stereo_camera_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="wide_stereo_l_stereo_camera_frame"/>
<child link="wide_stereo_l_stereo_camera_optical_frame"/>
</joint>
<link name="wide_stereo_l_stereo_camera_optical_frame"/>
<gazebo reference="wide_stereo_l_stereo_camera_frame">
<sensor name="wide_stereo_l_stereo_camera_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>1.57079632679</horizontal_fov>
<image>
<format>BAYER_BGGR8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="wide_stereo_l_stereo_camera_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>wide_stereo/left</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>wide_stereo_optical_frame</frameName>
<hackBaseline>0</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>320</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
<joint name="wide_stereo_r_stereo_camera_frame_joint" type="fixed">
<origin rpy="0.0 0.0 0.0" xyz="0.0 -0.09 0.0"/>
<parent link="wide_stereo_l_stereo_camera_frame"/>
<child link="wide_stereo_r_stereo_camera_frame"/>
</joint>
<link name="wide_stereo_r_stereo_camera_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="wide_stereo_r_stereo_camera_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="wide_stereo_r_stereo_camera_frame"/>
<child link="wide_stereo_r_stereo_camera_optical_frame"/>
</joint>
<link name="wide_stereo_r_stereo_camera_optical_frame"/>
<gazebo reference="wide_stereo_r_stereo_camera_frame">
<sensor name="wide_stereo_r_stereo_camera_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>1.57079632679</horizontal_fov>
<image>
<format>BAYER_BGGR8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="wide_stereo_r_stereo_camera_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>wide_stereo/right</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>wide_stereo_optical_frame</frameName>
<hackBaseline>0.09</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>320</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
<gazebo reference="wide_stereo_link">
<material value="PR2/Blue"/>
<turnGravityOff value="true"/>
</gazebo>
<gazebo reference="wide_stereo_optical_frame">
<material value="Gazebo/White"/>
<turnGravityOff value="true"/>
</gazebo>
<joint name="narrow_stereo_frame_joint" type="fixed">
<origin rpy="0.0 0.0 0.0" xyz="0.045 0.06 0.0501"/>
<parent link="double_stereo_link"/>
<child link="narrow_stereo_link"/>
</joint>
<link name="narrow_stereo_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
<!-- this inertia is made up for now. -->
</inertial>
</link>
<joint name="narrow_stereo_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<!--
rotate frame from x-forward to z-forward camera coords
-->
<parent link="narrow_stereo_link"/>
<child link="narrow_stereo_optical_frame"/>
</joint>
<link name="narrow_stereo_optical_frame" type="camera"/>
<joint name="narrow_stereo_l_stereo_camera_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="narrow_stereo_link"/>
<child link="narrow_stereo_l_stereo_camera_frame"/>
</joint>
<link name="narrow_stereo_l_stereo_camera_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="narrow_stereo_l_stereo_camera_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="narrow_stereo_l_stereo_camera_frame"/>
<child link="narrow_stereo_l_stereo_camera_optical_frame"/>
</joint>
<link name="narrow_stereo_l_stereo_camera_optical_frame"/>
<gazebo reference="narrow_stereo_l_stereo_camera_frame">
<sensor name="narrow_stereo_l_stereo_camera_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>0.785398163397</horizontal_fov>
<image>
<format>L8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="narrow_stereo_l_stereo_camera_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>narrow_stereo/left</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>narrow_stereo_optical_frame</frameName>
<hackBaseline>0</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>772.55</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
<joint name="narrow_stereo_r_stereo_camera_frame_joint" type="fixed">
<origin rpy="0.0 0.0 0.0" xyz="0.0 -0.09 0.0"/>
<parent link="narrow_stereo_l_stereo_camera_frame"/>
<child link="narrow_stereo_r_stereo_camera_frame"/>
</joint>
<link name="narrow_stereo_r_stereo_camera_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="narrow_stereo_r_stereo_camera_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="narrow_stereo_r_stereo_camera_frame"/>
<child link="narrow_stereo_r_stereo_camera_optical_frame"/>
</joint>
<link name="narrow_stereo_r_stereo_camera_optical_frame"/>
<gazebo reference="narrow_stereo_r_stereo_camera_frame">
<sensor name="narrow_stereo_r_stereo_camera_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>0.785398163397</horizontal_fov>
<image>
<format>L8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="narrow_stereo_r_stereo_camera_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>narrow_stereo/right</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>narrow_stereo_optical_frame</frameName>
<hackBaseline>0.09</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>772.55</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
<gazebo reference="narrow_stereo_link">
<material value="PR2/Blue"/>
<turnGravityOff value="true"/>
</gazebo>
<gazebo reference="narrow_stereo_optical_frame">
<material value="Gazebo/White"/>
<turnGravityOff value="true"/>
</gazebo>
<gazebo reference="double_stereo_double_stereo_link">
<material value="PR2/Blue"/>
</gazebo>
<gazebo reference="sensor_mount_sensor_link">
<material value="PR2/Blue"/>
</gazebo>
<!-- Projector -->
<joint name="projector_wg6802418_frame_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0.110 0.0546"/>
<parent link="head_plate_frame"/>
<child link="projector_wg6802418_frame"/>
</joint>
<link name="projector_wg6802418_frame">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="projector_wg6802418_child_frame_joint" type="fixed">
<origin rpy="0 -1.57079632679 0" xyz="0 0 0"/>
<parent link="projector_wg6802418_frame"/>
<child link="projector_wg6802418_child_frame"/>
</joint>
<link name="projector_wg6802418_child_frame">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<gazebo reference="projector_wg6802418_child_frame">
<projector name="projector_wg6802418_projector_wg6802418">
<pose>0 0 0 0 -1.5707 0</pose>
<texture>stereo_projection_pattern_high_res_red.png</texture>
<fov>0.959931088597</fov>
<near_clip>0.1</near_clip>
<far_clip>10</far_clip>
</projector>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_projector.so" name="projector_wg6802418_controller">
<projector>
projector_wg6802418_child_frame/projector_wg6802418_projector_wg6802418
</projector>
<alwaysOn>true</alwaysOn>
<updateRate>15.0</updateRate>
<textureName>stereo_projection_pattern_high_res_red.png</textureName>
<filterTextureName>stereo_projection_pattern_filter.png</filterTextureName>
<textureTopicName>projector_wg6802418_controller/image</textureTopicName>
<projectorTopicName>projector_wg6802418_controller/projector</projectorTopicName>
</plugin>
</gazebo>
<!-- Base of Kinect/Prosilica Mount -->
<joint name="head_mount_joint" type="fixed">
<!--
<limit lower="0.1" upper="0.1" effort="10000" velocity="100.0"/>
-->
<!-- <insert_block name="origin" /> -->
<origin rpy="0 0 0" xyz="-0.138 0 0.091"/>
<parent link="head_plate_frame"/>
<child link="head_mount_link"/>
</joint>
<link name="head_mount_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/sensors/kinect_prosilica_v0/115x100_swept_back--coarse.STL" scale="0.001 0.001 0.001"/>
</geometry>
<material name="gray">
<color rgba="0.5 0.5 0.5 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</collision>
</link>
<joint name="head_mount_kinect_ir_joint" type="fixed">
<origin rpy="0 0 0" xyz="-0.032267 0.0125 0.136453"/>
<parent link="head_mount_link"/>
<child link="head_mount_kinect_ir_link"/>
</joint>
<link name="head_mount_kinect_ir_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</collision>
</link>
<joint name="head_mount_kinect_ir_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0.0 0.01 0.0"/>
<parent link="head_mount_kinect_ir_link"/>
<child link="head_mount_kinect_ir_optical_frame"/>
</joint>
<link name="head_mount_kinect_ir_optical_frame"/>
<gazebo reference="head_mount_kinect_ir_link">
<sensor name="head_mount_ir_sensor" type="depth">
<always_on>true</always_on>
<update_rate>1.0</update_rate>
<camera>
<horizontal_fov>0.994837673637</horizontal_fov>
<image>
<format>L8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.01</near>
<far>5</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_openni_kinect.so" name="head_mount_kinect_ir_link_controller">
<baseline>0.2</baseline>
<alwaysOn>true</alwaysOn>
<updateRate>1.0</updateRate>
<cameraName>head_mount_kinect_ir</cameraName>
<imageTopicName>/head_mount_kinect/depth/image_raw</imageTopicName>
<cameraInfoTopicName>/head_mount_kinect/depth/camera_info</cameraInfoTopicName>
<depthImageTopicName>/head_mount_kinect/depth/image_raw</depthImageTopicName>
<depthImageInfoTopicName>/head_mount_kinect/depth/camera_info</depthImageInfoTopicName>
<pointCloudTopicName>/head_mount_kinect/depth/points</pointCloudTopicName>
<frameName>head_mount_kinect_ir_optical_frame</frameName>
<pointCloudCutoff>0.5</pointCloudCutoff>
<distortionK1>0.00000001</distortionK1>
<distortionK2>0.00000001</distortionK2>
<distortionK3>0.00000001</distortionK3>
<distortionT1>0.00000001</distortionT1>
<distortionT2>0.00000001</distortionT2>
</plugin>
</sensor>
<material value="Gazebo/Red"/>
</gazebo>
<joint name="head_mount_kinect_rgb_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.03 0"/>
<parent link="head_mount_kinect_ir_link"/>
<child link="head_mount_kinect_rgb_link"/>
</joint>
<link name="head_mount_kinect_rgb_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</collision>
</link>
<joint name="head_mount_kinect_rgb_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0.0 0.0 0.0"/>
<parent link="head_mount_kinect_rgb_link"/>
<child link="head_mount_kinect_rgb_optical_frame"/>
</joint>
<link name="head_mount_kinect_rgb_optical_frame"/>
<gazebo reference="head_mount_kinect_rgb_link">
<sensor name="head_mount_rgb_sensor" type="depth">
<always_on>true</always_on>
<update_rate>1.0</update_rate>
<camera>
<horizontal_fov>0.994837673637</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.01</near>
<far>5</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_openni_kinect.so" name="head_mount_kinect_rgb_link_controller">
<alwaysOn>true</alwaysOn>
<updateRate>1.0</updateRate>
<cameraName>head_mount_kinect_rgb</cameraName>
<imageTopicName>/head_mount_kinect/rgb/image_raw</imageTopicName>
<cameraInfoTopicName>/head_mount_kinect/rgb/camera_info</cameraInfoTopicName>
<pointCloudTopicName>/head_mount_kinect/depth_registered/points</pointCloudTopicName>
<frameName>head_mount_kinect_rgb_optical_frame</frameName>
<pointCloudCutoff>0.5</pointCloudCutoff>
<distortionK1>0.00000001</distortionK1>
<distortionK2>0.00000001</distortionK2>
<distortionK3>0.00000001</distortionK3>
<distortionT1>0.00000001</distortionT1>
<distortionT2>0.00000001</distortionT2>
</plugin>
</sensor>
<material value="Gazebo/Red"/>
</gazebo>
<joint name="head_mount_prosilica_joint" type="fixed">
<origin rpy="0 0 0" xyz="-0.046457 0.0125 0.088921"/>
<parent link="head_mount_link"/>
<child link="head_mount_prosilica_link"/>
</joint>
<link name="head_mount_prosilica_link">
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0.0 0"/>
<geometry>
<sphere radius="0.0005"/>
</geometry>
</collision>
</link>
<joint name="head_mount_prosilica_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0.0 0.0 0.0"/>
<parent link="head_mount_prosilica_link"/>
<child link="head_mount_prosilica_optical_frame"/>
</joint>
<link name="head_mount_prosilica_optical_frame"/>
<gazebo reference="head_mount_prosilica_link">
<sensor name="head_mount_prosilica_link_sensor" type="depth">
<always_on>true</always_on>
<update_rate>1.0</update_rate>
<camera>
<horizontal_fov>1.12050137978</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>320</width>
<height>240</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_prosilica.so" name="head_mount_prosilica_link_controller">
<alwaysOn>true</alwaysOn>
<updateRate>1.0</updateRate>
<cameraName>prosilica_camera_1mb</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<pollServiceName>request_image</pollServiceName>
<frameName>head_mount_prosilica_optical_frame</frameName>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<sensor name="head_mount_prosilica_link_sim_pcd_sensor" type="depth">
<always_on>true</always_on>
<update_rate>1.0</update_rate>
<camera>
<horizontal_fov>1.12050137978</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>320</width>
<height>240</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_openni_kinect.so" name="head_mount_prosilica_link_sim_pcd_controller">
<alwaysOn>true</alwaysOn>
<updateRate>1.0</updateRate>
<cameraName>prosilica_camera_1mb_sim_pcd</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>head_mount_prosilica_optical_frame</frameName>
</plugin>
</sensor>
<material value="Gazebo/Red"/>
</gazebo>
<joint name="laser_tilt_mount_joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="0.65" lower="-0.7854" upper="1.48353" velocity="10.0"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="0.05" soft_lower_limit="-0.7354" soft_upper_limit="1.43353"/>
<calibration falling="0.0"/>
<dynamics damping="0.008"/>
<origin rpy="0 0 0" xyz="0.09893 0 0.227"/>
<parent link="torso_lift_link"/>
<child link="laser_tilt_mount_link"/>
</joint>
<link name="laser_tilt_mount_link">
<inertial>
<mass value="0.591"/>
<origin rpy="0 0 0" xyz="-0.001136 0.00167 -0.00713"/>
<inertia ixx="0.001195273" ixy="0.000023087" ixz="0.000037467" iyy="0.001083956" iyz="0.000034906" izz="0.000795014"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.dae"/>
</geometry>
<material name="Red"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.stl"/>
</geometry>
</collision>
</link>
<joint name="laser_tilt_joint" type="fixed">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0 0 0.03"/>
<parent link="laser_tilt_mount_link"/>
<child link="laser_tilt_link"/>
</joint>
<link name="laser_tilt_link" type="laser">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.000001" iyz="0" izz="0.0001"/>
</inertial>
</link>
<gazebo reference="laser_tilt_link">
<sensor name="laser_tilt" type="ray">
<always_on>true</always_on>
<update_rate>40</update_rate>
<pose>0 0 0 0 0 0</pose>
<visualize>false</visualize>
<ray>
<scan>
<horizontal>
<samples>640</samples>
<resolution>1</resolution>
<min_angle>-1.3962634</min_angle>
<max_angle>1.3962634</max_angle>
</horizontal>
</scan>
<range>
<min>0.08</min>
<max>10.0</max>
<resolution>0.01</resolution>
</range>
</ray>
<plugin filename="libgazebo_ros_laser.so" name="gazebo_ros_laser_tilt_controller">
<gaussianNoise>0.005</gaussianNoise>
<alwaysOn>true</alwaysOn>
<updateRate>40</updateRate>
<topicName>tilt_scan</topicName>
<frameName>laser_tilt_link</frameName>
</plugin>
</sensor>
</gazebo>
<gazebo reference="laser_tilt_mount_link"></gazebo>
<transmission name="laser_tilt_mount_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="laser_tilt_mount_motor"/>
<joint name="laser_tilt_mount_joint"/>
<mechanicalReduction>-6.05</mechanicalReduction>
</transmission>
<!--
This is a common convention, to use a reflect parameter that equals +-1 to distinguish left from right
-->
<joint name="r_shoulder_pan_joint" type="revolute">
<axis xyz="0 0 1"/>
<origin rpy="0 0 0" xyz="0.0 -0.188 0.0"/>
<!-- transform from parent link to this joint frame -->
<parent link="torso_lift_link"/>
<child link="r_shoulder_pan_link"/>
<limit effort="30" lower="-2.2853981634" upper="0.714601836603" velocity="2.088"/>
<!-- alpha tested velocity and effort limits -->
<dynamics damping="10.0"/>
<safety_controller k_position="100" k_velocity="10" soft_lower_limit="-2.1353981634" soft_upper_limit="0.564601836603"/>
<!--
joint angle when the rising or the falling flag is activated on PR2
-->
<calibration rising="-0.785398163397"/>
</joint>
<link name="r_shoulder_pan_link">
<inertial>
<mass value="25.799322"/>
<origin rpy="0 0 0" xyz="-0.001201 0.024513 -0.098231"/>
<inertia ixx="0.866179142480" ixy="-0.06086507933" ixz="-0.12118061183" iyy="0.87421714893" iyz="-0.05886609911" izz="0.27353821674"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_pan.dae"/>
</geometry>
<material name="Blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0 0.0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_pan.stl"/>
</geometry>
</collision>
</link>
<joint name="r_shoulder_lift_joint" type="revolute">
<axis xyz="0 1 0"/>
<!--
Limits updated from Function's CAD values as of 2009_02_24 (link_data.xls)
-->
<limit effort="30" lower="-0.5236" upper="1.3963" velocity="2.082"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="10" soft_lower_limit="-0.3536" soft_upper_limit="1.2963"/>
<calibration falling="0.0"/>
<dynamics damping="10.0"/>
<origin rpy="0 0 0" xyz="0.1 0 0"/>
<parent link="r_shoulder_pan_link"/>
<child link="r_shoulder_lift_link"/>
</joint>
<link name="r_shoulder_lift_link">
<inertial>
<mass value="2.74988"/>
<origin rpy="0 0 0" xyz="0.02195 -0.02664 -0.03127"/>
<inertia ixx="0.02105584615" ixy="0.00496704022" ixz="-0.00194808955" iyy="0.02127223737" iyz="0.00110425490" izz="0.01975753814"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_lift.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_lift.stl"/>
</geometry>
</collision>
</link>
<joint name="r_upper_arm_roll_joint" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_shoulder_lift_link"/>
<child link="r_upper_arm_roll_link"/>
<limit effort="30" lower="-3.9" upper="0.8" velocity="3.27"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="2" soft_lower_limit="-3.75" soft_upper_limit="0.65"/>
<calibration rising="-1.57079632679"/>
<dynamics damping="0.1"/>
</joint>
<link name="r_upper_arm_roll_link">
<inertial>
<!-- dummy mass, to be removed -->
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0.0 0 0"/>
<inertia ixx="0.01" ixy="0.00" ixz="0.00" iyy="0.01" iyz="0.00" izz="0.01"/>
</inertial>
<visual>
<!-- TODO: This component doesn't actually have a mesh -->
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/upper_arm_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/upper_arm_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_upper_arm_roll_link">
<material value="PR2/RollLinks"/>
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_upper_arm_roll_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="r_upper_arm_roll_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="r_upper_arm_roll_motor"/>
<joint name="r_upper_arm_roll_joint"/>
<mechanicalReduction>32.6525111499</mechanicalReduction>
</transmission>
<gazebo reference="r_shoulder_pan_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_shoulder_pan_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<gazebo reference="r_shoulder_lift_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_shoulder_lift_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<transmission name="r_shoulder_pan_trans" type="pr2_mechanism_model/SimpleTransmission">
<joint name="r_shoulder_pan_joint"/>
<actuator name="r_shoulder_pan_motor"/>
<mechanicalReduction>63.1552452977</mechanicalReduction>
<compensator k_belt="4000.0" kd_motor="15.0" lambda_combined="0.0" lambda_joint="40.0" lambda_motor="40.0" mass_motor="0.05"/>
</transmission>
<transmission name="r_shoulder_lift_trans" type="pr2_mechanism_model/SimpleTransmission">
<joint name="r_shoulder_lift_joint"/>
<actuator name="r_shoulder_lift_motor"/>
<mechanicalReduction>61.8948225713</mechanicalReduction>
<compensator k_belt="4000.0" kd_motor="10.0" lambda_combined="0.0" lambda_joint="60.0" lambda_motor="60.0" mass_motor="0.05"/>
</transmission>
<joint name="r_upper_arm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_upper_arm_roll_link"/>
<child link="r_upper_arm_link"/>
</joint>
<link name="r_upper_arm_link">
<inertial>
<!--
NOTE:reflect==-1 for right side, reflect==1 for the left side
-->
<mass value="6.01769"/>
<origin xyz="0.21398 -0.01621 -0.0002"/>
<inertia ixx="0.01537748957" ixy="0.00375711247" ixz="-0.00070852914" iyy="0.0747367044" iyz="-0.0001793645" izz="0.07608763307"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/upper_arm.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/upper_arm.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_upper_arm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<joint name="r_forearm_roll_joint" type="continuous">
<axis xyz="1 0 0"/>
<limit effort="30" velocity="3.6"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="1"/>
<calibration rising="0.0"/>
<dynamics damping="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_elbow_flex_link"/>
<child link="r_forearm_roll_link"/>
</joint>
<link name="r_forearm_roll_link">
<inertial>
<!-- dummy masses, to be removed -->
<mass value="0.1"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.00" ixz="0.00" iyy="0.01" iyz="0.00" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/forearm_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<!-- TODO: collision tag should be optional -->
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/forearm_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_forearm_roll_link">
<material value="PR2/RollLinks"/>
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_forearm_roll_joint">
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="r_forearm_roll_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="r_forearm_roll_motor"/>
<joint name="r_forearm_roll_joint"/>
<mechanicalReduction>-90.5142857143</mechanicalReduction>
</transmission>
<joint name="r_elbow_flex_joint" type="revolute">
<axis xyz="0 1 0"/>
<!--
Note: Overtravel limits are 140, -7 degrees instead of 133, 0
-->
<limit effort="30" lower="-2.3213" upper="0.00" velocity="3.3"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="3" soft_lower_limit="-2.1213" soft_upper_limit="-0.15"/>
<calibration falling="-1.1606"/>
<dynamics damping="1.0"/>
<origin rpy="0 0 0" xyz="0.4 0 0"/>
<parent link="r_upper_arm_link"/>
<child link="r_elbow_flex_link"/>
</joint>
<link name="r_elbow_flex_link">
<inertial>
<mass value="1.90327"/>
<origin xyz="0.01014 0.00032 -0.01211"/>
<inertia ixx="0.00346541989" ixy="0.00004066825" ixz="0.00043171614" iyy="0.00441606455" iyz="-0.00003968914" izz="0.00359156824"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/elbow_flex.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/elbow_flex.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_elbow_flex_joint">
<initial_joint_position>-1.0</initial_joint_position>
</gazebo>
<gazebo reference="r_elbow_flex_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_elbow_flex_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<transmission name="r_elbow_flex_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="r_elbow_flex_motor"/>
<joint name="r_elbow_flex_joint"/>
<mechanicalReduction>-36.167452007</mechanicalReduction>
</transmission>
<joint name="r_forearm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- transform from parent link to this joint frame -->
<parent link="r_forearm_roll_link"/>
<child link="r_forearm_link"/>
</joint>
<link name="r_forearm_link">
<inertial>
<mass value="2.57968"/>
<origin xyz="0.18791 -0.00017 -0.00912"/>
<inertia ixx="0.00364857222" ixy="0.00005215877" ixz="0.00071534842" iyy="0.01507736897" iyz="-0.00001310770" izz="0.01659310749"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/forearm.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/forearm.stl"/>
</geometry>
</collision>
</link>
<joint name="r_wrist_flex_joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="10" lower="-2.18" upper="0.0" velocity="3.078"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="20" k_velocity="4" soft_lower_limit="-2.0" soft_upper_limit="-0.1"/>
<dynamics damping="0.1"/>
<calibration falling="-0.5410521"/>
<origin rpy="0 0 0" xyz="0.321 0 0"/>
<parent link="r_forearm_link"/>
<child link="r_wrist_flex_link"/>
</joint>
<link name="r_wrist_flex_link">
<inertial>
<mass value="0.61402"/>
<origin xyz="-0.00157 0.0 -0.00075"/>
<inertia ixx="0.00065165722" ixy="0.00000028864" ixz="0.00000303477" iyy="0.00019824443" iyz="-0.00000022645" izz="0.00064450498"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_flex.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_flex.stl"/>
</geometry>
</collision>
</link>
<joint name="r_wrist_roll_joint" type="continuous">
<axis xyz="1 0 0"/>
<limit effort="10" velocity="3.6"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="2"/>
<dynamics damping="0.1"/>
<calibration rising="-1.57079632679"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_wrist_flex_link"/>
<child link="r_wrist_roll_link"/>
</joint>
<link name="r_wrist_roll_link">
<inertial>
<!--
dummy masses, to be removed. wrist roll masses are on "gripper_palm"
-->
<mass value="0.1"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_forearm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_wrist_flex_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="r_wrist_flex_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<gazebo reference="r_wrist_roll_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/RollLinks"/>
</gazebo>
<gazebo reference="r_wrist_roll_joint">
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="r_wrist_trans" type="pr2_mechanism_model/WristTransmission">
<rightActuator mechanicalReduction="60.1714285714" name="r_wrist_r_motor"/>
<leftActuator mechanicalReduction="60.1714285714" name="r_wrist_l_motor"/>
<flexJoint mechanicalReduction="-1.0" name="r_wrist_flex_joint"/>
<rollJoint mechanicalReduction="1.0" name="r_wrist_roll_joint"/>
</transmission>
<joint name="r_gripper_palm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_wrist_roll_link"/>
<child link="r_gripper_palm_link"/>
</joint>
<link name="r_gripper_palm_link">
<inertial>
<mass value="0.58007"/>
<origin rpy="0 0 0" xyz="0.06623 0.00053 -0.00119"/>
<inertia ixx="0.00035223921" ixy="-0.00001580476" ixz="-0.00000091750" iyy="0.00067741312" iyz="-0.00000059554" izz="0.00086563316"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/gripper_palm.dae"/>
</geometry>
<material name="Red"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/gripper_palm.stl"/>
</geometry>
</collision>
</link>
<joint name="r_gripper_led_joint" type="fixed">
<!--
Need to check if we need a positive or negative Z term
-->
<origin xyz="0.0513 0.0 .0244"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_led_frame"/>
</joint>
<link name="r_gripper_led_frame"/>
<joint name="r_gripper_motor_accelerometer_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_motor_accelerometer_link"/>
</joint>
<link name="r_gripper_motor_accelerometer_link">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<joint name="r_gripper_tool_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.18 0 0"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_tool_frame"/>
</joint>
<link name="r_gripper_tool_frame"/>
<link name="r_gripper_motor_slider_link">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<!--
for debugging only
<visual>
<origin xyz="0 0 0" rpy="1.5708 0 0" />
<geometry>
<cylinder length="0.002" radius="0.025"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="1.5708 0 0" />
<geometry>
<cylinder length="0.002" radius="0.025"/>
</geometry>
</collision>
-->
</link>
<joint name="r_gripper_motor_slider_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0.16828 0 0"/>
<axis xyz="1 0 0"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_motor_slider_link"/>
<limit effort="1000.0" lower="-0.1" upper="0.1" velocity="0.2"/>
</joint>
<link name="r_gripper_motor_screw_link">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
</inertial>
<!--
for debugging only
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.05 0.001 0.05" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.05 0.001 0.05" />
</geometry>
</collision>
-->
</link>
<joint name="r_gripper_motor_screw_joint" type="continuous">
<origin rpy="0 0 0" xyz="0.0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="r_gripper_motor_slider_link"/>
<child link="r_gripper_motor_screw_link"/>
<dynamics damping="0.0001"/>
</joint>
<joint name="r_gripper_l_finger_joint" type="revolute">
<axis xyz="0 0 1"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.02"/>
<origin rpy="0 0 0" xyz="0.07691 0.01 0"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_l_finger_link"/>
</joint>
<link name="r_gripper_l_finger_link">
<inertial>
<mass value="0.17126"/>
<origin rpy="0 0 0" xyz="0.03598 0.01730 -0.00164"/>
<inertia ixx="0.00007756198" ixy="0.00000149095" ixz="-0.00000983385" iyy="0.00019708305" iyz="-0.00000306125" izz="0.00018105446"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.stl"/>
</geometry>
</collision>
</link>
<joint name="r_gripper_r_finger_joint" type="revolute">
<axis xyz="0 0 -1"/>
<origin rpy="0 0 0" xyz="0.07691 -0.01 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.02"/>
<mimic joint="r_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="r_gripper_palm_link"/>
<child link="r_gripper_r_finger_link"/>
</joint>
<link name="r_gripper_r_finger_link">
<inertial>
<mass value="0.17389"/>
<origin rpy="0 0 0" xyz="0.03576 -0.01736 -0.00095"/>
<inertia ixx="0.00007738410" ixy="-0.00000209309" ixz="-0.00000836228" iyy="0.00019847383" iyz="0.00000246110" izz="0.00018106988"/>
</inertial>
<visual>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.stl"/>
</geometry>
</collision>
</link>
<joint name="r_gripper_l_finger_tip_joint" type="revolute">
<axis xyz="0 0 -1"/>
<origin rpy="0 0 0" xyz="0.09137 0.00495 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.001"/>
<mimic joint="r_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="r_gripper_l_finger_link"/>
<child link="r_gripper_l_finger_tip_link"/>
</joint>
<link name="r_gripper_l_finger_tip_link">
<inertial>
<mass value="0.04419"/>
<origin rpy="0 0 0" xyz="0.00423 0.00284 0.0"/>
<inertia ixx="0.00000837047" ixy="0.00000583632" ixz="0.0" iyy="0.00000987067" iyz="0.0" izz="0.00001541768"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.stl"/>
</geometry>
</collision>
</link>
<joint name="r_gripper_r_finger_tip_joint" type="revolute">
<axis xyz="0 0 1"/>
<origin rpy="0 0 0" xyz="0.09137 -0.00495 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.001"/>
<mimic joint="r_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="r_gripper_r_finger_link"/>
<child link="r_gripper_r_finger_tip_link"/>
</joint>
<link name="r_gripper_r_finger_tip_link">
<inertial>
<mass value="0.04419"/>
<origin rpy="0 0 0" xyz="0.00423 -0.00284 0.0"/>
<inertia ixx="0.00000837047" ixy="-0.00000583632" ixz="0.0" iyy="0.00000987067" iyz="0.0" izz="0.00001541768"/>
</inertial>
<visual>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="r_gripper_l_finger_link">
<turnGravityOff>true</turnGravityOff>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<!-- for "${prefix}_l_finger_joint" -->
</gazebo>
<gazebo reference="r_gripper_l_finger_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="r_gripper_r_finger_link">
<turnGravityOff>true</turnGravityOff>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="r_gripper_r_finger_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="r_gripper_l_finger_tip_link">
<turnGravityOff>true</turnGravityOff>
<selfCollide>false</selfCollide>
<sensor name="r_gripper_l_finger_tip_contact_sensor" type="contact">
<update_rate>100.0</update_rate>
<contact>
<collision>r_gripper_l_finger_tip_link_geom</collision>
</contact>
<plugin filename="libgazebo_ros_bumper.so" name="r_gripper_l_finger_tip_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<frameName>r_gripper_l_finger_tip_link</frameName>
<updateRate>100.0</updateRate>
<bumperTopicName>r_gripper_l_finger_tip_bumper</bumperTopicName>
</plugin>
</sensor>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="r_gripper_l_finger_tip_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="r_gripper_r_finger_tip_link">
<turnGravityOff>true</turnGravityOff>
<selfCollide>false</selfCollide>
<sensor name="r_gripper_r_finger_tip_contact_sensor" type="contact">
<update_rate>100.0</update_rate>
<contact>
<collision>r_gripper_r_finger_tip_link_geom</collision>
</contact>
<plugin filename="libgazebo_ros_bumper.so" name="r_gripper_r_finger_tip_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<frameName>r_gripper_r_finger_tip_link</frameName>
<updateRate>100.0</updateRate>
<bumperTopicName>r_gripper_r_finger_tip_bumper</bumperTopicName>
</plugin>
</sensor>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_p3d.so" name="p3d_r_gripper_l_finger_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>r_gripper_l_finger_link</bodyName>
<topicName>r_gripper_l_finger_pose_ground_truth</topicName>
<gaussianNoise>0.0</gaussianNoise>
<frameName>base_link</frameName>
</plugin>
<plugin filename="libgazebo_ros_f3d.so" name="f3d_r_gripper_l_finger_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>r_gripper_l_finger_link</bodyName>
<topicName>r_gripper_l_finger_force_ground_truth</topicName>
<frameName>r_gripper_l_finger_link</frameName>
</plugin>
</gazebo>
<gazebo reference="r_gripper_r_finger_tip_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo>
<link name="r_gripper_l_parallel_link">
<inertial>
<mass>0.17126</mass>
<inertia>
<ixx>7.7562e-05</ixx>
<ixy>1.49095e-06</ixy>
<ixz>-9.83385e-06</ixz>
<iyy>0.000197083</iyy>
<iyz>-3.06125e-06</iyz>
<izz>0.000181054</izz>
</inertia>
<pose>0.03598 0.0173 -0.00164 0 0 0</pose>
</inertial>
<pose>0.82991 -0.157 0.790675 0 -0 0</pose>
<gravity>false</gravity>
</link>
<link name="r_gripper_r_parallel_link">
<inertial>
<mass>0.17389</mass>
<inertia>
<ixx>7.73841e-05</ixx>
<ixy>-2.09309e-06</ixy>
<ixz>-8.36228e-06</ixz>
<iyy>0.000198474</iyy>
<iyz>2.4611e-06</iyz>
<izz>0.00018107</izz>
</inertia>
<pose>0.03576 -0.01736 -0.00095 0 0 0</pose>
</inertial>
<pose>0.82991 -0.219 0.790675 0 0 0</pose>
<gravity>false</gravity>
</link>
</gazebo>
<gazebo>
<joint name="r_gripper_r_screw_screw_joint" type="screw">
<child>r_gripper_motor_screw_link</child>
<parent>r_gripper_r_finger_tip_link</parent>
<thread_pitch>-3141.6</thread_pitch>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
<joint name="r_gripper_l_screw_screw_joint" type="screw">
<parent>r_gripper_l_finger_tip_link</parent>
<child>r_gripper_motor_screw_link</child>
<thread_pitch>3141.6</thread_pitch>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
</gazebo>
<gazebo>
<joint name="r_gripper_r_parallel_root_joint" type="revolute">
<parent>r_gripper_r_parallel_link</parent>
<child>r_gripper_palm_link</child>
<axis>
<xyz>0 0 -1</xyz>
<dynamics>
<damping>0.2</damping>
</dynamics>
</axis>
<pose>0.05891 -0.031 0 0 0 0</pose>
</joint>
<joint name="r_gripper_l_parallel_root_joint" type="revolute">
<parent>r_gripper_l_parallel_link</parent>
<child>r_gripper_palm_link</child>
<axis>
<xyz>0 0 1</xyz>
<dynamics>
<damping>0.2</damping>
</dynamics>
</axis>
<pose>0.05891 0.031 0 0 0 0</pose>
</joint>
<joint name="r_gripper_r_parallel_tip_joint" type="revolute">
<parent>r_gripper_r_parallel_link</parent>
<child>r_gripper_r_finger_tip_link</child>
<axis>
<xyz>0 0 1</xyz>
</axis>
<pose>-0.018 -0.021 0 0 0 0</pose>
</joint>
<joint name="r_gripper_l_parallel_tip_joint" type="revolute">
<parent>r_gripper_l_parallel_link</parent>
<child>r_gripper_l_finger_tip_link</child>
<axis>
<xyz>0 0 1</xyz>
</axis>
<pose>-0.018 0.021 0 0 0 0</pose>
</joint>
<joint name="r_gripper_joint" type="prismatic">
<parent>r_gripper_r_finger_tip_link</parent>
<child>r_gripper_l_finger_tip_link</child>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
</gazebo>
<gazebo reference="r_gripper_motor_slider_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="r_gripper_motor_screw_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="r_gripper_l_parallel_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="r_gripper_r_parallel_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<joint name="r_gripper_joint" type="prismatic">
<parent link="r_gripper_r_finger_tip_link"/>
<child link="r_gripper_l_finger_tip_frame"/>
<axis xyz="0 1 0"/>
<dynamics damping="10.0"/>
<limit effort="1000.0" lower="0.0" upper="0.09" velocity="0.2"/>
<safety_controller k_position="20.0" k_velocity="5000.0" soft_lower_limit="-0.01" soft_upper_limit="0.088"/>
</joint>
<link name="r_gripper_l_finger_tip_frame"/>
<gazebo reference="r_gripper_palm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_p3d.so" name="p3d_r_gripper_palm_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>r_gripper_palm_link</bodyName>
<topicName>r_gripper_palm_pose_ground_truth</topicName>
<xyzOffsets>0 0 0</xyzOffsets>
<rpyOffsets>0 0 0</rpyOffsets>
<gaussianNoise>0.0</gaussianNoise>
<frameName>map</frameName>
</plugin>
<!--
a formal implementation of grasp hack in gazebo with fixed joint
-->
<gripper name="r_grasp_hack">
<grasp_check attach_steps="20" detach_steps="40" min_contact_count="2"/>
<gripper_link>r_gripper_r_finger_tip_link</gripper_link>
<gripper_link>r_gripper_l_finger_tip_link</gripper_link>
<palm_link>r_gripper_palm_link</palm_link>
</gripper>
</gazebo>
<transmission name="r_gripper_trans" type="pr2_mechanism_model/PR2GripperTransmission">
<actuator name="r_gripper_motor"/>
<gap_joint L0="0.0375528" a="0.0683698" b="0.0433849" gear_ratio="40.095" h="0.0" mechanical_reduction="1.0" name="r_gripper_joint" phi0="0.518518122146" r="0.0915" screw_reduction="0.004" t0="-0.0001914" theta0="0.0628824676201"/>
<!--
if a gazebo joint exists as [l|r]_gripper_joint, use this tag to have
gripper transmission apply torque directly to prismatic joint
this should be the default behavior in diamondback, deprecating this flag
-->
<use_simulated_gripper_joint/>
<!--
set passive joint angles so things look nice in rviz
-->
<passive_joint name="r_gripper_l_finger_joint"/>
<passive_joint name="r_gripper_r_finger_joint"/>
<passive_joint name="r_gripper_r_finger_tip_joint"/>
<passive_joint name="r_gripper_l_finger_tip_joint"/>
<!-- screw joint to capture gripper "dynamics" -->
<simulated_actuated_joint name="r_gripper_motor_screw_joint" passive_actuated_joint="r_gripper_motor_slider_joint" simulated_reduction="3141.6"/>
</transmission>
<joint name="l_shoulder_pan_joint" type="revolute">
<axis xyz="0 0 1"/>
<origin rpy="0 0 0" xyz="0.0 0.188 0.0"/>
<!-- transform from parent link to this joint frame -->
<parent link="torso_lift_link"/>
<child link="l_shoulder_pan_link"/>
<limit effort="30" lower="-0.714601836603" upper="2.2853981634" velocity="2.088"/>
<!-- alpha tested velocity and effort limits -->
<dynamics damping="10.0"/>
<safety_controller k_position="100" k_velocity="10" soft_lower_limit="-0.564601836603" soft_upper_limit="2.1353981634"/>
<!--
joint angle when the rising or the falling flag is activated on PR2
-->
<calibration rising="0.785398163397"/>
</joint>
<link name="l_shoulder_pan_link">
<inertial>
<mass value="25.799322"/>
<origin rpy="0 0 0" xyz="-0.001201 0.024513 -0.098231"/>
<inertia ixx="0.866179142480" ixy="-0.06086507933" ixz="-0.12118061183" iyy="0.87421714893" iyz="-0.05886609911" izz="0.27353821674"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_pan.dae"/>
</geometry>
<material name="Blue"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0.0 0 0.0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_pan.stl"/>
</geometry>
</collision>
</link>
<joint name="l_shoulder_lift_joint" type="revolute">
<axis xyz="0 1 0"/>
<!--
Limits updated from Function's CAD values as of 2009_02_24 (link_data.xls)
-->
<limit effort="30" lower="-0.5236" upper="1.3963" velocity="2.082"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="10" soft_lower_limit="-0.3536" soft_upper_limit="1.2963"/>
<calibration falling="0.0"/>
<dynamics damping="10.0"/>
<origin rpy="0 0 0" xyz="0.1 0 0"/>
<parent link="l_shoulder_pan_link"/>
<child link="l_shoulder_lift_link"/>
</joint>
<link name="l_shoulder_lift_link">
<inertial>
<mass value="2.74988"/>
<origin rpy="0 0 0" xyz="0.02195 -0.02664 -0.03127"/>
<inertia ixx="0.02105584615" ixy="0.00496704022" ixz="-0.00194808955" iyy="0.02127223737" iyz="0.00110425490" izz="0.01975753814"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_lift.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/shoulder_lift.stl"/>
</geometry>
</collision>
</link>
<joint name="l_upper_arm_roll_joint" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_shoulder_lift_link"/>
<child link="l_upper_arm_roll_link"/>
<limit effort="30" lower="-0.8" upper="3.9" velocity="3.27"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="2" soft_lower_limit="-0.65" soft_upper_limit="3.75"/>
<calibration rising="1.57079632679"/>
<dynamics damping="0.1"/>
</joint>
<link name="l_upper_arm_roll_link">
<inertial>
<!-- dummy mass, to be removed -->
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0.0 0 0"/>
<inertia ixx="0.01" ixy="0.00" ixz="0.00" iyy="0.01" iyz="0.00" izz="0.01"/>
</inertial>
<visual>
<!-- TODO: This component doesn't actually have a mesh -->
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/upper_arm_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/shoulder_v0/upper_arm_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_upper_arm_roll_link">
<material value="PR2/RollLinks"/>
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_upper_arm_roll_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="l_upper_arm_roll_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="l_upper_arm_roll_motor"/>
<joint name="l_upper_arm_roll_joint"/>
<mechanicalReduction>32.6525111499</mechanicalReduction>
</transmission>
<gazebo reference="l_shoulder_pan_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_shoulder_pan_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<gazebo reference="l_shoulder_lift_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_shoulder_lift_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<transmission name="l_shoulder_pan_trans" type="pr2_mechanism_model/SimpleTransmission">
<joint name="l_shoulder_pan_joint"/>
<actuator name="l_shoulder_pan_motor"/>
<mechanicalReduction>63.1552452977</mechanicalReduction>
<compensator k_belt="4000.0" kd_motor="15.0" lambda_combined="0.0" lambda_joint="40.0" lambda_motor="40.0" mass_motor="0.05"/>
</transmission>
<transmission name="l_shoulder_lift_trans" type="pr2_mechanism_model/SimpleTransmission">
<joint name="l_shoulder_lift_joint"/>
<actuator name="l_shoulder_lift_motor"/>
<mechanicalReduction>61.8948225713</mechanicalReduction>
<compensator k_belt="4000.0" kd_motor="10.0" lambda_combined="0.0" lambda_joint="60.0" lambda_motor="60.0" mass_motor="0.05"/>
</transmission>
<joint name="l_upper_arm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_upper_arm_roll_link"/>
<child link="l_upper_arm_link"/>
</joint>
<link name="l_upper_arm_link">
<inertial>
<!--
NOTE:reflect==-1 for right side, reflect==1 for the left side
-->
<mass value="6.01769"/>
<origin xyz="0.21405 0.01658 -0.00057"/>
<inertia ixx="0.01530603856" ixy="-0.00339324862" ixz="0.00060765455" iyy="0.07473694455" iyz="-0.00019953729" izz="0.07601594191"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/upper_arm.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/upper_arm.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_upper_arm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<joint name="l_forearm_roll_joint" type="continuous">
<axis xyz="1 0 0"/>
<limit effort="30" velocity="3.6"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="1"/>
<calibration rising="0.0"/>
<dynamics damping="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_elbow_flex_link"/>
<child link="l_forearm_roll_link"/>
</joint>
<link name="l_forearm_roll_link">
<inertial>
<!-- dummy masses, to be removed -->
<mass value="0.1"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0.00" ixz="0.00" iyy="0.01" iyz="0.00" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/forearm_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<!-- TODO: collision tag should be optional -->
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/forearm_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_forearm_roll_link">
<material value="PR2/RollLinks"/>
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_forearm_roll_joint">
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="l_forearm_roll_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="l_forearm_roll_motor"/>
<joint name="l_forearm_roll_joint"/>
<mechanicalReduction>-90.5142857143</mechanicalReduction>
</transmission>
<joint name="l_elbow_flex_joint" type="revolute">
<axis xyz="0 1 0"/>
<!--
Note: Overtravel limits are 140, -7 degrees instead of 133, 0
-->
<limit effort="30" lower="-2.3213" upper="0.00" velocity="3.3"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="100" k_velocity="3" soft_lower_limit="-2.1213" soft_upper_limit="-0.15"/>
<calibration falling="-1.1606"/>
<dynamics damping="1.0"/>
<origin rpy="0 0 0" xyz="0.4 0 0"/>
<parent link="l_upper_arm_link"/>
<child link="l_elbow_flex_link"/>
</joint>
<link name="l_elbow_flex_link">
<inertial>
<mass value="1.90327"/>
<origin xyz="0.01014 0.00032 -0.01211"/>
<inertia ixx="0.00346541989" ixy="0.00004066825" ixz="0.00043171614" iyy="0.00441606455" iyz="-0.00003968914" izz="0.00359156824"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/elbow_flex.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/upper_arm_v0/elbow_flex.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_elbow_flex_joint">
<initial_joint_position>-1.0</initial_joint_position>
</gazebo>
<gazebo reference="l_elbow_flex_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_elbow_flex_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<transmission name="l_elbow_flex_trans" type="pr2_mechanism_model/SimpleTransmission">
<actuator name="l_elbow_flex_motor"/>
<joint name="l_elbow_flex_joint"/>
<mechanicalReduction>-36.167452007</mechanicalReduction>
</transmission>
<joint name="l_forearm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- transform from parent link to this joint frame -->
<parent link="l_forearm_roll_link"/>
<child link="l_forearm_link"/>
</joint>
<link name="l_forearm_link">
<inertial>
<mass value="2.57968"/>
<origin xyz="0.18791 -0.00017 -0.00912"/>
<inertia ixx="0.00364857222" ixy="0.00005215877" ixz="0.00071534842" iyy="0.01507736897" iyz="-0.00001310770" izz="0.01659310749"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/forearm.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/forearm.stl"/>
</geometry>
</collision>
</link>
<joint name="l_wrist_flex_joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="10" lower="-2.18" upper="0.0" velocity="3.078"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_position="20" k_velocity="4" soft_lower_limit="-2.0" soft_upper_limit="-0.1"/>
<dynamics damping="0.1"/>
<calibration falling="-0.5410521"/>
<origin rpy="0 0 0" xyz="0.321 0 0"/>
<parent link="l_forearm_link"/>
<child link="l_wrist_flex_link"/>
</joint>
<link name="l_wrist_flex_link">
<inertial>
<mass value="0.61402"/>
<origin xyz="-0.00157 0.0 -0.00075"/>
<inertia ixx="0.00065165722" ixy="0.00000028864" ixz="0.00000303477" iyy="0.00019824443" iyz="-0.00000022645" izz="0.00064450498"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_flex.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_flex.stl"/>
</geometry>
</collision>
</link>
<joint name="l_wrist_roll_joint" type="continuous">
<axis xyz="1 0 0"/>
<limit effort="10" velocity="3.6"/>
<!-- alpha tested velocity and effort limits -->
<safety_controller k_velocity="2"/>
<dynamics damping="0.1"/>
<calibration rising="-1.57079632679"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_wrist_flex_link"/>
<child link="l_wrist_roll_link"/>
</joint>
<link name="l_wrist_roll_link">
<inertial>
<!--
dummy masses, to be removed. wrist roll masses are on "gripper_palm"
-->
<mass value="0.1"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_roll.stl"/>
</geometry>
<material name="RollLinks"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/forearm_v0/wrist_roll_L.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_forearm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_wrist_flex_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo reference="l_wrist_flex_joint">
<stopKd value="1.0"/>
<stopKp value="1000000.0"/>
</gazebo>
<gazebo reference="l_wrist_roll_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/RollLinks"/>
</gazebo>
<gazebo reference="l_wrist_roll_joint">
<fudgeFactor value="0.5"/>
</gazebo>
<transmission name="l_wrist_trans" type="pr2_mechanism_model/WristTransmission">
<rightActuator mechanicalReduction="60.1714285714" name="l_wrist_r_motor"/>
<leftActuator mechanicalReduction="60.1714285714" name="l_wrist_l_motor"/>
<flexJoint mechanicalReduction="-1.0" name="l_wrist_flex_joint"/>
<rollJoint mechanicalReduction="1.0" name="l_wrist_roll_joint"/>
</transmission>
<joint name="l_gripper_palm_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_wrist_roll_link"/>
<child link="l_gripper_palm_link"/>
</joint>
<link name="l_gripper_palm_link">
<inertial>
<mass value="0.58007"/>
<origin rpy="0 0 0" xyz="0.06623 0.00053 -0.00119"/>
<inertia ixx="0.00035223921" ixy="-0.00001580476" ixz="-0.00000091750" iyy="0.00067741312" iyz="-0.00000059554" izz="0.00086563316"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/gripper_palm.dae"/>
</geometry>
<material name="Red"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/gripper_palm.stl"/>
</geometry>
</collision>
</link>
<joint name="l_gripper_led_joint" type="fixed">
<!--
Need to check if we need a positive or negative Z term
-->
<origin xyz="0.0513 0.0 .0244"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_led_frame"/>
</joint>
<link name="l_gripper_led_frame"/>
<joint name="l_gripper_motor_accelerometer_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_motor_accelerometer_link"/>
</joint>
<link name="l_gripper_motor_accelerometer_link">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</collision>
</link>
<joint name="l_gripper_tool_joint" type="fixed">
<origin rpy="0 0 0" xyz="0.18 0 0"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_tool_frame"/>
</joint>
<link name="l_gripper_tool_frame"/>
<link name="l_gripper_motor_slider_link">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
<!--
for debugging only
<visual>
<origin xyz="0 0 0" rpy="1.5708 0 0" />
<geometry>
<cylinder length="0.002" radius="0.025"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="1.5708 0 0" />
<geometry>
<cylinder length="0.002" radius="0.025"/>
</geometry>
</collision>
-->
</link>
<joint name="l_gripper_motor_slider_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0.16828 0 0"/>
<axis xyz="1 0 0"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_motor_slider_link"/>
<limit effort="1000.0" lower="-0.1" upper="0.1" velocity="0.2"/>
</joint>
<link name="l_gripper_motor_screw_link">
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
</inertial>
<!--
for debugging only
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.05 0.001 0.05" />
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.05 0.001 0.05" />
</geometry>
</collision>
-->
</link>
<joint name="l_gripper_motor_screw_joint" type="continuous">
<origin rpy="0 0 0" xyz="0.0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="l_gripper_motor_slider_link"/>
<child link="l_gripper_motor_screw_link"/>
<dynamics damping="0.0001"/>
</joint>
<joint name="l_gripper_l_finger_joint" type="revolute">
<axis xyz="0 0 1"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.02"/>
<origin rpy="0 0 0" xyz="0.07691 0.01 0"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_l_finger_link"/>
</joint>
<link name="l_gripper_l_finger_link">
<inertial>
<mass value="0.17126"/>
<origin rpy="0 0 0" xyz="0.03598 0.01730 -0.00164"/>
<inertia ixx="0.00007756198" ixy="0.00000149095" ixz="-0.00000983385" iyy="0.00019708305" iyz="-0.00000306125" izz="0.00018105446"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.stl"/>
</geometry>
</collision>
</link>
<joint name="l_gripper_r_finger_joint" type="revolute">
<axis xyz="0 0 -1"/>
<origin rpy="0 0 0" xyz="0.07691 -0.01 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.02"/>
<mimic joint="l_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="l_gripper_palm_link"/>
<child link="l_gripper_r_finger_link"/>
</joint>
<link name="l_gripper_r_finger_link">
<inertial>
<mass value="0.17389"/>
<origin rpy="0 0 0" xyz="0.03576 -0.01736 -0.00095"/>
<inertia ixx="0.00007738410" ixy="-0.00000209309" ixz="-0.00000836228" iyy="0.00019847383" iyz="0.00000246110" izz="0.00018106988"/>
</inertial>
<visual>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.dae"/>
</geometry>
<material name="Grey"/>
</visual>
<collision>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger.stl"/>
</geometry>
</collision>
</link>
<joint name="l_gripper_l_finger_tip_joint" type="revolute">
<axis xyz="0 0 -1"/>
<origin rpy="0 0 0" xyz="0.09137 0.00495 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.001"/>
<mimic joint="l_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="l_gripper_l_finger_link"/>
<child link="l_gripper_l_finger_tip_link"/>
</joint>
<link name="l_gripper_l_finger_tip_link">
<inertial>
<mass value="0.04419"/>
<origin rpy="0 0 0" xyz="0.00423 0.00284 0.0"/>
<inertia ixx="0.00000837047" ixy="0.00000583632" ixz="0.0" iyy="0.00000987067" iyz="0.0" izz="0.00001541768"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.stl"/>
</geometry>
</collision>
</link>
<joint name="l_gripper_r_finger_tip_joint" type="revolute">
<axis xyz="0 0 1"/>
<origin rpy="0 0 0" xyz="0.09137 -0.00495 0"/>
<limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/>
<dynamics damping="0.001"/>
<mimic joint="l_gripper_l_finger_joint" multiplier="1" offset="0"/>
<parent link="l_gripper_r_finger_link"/>
<child link="l_gripper_r_finger_tip_link"/>
</joint>
<link name="l_gripper_r_finger_tip_link">
<inertial>
<mass value="0.04419"/>
<origin rpy="0 0 0" xyz="0.00423 -0.00284 0.0"/>
<inertia ixx="0.00000837047" ixy="-0.00000583632" ixz="0.0" iyy="0.00000987067" iyz="0.0" izz="0.00001541768"/>
</inertial>
<visual>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.dae"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://pr2_description/meshes/gripper_v0/l_finger_tip.stl"/>
</geometry>
</collision>
</link>
<gazebo reference="l_gripper_l_finger_link">
<turnGravityOff>true</turnGravityOff>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
<!-- for "${prefix}_l_finger_joint" -->
</gazebo>
<gazebo reference="l_gripper_l_finger_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="l_gripper_r_finger_link">
<turnGravityOff>true</turnGravityOff>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="l_gripper_r_finger_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="l_gripper_l_finger_tip_link">
<turnGravityOff>true</turnGravityOff>
<selfCollide>false</selfCollide>
<sensor name="l_gripper_l_finger_tip_contact_sensor" type="contact">
<update_rate>100.0</update_rate>
<contact>
<collision>l_gripper_l_finger_tip_link_geom</collision>
</contact>
<plugin filename="libgazebo_ros_bumper.so" name="l_gripper_l_finger_tip_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<frameName>l_gripper_l_finger_tip_link</frameName>
<updateRate>100.0</updateRate>
<bumperTopicName>l_gripper_l_finger_tip_bumper</bumperTopicName>
</plugin>
</sensor>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="l_gripper_l_finger_tip_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo reference="l_gripper_r_finger_tip_link">
<turnGravityOff>true</turnGravityOff>
<selfCollide>false</selfCollide>
<sensor name="l_gripper_r_finger_tip_contact_sensor" type="contact">
<update_rate>100.0</update_rate>
<contact>
<collision>l_gripper_r_finger_tip_link_geom</collision>
</contact>
<plugin filename="libgazebo_ros_bumper.so" name="l_gripper_r_finger_tip_gazebo_ros_bumper_controller">
<alwaysOn>true</alwaysOn>
<frameName>l_gripper_r_finger_tip_link</frameName>
<updateRate>100.0</updateRate>
<bumperTopicName>l_gripper_r_finger_tip_bumper</bumperTopicName>
</plugin>
</sensor>
<mu1 value="500.0"/>
<mu2 value="500.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_p3d.so" name="p3d_l_gripper_l_finger_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>l_gripper_l_finger_link</bodyName>
<topicName>l_gripper_l_finger_pose_ground_truth</topicName>
<gaussianNoise>0.0</gaussianNoise>
<frameName>base_link</frameName>
</plugin>
<plugin filename="libgazebo_ros_f3d.so" name="f3d_l_gripper_l_finger_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>l_gripper_l_finger_link</bodyName>
<topicName>l_gripper_l_finger_force_ground_truth</topicName>
<frameName>l_gripper_l_finger_link</frameName>
</plugin>
</gazebo>
<gazebo reference="l_gripper_r_finger_tip_joint">
<stopKd value="1.0"/>
<stopKp value="10000000.0"/>
<fudgeFactor value="1.0"/>
<provideFeedback value="true"/>
</gazebo>
<gazebo>
<link name="l_gripper_l_parallel_link">
<inertial>
<mass>0.17126</mass>
<inertia>
<ixx>7.7562e-05</ixx>
<ixy>1.49095e-06</ixy>
<ixz>-9.83385e-06</ixz>
<iyy>0.000197083</iyy>
<iyz>-3.06125e-06</iyz>
<izz>0.000181054</izz>
</inertia>
<pose>0.03598 0.0173 -0.00164 0 0 0</pose>
</inertial>
<pose>0.82991 0.219 0.790675 0 -0 0</pose>
<gravity>false</gravity>
</link>
<link name="l_gripper_r_parallel_link">
<inertial>
<mass>0.17389</mass>
<inertia>
<ixx>7.73841e-05</ixx>
<ixy>-2.09309e-06</ixy>
<ixz>-8.36228e-06</ixz>
<iyy>0.000198474</iyy>
<iyz>2.4611e-06</iyz>
<izz>0.00018107</izz>
</inertia>
<pose>0.03576 -0.01736 -0.00095 0 0 0</pose>
</inertial>
<pose>0.82991 0.157 0.790675 0 0 0</pose>
<gravity>false</gravity>
</link>
</gazebo>
<gazebo>
<joint name="l_gripper_r_screw_screw_joint" type="screw">
<child>l_gripper_motor_screw_link</child>
<parent>l_gripper_r_finger_tip_link</parent>
<thread_pitch>-3141.6</thread_pitch>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
<joint name="l_gripper_l_screw_screw_joint" type="screw">
<parent>l_gripper_l_finger_tip_link</parent>
<child>l_gripper_motor_screw_link</child>
<thread_pitch>3141.6</thread_pitch>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
</gazebo>
<gazebo>
<joint name="l_gripper_r_parallel_root_joint" type="revolute">
<parent>l_gripper_r_parallel_link</parent>
<child>l_gripper_palm_link</child>
<axis>
<xyz>0 0 -1</xyz>
<dynamics>
<damping>0.2</damping>
</dynamics>
</axis>
<pose>0.05891 -0.031 0 0 0 0</pose>
</joint>
<joint name="l_gripper_l_parallel_root_joint" type="revolute">
<parent>l_gripper_l_parallel_link</parent>
<child>l_gripper_palm_link</child>
<axis>
<xyz>0 0 1</xyz>
<dynamics>
<damping>0.2</damping>
</dynamics>
</axis>
<pose>0.05891 0.031 0 0 0 0</pose>
</joint>
<joint name="l_gripper_r_parallel_tip_joint" type="revolute">
<parent>l_gripper_r_parallel_link</parent>
<child>l_gripper_r_finger_tip_link</child>
<axis>
<xyz>0 0 1</xyz>
</axis>
<pose>-0.018 -0.021 0 0 0 0</pose>
</joint>
<joint name="l_gripper_l_parallel_tip_joint" type="revolute">
<parent>l_gripper_l_parallel_link</parent>
<child>l_gripper_l_finger_tip_link</child>
<axis>
<xyz>0 0 1</xyz>
</axis>
<pose>-0.018 0.021 0 0 0 0</pose>
</joint>
<joint name="l_gripper_joint" type="prismatic">
<parent>l_gripper_r_finger_tip_link</parent>
<child>l_gripper_l_finger_tip_link</child>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
</gazebo>
<gazebo reference="l_gripper_motor_slider_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="l_gripper_motor_screw_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="l_gripper_l_parallel_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<gazebo reference="l_gripper_r_parallel_link">
<turnGravityOff>true</turnGravityOff>
<material value="PR2/Red"/>
</gazebo>
<joint name="l_gripper_joint" type="prismatic">
<parent link="l_gripper_r_finger_tip_link"/>
<child link="l_gripper_l_finger_tip_frame"/>
<axis xyz="0 1 0"/>
<dynamics damping="10.0"/>
<limit effort="1000.0" lower="0.0" upper="0.09" velocity="0.2"/>
<safety_controller k_position="20.0" k_velocity="5000.0" soft_lower_limit="-0.01" soft_upper_limit="0.088"/>
</joint>
<link name="l_gripper_l_finger_tip_frame"/>
<gazebo reference="l_gripper_palm_link">
<turnGravityOff>true</turnGravityOff>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_p3d.so" name="p3d_l_gripper_palm_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<bodyName>l_gripper_palm_link</bodyName>
<topicName>l_gripper_palm_pose_ground_truth</topicName>
<xyzOffsets>0 0 0</xyzOffsets>
<rpyOffsets>0 0 0</rpyOffsets>
<gaussianNoise>0.0</gaussianNoise>
<frameName>map</frameName>
</plugin>
<!--
a formal implementation of grasp hack in gazebo with fixed joint
-->
<gripper name="l_grasp_hack">
<grasp_check attach_steps="20" detach_steps="40" min_contact_count="2"/>
<gripper_link>l_gripper_r_finger_tip_link</gripper_link>
<gripper_link>l_gripper_l_finger_tip_link</gripper_link>
<palm_link>l_gripper_palm_link</palm_link>
</gripper>
</gazebo>
<transmission name="l_gripper_trans" type="pr2_mechanism_model/PR2GripperTransmission">
<actuator name="l_gripper_motor"/>
<gap_joint L0="0.0375528" a="0.0683698" b="0.0433849" gear_ratio="40.095" h="0.0" mechanical_reduction="1.0" name="l_gripper_joint" phi0="0.518518122146" r="0.0915" screw_reduction="0.004" t0="-0.0001914" theta0="0.0628824676201"/>
<!--
if a gazebo joint exists as [l|r]_gripper_joint, use this tag to have
gripper transmission apply torque directly to prismatic joint
this should be the default behavior in diamondback, deprecating this flag
-->
<use_simulated_gripper_joint/>
<!--
set passive joint angles so things look nice in rviz
-->
<passive_joint name="l_gripper_l_finger_joint"/>
<passive_joint name="l_gripper_r_finger_joint"/>
<passive_joint name="l_gripper_r_finger_tip_joint"/>
<passive_joint name="l_gripper_l_finger_tip_joint"/>
<!-- screw joint to capture gripper "dynamics" -->
<simulated_actuated_joint name="l_gripper_motor_screw_joint" passive_actuated_joint="l_gripper_motor_slider_joint" simulated_reduction="3141.6"/>
</transmission>
<!--
Forearm cam Position is a guess, based on full robot calibration
-->
<!-- Forearm cam Orientation is from Function -->
<joint name="l_forearm_cam_frame_joint" type="fixed">
<origin rpy="-1.57079632679 -0.562868683768 0" xyz=".135 0 .044"/>
<parent link="l_forearm_roll_link"/>
<child link="l_forearm_cam_frame"/>
</joint>
<link name="l_forearm_cam_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="l_forearm_cam_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="l_forearm_cam_frame"/>
<child link="l_forearm_cam_optical_frame"/>
</joint>
<link name="l_forearm_cam_optical_frame"/>
<gazebo reference="l_forearm_cam_frame">
<sensor name="l_forearm_cam_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>1.57079632679</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="l_forearm_cam_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>l_forearm_cam</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>l_forearm_cam_optical_frame</frameName>
<hackBaseline>0</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>320</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
<joint name="r_forearm_cam_frame_joint" type="fixed">
<origin rpy="1.57079632679 -0.562868683768 0" xyz=".135 0 .044"/>
<parent link="r_forearm_roll_link"/>
<child link="r_forearm_cam_frame"/>
</joint>
<link name="r_forearm_cam_frame">
<inertial>
<mass value="0.01"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/>
</inertial>
</link>
<joint name="r_forearm_cam_optical_frame_joint" type="fixed">
<origin rpy="-1.57079632679 0.0 -1.57079632679" xyz="0 0 0"/>
<parent link="r_forearm_cam_frame"/>
<child link="r_forearm_cam_optical_frame"/>
</joint>
<link name="r_forearm_cam_optical_frame"/>
<gazebo reference="r_forearm_cam_frame">
<sensor name="r_forearm_cam_sensor" type="depth">
<always_on>true</always_on>
<update_rate>25.0</update_rate>
<camera>
<horizontal_fov>1.57079632679</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="r_forearm_cam_controller">
<alwaysOn>true</alwaysOn>
<updateRate>25.0</updateRate>
<cameraName>r_forearm_cam</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>r_forearm_cam_optical_frame</frameName>
<hackBaseline>0</hackBaseline>
<CxPrime>320.5</CxPrime>
<Cx>320.5</Cx>
<Cy>240.5</Cy>
<!-- image_width / (2*tan(hfov_radian /2)) -->
<!-- 320 for wide and 772.55 for narrow stereo camera -->
<focalLength>320</focalLength>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
<turnGravityOff>true</turnGravityOff>
<material>PR2/Blue</material>
</gazebo>
</robot>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment