机器人的视觉传感器有哪些?工业机器人视觉是基于位置还是基于图像的
![机器人的视觉传感器有哪些? 机器人的视觉传感器有哪些?](/storage/images/2023-04/hhCVQlihDMiYG2hVcC1Htu39Fq7e20eW.jpg)
1、机器人的视觉传感器有哪些?
如今的机器人已具有类似人1样的肢体及感官功能,有1定程度的智能,动作程序灵活,在工作时可以不依赖人的操纵。而这1切都少不了传感器的功劳,传感器是机器人感知外界的重要帮手,它们犹如人类的感知器官,机器人的视觉、力觉、触觉、嗅觉、味觉等对外部环境的感知能力都是由传感器提供的,同时,传感器还可用来检测机器人自身的工作状态,以及机器人智能探测外部工作环境和对象状态。并能够按照1定的规律转换成可用输出信号的1种器件,为了让机器人实现尽可能高的灵敏度,在它的身体构造里会装上各式各样的传感器,那么机器人究竟要具备多少种传感器才能尽可能的做到如人类1样灵敏呢?以下是从机器人家上看到的,希望对你有用根据检测对象的不同可将机器人用传感器分为内部传感器和外部传感器。内部传感器主要用来检测机器人各内部系统的状况,如各关节的位置、速度、加速度温度、电机速度、电机载荷、电池电压等,并将所测得的信息作为反馈信息送至控制器,形成闭环控制。而外部传感器是用来获取有关机器人的作业对象及外界环境等方面的信息,是机器人与周围交互工作的信息通道,用来执行视觉、接近觉、触觉、力觉等传感器,比如距离测量、声音、光线等。具体介绍如下:
1、视觉传感器机器视觉是使机器人具有感知功能的系统,其通过视觉传感器获取图像进行分析,让机器人能够代替人眼辨识物体,测量和判断,实现定位等功能。业界人士指出,目前在中国使用简便的智能视觉传感器占了机器视觉系统市场60%左右的市场份额。视觉传感器的优点是探测范围广、获取信息丰富,实际应用中常使用多个视觉传感器或者与其它传感器配合使用,通过1定的算法可以得到物体的形状、距离、速度等诸多信息。以深度摄像头为基础的计算视觉领域已经成为整个高科技行业最热门的投资和创业热点之1。有意思的是,这1领域的许多尖端成果都是由初创公司先推出,再被巨头收购发扬光大,例如Intel收购RealSense实感摄像头、苹果收购Kinect的技术供应商PrimeSense, Oculus又收购了1家主攻高精确度手势识别技术的以色列技术公司PebblesInterfaces。在国内计算视觉方面的创业团队虽然还没有大规模进入投资者的主流视野,但当中的佼佼者已经开始取得了令人瞩目的成绩。深度摄像头早在上世纪 80 年代就由 IBM 提出相关概念,这家持有过去、现在和未来几乎所有硬盘底层数据的超级公司,可谓是时代领跑者。2005年创建于以色列的 PrimeSense 公司可谓该技术民用化的先驱。当时,在消费市场推广深度摄像头还处在概念阶段,此前深度摄像头仅使用在工业领域,为机械臂、工业机器人等提供图形视觉服务。由它提供技术方案的微软Kinect成为深度摄像头在消费领域的开山之作,并带动整个业界对该技术的民用开发。
2、声觉传感器声音传感器的作用相当于1个话筒(麦克风)。它用来接收声波,显示声音的振动图象。但不能对噪声的强度进行测量。声觉传感器主要用于感受和解释在气体(非接触感受)、液体或固体(接触感受)中的声波。声波传感器复杂程度可以从简单的声波存在检测到复杂的声波频率分析,直到对连续自然语言中单独语音和词汇的辨别。据悉,从20世纪50年代开始,BELL实验室开发了世界上第1个语音识别Audry系统,可以识别10个英文数字。到20世纪70年代声音识别技术得到快速发展,动态时间规整(DTW)算法、矢量量化(VQ)以及隐马尔科夫模型(HMM)理论等相继被提出,实现了基于DTW技术的特定 人孤立语音识别系统。近年来,声音识别技术已经从实验室走向实用,国内外很多公司都利用声音识别技术开发出相应产品。比较知名的企业有思必驰、科大讯飞以及腾讯、百度等巨头,共闯语音技术领域。
3、距离传感器用于智能移动机器人的距离传感器有激光测距仪(兼可测角)、声纳传感器等,近年来发展起来的激光雷达传感器是目前比较主流的1种,可用于机器人导航和回避障碍物,比如SLAMTEC-思岚科技研发的RPLIDARA2激光雷达可进行360度全方面扫描测距,来获取周围环境的轮廓图,采样频率高达每秒4000次,成为目前业内低成本激光雷达最高的测量频率。配合SLAMTEC-思岚科技的SLAMWARE自主定位导航方案可帮助机器人实现自主构建地图、实时路劲规划与自动避开障碍物。
4、触觉传感器触觉传感器主要是用于机器人中模仿触觉功能的传感器。触觉是人与外界环境直接接触时的重要感觉功能,研制满足要求的触觉传感器是机器人发展中的技术关键之1。随着微电子技术的发展和各种有机材料的出现,已经提出了多种多样的触觉传感器的研制方案,但目前大都属于实验室阶段,达到产品化的不多。
5、接近觉传感器接近觉传感器介于触觉传感器和视觉传感器之间,可以测量距离和方位,而且可以融合视觉和触觉传感器的信息。接近觉传感器可以辅助视觉系统的功能,来判断对象物体的方位、外形,同时识别其表面形状。因此,为准确抓取部件,对机器人接近觉传感器的精度要求是非常高的。这种传感器主要有以下几点作用:发现前方障碍物,限制机器人的运动范围,以避免不障碍物収生碰撞。在接触对象物前得到必要信息,比如与物体的相对距离,相对倾角,以便为后续动作做准备。获取物体表面各点间的距离,从而得到有关对象物表面形状的信息。
6、滑觉传感器滑觉传感器主要是用于检测机器人与抓握对象间滑移程度的传感器。为了在抓握物体时确定1个适当的握力值,需要实时检测接触表面的相对滑动,然后判断握力,在不损伤物体的情况下逐渐增加力量,滑觉检测功能是实现机器人柔性抓握的必备条件。通过滑觉传感器可实现识别功能,对被抓物体进行表面粗糙度和硬度的判断。滑觉传感器按被测物体滑动方向可分为3类:无方向性、单方向性和全方向性传感器。其中无方向性传感器只能检测是否产生滑动,无法判别方向;单方向性传感器只能检测单1方向的滑移;全方向性传感器可检测个方向的滑动情况。这种传感器1般制成球形以满足需要。
7、力觉传感器力觉传感器是用来检测机器人自身力与外部环境力之间相互作用力的传感器。力觉传感器经常装于机器人关节处,通过检测弹性体变形来间接测量所受力。装于机器人关节处的力觉传感器常以固定的3坐标形式出现,有利于满足控制系统的要求。目前出现的6维力觉传感器可实现全力信息的测量,因其主要安装于腕关节处被称为腕力觉传感器。腕力觉传感器大部分采用应变电测原理,按其弹性体结构形式可分为两种,筒式和十字形腕力觉传感器。其中筒式具有结构简单、弹性梁利用率高、灵敏度高的特点;而十字形的传感器结构简单、坐标建立容易,但加工精度高。
8、速度和加速度传感器速度传感器有测量平移和旋转运动速度两种,但大多数情况下,只限于测量旋转速度。利用位移的导数,特别是光电方法让光照射旋转圆盘,检测出旋转频率和脉冲数目,以求出旋转角度,及利用圆盘制成有缝隙,通过2个光电2极管辨别出角速度,即转速,这就是光电脉冲式转速传感器。加速度传感器是1种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第2定律获得加速度值。根据传感器敏感元件的不同,常见的加速度传感器包括电容式、电感式、应变式、压阻式、压电式等。机器人要想做到如人类般的灵敏,视觉传感器、声觉传感器、距离传感器、触觉传感器、接近觉传感器、力觉传感器、滑觉传感器、速度和加速度传感器这8种传感器对机器人极为重要,尤其是机器人的5大感官传感器是必不可少的,从拟人功能出发,视觉、力觉、触觉最为重要,目前已进入实用阶段,但它的感官,如听觉、嗅觉、味觉、滑觉等对应的传感器还等待11攻克。
![工业机器人视觉是基于位置还是基于图像的 工业机器人视觉是基于位置还是基于图像的](/storage/images/2023-04/oO5gsgxOwCNXeLiR2DeUZecfjFuLRVmC.jpg)
2、工业机器人视觉是基于位置还是基于图像的
主要工作如下:首先,为了改善从CCD摄像头摄取的工件图像的质量,对所摄取的图像进行预处理,主要包括直方图均衡化和中值滤波。接着,提取工件的边缘特征,经过对各种经典边缘检测算子的分析比较表明:Canny算子以其定位的准确性、响应的单1性而获得较好的边缘检测效果。 其次,针对工件识别,本文在传统图像匹配算法的基础上,提出了基于改进遗传算法和Hausdorff距离的工件识别算法。该算法采用工件的边缘为匹配特征,将修正的Hausdorff距离作为目标物体轮廓的相似性度量准则,并应用遗传算法进行最佳匹配的快速搜索,在距离变换空间内,成功实现了目标物体的匹配识别。实验结果表明:本文的方法能有效地检测出具有平移、旋转和小尺度变化以及有遮挡的目标物体。 第3,在对工件进行空间定位时,采用基于恒定旋转矩阵法的单目移动视觉获得工件的深度信息,并完成工件的3维定位。该方法通过保持机器人连杆3到机器人基坐标系的旋转矩阵恒定来直接获得世界坐标,简化复杂的手眼标定和相机标定。 最后,以GRB-400型工业机器人为执行机构,采用CCD摄像机、图像采集卡与PC机建立了机器人手眼视觉系统,利用此实验装置,应用前面提出的工件识别和定位算法,完成了工件的抓取实验。
![如何利用ar技术来解决智能机器人的视觉识别 如何利用ar技术来解决智能机器人的视觉识别](/storage/images/2023-04/AawzOmsjcSnh8gqri2fqJrm5sHPn9Oc9.jpg)
3、如何利用ar技术来解决智能机器人的视觉识别
智能机器人之所以叫智能机器人,这是因为它有相当发达的“大脑”。在脑中起作用的是中央处理器,这种计算机跟操作它的人有直接的联系。最主要的是,这样的计算机可以进行按目的安排的动作。正因为这样,我们才说这种机器人才是真正的机器人,尽管它们的外表可能有所不同。 我们从广泛意义上理解所谓的智能机器人,它给人的最深刻的印象是1个独特的进行自我控制的“活物”。其实,这个自控“活物”的主要器官并没有像真正的人那样微妙而复杂。 智能机器人具备形形色色的内部信息传感器和外部信息传感器,如视觉、听觉、触觉、嗅觉。除具有感受器外,它还有效应器,作为作用于周围环境的手段。这就是筋肉,或称自整步电动机,它们使手、脚、长鼻子、触角等动起来。由此也可知,智能机器人至少要具备3个要素:感觉要素,反应要素和思考要素。 我们称这种机器人为自控机器人,以便使它同前面谈到的机器人区分开来。它是控制论产生的结果,控制论主张这样的事实:生命和非生命有目的的行为在很多方面是1致的。正像1个智能机器人制造者所说的,机器人是1种系统的功能描述,这种系统过去只能从生命细胞生长的结果中得到,现在它们已经成了我们自己能够制造的东西了。 智能机器人能够理解人类语言,用人类语言同操作者对话,在它自身的“意识”中单独形成了1种使它得以“生存”的外界环境——实际情况的详尽模式。它能分析出现的情况,能调整自己的动作以达到操作者所提出的全部要求,能拟定所希望的动作,并在信息不充分的情况下和环境迅速变化的条件下完成这些动作。当然,要它和我们人类思维1模1样,这是不可能办到的。不过,仍然有人试图建立计算机能够理解的某种“微观世界”。比如维诺格勒在麻省理工学院人工智能实验室里制作的机器人。这个机器试图完全学会玩积木:积木的排列、移动和几何图案结构,达到1个小孩子的程度。这个机器人能独自行走和拿起1定的物品,能“看到”东西并分析看到的东西,能服从指令并用人类语言回答问题。更重要的是它具有“理解”能力。为此,有人曾经在1次人工智能学术会议上说过,不到十年,我们把电子计算机的智力提高了10倍;如维诺格勒所指出的,计算机具有明显的人工智能成分。
![CCD视觉在移动机器人的传感技术当中能起到哪些作用呢?求解答 CCD视觉在移动机器人的传感技术当中能起到哪些作用呢?求解答](/storage/images/2023-04/G4BUKd1oRRw3hIqwcZaiEJfkpoUKmoud.jpg)
4、CCD视觉在移动机器人的传感技术当中能起到哪些作用呢?求解答
CCD视觉传感作为1种使用在移动机器人较新的传感技术,得到越来越多的研究和应用,而随着工艺的提高,CCD的像素越来越高,而传统的处理步骤在处理高像素CCD视觉采集的图像时就产生了实时性的瓶颈,这就影响了高像素CCD视觉在移动机器人上优势的发挥; 提出了1种快速CCD视觉传感处理方法,该方法包括动态灰度处理、Sobel后置优化、边缘跟踪Hough变化和传感器快速标定,能有效降低算法复杂性,提高整个视觉传感系统的实时性。在自行设计的ARM9(S3C2410)CCD视觉传感的移动机器人平台上运行,实验证明具有较好的实时性。 深圳CCD视觉厂家针对传统方法直接对CCD视觉采集的图像进行后续信号处理在实时性上的不足,特别是在高像素CCD构成的视觉系统中这种不足尤为突出。
![请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点 请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点](/storage/images/2023-04/UAn2GPsSUGk5H7ZGbIZHs1u42LH7XiDa.jpg)
5、请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点
首先,我们要了解,机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有1些不同:机器视觉的目的是给机器人提供操作物体的信息。所以,机器视觉的研究大概有这几块: 物体识别(Object Recognition):在图像中检测到物体类型等,这跟 CV 的研究有很大1部分交叉; 位姿估计(Pose Estimation):计算出物体在摄像机坐标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里; 相机标定(Camera Calibration):因为上面做的只是计算了物体在相机坐标系下的坐标,我们还需要确定相机跟机器人的相对位置和姿态,这样才可以将物体位姿转换到机器人位姿。当然,我这里主要是在物体抓取领域的机器视觉;SLAM 等其他领域的就先不讲了。 由于视觉是机器人感知的1块很重要内容,所以研究也非常多了,我就我了解的1些,按照由简入繁的顺序介绍吧: 0. 相机标定 这其实属于比较成熟的领域。由于我们所有物体识别都只是计算物体在相机坐标系下的位姿,但是,机器人操作物体需要知道物体在机器人坐标系下的位姿。所以,我们先需要对相机的位姿进行标定。 内参标定就不说了,参照张正友的论文,或者各种标定工具箱; 外参标定的话,根据相机安装位置,有两种方式:Eye to Hand:相机与机器人极坐标系固连,不随机械臂运动而运动Eye in Hand:相机固连在机械臂上,随机械臂运动而运动 两种方式的求解思路都类似,首先是眼在手外(Eye to Hand) 只需在机械臂末端固定1个棋盘格,在相机视野内运动几个姿态。由于相机可以计算出棋盘格相对于相机坐标系的位姿 、机器人运动学正解可以计算出机器人底座到末端抓手之间的位姿变化 、而末端爪手与棋盘格的位姿相对固定不变。 这样,我们就可以得到1个坐标系环而对于眼在手上(Eye in Hand)的情况,也类似,在地上随便放1个棋盘格(与机器人基座固连),然后让机械臂带着相机走几个位姿,然后也可以形成1个 的坐标环平面物体检测 这是目前工业流水线上最常见的场景。目前来看,这1领域对视觉的要求是:快速、精确、稳定。所以,1般是采用最简单的边缘提取+边缘匹配/形状匹配的方法;而且,为了提高稳定性、1般会通过主要打光源、采用反差大的背景等手段,减少系统变量。目前,很多智能相机(如 cognex)都直接内嵌了这些功能;而且,物体1般都是放置在1个平面上,相机只需计算物体的 3自由度位姿即可。 另外,这种应用场景1般都是用于处理1种特定工件,相当于只有位姿估计,而没有物体识别。 当然,工业上追求稳定性无可厚非,但是随着生产自动化的要求越来越高,以及服务类机器人的兴起。对更复杂物体的完整位姿 估计也就成了机器视觉的研究热点。 2. 有纹理的物体 机器人视觉领域是最早开始研究有纹理的物体的,如饮料瓶、0食盒等表面带有丰富纹理的都属于这1类。 当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际机器人操作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。幸好有1位叫做 Lowe 的大神,提出了1个叫做 SIFT (Scale-invariant feature transform)的超强局部特征点: Lowe, David G. "Distinctive image features from scale-invariant keypoints."International journal of computer vision 60.2 (2004): 91-110. 具体原理可以看上面这篇被引用 4万+ 的论文或各种博客,简单地说,这个方法提取的特征点只跟物体表面的某部分纹理有关,与光照变化、尺度变化、仿射变换、整个物体无关。 因此,利用 SIFT 特征点,可以直接在相机图像中寻找到与数据库中相同的特征点,这样,就可以确定相机中的物体是什么东西(物体识别)。对于不会变形的物体,特征点在物体坐标系下的位置是固定的。所以,我们在获取若干点对之后,就可以直接求解出相机中物体与数据库中物体之间的单应性矩阵。 如果我们用深度相机(如Kinect)或者双目视觉方法,确定出每个特征点的 3D 位置。那么,直接求解这个 PnP 问题,就可以计算出物体在当前相机坐标系下的位姿。↑ 这里就放1个实验室之前毕业师兄的成果 当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会变化)、利用贝叶斯方法加速匹配等。 而且,除了 SIFT 之外,后来又出了1大堆类似的特征点,如 SURF、ORB 等。 3. 无纹理的物体 好了,有问题的物体容易解决,那么生活中或者工业里还有很多物体是没有纹理的:我们最容易想到的就是:是否有1种特征点,可以描述物体形状,同时具有跟 SIFT 相似的不变性? 不幸的是,据我了解,目前没有这种特征点。 所以,之前1大类方法还是采用基于模板匹配的办法,但是,对匹配的特征进行了专门选择(不只是边缘等简单特征)。 这里,我介绍1个我们实验室之前使用和重现过的算法 LineMod: Hinterstoisser, Stefan, et al. "Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes." Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011. 简单而言,这篇论文同时利用了彩色图像的图像梯度和深度图像的表面法向作为特征,与数据库中的模板进行匹配。 由于数据库中的模板是从1个物体的多个视角拍摄后生成的,所以这样匹配得到的物体位姿只能算是初步估计,并不精确。 但是,只要有了这个初步估计的物体位姿,我们就可以直接采用 ICP 算法(Iterative closest point)匹配物体模型与 3D 点云,从而得到物体在相机坐标系下的精确位姿。当然,这个算法在具体实施过程中还是有很多细节的:如何建立模板、颜色梯度的表示等。另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。 针对部分遮挡的情况,我们实验室的张博士去年对 LineMod 进行了改进,但由于论文尚未发表,所以就先不过多涉及了。 4. 深度学习 由于深度学习在计算机视觉领域得到了非常好的效果,我们做机器人的自然也会尝试把 DL 用到机器人的物体识别中。 首先,对于物体识别,这个就可以照搬 DL 的研究成果了,各种 CNN 拿过来用就好了。有没有将深度学习融入机器人领域的尝试?有哪些难点? - 知乎 这个回答中,我提到 2016 年的『亚马逊抓取大赛』中,很多队伍都采用了 DL 作为物体识别算法。 然而, 在这个比赛中,虽然很多人采用 DL 进行物体识别,但在物体位姿估计方面都还是使用比较简单、或者传统的算法。似乎并未广泛采用 DL。 如 @周博磊 所说,1般是采用 semantic segmentation network 在彩色图像上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。 当然,直接用神经网络做位姿估计的工作也是有的,如这篇: Doumanoglou, Andreas, et al. "Recovering 6d object pose and predicting next-best-view in the crowd." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016. 它的方法大概是这样:对于1个物体,取很多小块 RGB-D 数据(只关心1个patch,用局部特征可以应对遮挡);每小块有1个坐标(相对于物体坐标系);然后,首先用1个自编码器对数据进行降维;之后,用将降维后的特征用于训练Hough Forest。 5. 与任务/运动规划结合 这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人操作物体提供信息,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模块相结合。我们让机器人从冰箱中拿1瓶『雪碧』,但是这个 『雪碧』 被『美年达』挡住了。 我们人类的做法是这样的:先把 『美年达』 移开,再去取 『雪碧』 。 所以,对于机器人来说,它需要先通过视觉确定雪碧在『美年达』后面,同时,还需要确定『美年达』这个东西是可以移开的,而不是冰箱门之类固定不可拿开的物体。 当然,将视觉跟机器人结合后,会引出其他很多好玩的新东西。由于不是我自己的研究方向,所以也就不再班门弄斧了。机器人家上有关于这个很详细的图文讲解,你可以看下,希望对你有用。
![请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点 请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点](/storage/images/2023-04/JmmNj3aqdE466dDwEK3pnFvaFQlPiJJE.jpg)
6、请问,机器人视觉抓取关键技术有哪些,各有哪些实现方法,有何优缺点
首先,我们要了解,机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有1些不同:机器视觉的目的是给机器人提供操作物体的信息。所以,机器视觉的研究大概有这几块: 物体识别(Object Recognition):在图像中检测到物体类型等,这跟 CV 的研究有很大1部分交叉; 位姿估计(Pose Estimation):计算出物体在摄像机坐标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里; 相机标定(Camera Calibration):因为上面做的只是计算了物体在相机坐标系下的坐标,我们还需要确定相机跟机器人的相对位置和姿态,这样才可以将物体位姿转换到机器人位姿。当然,我这里主要是在物体抓取领域的机器视觉;SLAM 等其他领域的就先不讲了。 由于视觉是机器人感知的1块很重要内容,所以研究也非常多了,我就我了解的1些,按照由简入繁的顺序介绍吧: 0. 相机标定 这其实属于比较成熟的领域。由于我们所有物体识别都只是计算物体在相机坐标系下的位姿,但是,机器人操作物体需要知道物体在机器人坐标系下的位姿。所以,我们先需要对相机的位姿进行标定。 内参标定就不说了,参照张正友的论文,或者各种标定工具箱; 外参标定的话,根据相机安装位置,有两种方式:Eye to Hand:相机与机器人极坐标系固连,不随机械臂运动而运动Eye in Hand:相机固连在机械臂上,随机械臂运动而运动 两种方式的求解思路都类似,首先是眼在手外(Eye to Hand) 只需在机械臂末端固定1个棋盘格,在相机视野内运动几个姿态。由于相机可以计算出棋盘格相对于相机坐标系的位姿 、机器人运动学正解可以计算出机器人底座到末端抓手之间的位姿变化 、而末端爪手与棋盘格的位姿相对固定不变。 这样,我们就可以得到1个坐标系环而对于眼在手上(Eye in Hand)的情况,也类似,在地上随便放1个棋盘格(与机器人基座固连),然后让机械臂带着相机走几个位姿,然后也可以形成1个 的坐标环平面物体检测 这是目前工业流水线上最常见的场景。目前来看,这1领域对视觉的要求是:快速、精确、稳定。所以,1般是采用最简单的边缘提取+边缘匹配/形状匹配的方法;而且,为了提高稳定性、1般会通过主要打光源、采用反差大的背景等手段,减少系统变量。目前,很多智能相机(如 cognex)都直接内嵌了这些功能;而且,物体1般都是放置在1个平面上,相机只需计算物体的 3自由度位姿即可。 另外,这种应用场景1般都是用于处理1种特定工件,相当于只有位姿估计,而没有物体识别。 当然,工业上追求稳定性无可厚非,但是随着生产自动化的要求越来越高,以及服务类机器人的兴起。对更复杂物体的完整位姿 估计也就成了机器视觉的研究热点。 2. 有纹理的物体 机器人视觉领域是最早开始研究有纹理的物体的,如饮料瓶、0食盒等表面带有丰富纹理的都属于这1类。 当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际机器人操作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。幸好有1位叫做 Lowe 的大神,提出了1个叫做 SIFT (Scale-invariant feature transform)的超强局部特征点: Lowe, David G. "Distinctive image features from scale-invariant keypoints."International journal of computer vision 60.2 (2004): 91-110. 具体原理可以看上面这篇被引用 4万+ 的论文或各种博客,简单地说,这个方法提取的特征点只跟物体表面的某部分纹理有关,与光照变化、尺度变化、仿射变换、整个物体无关。 因此,利用 SIFT 特征点,可以直接在相机图像中寻找到与数据库中相同的特征点,这样,就可以确定相机中的物体是什么东西(物体识别)。对于不会变形的物体,特征点在物体坐标系下的位置是固定的。所以,我们在获取若干点对之后,就可以直接求解出相机中物体与数据库中物体之间的单应性矩阵。 如果我们用深度相机(如Kinect)或者双目视觉方法,确定出每个特征点的 3D 位置。那么,直接求解这个 PnP 问题,就可以计算出物体在当前相机坐标系下的位姿。↑ 这里就放1个实验室之前毕业师兄的成果 当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会变化)、利用贝叶斯方法加速匹配等。 而且,除了 SIFT 之外,后来又出了1大堆类似的特征点,如 SURF、ORB 等。 3. 无纹理的物体 好了,有问题的物体容易解决,那么生活中或者工业里还有很多物体是没有纹理的:我们最容易想到的就是:是否有1种特征点,可以描述物体形状,同时具有跟 SIFT 相似的不变性? 不幸的是,据我了解,目前没有这种特征点。 所以,之前1大类方法还是采用基于模板匹配的办法,但是,对匹配的特征进行了专门选择(不只是边缘等简单特征)。 这里,我介绍1个我们实验室之前使用和重现过的算法 LineMod: Hinterstoisser, Stefan, et al. "Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes." Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011. 简单而言,这篇论文同时利用了彩色图像的图像梯度和深度图像的表面法向作为特征,与数据库中的模板进行匹配。 由于数据库中的模板是从1个物体的多个视角拍摄后生成的,所以这样匹配得到的物体位姿只能算是初步估计,并不精确。 但是,只要有了这个初步估计的物体位姿,我们就可以直接采用 ICP 算法(Iterative closest point)匹配物体模型与 3D 点云,从而得到物体在相机坐标系下的精确位姿。当然,这个算法在具体实施过程中还是有很多细节的:如何建立模板、颜色梯度的表示等。另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。 针对部分遮挡的情况,我们实验室的张博士去年对 LineMod 进行了改进,但由于论文尚未发表,所以就先不过多涉及了。 4. 深度学习 由于深度学习在计算机视觉领域得到了非常好的效果,我们做机器人的自然也会尝试把 DL 用到机器人的物体识别中。 首先,对于物体识别,这个就可以照搬 DL 的研究成果了,各种 CNN 拿过来用就好了。有没有将深度学习融入机器人领域的尝试?有哪些难点? - 知乎 这个回答中,我提到 2016 年的『亚马逊抓取大赛』中,很多队伍都采用了 DL 作为物体识别算法。 然而, 在这个比赛中,虽然很多人采用 DL 进行物体识别,但在物体位姿估计方面都还是使用比较简单、或者传统的算法。似乎并未广泛采用 DL。 如 @周博磊 所说,1般是采用 semantic segmentation network 在彩色图像上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。 当然,直接用神经网络做位姿估计的工作也是有的,如这篇: Doumanoglou, Andreas, et al. "Recovering 6d object pose and predicting next-best-view in the crowd." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016. 它的方法大概是这样:对于1个物体,取很多小块 RGB-D 数据(只关心1个patch,用局部特征可以应对遮挡);每小块有1个坐标(相对于物体坐标系);然后,首先用1个自编码器对数据进行降维;之后,用将降维后的特征用于训练Hough Forest。 5. 与任务/运动规划结合 这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人操作物体提供信息,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模块相结合。我们让机器人从冰箱中拿1瓶『雪碧』,但是这个 『雪碧』 被『美年达』挡住了。 我们人类的做法是这样的:先把 『美年达』 移开,再去取 『雪碧』 。 所以,对于机器人来说,它需要先通过视觉确定雪碧在『美年达』后面,同时,还需要确定『美年达』这个东西是可以移开的,而不是冰箱门之类固定不可拿开的物体。 当然,将视觉跟机器人结合后,会引出其他很多好玩的新东西。由于不是我自己的研究方向,所以也就不再班门弄斧了。机器人家上有关于这个很详细的图文讲解,你可以看下,希望对你有用。