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.
I need more information to help you:
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:
To verify that is Rviz that slows down the system you can check the pointcloud generation frequency with this test:
$ roslaunch zed_wrapper zed.launch$ rostopic hz /zed/point_cloud/cloud_registeredThanks 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