ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Have a look for information about ROS Dynamic Reconfigure. That allows you to change the resolution on-the-fly. Look at the params under the openni driver node.

Once you have found the parameter, you should be able to set it in a launch file like any other ROS Param.

Have a look for information about ROS Dynamic Reconfigure. That allows you to change the resolution on-the-fly. Look at the params under the openni driver node.

Once you have found the parameter, you should be able to set it in a launch file like any other ROS Param.


Edit: I needed to test this myself...

Firstly test the supported parameters by changing them on the fly and viewing the output in Rviz:

$ rosrun dynamic_reconfigure reconfigure_gui

and selecting the node:
{your_kinect_camera_name}/driver

The ASUS/PrimeSense supports at least:

  image_mode: 2 (640x480 VGA 30Hz)
              5 (320x240 QVGA 30Hz)
              8 (160x120 QQVGA 30Hz)
  depth_mode: 2 (VGA 30Hz)
              5 (QVGA 30Hz)
              8 (QQVGA 30Hz)

Here are 2 separate examples of launching the dynamic reconfigure node to change some parameters:

    <node name="$(anon dynparam)" pkg="dynamic_reconfigure" type="dynparam" args="set_from_parameters tilt_hokuyo_node">
      <param name="intensity" type="bool" value="false" />
      <param name="min_ang" type="double" value="-1.15" />
      <param name="max_ang" type="double" value="1.15" />
    </node>

  <node name="pr2_arm_navigation_perception_change_narrow_stereo_params_speckle" pkg="dynamic_reconfigure" type="dynparam" 
    args="set /narrow_stereo_textured/narrow_stereo_textured_proc speckle_size 1000" />

Or can specify the OpenNI driver configuration via ROS params:

<launch>
  <arg name="kinect_frame_prefix" default="/head_mount_kinect" />
  <arg name="kinect_camera_name" default="head_mount_kinect" />
  <arg name="publish_tf" default="true" />

  <!-- Set driver params for 320x240 at 1-2 Hz frame rate -->
  <param name="/$(arg kinect_camera_name)/driver/data_skip" value="10" /> <!-- 0 is default, 10 will drop 9/10 frames -->
  <param name="/$(arg kinect_camera_name)/driver/image_mode" value="5" /> <!-- 2 is default -->
  <param name="/$(arg kinect_camera_name)/driver/depth_mode" value="5" /> <!-- 2 is default -->

  <include file="$(find openni_launch)/launch/openni.launch">
    <arg name="device_id" value="#1" /> <!-- Use 1st device found, or you can specify first device on USB Bus #2 using 2@0 -->
    <arg name="camera" value="$(arg kinect_camera_name)" />
    <arg name="rgb_frame_id" value="$(arg kinect_frame_prefix)_rgb_optical_frame" />
    <arg name="depth_frame_id" value="$(arg kinect_frame_prefix)_ir_optical_frame" />
    <arg name="publish_tf" value="$(arg publish_tf)"/>
    <arg name="respawn" value="true"/>
    <arg name="depth_registration" value="true"/>
  </include>

</launch>