我正在使用 Ubuntu 12.04 LTS。我们在从移动机器人上的手持摄像头接收无噪声图像时遇到问题。
摄像头图像是使用 BTTV PCI 设备收集的,特别是 bt878 驱动程序。BTTV 设备是基于 Bt848 芯片的 PCI-104 卡,在 Linux 下由 bttv 和相关的内核驱动模块支持。这些设备是只采集卡 - 这意味着视频是直接从视频源获取的,无需使用调谐器。图像采集卡连接到车载电脑Sensorary 311(所以bttv card=73)
安装的 bttv 驱动是 0.9.19 版本。网络摄像头位于 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
加载的模块如下:
$ 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
我们认为 bt878 驱动程序已正确加载,并且图像采集卡工作正常。当相机关闭时,图像采集卡(在 camorama、vlc 或 gstreamer-properties 程序中查看)是蓝色的,当相机打开时,从相机接收到的图像非常嘈杂。无法检测到任何特征,但可以看到光线的变化。
我们之前已经让相机正常工作(暗示驱动程序没问题),但它似乎几乎是随机的,并且取决于我们使用的观看程序和顺序。一旦相机工作,它就会一直工作,直到我们关闭机器人。我们认为这意味着相机未正确初始化,因此正在发送嘈杂的数据。除了确保相机开机之外,有谁知道初始化与 BTTV PCI 设备相关联的相机的好方法?
具体来说,相机是安装在 Mobile Robotics 的 SeekurJr 机器人上的机械手的一部分。在查看流之前,需要初始化操纵器(打开相机),我们这样做。
相机是 RVision SEE 相机。
问题:我们如何初始化相机?关于如何解决噪音的任何其他想法?