Robotics StackExchange | Archived questions

Realsense D415 on Kinetic topic stops when we add another

Hi Ros Experts,

When we add another camera topic we lose one of the existing ones.

What should we be looking for as the cause of this: We are capturing colour images, and depth images.

WE initially are capturing frames from /camera/color/imageraw and /camera/depth/imagerect_raw

When we add in a point cloud topic, we get the point cloud topic and capture PCD files from it, however the /camera/depth/imagerectraw topic ceases working -- it quickly drops out.

Explaining this a little more clearly:

roslaunch realsense2camera rscamera.launch filters:=pointcloud align_depth:=true

results in a point cloud but no depth map on /camera/depth/imagerectraw OR /camera/depth/align_depth

roslaunch realsense2camera rscamera.launch filters:=pointcloud

gives a point cloud but no depth map on /camera/depth/imagerectraw OR /camera/depth/align_depth

roslaunch realsense2camera rscamera.launch

gives a depth map on depth map on /camera/depth/imagerectraw ... but of course, no point cloud.

We would like to get both the depth map and the point cloud.

We need some hints! What should we be looking for to solve this?

Ubuntu 16.04, ROS kinetic, realsense2 2.41.

Thanks!

Asked by Unproductive on 2021-01-14 17:02:44 UTC

Comments

Hi ROS Gurus,

Adding to question above from my colleague:

  1. The point cloud topic described above was added by running the command: $ roslaunch realsense2_camera rs_camera.launch filters:=pointcloud When this command is run the depth image topic /camera/depth/image_rect_raw stops working on rviz and the new topic /camera/depth/color/points starts working OK in rviz.

  2. If we remove the pointcloud instruction and add the aligh_depth as shown in the following command: $ roslaunch realsense2_camera rs_camera.launch align_depth:=true We get an additional topic /camera/depth/align_depth and the topic /camera/depth/image_rect_raw does NOT freeze and continues to work normally.

Does anyone know why, the addition of the pointcloud topic appear to "disable" the default /camera/depth/image_rect_raw topic?

Many thanks.

Asked by armnavas on 2021-01-14 18:48:21 UTC

Hi ROS Gurus,

Below is the rs_camera.launch file we are using:

<launch>
  <arg name="serial_no"           default=""/>
  <arg name="json_file_path"      default=""/>
  <arg name="camera"              default="camera"/>
  <arg name="tf_prefix"           default="$(arg camera)"/>

  <arg name="fisheye_width"       default="640"/>
  <arg name="fisheye_height"      default="480"/>
  <arg name="enable_fisheye"      default="true"/>

  <arg name="depth_width"         default="640"/>
  <arg name="depth_height"        default="480"/>
  <arg name="enable_depth"        default="true"/>

  <arg name="infra1_width"        default="640"/>
  <arg name="infra1_height"       default="480"/>
  <arg name="enable_infra1"       default="true"/>

  <arg name="infra2_width"        default="640"/>
  <arg name="infra2_height"       default="480"/>
  <arg name="enable_infra2"       default="true"/>

  <arg name="color_width"         default="640"/>
  <arg name="color_height"        default="480"/>
  <arg name="enable_color"        default="true"/>

  <arg name="fisheye_fps"         default="30"/>
  <arg name="depth_fps"           default="30"/>
  <arg name="infra1_fps"          default="30"/>
  <arg name="infra2_fps"          default="30"/>
  <arg name="color_fps"           default="30"/>
  <arg name="gyro_fps"            default="1000"/>
  <arg name="accel_fps"           default="1000"/>
  <arg name="enable_imu"          default="true"/>

  <arg name="enable_pointcloud"         default="false"/>
  <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
  <arg name="pointcloud_texture_index"  default="0"/>

  <arg name="enable_sync"         default="false"/>
  <arg name="align_depth"         default="false"/>

  <arg name="filters"             default=""/>

  <group ns="$(arg camera)">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
      <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
      <arg name="serial_no"                value="$(arg serial_no)"/>
      <arg name="json_file_path"           value="$(arg json_file_path)"/>

      <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
      <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
      <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
      <arg name="enable_sync"              value="$(arg enable_sync)"/>
      <arg name="align_depth"              value="$(arg align_depth)"/>

      <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
      <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
      <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

      <arg name="depth_width"              value="$(arg depth_width)"/>
      <arg name="depth_height"             value="$(arg depth_height)"/>
      <arg name="enable_depth"             value="$(arg enable_depth)"/>

      <arg name="color_width"              value="$(arg color_width)"/>
      <arg name="color_height"             value="$(arg color_height)"/>
      <arg name="enable_color"             value="$(arg enable_color)"/>

      <arg name="infra1_width"             value="$(arg infra1_width)"/>
      <arg name="infra1_height"            value="$(arg infra1_height)"/>
      <arg name="enable_infra1"            value="$(arg enable_infra1)"/>

      <arg name="infra2_width"             value="$(arg infra2_width)"/>
      <arg name="infra2_height"            value="$(arg infra2_height)"/>
      <arg name="enable_infra2"            value="$(arg enable_infra2)"/>

      <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
      <arg name="depth_fps"                value="$(arg depth_fps)"/>
      <arg name="infra1_fps"               value="$(arg infra1_fps)"/>
      <arg name="infra2_fps"               value="$(arg infra2_fps)"/>
      <arg name="color_fps"                value="$(arg color_fps)"/>
      <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
      <arg name="accel_fps"                value="$(arg accel_fps)"/>
      <arg name="enable_imu"               value="$(arg enable_imu)"/>

      <arg name="filters"                  value="$(arg filters)"/>
    </include>
  </group>
</launch>

Asked by armnavas on 2021-01-18 01:00:58 UTC

We also updated to RealSense SDK 2.0 (v2.41) with no luck.

Asked by armnavas on 2021-01-18 01:33:55 UTC

A clarification on my Jan 15 2021 comment:

I did talso try to run our D415 Realsense camera with both the point cloud filter and the align depth option, with the following command with no success either.

roslaunch realsense2_camera rs_camera.launch filters:=pointcloud align_depth:=true

Asked by armnavas on 2021-01-18 18:07:16 UTC

This reads like either a bug in the code, or a limitation due to bandwidth requirements to have all those streams active at the same time on the USB bus (so not on the ROS side).

In both cases, I would suggest to take this up with the Intel maintainers of the driver. They should know.

Asked by gvdhoorn on 2021-01-19 05:19:23 UTC

@gvdhoorn how would we establish that it was definitely not a ROS issue? Or that it was definitely a USB issue? A diagnostic approach that narrows down the possibilities would be appreciated.

Asked by Unproductive on 2021-01-19 17:57:25 UTC

It doesn't really matter. Intel supports ROS with their realsense drivers. They also support their realsense devices without ROS.

In either case: I'd suggest to post this on their issue tracker. And seeing you're encountering this while using ROS, my suggestion would be to post it on IntelRealSense/realsense-ros/issues.

Asked by gvdhoorn on 2021-01-20 02:30:19 UTC

Answers