在工业 4.0 时代,国家智能制造高速发展,传统的编程来执行某一动作的机器人已经难以满足现今的自动化需求。在很多应用场景下,需要为工业机器人安装一双眼睛,即机器人视觉成像感知系统,使机器人具备识别、分析、处理等更高级的功能,可以正确对目标场景的状态进行判断与分析,做到灵活地自行解决发生的问题。
机器视觉系统组成
从视觉软件进入机器视觉行业,有必要全局认识一下机器视觉系统组成。
典型的机器视觉系统可以分为:图像采集部分、图像处理部分和运动控制部分。基于 PC 的视觉系统具体由如图 1 所示的几部分组成:
①工业相机与工业镜头——这部分属于成像器件,通常的视觉系统都是由一套或者多套这样的成像系统组成,如果有多路相机,可能由图像卡切换来获取图像数据,也可能由同步控制同时获取多相机通道的数据。根据应用的需要相机可能是输出标准的单色视频(RS-170/CCIR)、复合信号(Y/C)、RGB 信号,也可能是非标准的逐行扫描信号、线扫描信号、高分辨率信号等。
②光源——作为辅助成像器件,对成像质量的好坏往往能起到至关重要的作用,各种形状的 LED 灯、高频荧光灯、光纤卤素灯等都容易得到。
③传感器——通常以光纤开关、接近开关等的形式出现,用以判断被测对象的位置和状态,告知图像传感器进行正确的采集。
④图像采集卡——通常以插入卡的形式安装在 PC 中,图像采集卡的主要工作是把相机输出的图像输送给电脑主机。它将来自相机的模拟或数字信号转换成一定格式的图像数据流,同时它可以控制相机的一些参数,比如触发信号,曝光 / 积分时间,快门速度等。图像采集卡通常有不同的硬件结构以针对不同类型的相机,同时也有不同的总线形式,比如 PCI、PCI64、Compact PCI,PC104,ISA 等。
⑤PC 平台——电脑是一个 PC 式视觉系统的核心,在这里完成图像数据的处理和绝大部分的控制逻辑,对于检测类型的应用,通常都需要较高频率的 CPU,这样可以减少处理的时间。同时,为了减少工业现场电磁、振动、灰尘、温度等的干扰,必须选择工业级的电脑。
⑥视觉处理软件——机器视觉软件用来完成输入的图像数据的处理,然后通过一定的运算得出结果,这个输出的结果可能是 PASS/FAIL 信号、坐标位置、字符串等。常见的机器视觉软件以 C/C++图像库,ActiveX 控件,图形式编程环境等形式出现,可以是专用功能的(比如仅仅用于 LCD 检测,BGA 检测,模版对准等),也可以是通用目的的(包括定位、测量、条码 / 字符识别、斑点检测等)。
⑦控制单元(包含 I/O、运动控制、电平转化单元等)——一旦视觉软件完成图像分析(除非仅用于监控),紧接着需要和外部单元进行通信以完成对生产过程的控制。简单的控制可以直接利用部分图像采集卡自带的 I/O,相对复杂的逻辑 / 运动控制则必须依靠附加可编程逻辑控制单元 / 运动控制卡来实现必要的动作。
一个完整的机器视觉系统的主要工作过程如下:
1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。
2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。
3、摄像机停止目前的扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。
4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。
5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。
6、摄像机曝光后,正式开始一帧图像的扫描和输出。
7、图像采集部分接收模拟视频信号通过 A/D 将其数字化,或者是直接接收摄像机数字化后的数字视频数据。
8、图像采集部分将数字图像存放在处理器或计算机的内存中。
9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。
10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。
机器人视觉成像的结构形式
机器人视觉系统的主要功能是模拟人眼视觉成像与人脑智能判断和决策功能,采用图像传感技术获取目标对象的信息,通过对图像信息提取、处理并理解,最终用于机器人系统对目标实施测量、检测、识别与定位等任务,或用于机械人自身的伺服控制。
在工业应用领域,最具有代表性的机器人视觉系统就是机器人手眼系统。根据成像单元安装方式不同,机器人手眼系统分为两大类:固定成像眼看手系统(Eye-to-Hand)与随动成像眼在手系统(Eye-in-Hand, or Hand-eye),如下图 2 所示。
图 2 两种机器人手眼系统的结构形式
(a)眼在手机器人系统,(b)眼看手机器人系统
有些应用场合,为了更好地发挥机器人手眼系统的性能,充分利用固定成像眼看手系统全局视场和随动成像眼在手系统局部视场高分辨率和高精度的性能,可采用两者混合协同模式,如用固定成像眼看手系统负责机器人的定位,使用随动成像眼在手系统负责机器人的定向;或者利用固定成像眼看手系统估计机器人相对目标的方位,利用随动成像眼在手系统负责目标姿态的高精度估计等,如图 3 所示。
图 3 机器人协同视觉系统原理图
机器人视觉三维成像方法
3D 视觉成像可分为光学和非光学成像方法。目前应用最多的还是光学方法,其包括:飞行时间法、激光扫描法、激光投影成像、立体视觉成像等。
飞行时间 3D 成像
飞行时间(TOF)相机每个像素利用光飞行的时间差来获取物体的深度。目前已经有飞行时间面阵相机商业化产品,如 Mesa Imaging AG SR-4000, PMD Technologies Cam Cube 3.0,微软 Kinect V2 等。
TOF 成像可用于大视野、远距离、低精度、低成本的 3D 图像采集,其特点是:检测速度快、视野范围较大、工作距离远、价格便宜,但精度低,易受环境光的干扰。例如 Camcueb3.0 具有可靠的深度精度(<3mm @ 4m),每个像素对应一个 3D 数据。
扫描 3D 成像
扫描 3D 成像方法可分为扫描测距、主动三角法、色散共焦法。扫描测距是利用一条准直光束通过 1D 测距扫描整个目标表面实现 3D 测量的。主动三角法是基于三角测量原理,利用准直光束、一条或多条平面光束扫描目标表面完成 3D 成像,如图 4 所示。色散共焦通过分析反射光束的光谱,获得对应光谱光的聚集位置, 如图 5 所示。
图 4 线结构光扫描三维点云生成示意图
图 5 色散共焦扫描三维成像示意图
扫描 3D 成像的最大优点是测量精度高。其中色散共焦法还有其它方法难以比拟的优点,如非常适合测量透明物体、高反与光滑表面的物体。但缺点是速度慢、效率低;用于机械手臂末端时,可实现高精度 3D 测量,但不适合机械手臂实时 3D 引导与定位,因此应用场合有限。另外主动三角扫描在测量复杂结构面形时容易产生遮挡,需要通过合理规划末端路径与姿态来解决。
结构光投影 3D 成像
结构光投影三维成像目前是机器人 3D 视觉感知的主要方式。结构光成像系统是由若干个投影仪和相机组成,常用的结构形式有:单投影仪 - 单相机、单投影仪 - 双相机、单投影仪 - 多相机、单相机 - 双投影仪和单相机 - 多投影仪等。结构光投影三维成像的基本工作原理是:投影仪向目标物体投射特定的结构光照明图案,由相机摄取被目标调制后的图像,再通过图像处理和视觉模型求出目标物体的三维信息。
根据结构光投影次数划分,结构光投影三维成像可以分成单次投影 3D 和多次投影 3D 方法。单次投影 3D 主要采用空间复用编码和频率复用编码形式实现。由于单次投影曝光和成像时间短,抗振动性能好,适合运动物体的 3D 成像,如机器人实时运动引导,手眼机器人对生产线上连续运动产品进行抓取等操作。但是深度垂直方向上的空间分辨率受到目标视场、镜头倍率和相机像素等因素的影响,大视场情况下不容易提升。
多次投影 3D 具有较高空间分辨率,能有效地解决表面斜率阶跃变化和空洞等问题。不足之处在于:
1)对于连续相移投影方法,3D 重构的精度容易受到投影仪、相机的非线性和环境变化的影响;
2)抗振动性能差,不合适测量连续运动的物体;
3)在 Eye-in-Hand 视觉导引系统中,机械臂不易在连续运动时进行 3D 成像和引导;
4)实时性差,不过随着投影仪投射频率和 CCD/CMOS 图像传感器采集速度的提高,多次投影方法实时 3D 成像的性能也在逐步改进。
对于粗糙表面,结构光可以直接投射到物体表面进行视觉成像;但对于大反射率光滑表面和镜面物体 3D 成像,结构光投影不能直接投射到被成像表面,需要借助镜面偏折法。
偏折法对于复杂面型的测量,通常需要借助多次投影方法,因此具有多次投影方法相同的缺点。另外偏折法对曲率变化大的表面测量有一定的难度,因为条纹偏折后反射角的变化率是被测表面曲率变化率的 2 倍,因此对被测物体表面的曲率变化比较敏感,很容易产生遮挡难题。
立体视觉 3D 成像
立体视觉字面意思是用一只眼睛或两只眼睛感知三维结构,一般情况下是指从不同的视点获取两幅或多幅图像重构目标物体 3D 结构或深度信息,如图 6 所示。
图 6 立体视觉三维成像示意图
立体视觉可分为被动和主动两种形式。被动视觉成像只依赖相机接收到的由目标场景产生的光辐射信息,该辐射信息通过 2D 图像像素灰度值进行度量。被动视觉常用于特定条件下的 3D 成像场合,如室内、目标场景光辐射动态范围不大和无遮挡;场景表面非光滑,且纹理清晰,容易通过立体匹配寻找匹配点;或者像大多数工业零部件,几何规则明显,控制点比较容易确定等。
主动立体视觉是利用光调制(如编码结构光、激光调制等)照射目标场景,对目标场景表面的点进行编码标记,然后对获取的场景图像进行解码,以便可靠地求得图像之间的匹配点,再通过三角法求解场景的 3D 结构。主动立体视觉的优点是抗干扰性能强、对环境要求不高(如通过带通滤波消除环境光干扰),3D 测量精度、重复性和可靠性高;缺点是对于结构复杂的场景容易产生遮挡问题。
基于结构光测量技术和 3D 物体识别技术开发的机器人 3D 视觉引导系统,可对较大测量深度范围内散乱堆放的零件进行全自由的定位和拾取。相比传统的 2D 视觉定位方式只能对固定深度零件进行识别且只能获取零件的部分自由度的位置信息,具有更高的应用柔性和更大的检测范围。可为机床上下料、零件分拣、码垛堆叠等工业问题提供有效的自动化解决方案。
机器视觉 3D 引导系统框架
3D 重建和识别技术
通过自主开发的 3D 扫描仪可获准确并且快速地获取场景的点云图像,通过 3D 识别算法,可实现在对点云图中的多种目标物体进行识别和位姿估计。
3D 重建和识别效率
多种材质识别效果测试
得益于健壮的重建算法和识别算法,可对不同材质的零件进行稳定的重建和识别,即便是反光比较严重的铝材料及黑色零件都能获得较好的重建和识别效果,可适用于广泛的工业场景。
机器人路径规划
并不是获得零件的位姿信息后就能马上进行零件的拾取,这仅仅只是第一步,要成功拾取零件还需要完成以下几件事:
自主开发的机器人轨迹规划算法,可轻松完成上述工作,保证机器人拾取零件过程稳定可靠。
快速切换拾取对象
只需要四个简单的操作即可实现拾取对象的快速切换,无需进行复杂的工装、产线的调整。
性能比较
1. 类似于飞行时间相机、光场相机这类的相机,可以归类为单相机 3D 成像范围,它们体积小,实时性好,适合随动成像眼在手系统执行 3D 测量、定位和实时引导。但是,飞行时间相机、光场相机短期内还难以用来构建普通的随动成像眼在手系统,主要原因如下:
1)飞行时间相机空间分辨率和 3D 精度低,不适合高精度测量、定位与引导。
2)对于光场相机,目前商业化的工业级产品只有为数不多的几家,如德国 Raytrix,虽然性能较好,空间分率和精度适中,但价格贵,使用成本太高。
图 7 随动成像眼在手系统机器人 3D 视觉成像优选方案
2. 结构光投影 3D 系统,精度和成本适中,有相当好的应用市场前景。它由若干个相机 - 投影仪组成的,如果把投影仪当作一个逆向的相机,可以认为该系统是一个双目或多目 3D 三角测量系统。
3. 被动立体视觉 3D 成像,目前在工业领域也得到较好应用,但应用场合有限。因为单目立体视觉实现有难度,双目和多目立体视觉要求目标物体纹理或几何特征清晰。
4. 结构光投影 3D、双目立体视觉 3D 都存在下列缺点:体积较大,容易产生遮挡。针对这个问题虽然可以增加投影仪或相机覆盖被遮挡的区域,但会增加成像系统的体积,减少在 Eye-in-Hand 系统中应用的灵活性。
总结
虽然光学 3D 视觉成像测量方法种类繁多,但能够安装在工业机器人上,组成一种合适的随动成像眼在手系统,对位置变动的目标执行 3D 成像测量、引导机器人手臂准确定位和实施精准操作的方法有限。因为从工业应用的角度来说,我们更关心的是 3D 视觉传感器的精度、速度、体积与重量。
鉴于机器人末端能够承受的端载荷有限,允许传感器占用的空间有限,传感器在满足成像精度的条件下,重量越轻体积越小也就越实用。所以,对于随动成像眼在手系统,最佳 3D 成像方法是采用被动单目(单相机)3D 成像方法,这样不仅体积小、重量轻,也解决了双目和多目多视图遮挡难题。
上一篇:电机是如何实现运转的?
下一篇:自动驾驶+物联网物流,未来货运如何实现智能化?
推荐阅读
史海拾趣
随着产品的不断创新和技术的不断突破,创世公司的市场份额逐渐扩大。公司的SD NAND产品已经广泛应用于医疗设备、工业控制、轨道交通、安防、网络设备等多个领域。这一市场布局的成功,不仅提升了创世公司的品牌影响力,也为其在电子行业树立了良好的口碑。同时,创世公司还积极参与各种行业展会和交流活动,与国内外客户建立了广泛的合作关系,进一步拓展了市场。
随着技术的成熟,Dynawave开始寻求市场拓展。公司高层决定,将目标市场锁定在智能家居和物联网领域。他们与多家知名厂商合作,将自己的无线传输技术应用到各类智能设备中。通过不断的技术优化和市场推广,Dynawave的产品逐渐得到了市场的认可,销售额稳步增长。
江苏飞翼智能科技有限公司在无人机航模领域也有着深厚的积累。公司不仅自己购买零件组装各类航模,还积极参与国内航模比赛,凭借良好的飞机性能和一流的操控技术取得了不俗的成绩。尤其是涡喷航模,作为中高级的航模产品,其高难度的特技动作展示了飞翼智能在无人机技术方面的深厚功底。这些经验积累和技术创新为飞翼智能向无人机应用型企业转型奠定了坚实基础。
AntennaHome公司自创立之初,便以技术创新为核心竞争力。公司的创始人在无线通信领域拥有深厚的技术背景和丰富的行业经验,他们敏锐地捕捉到了市场对于高性能天线产品的需求。于是,公司投入大量资源进行研发,成功开发出了一款具有高效能、低损耗特点的新型天线产品,这一创新为公司在市场上赢得了良好的口碑。
EPC公司成立于2007年,由三位拥有六十年先进功率管理技术经验的资深工程师共同创立。公司的创始人们认识到,随着技术的不断发展,传统的硅功率技术已接近其性能极限。他们决定专注于氮化镓技术的研究与开发,这是一种新型的半导体材料,具有比硅更高的电子迁移率和更低的电阻。经过数年的研究和试验,EPC公司成功开发出了基于氮化镓的高效功率半导体器件,这一突破性的技术为公司的未来发展奠定了坚实的基础。
背景:想把SMD解密卡嵌到PCB板上,此SMD的接口是SDIO方式的。 问题:SDIO接口一般使用几条线呀,都输出什么信号。 例如: SPI接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从 ...… 查看全部问答∨ |
|
软件开发与软件工程联盟群成员列表 本帖被 supersoft 从 软件开发与软件工程社区管理版块 移动到本区(2007-03-08) 联盟群宗旨:建设合谐型软件开发与工程的社区-程序员的社区 社区主页:http://supersoft.ttsite.com 计算机专业书讯交流(计算机 ...… 查看全部问答∨ |
|
我让dm9000a发送的数据用网络捕捉工具一看,发现数据顺序都乱了,但数据是对的,应该是tx缓冲区指针乱了,谁知道原因呀?比如我发送:0xff,0xff,0xff,0xff,0xff,0xff,0x12,0x34,0x56,0x78,0x9a,0xbc,0x08,0x06,0x00,0x01,捕捉结果有可能是0x12,0x34 ...… 查看全部问答∨ |
Event 整体来说是API是比较难以理解的,通常需要实践加上原理一起理解,最好是阅读相应代码。但是event 相当强大,一个event 有32个事件,对于任务同步控制是非常强大的。 1 RAW_U16 raw_event_create(RAW_EVENT *event_ptr, RAW_U8 *name_ptr, RA ...… 查看全部问答∨ |
1、多级放大器的级间关系:在多级放大器中,后级电路相当于前级的负载,前级负载是后级放大器的输入电阻;前级相当后级的信号源,后级信号源内阻为前级的输出电阻。2、n级放大器的动态指标a、总电压放大倍数 :可见, n级放大器的总电压放大倍数 ...… 查看全部问答∨ |
- 坛子里有这么多人学C2000,说说大家是怎么和C2000开始有缘之旅的?
- 一个带PFC反激型LED电源控制器电路分析
- 夏普的GP2Y1010AU传感器输出电压怎么只有0.023V啊?请问谁知道原因么?
- 我怎么控制我的过滤驱动仅仅加载为usb mass storage 设备的过滤驱动?
- 请教:LM2576用的电感发出极大的噪声,是电感的问题,还是LM2576的问题(听说这个冒牌的比较多)?
- 为什么要搞下载需要积分这种东东呢?
- 求助关于ucos-ii移植的问题
- 能用查询调制解调器得到at返回信息,却不能用串口工具得到
- 【求助】怎么采集脉冲信号?
- EEWORLD大学堂----计算机视觉课程 清华大学 王明哲