我们选用了WTC6201PA板上的TMS320C6201芯片、FPGA、SBSRAM、SDRAM、双口RAM、PCI总线、JTAG接口等硬件资源作为视觉图像处理单元,和PC主控机、图像采集卡、CCD摄像机和机器人控制系统组成系统,原理框图如图3所示。
图3 系统原理框图
系统工作过程如下:
CCD摄像机输出标准制式的全电视信号,其中包含着图像信号、复合同步信号、行、场消隐信号、槽脉冲和前后均衡脉冲等七种信号。本系统采用了北京大恒公司的DH-PCI-H图像采集卡来实现视频信号的预处理。CCD摄像机将视频数据输入到图像采集卡,图像采集卡按照设定的窗口位置、大小和方式采集视频数据,采集的数据存储在计算机的内存中。图像传输由图像卡控制的,无需CPU参与,图像传输速度可达40MB/S。
设置图像采集卡的采集方式是25帧/s连续采集,则采集一帧的时间为40ms,每一帧图像由奇偶两场组成,场频为50HZ,即一场扫描时间为20ms。图像采集大小为512×512像素,量化为8bit,256灰度级,则一帧图像的数据量为512×512×8bit=256KB。图像数据存储方式为隔行存放,即奇、偶场的图像数据交叉存放,组成一帧完整图像函数。
C6201由BOOTMODE[4:0]设置芯片的自举方式,加载过程采用主机(HPI)引导方式。外部主机通过主机口初始化CPU的存储空间,主机完成所有的初始化后,将主机口控制寄存器中的DSPINT位设置为1,结束引导过程。CPU退出复位状态,开始执行地址0处的指令。
系统上电后,主机经HPI口对系统初始化,主要完成对各寄存器的设置,包括EMIF、中断、DMA等相关的寄存器初始化操作等。主机向HPI控制寄存器的DSPINT位写1触发DSP运行,系统进入等待状态。CCD摄像机实时采集图像,经图像采集卡处理后存储到主机内存。PC机内存缓冲区一帧存满,向DSP发中断信号,DSP应答后,通过PCI总线将图像数据从主机内存经HPI口传输到WTC6201PA板片外SDRAM。DSP控制波门范围内图像数据以DMA方式传输到内部数据存储器。由于DSP为指令结构处理芯片,具有可编程性好、可以处理大量复杂指令(由程序RAM地址空间的大小决定)等优点,但相对FPGA而言其处理速度比较慢;而FPGA为可编程逻辑器件,具有很强的细粒度并行处理和多级流水线处理能力,但其内部有限的逻辑资源使之不适合实现复杂逻辑运算。因此我们采用FPGA作为协处理器来完成底层操作,再由DSP完成高层操作,两种操作可以采用流水线的方式并行运行,共同完成高速图像处理。从FPGA到DSP之间的图像数据传输使用双端口RAM。处理完一帧图像后,DSP向主机发信息,主机应答后,将图像处理结果经PCI总线传输至PC机内存,PC机再将位置偏差数据信号送至伺服控制系统,完成伺服任务。
3 图像雅可比矩阵
对于图像反馈机器人视觉伺服系统控制机构,图像雅可比矩阵是很关键的,它描述了机器人空间中的运动与图像特征空间中的运动之间的关系: