New Image works like a charm


#1

Thanks Dominik

I gave this new image a try today and all went well. The small item I ran into was the removal of node_modules I had to use rm -r option to remove the directory. This being the first time I actually browsed into the BeagleBone on port 8080 I was not sure what to expect. The window came up with a big red X accross the Camera window, so I hooked up a USB Web Cam to try it out. The window now comes up with a black window and I do not see any video. Is this because I may not have the correct driver for the webcam I have? At this point in time I only have the Beaglebone to play with.


#2

Hi David,
Thanks for your feedback!
What brand/type of webcam do you have?
Could you try again with the webcam hooked up before you point the browser to the BB?


#3

I am testing with a Logitech QuickCam Communicate STX http://www.logitech.com/en-ca/support/webcams/225 this is just one I had kicking around but now that I think about this it may not have the technology needed. I did try rebooting with the webcam connected to the beaglebone. I may need to purchase the correct webcam that you are using for this project.


#4

David,
As far as a very quick search showed, this camera is not supported by default by the Linux kernel. You would need to get a specific driver for it.

Search for video4linux and the name of the camera.


#5

I am using the Microsoft LifeCam HD-5000, which is supported by v4l, yet even with booting the server with the webcam plugged into the BeagleBone, I still get the No Camera image on the server. Is there something I'm missing?

PS. I'm also using the Pre-Built image.


#6

Brad, could you log on to the BB (without being connected with the browser to the UI) and run the command:

mjpg_streamer -o "output_http.so -p 9000"

Then connect with the browser to: http://<ip.of.beagle.bone>:9000

Here you should see the image of the webcam.

If not, do you have any error message on the command line?


#7

When I go to the ip:9000, I get this within Chrome

"404: Not Found!

Invalid input plugin number"

This is what I see in the terminal:

rov@OpenROV:~$ mjpg_streamer -o "output_http.so -p 9000"
MJPG Streamer Version: svn rev:
o: www-folder-path...: disabled
o: HTTP TCP port.....: 9000
o: username:password.: disabled
o: commands..........: enabled

And it seems to be hung up at that point. Do I need to run "sudo /etc/init.d/openrov start" in order to once again start the web browser, and if so, what shall I do if it continues to hang? Or should it just work?

By the way, I have both the PC and BB connected to a router. Should they be directly connected to each other, or is this acceptable?

Sorry for so many questions!

Thanks,

Brad


#8

Bran

Sorry, my bad. Posted the wrong command, please test with:

mjpg_streamer -i "input_uvc.so" -o "output_http.so -p 8090"

The prompt will block at that point, so it looks like it hangs, but it actually is running.

You can stop it with CTRL-C.

Please try again to browse to:

http://<ip>:8090/?action=snapshot

This would give you one image.

If you brows to http://<ip>:8090/?action=stream

you should see the video stream.


#9

Bran

Sorry, my bad. Posted the wrong command, please test with:

mjpg_streamer -i "input_uvc.so" -o "output_http.so -p 8090"

The prompt will block at that point, so it looks like it hangs, but it actually is running.

You can stop it with CTRL-C.

Please try again to browse to:

http://<ip>:8090/?action=snapshot

This would give you one image.

If you brows to http://<ip>:8090/?action=stream

you should see the video stream.

Dominik


#10

I get the same results


#11

hum, looks like mjpg_streamer can't find your camera.

could you try unplugging and re-plgging your camera and type

dmesg

On the BB command prompt?

It should say something like:

[ 3335.878691] usb 1-1: new high-speed USB device number 3 using musb-hdrc
[ 3336.034997] usb 1-1: New USB device found, idVendor=045e, idProduct=075d


#12

Dominik,

It's 'Brad', not 'Bran'. Haha, anyways, I tried your updated command, and this was the output in the terminal.

rov@OpenROV:~$ mjpg_streamer -i "input_uvc.so" -o "output_http.so -p 8090"

MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8090
o: username:password.: disabled
o: commands..........: enabled
Unable to dequeue buffer: Input/output error
i: Error grabbing frames

So, I'm a little lost with that output...

Thanks,

Brad


#13

Unplugging and re-plugging in, typing dmesg, gave me this:

[ 363.498607] usb 1-1: new high-speed USB device number 10 using musb-hdrc
[ 363.655222] usb 1-1: New USB device found, idVendor=045e, idProduct=076d
[ 363.655274] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 363.655312] usb 1-1: Product: Microsoft\xffffffc2\xffffffae\xffffffae LifeCam HD-5000
[ 363.655343] usb 1-1: Manufacturer: Microsoft
[ 363.662334] uvcvideo: Found UVC 1.00 device Microsoft\xffffffc2\xffffffae\xffffffae LifeCam HD-5000 (045e:076d)
[ 363.672620] input: Microsoft\xffffffc2\xffffffae\xffffffae LifeCam HD-5000 as /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1:1.0/input/input6
[ 364.788731] 10:3:1: cannot get freq at ep 0x82
rov@OpenROV:~$

I'm guessing the "cannot get freq at ep 0x82" is not a good thing.


#14

hum, I actually checked with my HD5000 and I get the same 'cannot get freq at ep 0x82'.

But not the problem with the input/output buffer.

Do you run your BB with a 5V power supply or 'only' powered through USB?

USB ports don't deliver enough power somethimes. Remember that you Computer would have to power the BB and the camera connected to the BB USB.


#15

I actually thought about power limitations, but hadn’t tried it yet. I just have it external power and I got the video feed. Problem is, I can’t get it in the Cockpit because after pressing “ctrl-c”, it stops the feed. How would I go about doing that now?


#16

when you restart the BB now and browse to http://<ip>:8080 it should work.

the node process is started automatically and will start mjpg_streamer once you connect with the browser.


#17

After running "sudo /etc/init.d/openrov start"?

I'm not getting the video feed from the Cockpit from ip:8080.

Any thoughts?

Once again, I appreciate the help.


#18

Hum, You should not need to actually run the start script. It is run by init.d.

Anyway, it might be that there is an issue with one of the node modules.

To check that:

cd /opt/openrov

node server.js

that starts the node process in the foreground.

If you get an error about missing modules, do:

sudo npm install

hope that helps!

Dominik


#19

So, I tried this, and this is what I got.

rov@OpenROV:~$ cd /opt/openrov
rov@OpenROV:/opt/openrov$ node server.js
config { debug: true,
sample_freq: 20,
dead_zone: 10,
video_frame_rate: 15,
production: false,
port: 8080,
OpenROVCamera: './lib/OpenROVCamera',
OpenROVController: './lib/OpenROVController' }
info - socket.io started
Starting the script from /opt/openrov/linux to setup UART1...
Server running at http://undefined:undefined/
warn - error raised: Error: listen EADDRINUSE
rov@OpenROV:/opt/openrov$ sudo npm install
[sudo] password for rov:
sudo: npm: command not found
rov@OpenROV:/opt/openrov$

Have you ever had the "warn - error raised: Error: listen EADDRINUSE" happen before?

Edit: So, a little research shows that that means the Address is in use, yet, I have nothing open from the address.


#20

Yes, that means there is another process running on that port (8080). :)

Try to do:

sudo /etc/init.d/openrov stop

node server.js

(the first command takes a few seconds).

Btw, make sure you don't have a proxy set up in your browser!