关键词 |
惠州Basler巴斯勒工业摄像机维修,马鞍山Basler巴斯勒CCD相机维修,邯郸Basler巴斯勒AOI相机维修,泉州Basler巴斯勒相机维修 |
面向地区 |
全国 |
1、走在前端的智能理念——无人充电机器人
ALSONTECH(埃尔森智能科技)于2018年推出全球套机器人3D视觉引导无人快速充电系统,将智能充电机器人变成现实。
该系统采用Basler集小巧机身和功能于一体的工业相机,搭建出3D视觉作为机器人的“双眼”,帮助机器人定位充电端口,之后该系统会引导充电体自动实现快充操作,结束后机器人甚至可以自动关闭充电盖。借助无人充电机器人,停车场可实现高度智能自动化。从车辆停至充电站到充电完成,整个过程驾驶员无需进行任何干预操作,有效缩短等待时间,省时省力。
随着无人驾驶技术在全球范围内推广应用,车辆使用方式面临着变革。该项目着眼于汽车工业发展的未来,以“人工智能”为核心理念,采用更加的充电方式为车辆提供能源保障,助力无人驾驶行业的产品升级。
工业相机SDK接口使用总结
相机调用 :
我们利用相机采集图像,先要对相机进行相关参数设置及控制,这需要对相机的SDK包比较了解,一般相机厂家都会提供相机SDK,其中包含用户手册和调用Demo,这些都大大降低了调用门槛,提高了二次开发用户的效率。目前用过Balser、海康、大华等相机,其实都是一个套路,都是按照下面几个步骤进行的。
1)枚举设备
2)创建句柄
3)打开设备
4)开始抓图
5)获取一帧并保存图像
6)停止抓图
7)关闭设备
8)销毁句柄
相机同步:
若是开发过程中用到双目或者多目的话,则需要外接同步触发器或者外部触发信号,通过相机同步触发线来实现同步问题。以实际应用过的Basler acA1300-200uc为例,其相机同步触发线具体类型如下:
1 -—— +12 VDC 红
2 —— I/O Input 1 黄
3 —— VCC(加电阻) 蓝
4 —— I/O Out 1 绿
6 —— DCcam Power GND 黑
0000—— I/O GND 白
下面是其中对于不同的工作要求,加载相机对象和卸载相机对象是通用的。而要使用其他模块,如事件对象时,相应的改为加载事件对象和卸载事件对象,以及使用事件对象完成相关任务即可。编程时一定要对整个流程做好规划,特别是硬件编程时一定留意内存泄露,前面分配的资源一定要在后面释放。
下面是五个大流程的详细解析,需要的地方已经加以说明,并注解了需要用到的函数
加载相机对象:
卸载相机对象:
加载数据流抓取对象:
卸载数据流抓取对象:
单帧或连续抓图过程:
按照以上介绍的流程即可实现实时图像采集:
很多人问我要源代码,翻了以前的程序文件夹找到了这个程序,演示了利用Pylon SDK进行相机采集的过程,使用MIL完成界面显示,采集部分封装成了类,可以直接重用。测试相机为Basler相机。注意Pylon仅完成Raw Data的采集,使用MIL的MbufPut完成图像数据的重组,然后MIL自动显示。
工业相机中断响应如何操作?
当相机一帧采集完成后,自动跳转进入中断回调函数,这里分了两种中断回调函数。
种为简单的取Buffer->处理->放回。
第二种结合Windows的消息队列,在此处再给一个“处理队列”,给处理一个缓冲时间。
这里的处理包括常见的图像处理、计算和显示及RawData拼装为图像等用到Buffer的地方。
前面也说过,常用的是中断响应处理,除此之外,自己去查询Buffer填充状态并作相关同步操作在某些场合也会用到,这个请查询不同相机SDK给出的同步方案。
差不多所有的工业相机SDK都是这样的编程模型和流程,AVT 1394相机和Basler Camera Link相机和AVT GigE相机相关代码在笔者网站可下载,还有之前讲的Basler Pylon SDK相机编程,他们基本流程都是一样,恕不详述!
Pylon 以实时图像采集讲解PylonC SDK使用流程
一般的对于提供硬件编程来说,硬件生产厂家都会提供好SDK使用的手册和实例。手册中一般包括安装和配置流程,一些基本概念的介绍,SDK每个函数使用,SDK使用流程和实例(有些硬件实例直接写在手册中,有些会以单文件存在,还有的两者皆有)。对于上位机软件开发人员来说拿到一个硬件上位机编程任务。
先应该阅读了解其SDK概念,再按照其介绍的SDK开发流程阅读其提供的实例,修改相应的实例为自己所用,有不懂的函数查询一下其用法即可。有些开发人员习惯性的去记其API,这是费时费力的做法,并不推荐。下面主要以实时图像采集讲解Basler相机的PylonC SDK的使用流程。
工作流程:
当相机工作时,就是连续的采集-处理-采集-处理...的过程,但是这就存在一个问题,如果采集的速度比处理速度快,处理不过来,怎么办?在实际中,我们使用队列来解决这个问题,当前帧没有处理完,下一帧到来时直接放入队列等待当前处理完成后再处理它。
这里使用三个队列完成采集和处理同步。
DMA队列:
当CMOS或CCD芯片曝光然后将数据转到相机缓存后,这时候DMA会负责将缓存中数据写入到“DMA队列”头Buffer中。
准备队列:
一旦“DMA队列”头Buffer被填充完成,会被加到“准备队列”尾后,这时候会发送中断通知用户程序:当前又有一帧数据采集完成,您看着处理吧。
处理队列:
当用户接收到中断会自动跳转到中断函数中,使用GetFrame拿取“准备队列”头Buffer,然后加到当前用户程序“处理队列”尾,用户程序从“处理队列”头拿取Buffer处理完成后使用PutFrame将Buffer再添加到原始的“DMA队列”尾。
需要说明如下几点:
1.这里的初始队列为1-10,都是初始分配为DMA队列的,这个内存分配和释放过程有的SDK是自己负责的,有的则需要用户自己分配和释放,SDK只负责托管使用。
2.一般开始注册一个中断处理函数,当“准备队列”填充完成会自动跳转到中断函数中,借此完成同步操作。也可以是用户自己维护同步结构体,使用查询和等待的方式判断“准备队列”头是否填充完成,是否该用户程序获取数据和处理了。
3.如果用户处理任务非常简单,可以去掉“处理队列”,每次直接GetFrame->处理->PutFrame。如果用户处理任务比较复杂而不希望出现丢帧的现象,则需要用户使用“处理队列”来保存所有可用的Buffer。
4.这里队列也只是能够解决处理速度比采集速度慢少许的情况,主要是对不同处理速度做平均来采集和处理同步。如果每一帧的处理时间太长,这时候“DMA队列” Buffer全部转移到“处理队列” Buffer,就会出现异常情况,这时不同的相机会有不同的处理方法。
德国工业相机Basler被广泛应用于各种自动化设备上,依据相机CCD,CMOS和接口的差异有不同的系列,随着技术的,很多老的自动化设备上的相机开始出现各种故障,例如相机花屏,相机白屏,相机显示模糊,相机上电无反应,相机黑屏,找不到相机,相机没有图像,相机图像颠倒,相机显示安装错误,相机无法触发拍照等等故障,苏州优米佳维修是的工业相机维修公司,维修过的Basler工业相机客户来自汽车装配,机器人,半导体,医疗,食品饮料,交通和运输等等各个行业,很多可以是因为相机新品购买周期太长或者已经提产,或者即使购买了新品但是因为匹配性问题不得不选择维修Basler工业相机。而Basler售后服务部门在产品停产一定时间后不会提供售后维修服务。Basler工业相机维修是一门技术活,不能只图便宜,如果操作不当很可能导致相机故障扩大而无法修复,从而导致整台设备的故障,所以建议客户选择的相机维修公司进行维修。
主营行业:机械综合 |
公司主营:CCD工业相机维修,触摸屏控制器维修,电源变频器维修,机器视觉控制器维修--> |
主营地区:苏州市工业园区双圩路105号1-1024 |
企业类型:私营有限责任公司 |
公司成立时间:2014-02-19 |
员工人数:5 - 10 人 |
研发部门人数:5 - 10 人 |
经营模式:生产型 |
最近年检时间:2024年 |
是否提供OEM:是 |
公司邮编:215100 |
公司电话:18112603420 |
公司邮箱:1971266479@qq.com |
公司网站:http://jaso.cn.b2b168.com/ |
————— 认证资质 —————
全国Basler相机维修热销信息