Is it possible to get 30fps with compressedDepth?
Hello all,
I am using a kinect sensor on a remote robot and I'd like to know if it is possible to stream depth data from it to a workstation in real time using image_transport and compressedDepth.
rostopic hz /kinect/depth_image
on the remote robot yields 30hz framerate as expected.
Of course when i do the same rostopic hz /kinect/depth_image
on my workstation i get about 2.5hz due to bandwidth hogging
However when I use
rosrun image_transport republish compressedDepth in:=/kinect/depth_image out:=/local//kinect/depth_image
the framerate actually goes down to about 1hz on both machines, but I would expect it to stay the same on the robot and result in a higher framerate on the workstation.
Is there something about compressedDepth that makes image transfer slower? It certainly decreases the bandwidth.
For comparison I did the same task with the rgb data and it is 30hz on both machines.
Thanks
Just an observation so not an answer, but compression always makes things slower. Some compression algorithms are "lighter" than others wrt the computational resources (ie: cpu, mem) they need, but there will always ..
.. be some overhead.
Depending on the computing hardware that your remote robot has, compression could be taxing enough that publishing the data becomes more CPU bound than IO bound, resulting in the further drop in FPS.
Thats interesting. Perhaps the compressedDepth algorithm is much slower because it operates on floating point data, because compressing the rgb data didnt seem to lower the framerate at all.