Rosanswers logo

Given the openni2.launch, I only want to stream raw images and remove all other processed images. But I also wanted the same parameters like the the rgb/image is pushed down into the camera workspace, rgb_frame_id is named to camera_rgb_optical_frame. How do I edit openni2.launch in order to do this? Apparently, I can't seem to find any node executed here in the launch file. So I assume the nodes are executed in the included launch files. Here is my attempted edit of openni2.launch but it looks like nodelet manager must definitely be ran. I tried

 roslaunch openni2_camera openni2_camera_node

But the namespace is not pushed down into the camera namespace and so does the rgb_frame_id is not set to camer_rgb_optical_frame.. Help...

     <!-- Entry point for using OpenNI2 devices -->

     <!-- "camera" should uniquely identify the device. All topics are pushed down
       into the "camera" namespace, and it is prepended to tf frame ids. -->
  <arg name="camera" default="camera" />
  <arg name="tf_prefix" default="" />
  <arg name="rgb_frame_id"   default="$(arg tf_prefix)/$(arg camera)_rgb_optical_frame" />
  <arg name="depth_frame_id" default="$(arg tf_prefix)/$(arg camera)_depth_optical_frame" />

  <!-- device_id can have the following formats:
         "#1"  : the first device found
         "2@X" : the Xth device on USB bus 2 -->
  <arg name="device_id" default="#1" />

  <!-- By default, calibrations are stored to file://${ROS_HOME}/camera_info/${NAME}.yaml,
       where ${NAME} is of the form "[rgb|depth]_[serial#]", e.g. "depth_B00367707227042B".
       See camera_info_manager docs for calibration URL details. -->
  <arg name="rgb_camera_info_url"   default="" />
  <arg name="depth_camera_info_url" default="" />

  <!-- Hardware depth registration 
  <arg name="depth_registration" default="false" />
  <!-- Driver parameters -->
  <arg name="color_depth_synchronization"     default="false" />
  <arg name="auto_exposure"                   default="true" />
  <arg name="auto_white_balance"              default="true" />

  <!-- Arguments for remapping all device namespaces -->
  <arg name="rgb"              default="rgb" />
  <arg name="ir"               default="ir" />
  <arg name="depth"            default="depth" />

  <!-- Optionally suppress loading the driver nodelet and/or publishing the default tf
       tree. Useful if you are playing back recorded raw data from a bag, or are
       supplying a more accurate tf tree from calibration. -->
  <arg name="load_driver" default="true" />
  <arg name="publish_tf" default="true" />

  <!-- Processing Modules 
  <arg name="rgb_processing"                  default="true"  />
  <arg name="debayer_processing"              default="false" />
  <arg name="ir_processing"                   default="false" />
  <arg name="depth_processing"                default="true" />
  <arg name="depth_registered_processing"     default="true" />
  <arg name="disparity_processing"            default="false" />
  <arg name="disparity_registered_processing" default="false" />
  <arg name="hw_registered_processing"        default="true" if="$(arg depth_registration)" />
  <arg name="sw_registered_processing"        default="false" if="$(arg depth_registration)" />
  <arg name="hw_registered_processing"        default="false" unless="$(arg depth_registration)" />
  <arg name="sw_registered_processing"        default="true" unless="$(arg depth_registration)" />

  <!-- Disable bond topics by default -->
  <arg name="respawn" default="false" />

  <!-- Worker threads for the nodelet manager -->
  <arg name="num_worker_threads" default="4" />

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

      <!-- Start nodelet manager 
      <arg name="manager" value="$(arg camera)_nodelet_manager" />
      <arg name="debug" default="false" />  Run manager in GDB? -->
          <include file="$(find rgbd_launch)/launch/includes/manager.launch.xml">
        <arg name="name" value="$(arg manager)" />
        <arg name="debug" value="$(arg debug)" />
        <arg name="num_worker_threads"  value="$(arg num_worker_threads)" />

    <!-- Load driver -->
    <include if="$(arg load_driver)"
         file="$(find openni2_launch)/launch/includes/device.launch.xml">
      <!-- <arg name="manager"                         value="$(arg manager)" /> -->
      <arg name="device_id"                       value="$(arg device_id)" />
      <arg name="rgb_frame_id"                    value="$(arg rgb_frame_id)" />
      <arg name="depth_frame_id"                  value="$(arg depth_frame_id)" />
      <arg name="rgb_camera_info_url"             value="$(arg rgb_camera_info_url)" />
      <arg name="depth_camera_info_url"           value="$(arg depth_camera_info_url)" />
      <arg name="rgb"                             value="$(arg rgb)" />
      <arg name="ir"                              value="$(arg ir)" />
      <arg name="depth"                           value="$(arg depth)" />
      <arg name="respawn"                         value="$(arg respawn)" />
<!--      <arg name="depth_registration"              value="$(arg depth_registration)" /> -->
      <arg name="color_depth_synchronization"     value="$(arg color_depth_synchronization)" />
      <arg name="auto_exposure"                   value="$(arg auto_exposure)" />
      <arg name="auto_white_balance"              value="$(arg auto_white_balance)" />

    <!-- Load standard constellation of processing nodelets 
    <include file="$(find rgbd_launch)/launch/includes/processing.launch.xml">
      <arg name="manager"                         value="$(arg manager)" />
      <arg name="rgb"                             value="$(arg rgb)" />
      <arg name="ir"                              value="$(arg ir)" />
      <arg name="depth"                           value="$(arg depth)" />
      <arg name="respawn"                         value="$(arg respawn)" />
      <arg name="rgb_processing"                  value="$(arg rgb_processing)" />
      <arg name="debayer_processing"              value="$(arg debayer_processing)" />
      <arg name="ir_processing"                   value="$(arg ir_processing)" />
      <arg name="depth_processing"                value="$(arg depth_processing)" />
      <arg name="depth_registered_processing"     value="$(arg depth_registered_processing)" />
      <arg name="disparity_processing"            value="$(arg disparity_processing)" />
      <arg name="disparity_registered_processing" value="$(arg disparity_registered_processing)" />
      <arg name="hw_registered_processing"        value="$(arg hw_registered_processing)" />
      <arg name="sw_registered_processing"        value="$(arg sw_registered_processing)" />
  </group> <!-- camera -->

  <!-- Load reasonable defaults for the relative pose between cameras -->
  <include if="$(arg publish_tf)"
       file="$(find rgbd_launch)/launch/kinect_frames.launch">
    <arg name="camera" value="$(arg camera)" />
    <arg name="tf_prefix" value="$(arg tf_prefix)" />

  <!-- Added camera driver parameters which changes the resolution from VGA to QVGA -->
  <param name="/$(arg camera)/driver/color_mode" value="8" /> 
  <param name="/$(arg camera)/driver/depth_mode" value="8" /> 
  <param name="/$(arg camera)/driver/ir_mode" value="8" /> 


Originally posted by Xegara on ROS Answers with karma: 52 on 2014-07-22

Post score: 0


1 Answer 1


Rosanswers logo

You do not have to edit openni2.launch.

To push the topics/frames to a namespace just do:

roslaunch openni2_camera openni2_camera_node camera:=xyzrgb_camera

where xyzrgb_camera is the name of your namespace. /camera/depth/points will now be,


Originally posted by McMurdo with karma: 1247 on 2014-07-24

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.