<?xml version="1.0" ?>
<robot name="camerabot" version="1.0">
  <material name="Yellow">
    <color rgba="1.0 1.0 0.0 1.0"/>
  </material>
  <material name="Orange">
    <color rgba="1.0 0.4 0.0 1.0"/>
  </material>
  <material name="grey">
    <color rgba="0.7 0.7 0.7 1.0"/>
  </material>
  <material name="Pink">
    <color rgba="1.0 0.0 0.8 1.0"/>
  </material>
  <link name="world"/>
  <link name="tripod">
    <inertial>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <mass value="1.0"/>
      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
    </inertial>
    <visual>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <mesh filename="package://camerabot_description/meshes/tripod/tripod.dae" scale="0.04 0.04 0.04"/>
      </geometry>
      <material name="grey"/>
    </visual>
    <collision name="tripod_collision">
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <mesh filename="package://camerabot_description/meshes/tripod/tripod.dae" scale="0.04 0.04 0.04"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="tripod">
    <material>Gazebo/Grey</material>
    <mu1>50.0</mu1>
    <mu2>50.0</mu2>
    <kp>1000000.0</kp>
    <kd>1.0</kd>
    <selfCollide>false</selfCollide>
  </gazebo>
  <joint name="world_to_tripod" type="fixed">
    <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 2.0943951023931953"/>
    <parent link="world"/>
    <child link="tripod"/>
  </joint>
  <gazebo reference="tripod">
    <material>Gazebo/Grey</material>
    <mu1>50.0</mu1>
    <mu2>50.0</mu2>
    <kp>1000000.0</kp>
    <kd>1.0</kd>
    <selfCollide>false</selfCollide>
  </gazebo>
  <link name="tripod_plate">
    <inertial>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <mass value="1.0"/>
      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
    </inertial>
    <visual>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <box size="0.04 0.4 0.015"/>
      </geometry>
      <material name="grey"/>
    </visual>
    <collision name="tripod_collision">
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <box size="0.04 0.15 0.015"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="tripod">
    <material>Gazebo/Grey</material>
    <mu1>50.0</mu1>
    <mu2>50.0</mu2>
    <kp>1000000.0</kp>
    <kd>1.0</kd>
    <selfCollide>false</selfCollide>
  </gazebo>
  <joint name="tripod_to_tripod_plate" type="fixed">
    <origin xyz="0.01 0.03 1.33" rpy="0.0 0.3141592653589793 0.0"/>
    <parent link="tripod"/>
    <child link="tripod_plate"/>
  </joint>
  <link name="tripod_left_support"/>
  <joint name="tripod_plate_to_tripod_left_support" type="fixed">
    <origin xyz="0.0 0.18 0.0075" rpy="0.0 0.0 0.0"/>
    <parent link="tripod_plate"/>
    <child link="tripod_left_support"/>
  </joint>
  <link name="tripod_right_support"/>
  <joint name="tripod_plate_to_tripod_right_support" type="fixed">
    <origin xyz="0.0 -0.18 0.0075" rpy="0.0 0.0 0.0"/>
    <parent link="tripod_plate"/>
    <child link="tripod_right_support"/>
  </joint>
  <joint name="world_camera_joint" type="fixed">
    <origin xyz="0.02 0.07 0.015" rpy="0.0 0.0 0.0"/>
    <parent link="tripod_plate"/>
    <child link="world_camera_link"/>
  </joint>
  <link name="world_camera_link">
    <inertial>
      <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/>
      <mass value="0.564"/>
      <inertia ixx="0.003881243" ixy="0.0" ixz="0.0" iyy="0.00049894" iyz="0.0" izz="0.003879257"/>
    </inertial>
    <collision>
      <origin xyz="-0.01 -0.06 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <box size="0.04 0.165 0.03"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="world_camera_link">
    <selfCollide>false</selfCollide>
  </gazebo>
  <joint name="world_camera_rgb_joint" type="fixed">
    <origin xyz="4.4225711295416955e-16 -0.045000000000000054 -3.0950473151338496e-16" rpy="-2.37604083213748e-16 -9.548066026054363e-17 -3.262696949244782e-16"/>
    <parent link="world_camera_link"/>
    <child link="world_camera_rgb_frame"/>
  </joint>
  <link name="world_camera_rgb_frame"/>
  <joint name="world_camera_rgb_optical_joint" type="fixed">
    <origin xyz="0.0 0.0 0.0" rpy="-1.5707963267948966 0.0 -1.5707963267948966"/>
    <parent link="world_camera_rgb_frame"/>
    <child link="world_camera_rgb_optical_frame"/>
  </joint>
  <link name="world_camera_rgb_optical_frame">
    <visual>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <mesh filename="package://camerabot_description/meshes/atom_astra_rgb/atom_astra_rgb.dae" scale="1.0 1.0 1.0"/>
      </geometry>
    </visual>
  </link>
  <joint name="world_camera_depth_joint" type="fixed">
    <origin xyz="0.05266193933115996 0.0009300586190497705 -0.0007795729261006212" rpy="0.01752037043419548 -0.0024424401902206666 -0.016944030171226514"/>
    <parent link="world_camera_link"/>
    <child link="world_camera_depth_frame"/>
  </joint>
  <link name="world_camera_depth_frame"/>
  <joint name="world_camera_depth_optical_joint" type="fixed">
    <origin xyz="0.0 0.0 0.0" rpy="-1.5707963267948966 0.0 -1.5707963267948966"/>
    <parent link="world_camera_depth_frame"/>
    <child link="world_camera_depth_optical_frame"/>
  </joint>
  <link name="world_camera_depth_optical_frame">
    <visual>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <mesh filename="package://camerabot_description/meshes/atom_astra_depth/atom_astra_depth.dae" scale="0.98 0.98 0.98"/>
      </geometry>
    </visual>
  </link>
  <gazebo reference="world_camera_depth_frame">
    <sensor name="camera" type="depth">
      <always_on>true</always_on>
      <update_rate>10.0</update_rate>
      <camera>
        <horizontal_fov>1.0471975511965976</horizontal_fov>
        <image>
          <format>B8G8R8</format>
          <width>640</width>
          <height>480</height>
        </image>
        <clip>
          <near>0.10</near>
          <far>8.0</far>
        </clip>
      </camera>
      <plugin filename="libgazebo_ros_openni_kinect.so" name="world_camera_depth_camera_controller">
        <cameraName>world_camera</cameraName>
        <alwaysOn>true</alwaysOn>
        <updateRate>10.0</updateRate>
        <imageTopicName>null</imageTopicName>
        <cameraInfoTopicName>null/camera_info</cameraInfoTopicName>
        <depthImageTopicName>depth/image_raw</depthImageTopicName>
        <pointCloudTopicName>depth/points</pointCloudTopicName>
        <depthImageCameraInfoTopicName>depth/camera_info</depthImageCameraInfoTopicName>
        <frameName>world_camera_depth_optical_frame</frameName>
        <baseline>0.1</baseline>
        <distortion_k1>0.0</distortion_k1>
        <distortion_k2>0.0</distortion_k2>
        <distortion_k3>0.0</distortion_k3>
        <distortion_t1>0.0</distortion_t1>
        <distortion_t2>0.0</distortion_t2>
        <pointCloudCutoff>0.4</pointCloudCutoff>
      </plugin>
    </sensor>
  </gazebo>
  <gazebo reference="world_camera_rgb_frame">
    <sensor name="camera" type="camera">
      <update_rate>30.0</update_rate>
      <camera>
        <horizontal_fov>1.0471975511965976</horizontal_fov>
        <image>
          <format>B8G8R8</format>
          <width>640</width>
          <height>480</height>
        </image>
        <clip>
          <near>0.10</near>
          <far>8.0</far>
        </clip>
      </camera>
      <plugin filename="libgazebo_ros_camera.so" name="world_camera_rgb_camera_controller">
        <cameraName>world_camera</cameraName>
        <alwaysOn>true</alwaysOn>
        <updateRate>0</updateRate>
        <imageTopicName>rgb/image_raw</imageTopicName>
        <cameraInfoTopicName>rgb/camera_info</cameraInfoTopicName>
        <frameName>world_camera_rgb_optical_frame</frameName>
        <baseline>0.1</baseline>
        <distortion_k1>0.0</distortion_k1>
        <distortion_k2>0.0</distortion_k2>
        <distortion_k3>0.0</distortion_k3>
        <distortion_t1>0.0</distortion_t1>
        <distortion_t2>0.0</distortion_t2>
      </plugin>
    </sensor>
  </gazebo>
</robot>