Zed-ros-wrapper: Low FPS when subscribing to point cloud topic.

Created on 4 Jul 2018  Â·  11Comments  Â·  Source: stereolabs/zed-ros-wrapper

I have notice that the FPS from the zed-ros-wrapper drops from 15 fps ( as desired in launch file) to about 5 fps when i subscribe to the point_cloud topic. Obviously the additional computational overhead when having to calculate the point cloud slows down the main working thread. Has there been any work on computing the point cloud asynchronously?

Cheers.

help wanted

All 11 comments

I need more information to help you:

  • platform (CPU, GPU, ...)
  • SDK version

One of the main cause maybe running Rviz on the same machine.
To reduce the power requested by Rviz you could try to change this settings:

  • Unreliable: ON
  • Style: Points
  • Size (Pixels): 1
  • Queue size: 1

To verify that is Rviz that slows down the system you can check the pointcloud generation frequency with this test:

  1. open a console and start ZED node:
    $ roslaunch zed_wrapper zed.launch
  2. open another console and test the frequency of the topic:
    $ rostopic hz /zed/point_cloud/cloud_registered

Thanks for the response. This is running with GPU (nvidia 1060) and CPU ( Intel® Core™ i7-7700K Processor) on version SDK 2.4. Those values I stated above were determined via the rostopic hz. I am only running zed.launch

Which GPU and CPU?

Sorry, i edited after inital response.

Ok, I think you can take advantage of the new release of the wrapper that will be released with new SDK in the next days

Okay great! I look forward to testing this :)

Does using the notelet instead of the node help with the fps issue?

Hi @Russ76, i am currently already using this as a nodelet.

I've done a little bit of investigation, and the bottle neck appears in the zed_wrapper_nodelet.cpp:lines 708- 716:

if (cloud_SubNumber > 0) {
     zed.retrieveMeasure(cloud, sl::MEASURE_XYZBGRA);
     point_cloud_frame_id = cloud_frame_id;
     point_cloud_time = t;
     publishPointCloud(width, height, pub_cloud);
}

It takes about 0.17 seconds to complete this block, which is about 5-6hz. About 70% of that time is cosumed in the publishPointCloud() call.

Thank you for the investigation @RhysMcK
publishPointCloud is indeed the function that have been improved in the version that we are going to release

Performances improved in 1b16546e92677b4e5d9ff6688d49eb1812e10f3d

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MBaranPeker picture MBaranPeker  Â·  3Comments

jorgemiar picture jorgemiar  Â·  4Comments

jaronski picture jaronski  Â·  5Comments

rhklite picture rhklite  Â·  9Comments

jorgemiar picture jorgemiar  Â·  3Comments