View Full Version : Labview keeps freezing
SHerpich
23-01-2006, 15:12
After taking a couple of pictures, the progress bar keeps running over and over again, but the new picture will not load and the buttons lock up. If we restart labview or restart the computer we can take a couple more pictures, but then it locks up again. Turning the camera off and on doesn't seem to help. There was no problem with the installation. We are not getting any of the errors that have been posted in the forum. The TTL adaptor is connected to the camera by a PWM cable but it is not attached to the RC. We configured the com port to the specifications in the camera manual. Does anyone know what we might have done wrong?
Mike Bortfeldt
23-01-2006, 15:50
SHerpich,
We've observed the same problem. When we first installed LabVIEW, we were able to grab frames without any problems. The last time we tried, we saw the same problem you described. We would always be able to grab at least 1 frame, and sometimes several, but then the progress bar would indicate a frame grab in progress and once it would get to the end, there was a pause (several seconds), no new frame displayed, but the progress bar would start over as if it was acquiring another frame. Our workaround is to upload the camera parameters in between every frame grab (even if nothing has changed). I'm not sure why that works or if that will work for you, but give it a try.
You also may get a better response if you put this question in the LabVIEW forum.
Mike
Danny Diaz
24-01-2006, 08:59
After taking a couple of pictures, the progress bar keeps running over and over again, but the new picture will not load and the buttons lock up. Sounds like a classic problem of the backup battery being too low - we've seen issues just like this that have been solved by replacing with a FRESH battery. Obviously if your CMUCam2 is able to talk to LabVIEW then you don't have a traditional "communication problem", but your battery doesn't seem to have enough juice to sustain the communications (or there's an intermediate short, very likely with PWM cables from IFI - several our PWM cables were bad). If you do something in-between grabbing frames, it would appear to me that would give the battery a [small] chance to recover.
-Danny
heydowns
25-01-2006, 13:33
Sounds like a classic problem of the backup battery being too low - we've seen issues just like this that have been solved by replacing with a FRESH battery. Obviously if your CMUCam2 is able to talk to LabVIEW then you don't have a traditional "communication problem", but your battery doesn't seem to have enough juice to sustain the communications (or there's an intermediate short, very likely with PWM cables from IFI - several our PWM cables were bad). If you do something in-between grabbing frames, it would appear to me that would give the battery a [small] chance to recover.
-Danny
Our team also continually sees the problem that the original poster is talking about.
We have used two different backup batteries, both fully charged. The problem was still observed.
Note that when I say "continually", I mean that we consistently get the problem on an inconsistent basis. Sometimes we get it immediately at the start of the work session and it lasts through several restarts of LabView and RC/Camera power cyclings. Other times, things work for a little while (we can grab 2-3 frames), but then we get the OP's problem of LabView not responding to input, not getting the frame that was asked for, and the frame grab progress bar continually filling up and starting over. This persists until we restart the LabView CMUCam GUI application. After restarting, it might or might not occur again immediately. It is consistently inconsistent as to when it works.
If it is really thought to be a power supply issue, then I will try to make an effort to rig up a non-battery supply and run the camera off that. Maybe the OP or someone else having the same problem can do the same (just use any standard DC power supply that fits the specs outlined in the CMU Cam docs).
Hope this helps to diagnose the problem.
Danny Diaz
25-01-2006, 14:28
Just curious, when you have this problem are you using a USB-to-Serial converter or a built-in serial port? We've been up and down this problem trying to reproduce it, and we're having a bugger doing anything close to what you're describing - we're using a built-in port on a desktop, though.
-Danny
Just curious, when you have this problem are you using a USB-to-Serial converter or a built-in serial port? We've been up and down this problem trying to reproduce it, and we're having a bugger doing anything close to what you're describing - we're using a built-in port on a desktop, though.
-Danny
I have this problem with a built-in serial port on a laptop. I run the camera from a 7.2 v battery and monitor the battery voltage; the voltage does not change during operation. If the current draw were too high, the voltage would drop. 7 v should be OK, since the camera has a 5 v regulator on board.
For details, see http://www.chiefdelphi.com/forums/showthread.php?t=42631
Joe Hershberger
26-01-2006, 01:38
Our team also continually sees the problem that the original poster is talking about.
We have used two different backup batteries, both fully charged. The problem was still observed.
Note that when I say "continually", I mean that we consistently get the problem on an inconsistent basis. Sometimes we get it immediately at the start of the work session and it lasts through several restarts of LabView and RC/Camera power cyclings. Other times, things work for a little while (we can grab 2-3 frames), but then we get the OP's problem of LabView not responding to input, not getting the frame that was asked for, and the frame grab progress bar continually filling up and starting over. This persists until we restart the LabView CMUCam GUI application. After restarting, it might or might not occur again immediately. It is consistently inconsistent as to when it works.
If it is really thought to be a power supply issue, then I will try to make an effort to rig up a non-battery supply and run the camera off that. Maybe the OP or someone else having the same problem can do the same (just use any standard DC power supply that fits the specs outlined in the CMU Cam docs).
Hope this helps to diagnose the problem.
Please try the test release version from 2006.01.25 here (http://www.chiefdelphi.com/forums/showthread.php?t=41214) and let me know what your results are. Hopefully there will be some different behavior that will help narrow down the problem.
Thanks!
-Joe
Please try the test release version from 2006.01.25 here (http://www.chiefdelphi.com/forums/showthread.php?t=41214) and let me know what your results are. Hopefully there will be some different behavior that will help narrow down the problem.
Thanks!
-Joe
I downloaded this new GUI, but could not get it to work. I could not find how to grab a frame.
I tried the previous GUI again; this time, it loaded 3 frames before dying. I suspect that one side or the other loses the serial channel intermittently.
holdenga
26-01-2006, 18:14
I've had the same issues with Labview. I've used different batteries as well as a 12v regulated/filtered supply. All versions of the software have behaved in the same fashion.
holdenga
26-01-2006, 19:05
UPDATE. By using the latest update posted by Joe, I was able to get through a sucessful calibration session with the camera. It still posted some "unable to communicate...check serial port..." messages a few times, but I just closed the window and kept working, ignoring the error. The camera still responded after doing this.
One new oddity came up while doing this. The pan function seemed to be reversed. It wanted to track AWAY from the light source. Tilt worked properly. Since this can be addressed in the rc code, I simply unplugged the servos in order to complete calibration.
Thanks Joe.
glenn
Joe Hershberger
26-01-2006, 19:18
I downloaded this new GUI, but could not get it to work. I could not find how to grab a frame.
I tried the previous GUI again; this time, it loaded 3 frames before dying. I suspect that one side or the other loses the serial channel intermittently.
Peter,
Are you saying that the new version does nothing? I really don't understand what you mean when saying I could not find how to grab a frame. You click the grab frame button.
When you say "previous GUI", are you referring to the Java GUI from last year or are you referring to one of the previous LabVIEW releases?
Have you checked your change on the backup battery and all the wires for breaks or loose ends?
-Joe
Joe Hershberger
26-01-2006, 19:19
UPDATE. By using the latest update posted by Joe, I was able to get through a sucessful calibration session with the camera. It still posted some "unable to communicate...check serial port..." messages a few times, but I just closed the window and kept working, ignoring the error. The camera still responded after doing this.
One new oddity came up while doing this. The pan function seemed to be reversed. It wanted to track AWAY from the light source. Tilt worked properly. Since this can be addressed in the rc code, I simply unplugged the servos in order to complete calibration.
Thanks Joe.
glenn
The panning issue has nothing to do with the GUI... There is a jumper on the camera for each axis to reverse them.
When you get the error message does it grab part of a frame?
-Joe
Peter,
Are you saying that the new version does nothing? I really don't understand what you mean when saying You click the grab frame button.
When you say "previous GUI", are you referring to the Java GUI from last year or are you referring to one of the previous LabVIEW releases?
Have you checked your change on the backup battery and all the wires for breaks or loose ends?
-Joe
Ignore my complaint. I messed up the installation. Will try again.
Mark McLeod
27-01-2006, 08:22
For us, the 1/25 version eliminated the run-away progress bar behavior that version 1/17 exhibited.
Peter H came over to play last night and we were able to grab frames repeatedly from his camera, but with my laptop.
holdenga
27-01-2006, 10:36
The panning issue has nothing to do with the GUI... There is a jumper on the camera for each axis to reverse them.
I'll check the jumpers. Thanks.
When you get the error message does it grab part of a frame?
-Joe
Yes.
glenn
For us, the 1/25 version eliminated the run-away progress bar behavior that version 1/17 exhibited.
Peter H came over to play last night and we were able to grab frames repeatedly from his camera, but with my laptop.
Today, I erased the LabView GUI and reloaded it with the 1/25/06 CMUCam2 demo. Now, and also last night, I have completely different intermittent failures.
Sometimes, I can Grab Frame OK. The rest of the time, I Grab Frame, the red LED flashes, the blue progress bar advances to the end, the progress bar disappears, a partial frame shows, and an error box appears "The application is closing because of a reported error ...". The status code is -1073807252. The status source is "VISA Read in get picture.vi>CMUcam2.vi>CMUcam2GUI.vi" I had to expand the status box to read this.
I can click on the error box, it disappears, and the run icon reverts to not running. I can click on the run icon again, and repeat the process - sometimes it works, sometimes not.
What is my problem?
Joe Hershberger
27-01-2006, 14:22
Today, I erased the LabView GUI and reloaded it with the 1/25/06 CMUCam2 demo. Now, and also last night, I have completely different intermittent failures.
Sometimes, I can Grab Frame OK. The rest of the time, I Grab Frame, the red LED flashes, the blue progress bar advances to the end, the progress bar disappears, a partial frame shows, and an error box appears "The application is closing because of a reported error ...". The status code is -1073807252. The status source is "VISA Read in get picture.vi>CMUcam2.vi>CMUcam2GUI.vi" I had to expand the status box to read this.
I can click on the error box, it disappears, and the run icon reverts to not running. I can click on the run icon again, and repeat the process - sometimes it works, sometimes not.
What is my problem?
That error means that you are overflowing the VISA serial buffer. That is why you get a partial frame before it fails. Are you using a slow computer? What kind of serial port? Are there any settings in the device manager's properties for your serial port that will allow you to increase the buffer that is used on the serial port?
I'll look at the code to see if there is anything that can be done to make the program less susceptible to the problem. One solution is to lower the Baud rate (which would need to be done both on the camera and in the application / MAX) but would make the frame grabbing even slower. Hopefully we can avoid having to do that.
Cheers!
-Joe
Joe Hershberger
27-01-2006, 14:58
Sometimes, I can Grab Frame OK. The rest of the time, I Grab Frame, the red LED flashes, the blue progress bar advances to the end, the progress bar disappears, a partial frame shows, and an error box appears "The application is closing because of a reported error ...". The status code is -1073807252. The status source is "VISA Read in get picture.vi>CMUcam2.vi>CMUcam2GUI.vi" I had to expand the status box to read this.
I am testing this with a USB to serial converter. The converter sends between 3000 and 4000 bytes at a time. The code handles this just fine. The error refers to a buffer overflow from your serial hardware moving the data into VISA. The data comes faster than the VISA driver can pull it out of your serial device. This means that either your computer is too slow or overworked (interrupt flooded... do you have a hard disk or CD Rom that is running in PIO mode) such that it can't access the serial port frequently /quickly enough. This is often resolved on slow machines by the hardware supporting a small amount of buffering to allow for more jitter in the driver trying to retrieve the data. If you are using a USB to Serial adapter, there's a good chance it isn't implementing a good buffering scheme or that it isn't configured well (if it's configurable). The solution may be to get a better converter. I have a USB 2.0 adapter from FTDI. It works very well.
What are you using?
-Joe
That error means that you are overflowing the VISA serial buffer. That is why you get a partial frame before it fails. Are you using a slow computer? What kind of serial port? Are there any settings in the device manager's properties for your serial port that will allow you to increase the buffer that is used on the serial port?
I'll look at the code to see if there is anything that can be done to make the program less susceptible to the problem. One solution is to lower the Baud rate (which would need to be done both on the camera and in the application / MAX) but would make the frame grabbing even slower. Hopefully we can avoid having to do that.
Cheers!
-Joe
My laptop uses an Intel Premium M730, at 1.6 GHz, and 512 MB memory. I don't find any option in WinXP2 to increase the buffer size. The RS-232 serial port is built in to the mother board. No other app is running while LabView is running.
If this is a buffer size problem, why does it work more often than not? When I get a partial frame, it is anywhere from 10% to 90% of the full frame.
Joe Hershberger
27-01-2006, 16:13
My laptop uses an Intel Premium M730, at 1.6 GHz, and 512 MB memory. I don't find any option in WinXP2 to increase the buffer size. The RS-232 serial port is built in to the mother board. No other app is running while LabView is running.
If this is a buffer size problem, why does it work more often than not? When I get a partial frame, it is anywhere from 10% to 90% of the full frame.
Your setup seems reasonable. I have a serial port that plugs into the PCMCIA port that looks just like a standard ISA UART. In the properties of the port in Device manager is has the option to turn on buffering (it allows 14 bytes for transmit and 15 bytes for receive)... I would expect that to be available to you as well, but it depends on which UART chip they used on your motherboard. The older models of UARTS have no buffering at all... the driver must read every byte that comes in before the next one comes. This can be difficult to achieve and very inefficient, which is why newer UARTs have buffering. :D or operating systems like Windows that are not real-time, it is difficult to service every byte with low latency (before the next byte). It is much easier for something like the PIC in the RC.
If it works more often than not, then VISA is barely not able to keep up with the serial stream. This should only be an issue for receiving, so you shouldn't have problems with things like programming your RC. You may have problems if you try reading the memory at full speed. I will add an option in the code to allow you to make it work for your serial port and computer. It will slow down the rate at which the camera sends bytes to you and will eliminate the buffer overflows (as long as you set it high enough). You will want to start with 1 bit delay (the default is 0 which is causing your problems) and increase it until your problem goes away. Since it almost works now, I would expect that a value of 1 or 2 should be sufficient to make it work very well.
At least I'm confident that this should solve the problems you and others have been having. Thanks for helping to diagnose the problem so that everyone can enjoy the benefits of a working system! I'll post it when I finish the addition.
Cheers!
-Joe
Joe Hershberger
27-01-2006, 17:11
Peter,
I've posted the new version. Please let me know if it solves your problem.
Thanks,
-Joe
Peter,
I've posted the new version. Please let me know if it solves your problem.
Thanks,
-Joe
With the 1/27 version, LabView still sometimes show a partial frame, even with the serial port delay set to 4. I see little difference between a delay of 1 and 4. One difference now is that when LabView shows a partial frame, the red LED keeps blinking for the usual duration, the blue progress bar disappears, and no error is posted. LabView is still in run mode, and I can select Grab Frame again - which may or not show a full frame.
My earlier post was misleading. The serial port buffers are set to 14 and 15. I had thought you meant a software buffer. And many (~50?) WinXP processes are running in the background; most, I have no idea what they do. Maybe one of these sometimes prevents LabView from fetching the data?
I can operate LabView CMUcam2 GUI reliably on my desktop; Grab Frame works 20 times out of 20. But that is faster, with fewer background processes.
Joe Hershberger
28-01-2006, 04:41
With the 1/27 version, LabView still sometimes show a partial frame, even with the serial port delay set to 4. I see little difference between a delay of 1 and 4. One difference now is that when LabView shows a partial frame, the red LED keeps blinking for the usual duration, the blue progress bar disappears, and no error is posted. LabView is still in run mode, and I can select Grab Frame again - which may or not show a full frame.If you are not getting the VISA error when it aborts the frame grab, then the serial delay is not likely to help. So the LED continues to blink after the download bar disappears? That would indicate that it is quiting early. There are currently three reasons why the frame grab stops. If there is an error, if the expected time plus 50% passes, or enough bytes appear.If you look at the image, when only a partial frame is downloaded... does i look like there are lines missing in the middle, or does it look complete and error free up to the point that the image is truncated? If it's not an interrupt servicing issue, then it's most likely data corruption. Is your serial cable frayed or shorting out? Are you running lots of motors around it? Is your battery FULLY charged?
My earlier post was misleading. The serial port buffers are set to 14 and 15. I had thought you meant a software buffer. And many (~50?) WinXP processes are running in the background; most, I have no idea what they do. Maybe one of these sometimes prevents LabView from fetching the data? In that case I'm surprised you ever got that VISA error. Did you check for PIO mode?
I can operate LabView CMUcam2 GUI reliably on my desktop; Grab Frame works 20 times out of 20. But that is faster, with fewer background processes.I'm glad to hear it works somewhere! I thought maybe you wouldn't believe that it works here! :eek:
Let me know,
-Joe
If you are not getting the VISA error when it aborts the frame grab, then the serial delay is not likely to help. So the LED continues to blink after the download bar disappears? That would indicate that it is quiting early. There are currently three reasons why the frame grab stops. If there is an error, if the expected time plus 50% passes, or enough bytes appear.If you look at the image, when only a partial frame is downloaded... does i look like there are lines missing in the middle, or does it look complete and error free up to the point that the image is truncated? If it's not an interrupt servicing issue, then it's most likely data corruption. Is your serial cable frayed or shorting out? Are you running lots of motors around it? Is your battery FULLY charged?
In that case I'm surprised you ever got that VISA error. Did you check for PIO mode?
I'm glad to hear it works somewhere! I thought maybe you wouldn't believe that it works here! :eek:
Let me know,
-Joe
The partial image is complete, as far as it goes - no missing lines. I have used 2 serial cables, both look OK, both give the same result. No motors or robot controller - I run the camera stand-alone on my desk. Battery is fully charged, and voltage stays about 7.5 volts while running. COM1 / Resources shows IRQ 4; no PIO.
Micrsoft Antispyware used 9% of cpu every few seconds. Killed it, but no change. Other processes use 2-3% every few seconds.
LabView is now adequate for my purpose.
Joe Hershberger
28-01-2006, 21:55
The partial image is complete, as far as it goes - no missing lines. I have used 2 serial cables, both look OK, both give the same result. No motors or robot controller - I run the camera stand-alone on my desk. Battery is fully charged, and voltage stays about 7.5 volts while running. COM1 / Resources shows IRQ 4; no PIO.
Micrsoft Antispyware used 9% of cpu every few seconds. Killed it, but no change. Other processes use 2-3% every few seconds.
LabView is now adequate for my purpose.
Just to be clear, does the red light continue to flash after the download bar disappears and the error message pops up?
Thanks,
-Joe
Just to be clear, does the red light continue to flash after the download bar disappears and the error message pops up?
Thanks,
-Joe
Usually yes. The download bar disappears and the frame stops updating at the same time, and the red LED continues to flash for a total of about 8 - 10 seconds. There is no error message other than the partial frame. I can select Grab Frame, and the download repeats for another try.
Sometimes, the previous behavior shows: the red LED stops when the frame update stops, the download bar repeats after several seconds, and no red LED. The Grab Frame button stays green, but, if I click it, it grays out. The download bar still repeats about every 25 seconds.
Joe Hershberger
30-01-2006, 22:04
Usually yes. The download bar disappears and the frame stops updating at the same time, and the red LED continues to flash for a total of about 8 - 10 seconds. There is no error message other than the partial frame. I can select Grab Frame, and the download repeats for another try.
Sometimes, the previous behavior shows: the red LED stops when the frame update stops, the download bar repeats after several seconds, and no red LED. The Grab Frame button stays green, but, if I click it, it grays out. The download bar still repeats about every 25 seconds.
That is very interesting. From the behavior you describe, it sounds like the timeout for the frame grab is being computed incorrectly. The only inputs that the timeout is based upon is the Baud rate, the serial port delay, and the image dimensions that are returned from the camera. The first two shouldn't change unless you change them. It sounds as though the data coming from the camera may be getting corrupted.
Do you know how to probe lines in LabVIEW? It is a good way to debug LabVIEW code. I need you to open the "get picture.vi" inside of "CMUCam2 demo.llb" and switch to the block diagram (Ctrl-e), right click on the computed number of bytes and click probe. Then run the CMUCam Gui Application and let me know what the probe says for each of the cases you described above. I'm thinking that for whatever reason, you are having trouble with that, but lets see what you find from the probe.
Thanks,
-Joe
Joe Hershberger
30-01-2006, 22:10
Usually yes. The download bar disappears and the frame stops updating at the same time, and the red LED continues to flash for a total of about 8 - 10 seconds. There is no error message other than the partial frame. I can select Grab Frame, and the download repeats for another try.
Sometimes, the previous behavior shows: the red LED stops when the frame update stops, the download bar repeats after several seconds, and no red LED. The Grab Frame button stays green, but, if I click it, it grays out. The download bar still repeats about every 25 seconds.
Here's a picture that shows you where to probe.
Thanks,
-Joe
Here's a picture that shows you where to probe.
Thanks,
-Joe
There are 3 cases. I deleted the byte counter and then reselected it before each case, to ensure it started at 0.
1 Correct operation, the full frame appears: as soon as I select Grab Frame, the number of bytes shows 114242
2 Partial frame, red LED continues to blink: as soon as I select Grab Frame, the number of bytes shows 114242
3 Partial frame, progress bar advances spontaneously, no red LED blinking: the number of bytes does not change from 0.
I have not knowingly changed any LabView settings. I removed LAbView and reinstalled it a few days ago, but saw no change in operation. Since this GUI works OK with a desktop computer, I suspect some incompatibility between my laptop and the camera, that produces a hiccup in the data flow, and LabView can not tolerate the hiccup.
Joe Hershberger
01-02-2006, 01:17
There are 3 cases. I deleted the byte counter and then reselected it before each case, to ensure it started at 0.
1 Correct operation, the full frame appears: as soon as I select Grab Frame, the number of bytes shows 114242
2 Partial frame, red LED continues to blink: as soon as I select Grab Frame, the number of bytes shows 114242
3 Partial frame, progress bar advances spontaneously, no red LED blinking: the number of bytes does not change from 0.
I have not knowingly changed any LabView settings. I removed LAbView and reinstalled it a few days ago, but saw no change in operation. Since this GUI works OK with a desktop computer, I suspect some incompatibility between my laptop and the camera, that produces a hiccup in the data flow, and LabView can not tolerate the hiccup.Peter,
I'm suspecting that it will now work properly for you most of the time. The new update (from 2006.01.31) will much more robustly check that it is getting what is expected and quit if it doesn't. It also flushes the serial port buffers completely now and interrupts any currently executing streams on the camera. This means that even if the camera is in the middle of a frame grab (for whatever reason) and the app asks for a new frame, it will abort the first one and ask for a fresh new one. You should never get case 3 from above, now. If you get case 2 (I'm really not sure how this is happening since the size is correct) then it should fix itself on the next try.
Good luck!
-Joe
Peter,
I'm suspecting that it will now work properly for you most of the time. The new update (from 2006.01.31) will much more robustly check that it is getting what is expected and quit if it doesn't. It also flushes the serial port buffers completely now and interrupts any currently executing streams on the camera. This means that even if the camera is in the middle of a frame grab (for whatever reason) and the app asks for a new frame, it will abort the first one and ask for a fresh new one. You should never get case 3 from above, now. If you get case 2 (I'm really not sure how this is happening since the size is correct) then it should fix itself on the next try.
Good luck!
-Joe
OK. With the 1/31/06 version, I do not get case 3 in 20 tries. Case 2 still occurs, but the GUI recovers in the next frame grab. Thanks for all your effort.
Joe Hershberger
02-02-2006, 14:53
OK. With the 1/31/06 version, I do not get case 3 in 20 tries. Case 2 still occurs, but the GUI recovers in the next frame grab. Thanks for all your effort.
Peter,
I'm glad to hear that it's working better. I really wish we could figure out what's going on with the 2nd case. Does it return an error when you get case 2? (I'm referring to the error cluster that appears on the front panel, not the pop up window.) It may be a screwy hardware thing.
-Joe
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.