<?xml version="1.0"?>
<launch>
  <arg name="mynteye" default="mynteye" />

  <!-- node params -->

  <arg name="left_topic" default="left/image_raw" />
  <arg name="right_topic" default="right/image_raw" />
  <arg name="left_rect_topic" default="left_rect/image_rect" />
  <arg name="right_rect_topic" default="right_rect/image_rect" />
  <arg name="disparity_topic" default="disparity/image_raw" />
  <arg name="disparity_norm_topic" default="disparity/image_norm" />
  <arg name="depth_topic" default="depth/image_raw" />
  <arg name="points_topic" default="points/data_raw" />

  <arg name="imu_topic" default="imu/data_raw" />
  <arg name="temp_topic" default="temp/data_raw" />

  <arg name="base_frame_id" default="$(arg mynteye)_link" />
  <arg name="left_frame_id" default="$(arg mynteye)_left_frame" />
  <arg name="right_frame_id" default="$(arg mynteye)_right_frame" />
  <arg name="left_rect_frame_id" default="$(arg mynteye)_left_rect_frame" />
  <arg name="right_rect_frame_id" default="$(arg mynteye)_right_rect_frame" />
  <arg name="disparity_frame_id" default="$(arg mynteye)_disparity_frame" />
  <arg name="disparity_norm_frame_id" default="$(arg mynteye)_disparity_norm_frame" />
  <arg name="points_frame_id" default="$(arg mynteye)_points_frame" />
  <arg name="depth_frame_id" default="$(arg mynteye)_depth_frame" />

  <arg name="imu_frame_id" default="$(arg mynteye)_imu_frame" />
  <arg name="temp_frame_id" default="$(arg mynteye)_temp_frame" />

  <arg name="gravity" default="9.8" />

  <!-- stream toggles -->

  <arg name="enable_left_rect" default="false" />
  <arg name="enable_right_rect" default="false" />
  <arg name="enable_disparity" default="false" />
  <arg name="enable_disparity_norm" default="false" />
  <arg name="enable_points" default="false" />
  <arg name="enable_depth" default="false" />

  <!-- device options, -1 will not set the value -->

  <!-- gain range: [0,48] -->
  <arg name="gain" default="-1" />
  <!-- <arg name="gain" default="24" /> -->

  <!-- brightness range: [0,240] -->
  <arg name="brightness" default="-1" />
  <!-- <arg name="brightness" default="120" /> -->

  <!-- contrast range: [0,255] -->
  <arg name="contrast" default="-1" />
  <!-- <arg name="contrast" default="127" /> -->

  <!-- frame_rate range: {10,15,20,25,30,35,40,45,50,55,60} -->
  <arg name="frame_rate" default="-1" />
  <!-- <arg name="frame_rate" default="25" /> -->

  <!-- imu_frequency range: {100,200,250,333,500} -->
  <arg name="imu_frequency" default="-1" />
  <!-- <arg name="imu_frequency" default="200" /> -->

  <!-- exposure_mode, 0: auto-exposure, 1: manual-exposure -->
  <arg name="exposure_mode" default="-1" />
  <!-- <arg name="exposure_mode" default="0" /> -->

  <!-- max_gain range: [0,48] -->
  <arg name="max_gain" default="-1" />
  <!-- <arg name="max_gain" default="48" /> -->

  <!-- max_exposure_time range: [0,240] -->
  <arg name="max_exposure_time" default="-1" />
  <!-- <arg name="max_exposure_time" default="240" /> -->

  <!-- desired_brightness range: [0,255] -->
  <arg name="desired_brightness" default="-1" />
  <!-- <arg name="desired_brightness" default="192" /> -->

  <!-- ir_control range: [0,160] -->
  <arg name="ir_control" default="80" />
  <!-- <arg name="ir_control" default="0" /> -->

  <!-- hdr_mode, 0: 10-bit, 1: 12-bit -->
  <arg name="hdr_mode" default="-1" />
  <!-- <arg name="hdr_mode" default="0" /> -->

  <!-- accel_range range: {4,8,16,32} -->
  <arg name="accel_range" default="-1" />
  <!-- <arg name="accel_range" default="8" /> -->

  <!-- gyro_range range: {500,1000,2000,4000} -->
  <arg name="gyro_range" default="-1" />
  <!-- <arg name="gyro_range" default="1000" /> -->

  <!-- Push down all topics/nodelets into "mynteye" namespace -->
  <group ns="$(arg mynteye)">

    <!-- mynteye_wrapper_node -->
    <node name="mynteye_wrapper_node" pkg="mynt_eye_ros_wrapper" type="mynteye_wrapper_node" output="screen">

      <!-- node params -->

      <param name="left_topic" value="$(arg left_topic)" />
      <param name="right_topic" value="$(arg right_topic)" />
      <param name="left_rect_topic" value="$(arg left_rect_topic)" />
      <param name="right_rect_topic" value="$(arg right_rect_topic)" />
      <param name="disparity_topic" value="$(arg disparity_topic)" />
      <param name="disparity_norm_topic" value="$(arg disparity_norm_topic)" />
      <param name="points_topic" value="$(arg points_topic)" />
      <param name="depth_topic" value="$(arg depth_topic)" />

      <param name="imu_topic" value="$(arg imu_topic)" />
      <param name="temp_topic" value="$(arg temp_topic)" />

      <param name="base_frame_id" value="$(arg base_frame_id)" />
      <param name="left_frame_id" value="$(arg left_frame_id)" />
      <param name="right_frame_id" value="$(arg right_frame_id)" />
      <param name="left_rect_frame_id" value="$(arg left_rect_frame_id)" />
      <param name="right_rect_frame_id" value="$(arg right_rect_frame_id)" />
      <param name="disparity_frame_id" value="$(arg disparity_frame_id)" />
      <param name="disparity_norm_frame_id" value="$(arg disparity_norm_frame_id)" />
      <param name="points_frame_id" value="$(arg points_frame_id)" />
      <param name="depth_frame_id" value="$(arg depth_frame_id)" />

      <param name="imu_frame_id" value="$(arg imu_frame_id)" />
      <param name="temp_frame_id" value="$(arg temp_frame_id)" />

      <param name="gravity" value="$(arg gravity)" />

      <!-- stream toggles -->

      <param name="enable_left_rect" value="$(arg enable_left_rect)" />
      <param name="enable_right_rect" value="$(arg enable_right_rect)" />
      <param name="enable_disparity" value="$(arg enable_disparity)" />
      <param name="enable_disparity_norm" value="$(arg enable_disparity_norm)" />
      <param name="enable_points" value="$(arg enable_points)" />
      <param name="enable_depth" value="$(arg enable_depth)" />

      <!-- device options -->

      <param name="gain" value="$(arg gain)" />
      <param name="brightness" value="$(arg brightness)" />
      <param name="contrast" value="$(arg contrast)" />
      <param name="frame_rate" value="$(arg frame_rate)" />
      <param name="imu_frequency" value="$(arg imu_frequency)" />
      <param name="exposure_mode" value="$(arg exposure_mode)" />
      <param name="max_gain" value="$(arg max_gain)" />
      <param name="max_exposure_time" value="$(arg max_exposure_time)" />
      <param name="desired_brightness" value="$(arg desired_brightness)" />
      <param name="ir_control" value="$(arg ir_control)" />
      <param name="hdr_mode" value="$(arg hdr_mode)" />
      <param name="accel_range" value="$(arg accel_range)" />
      <param name="gyro_range" value="$(arg gyro_range)" />

    </node>

    <!-- disable compressed depth plugin for image topics -->
    <group ns="$(arg left_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>
    <group ns="$(arg left_rect_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>
    <group ns="$(arg right_rect_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>
    <group ns="$(arg right_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>
    <group ns="$(arg disparity_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>
    <group ns="$(arg disparity_norm_topic)">
      <rosparam param="disable_pub_plugins">
        - 'image_transport/compressedDepth'
      </rosparam>
    </group>

  </group> <!-- mynteye -->
</launch>
