View Full Version : Camera Programming
35Billy42
10-03-2014, 18:04
Hey everyone! I'm trying to program a D-link DCS-930L Network Camera. Due to the Cloud Settings on it, I can't get it to connect to my robot. Is there anyway I can get past the Cloud Settings?
billbo911
10-03-2014, 18:20
Hey everyone! I'm trying to program a D-link DCS-930L Network Camera. Due to the Cloud Settings on it, I can't get it to connect to my robot. Is there anyway I can get past the Cloud Settings?
How are you trying to access the camera?
Are you using the WPI Libraries, or some other method?
35Billy42
10-03-2014, 18:34
I haven't even gotten that far yet. I'm trying to setup the camera so I can access it through the WPI robotics library. I believe I need to enter the IP address still.
Greg McKaskle
10-03-2014, 20:01
If it isn't an Axis, WPILib will not work on it. You will have better luck using a web browser to log into the camera and using the web browser as your dashboard or a component in your dashboard.
Greg McKaskle
First, we should define the protocols. Because Panasonic has its own and D-Link has another. Moreover, we should pay additional attention to the data itself - MJPEG, MPEG2, MPEG4 ....
I am pretty sure there is a way to give the MJPEG stream URL into WPILib instead of just the IP address. Otherwise, you may also use OpenCV or RoboRealm!
After looking at some of our robot code, we just supply the address, "10.11.65.11". I am pretty sure you could find the AxisCamera object and modify it to connect to the right address of the camera!
Greg McKaskle
28-03-2014, 22:01
The camera runs a web service. If you don't type in the right URL, it won't work. The WPILib camera libraries were built around the commands for Axis. It would actually be a good challenge for you to try and update them to support a new camera, but you would need to follow the documentation quite closely.
Greg McKaskle
It really depends on the internal workings of the WPILib. If it uses a standard MJPEG stream, you're golden. If it uses a JPEG image downloaded from the AXIS camera (standard: "[IP]/jpg/image.jpg", you are probably golden, otherwise, you'd need to create your own object. In this case, try a simple port of the OpenCV CvCapture because that will give a good standing point! It supports MJPG, and dozens of other protocols/file formats!
The AxisCamera class doesn't just get images from the camera. It's able to change exposure, brightness and other settings on the fly.
The AxisCamera class doesn't just get images from the camera. It's able to change exposure, brightness and other settings on the fly.
I guess. I haven't been thoroughly through the code. However, you just enlightened me! :D. Maybe I could port that to OpenCV so it can change those variables too! :D
You're brilliant! Thanks!
lucas.alvarez96
29-03-2014, 13:26
OpenCV can already configure those variables with VideoCapture::set
OpenCV can already configure those variables with VideoCapture::set
I didn't know that! However, I use CvCapture, not VideoCapture! I don't know if it'll work for me! Anyways, my program is robust enough to resist the camera changing it's settings automatically! In fact, I'd prefer the camera to auto adjust because it seems like as long as it stays in a certain limit. all izz well and my program should be able to work at a reasonable accuracy!
sparkytwd
31-03-2014, 17:15
The AxisCamera class doesn't just get images from the camera. It's able to change exposure, brightness and other settings on the fly.
If you're using a V4L based camera, you can also change camera settings during active capture. #3574 does that to switch our front facing camera out of autonomous mode to something more usable by a human.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.