ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Further Optimization suggestion for wireless openni streaming

asked 2014-07-24 22:41:51 -0500

Xegara gravatar image

updated 2014-07-25 02:40:40 -0500

Let me first describe the system that I've came up with..

I have two Odroid-U3 with Asus Xtion Pro Live and Wifi. Both of them run the

 roslaunch openni2_launch openni2.launch

with the video resolution changed from VGA to QVGA...

The base station system (my computer) decompresses

 /cameraX/depth_registered/image_raw (compressedDepth)
 /cameraX/rgb/image_color_rect (compressed)

and synchronizes

/cameraX/rgb/image_rect_color_unsync (decompressed)
/cameraX/depth_registered/image_raw_unsync (decompressed)

and advertises


which the rgbdslam node subscribes to; where X may be 1 or 2.

They are both connected to a wireless N-lite router which bandwidth may reach upto 150 Mbps. image description

Using Wifi Analyzer Android App, it detected no other wifi signal in the same channel as the current wifi network.

Result: It is somewhat smooth but there are times when it drop frames. Running only one openni2 streaming do not really drop frames.. I therefore concluded that it was due to wifi bandwidth.

The further optimization that I can think of are..

1.) Instead of transmitting colored images, transmit only grayscale images.

2.) Rethrottle frame rate around 15fps only.


1.) What are other optimization suggestions I can do?

2.) running openni2_launch openni2.launch does not advertise grayscale image. What ros parameter should I include in the openni2.launch in order to generate /camera/rgb/image_rect_mono?? Because running imgproc node DO generate image_rect_mono

3.) Using dynamic reconfigure, the openni camera can only be rethrottled to 30 fps.. I tried 25 fps but it did not work. How do I rethrottle it to 15fps?

EDIT: I tried running the dynamic reconfigure and set to data skip to 1. I assume this means it will publish 1 in every 1 frame. It should mean no difference. However, it seems after setting data skip to 1, the frame rate starts to decline and wants to approach zero.

When data skip is set to 0

image description

When data skip is set to 1

image description(/upfiles/14062739298942344.png)

as of 15:39, the frame rate is 16.559 and still keeps on decreasing.

edit retag flag offensive close merge delete


I was trying to run rgbdslam over multiple machines, but the speed of mapping is very slow ,Have you solve this problem?Can you advertise some advice?Thanks in advance.

yincanben gravatar image yincanben  ( 2014-11-19 20:28:41 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2014-07-25 01:48:09 -0500

ahendrix gravatar image

The original openni_camera node has a data_skip parameter which can instruct the driver to only publish 1 in every N frames. openni2_camera is not nearly as well documented, but perhaps it has a similar parameter?

edit flag offensive delete link more


Initially, data_skip is set to 0. I tried to set it to 1. If the driver now will only publish 1 in every 1 frame, there should be no difference right? I have attached a screenshot above. As time progresses, the frame rate seems to decline and wants to approach zero. Why is that?

Xegara gravatar image Xegara  ( 2014-07-25 02:36:59 -0500 )edit

I think setting data_skip to 1 will drop every other frame; it's probably approaching 15, not 0. Try setting the window parameter in rostopic hz to something that isn't infinite, to get better readings:

rostopic hz -w 120

ahendrix gravatar image ahendrix  ( 2014-07-25 03:08:33 -0500 )edit

answered 2014-07-25 16:40:24 -0500

ccapriotti gravatar image

You should also look at your router's configuration.

Some of those routers have a QoS - in you case seems to be QSS or something like that - and those CLAIM to prioritize multimedia, and other sort of traffic. You would expect that feature to prioritize your video stream, right ? Yeah...

I have a similar model and, let's face it, it is a cheap router, with simple resources. Very good for home use, but now we are talking robots, and high speed data.

Just turn that off. It messes with your bandwidth in ways you cannot imagine, not really making it better.

edit flag offensive delete link more

Question Tools



Asked: 2014-07-24 22:41:51 -0500

Seen: 876 times

Last updated: Jul 25 '14