loading
 
Bug with Read_HTTP module
from United States  [214 posts]
8 years
Hi STeven et. al.,

I am using the attach .robo file to process the video feed from a Linksys wireless-G webcam (model WVC54GCA).  The Read_HTTP module seems to work well when pointing to my camera's URL (http://192.168.1.10/img/video.mjpeg) and setting the Refresh Frequency to ASAP.

However,  I started noticing that there was as much as a 3 second delay between movement in the real world and when it showed up in the video displayed in RoboRealm.  I also noticed that every few minutes the video would simple freeze or drop to erratic and slow frame rates.  After playing around a bit with the modules in my pipeline, the problem only occurs when I have the Canny Edge or Harris_Corners modules Enabled.  If I disable these, the problem goes away.  But of course, these two modules are critical for my application!

I ran the same .robo file with a wired USB camera and do not have the same problem--in other words, the Canny and Harris modules do not introduce a delay or freeze the video.

One other clue: when using the wireless webcam, if I set the Max Proccessing frame rate in RoboRealm to anything but 0 (say 20), the video freezes.  If I set it back to 0 and wait a few seconds, the video unfreezes.

In the meantime, my robot keeps running into things because it is acting on a video stream that is either delayed by several seconds or frozen!  )-:

Thanks!
patrick

program.robo
from United States  [214 posts] 8 years
I forgot to state that I am using RR version 2.2.9.

from United States  [214 posts] 8 years
Just an update on my original post:  it appears that I can minimize the delay problem by setting the max FPS on the Linksys camera to 10 fps rather than 30 fps as I had before.  (I'm using 320x 240 resolution). It also seems to help to turn on the camera's "low light sensitivity" which presumably also slows down the frame rate.  Then in RoboRealm, I leave the FPS settings on 0.  The effective frame rate as reported by RR is between 8 and 10.  With these settings I can move an object in front of the camera and see synchronous movement on RR's display, although every once in a while there is a small delay.

So if I had to guess, the issue seems to be related to some kind of buffering problem at higher frame rates when using Read_HTTP and the Linksys camera?

Thanks!
patrick
Anonymous 8 years
Patrick,

I think you are on the right track. What we have found in the past is there are some buffering delays in IP based cameras not necessarily as a fault of the camera but mainly due to the 802.11 issues. Whenever you have an IP camera it can essentially use the network as a buffer for several frames. We have seen the same issues you report using the DLink camera. What proved this to us is that if you connect to the camera directly using an ethernet cable (not sure if you can with the Linksys) the issues largely go away. With the wireless ability enabled we would see at least a 3 second real time delay even though we got 30 fps ... it was just a 30 fps image 3 seconds in the past!

Anything you can do to lower the transmission bandwidth over the airwaves should help. The intermittent cliches you are seeing are also due to network delays. They get even worse when you are in a noisy (i.e. busy network) environment.

We'll check into the MAX fps issue in RR though ... that sounds like something wrong is going on.

STeven.
from United States  [214 posts] 8 years
Hi STeven,

Thanks for your message and explanation--makes perfect sense.  Fortunately I can make do with 10 fps for my current application.  I suppose if I need higher frame rates I could use dedicated wireless video rather than 802.11.  BTW, you also answered a question I had about video delays with the Rovio I'm experimenting with--same issue, same explanation!

--patrick

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index