1
votes

I am working with Ubuntu 12.04 LTS. We are having problems receiving a non-noisy image from an eye-in-hand camera on a mobile robot.

The camera image is collected with a BTTV PCI device, specifically the bt878 driver. The BTTV device is a PCI-104 card based on a Bt848 chip, and is supported under Linux by the bttv and associated kernel driver modules. The devices is a capture-only card - which means video is taken directly from a video source without the use of a tuner. The frame grabber is connected to the on-board computer Sensorary 311 (so bttv card=73)

The bttv driver installed is version 0.9.19. The webcam is present in dev/video0.

$ dmesg |grep bttv
[    1.937779] bttv: driver version 0.9.19 loaded
[    1.937783] bttv: using 8 buffers with 2080k (520 pages) each for capture
[    1.937850] bttv: Bt8xx card found (0)
[    1.937873] bttv: 0: Bt878 (rev 17) at 0000:04:01.0, irq: 16, latency: 32, mmio: 0xdfdfe000
[    1.937888] bttv: 0: detected: Sensoray 311 [card=73], PCI subsystem ID is 6000:0311
[    1.937890] bttv: 0: using: Sensoray 311/611 [card=73,autodetected]
[    1.940185] bttv: 0: tuner absent
[    1.940313] bttv: 0: registered device video0
[    1.940591] bttv: 0: registered device vbi0

The modules loaded are as follows:

$ lsmod | grep video

videodev              105518  2 bttv,v4l2_common
media                  20516  1 videodev
videobuf_dma_sg        18711  1 bttv
videobuf_core          25098  2 bttv,videobuf_dma_sg
video                  19117  1 i915

$ lsmod

Module                  Size  Used by
bt878                  13588  0 
rfcomm                 38104  0 
bnep                   17791  2 
bluetooth             189585  10 rfcomm,bnep
parport_pc             32115  0 
ppdev                  12850  0 
coretemp               13362  0 
kvm                   365588  0 
snd_hda_codec_idt      60238  1 
gpio_ich               13160  0 
snd_hda_intel          32983  3 
snd_hda_codec         116477  2 snd_hda_codec_idt,snd_hda_intel
snd_hwdep              13277  1 snd_hda_codec
snd_pcm                81124  2 snd_hda_intel,snd_hda_codec
microcode              18396  0 
snd_seq_midi           13133  0 
snd_rawmidi            25426  1 snd_seq_midi
psmouse                91381  0 
snd_seq_midi_event     14476  1 snd_seq_midi
snd_seq                51594  2 snd_seq_midi,snd_seq_midi_event
bttv                  116393  1 bt878
v4l2_common            20517  1 bttv
videodev              105518  2 bttv,v4l2_common
media                  20516  1 videodev
videobuf_dma_sg        18711  1 bttv
serio_raw              13032  0 
snd_timer              28932  2 snd_pcm,snd_seq
snd_seq_device         14138  3 snd_seq_midi,snd_rawmidi,snd_seq
videobuf_core          25098  2 bttv,videobuf_dma_sg
btcx_risc              13401  1 bttv
rc_core                21172  1 bttv
tveeprom               17010  1 bttv
mac_hid                13078  0 
snd                    62675  15 snd_hda_codec_idt,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
i915                  479158  2 
drm_kms_helper         47459  1 i915
lpc_ich                16993  0 
drm                   240232  3 i915,drm_kms_helper
i2c_algo_bit           13317  2 bttv,i915
soundcore              14636  1 snd
snd_page_alloc         14109  2 snd_hda_intel,snd_pcm
video                  19117  1 i915
lp                     17456  0 
parport                40931  3 parport_pc,ppdev,lp
e1000e                177679  0 

We believe that the bt878 driver is loaded correctly, and that the frame grabber is working properly. When the camera is powered off the frame-grabber (viewed in either camorama, vlc or gstreamer-properties programs) is blue, and when the camera is powered on, the image received from the camera is very noisy. No features can be detected but changes in light can be seen.

We have had the camera working before properly (implying that the drivers are ok), however it appears that it is almost random, and dependent on what viewing programs we use and in what order. Once the camera is working, it remains working until we power off the robot. We think this means that the camera is not initialised properly, and so is sending noisy data. Does anyone know of a good way to initialise a camera linked to a BTTV PCI device, besides just ensuring the camera is powered on?

Specifically the camera is part of a manipulator which is installed on a SeekurJr robot from Mobile Robotics. It is required that the manipulator is initialised (turning the camera on) before viewing the stream, which we do.

The camera is a RVision SEE camera.

Questions: How can we initialise the camera? Any other ideas on how to fix the noise?

1

1 Answers

0
votes

i would guess you are having hardware problems, either with your camera or with your framegrabber, most likely with your camera.

  • make sure that your camera has it's optics mounted

  • try connecting the camera to another display device (e.g. an old analog TV with composite in), and see whether you still have that noisy image

  • try connecting another camera to your framegrabber card, and see what the image looks like.

from the bttv-side, the only configuration that could help, is to select the correct video norm, e.g. whether camera and grabber both agree that they are using PAL or NTSC or whatever (and of course the various subformats).

  • try changing the norm with any viewer program, that allows that during playback, e.g. xawtv

PS: the fact that you get a nice blue image when the camera is powered off only means, that the framegrabber correctly detects whether there is any signal.