Exposure control with the HD-3000 caused us grief last year. We assumed its problems would get resolved this year. No way. I could estimate that we wasted over 100 hours screwing with that camera.
Tonight we switched to a Logitech (920 I think) and all the problems went away. Now we have a front viewing camera and a back viewing camera and it all works like we had hoped.
The Microsoft LifeCam HD-3000 doesn’t support having it’s exposure set in this manner.
From personal experience and research, I think that the LifeCam doesn’t preserve its settings after a power cycle, and, because you can’t configure the settings from the RIO, it makes it difficult to have a configured camera on a robot. Usually. Some people, probably including you, wt200999, seem to have LifeCams that just work. They preserve their settings after a power cycle where other LifeCams would not. After hours of digging through Google search results, I haven’t found the reason why.
OP – The way our team solved the problem was by plugging the LifeCam into a Raspberry Pi 2, where we were able to configure its settings live using v4l2. We, however, didn’t stream that camera to the dashboard, instead choosing to keep the stream on the Pi for vision processing.
We code in C++. For programming, we have 1 1/2 students and one crusty old mentor. Small teams do not have a lot a resources. When we waste a lot of time getting a simple camera to display on the Dashboard, we do not get to spend time on the fun things, like vision tracking or navigation.
Last year we used HD-3000 with CameraServer (like simple vision example) and found we had to go to Dashboard and select Camera HW to get it to work. It was normally washed-out (ie white), but we found if we change frame rate via Dashboard from 30 down to something, then back to 30, it would often work OK.
We use the PC based program to try to set up the HD-3000, but the changes did not persist on the roboRio. It was maddening to see great autoexposure video on PC base programs and crap on roboRio.
This year we switched to USBcamera (due to comments on Chief Delphi) and had more control, but still dissatisfying. The setExposureManual was dark if set to 0, too bright if set to 1, no change up to 10, then white above 10. We had 4 HD-3000, and they each had different settings.
We switched to Logitech and autoexposure works well enough. No settings, just works.
We still have an issue with using SmartDashboard to display video stream. We have to first bring up standard Dashboard, select “camera hw”, then start Smart Dashboard and quit the standard Dashboard. This is not the best thing to have to accomplish while setting up for a match. Does anyone have a solution for this it would be appreciated.
I appreciate all support available on Chief Delphi.
We’ve eliminated these issues by always writing the camera settings to the camera when the code starts.
We do this with a csv file that has a list of all the attributes that we care about stored on the roboRIO. When the code loads we loop through each setting and set the camera accordingly.
The list of attributes and the list for the csv I have saved in a google doc here. Each tab has some different info, the ‘optimal settings’ I listed is for the vision tracking and not good for viewing. The ‘Values for CSV’ tab is a copy of the actual csv file that we send to the robot.
I’ve attached the LabVIEW code we used, I do not know the equivalent IMAQ function, but it may give you an idea.
The latest plugin update 0.1.0.201603020231 solved this. We can start SmartDashboard and the camera feed is live without having to kickstart via “usb camera hw”.