❶ 在机器人视觉项目应用中,机器人和相机的角色一般设置为什么
机器人是主体,相机是眼睛。
所有视觉算法的基础说到底来自于机器人脑袋上的视觉传感器,就好比人的眼睛和夜间视力非常好的动物相比,表现出来的感知能力是完全不同的。同样的,一个眼睛的动物对世界的感知能力也要差于两个眼睛的动物。每个人手中的智能手机摄像头其实就可以作为机器人的眼睛。
“视觉能力”是视觉引导机器人的一项决定性特征,与未采用视觉技术的机器人系统相比,视觉引导机器人可以执行更复杂、更智能的任务。视觉能力可以让机器人对环境做出更灵活的反应,从而执行更加多样化的任务。
❷ 远心镜头视觉系统如何标定
同学,我已经成功的标定远心镜头了,传统的方法是不能用的,而且matlab工具箱也是针对传统相机标定的,所以你得自己编程,你可以去参考我的论文,Telecentric stereo micro-vision system: Calibration method and experiments.
❸ 请问CCD对位的算法
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
对于你的问题我爱莫能助!
可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
快过年了,
最后祝您全家幸福健康快乐每一天!
❹ halcon怎么将相机坐标转换为机械手坐标
首先,通过图像处理算法,找出物体在图片上的坐标
然后,将图片坐标转换为实际坐标
没有通用算法,就算你切一个人脑子放在那里负责图像识别,它也识别不出它从来没听说过的东西
原理上最简单的方法是模板比对,就是在一个较大图像里找一个较小图像的位置角度,复杂一点的就是找出你要找的东西的一类特征,例如几个亮点构成特定角度,就在图像内找出所有亮点判断哪几个亮点构成该特定角度等等
halcon和opencv不用写算法代码,这些图像处理算法库都是把基本的算法给你写好了,用它们基本上就是把这些基本的算法组合搭配
❺ 视觉定位相机具体的作用
视觉定位要求机器视觉系统能够快速准确地找到被测零件并确认其位置,上下料使用机器视觉来定位,引导机械手臂准确抓取。比如在半导体封装领域,设备需要根据机器视觉取得的芯片位置信息调整拾取头,准确拾取芯片并进行绑定。 视觉定位主要借助视觉传感器完成,借助单目、双目摄像头、深度摄像机、视频信号数字化设备或基于DSP的快速信号处理器等其他外部设备获取图像,然后对周围的环境进行光学处理,将采集到的图像信息进行压缩,反馈到由神经网络和统计学方法构成的学习子系统,然后由子系统将采集到的图像信息与机器人的实际位置联系起来,完成定位。
红外线定位导航的原理是红外线IR标识发射调制的红外射线,通过安装在室内的光学传感器接收进行定位。
远距离测量,在无反光板和反射率低的情况下能测量较远的距离;红外线测距仪受环境的干扰较大,对于近似黑体、透明的物体无法检测距离,只适合短距离传播;有其他遮挡物的时候无法正常工作,需要每个房间、走廊安装接收天线,铺设导轨。
机器视觉系统是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。
可以将机器视觉系统概括为四部分: 1、摄取:采用图像摄取装置将被摄取目标转换成图像信号,传送给图像处理系统;2、抽取:图像处理系统根据像素分布和亮度、颜色等信息,进行运算来抽取目标的特征,例如面积、长度、数量、位置等; 3、输出:根据预设的判断来输出结果,如尺寸、角度、偏移量、个数、合格或不合格、有或无等; 4、控制动作:指挥执行机构进行定位或分选等相应控制动作。
❻ 什么样的情况下相机与机械手需要标定
摘要 标定的作用其一就是为了求取畸变系数(因为经过镜头等成像后,或多或少都有畸变),其二是为了得到空间坐标系和图像坐标系的对应关系。标定的过程就是一个最小化的求取参数的过程,拍的图越多(相当于输入)结果越准确,至少10张以上吧,而且尽可能覆盖视野各个角落,要偏转一定角度,这样得出的参数是只用于整个场景的。
❼ 上下相机对位贴合相机安装要求
目标物的姿态用一组第一相机组观测,贴合物的姿态用一组第二相机组观测。
上相机是传统意义的相机标定,但需要进行组装的时候,采用单相机。
相机标定主要采用九点标定,通过走九个点位。
❽ 机器人抓取时怎么定位的用什么传感器来检测
机器人家上了解到,机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有一些不同:机器视觉的目的是给机器人提供操作物体的信息。所以,机器视觉的研究大概有这几块:
物体识别(Object Recognition):在图像中检测到物体类型等,这跟 CV 的研究有很大一部分交叉;
位姿估计(Pose Estimation):计算出物体在摄像机坐标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里;
相机标定(Camera Calibration):因为上面做的只是计算了物体在相机坐标系下的坐标,我们还需要确定相机跟机器人的相对位置和姿态,这样才可以将物体位姿转换到机器人位姿。
当然,我这里主要是在物体抓取领域的机器视觉;SLAM 等其他领域的就先不讲了。
由于视觉是机器人感知的一块很重要内容,所以研究也非常多了,我就我了解的一些,按照由简入繁的顺序介绍吧:
0. 相机标定
这其实属于比较成熟的领域。由于我们所有物体识别都只是计算物体在相机坐标系下的位姿,但是,机器人操作物体需要知道物体在机器人坐标系下的位姿。所以,我们先需要对相机的位姿进行标定。 内参标定就不说了,参照张正友的论文,或者各种标定工具箱; 外参标定的话,根据相机安装位置,有两种方式:
Eye to Hand:相机与机器人极坐标系固连,不随机械臂运动而运动
Eye in Hand:相机固连在机械臂上,随机械臂运动而运动 两种方式的求解思路都类似,首先是眼在手外(Eye to Hand)
只需在机械臂末端固定一个棋盘格,在相机视野内运动几个姿态。由于相机可以计算出棋盘格相对于相机坐标系的位姿 、机器人运动学正解可以计算出机器人底座到末端抓手之间的位姿变化 、而末端爪手与棋盘格的位姿相对固定不变。 这样,我们就可以得到一个坐标系环
而对于眼在手上(Eye in Hand)的情况,也类似,在地上随便放一个棋盘格(与机器人基座固连),然后让机械臂带着相机走几个位姿,然后也可以形成一个 的坐标环。
1. 平面物体检测
这是目前工业流水线上最常见的场景。目前来看,这一领域对视觉的要求是:快速、精确、稳定。所以,一般是采用最简单的边缘提取+边缘匹配/形状匹配的方法;而且,为了提高稳定性、一般会通过主要打光源、采用反差大的背景等手段,减少系统变量。
目前,很多智能相机(如 cognex)都直接内嵌了这些功能;而且,物体一般都是放置在一个平面上,相机只需计算物体的 三自由度位姿即可。 另外,这种应用场景一般都是用于处理一种特定工件,相当于只有位姿估计,而没有物体识别。 当然,工业上追求稳定性无可厚非,但是随着生产自动化的要求越来越高,以及服务类机器人的兴起。对更复杂物体的完整位姿 估计也就成了机器视觉的研究热点。
2. 有纹理的物体
机器人视觉领域是最早开始研究有纹理的物体的,如饮料瓶、零食盒等表面带有丰富纹理的都属于这一类。 当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际机器人操作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。
幸好有一位叫做 Lowe 的大神,提出了一个叫做 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 问题,就可以计算出物体在当前相机坐标系下的位姿。
↑ 这里就放一个实验室之前毕业师兄的成果 当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会变化)、利用贝叶斯方法加速匹配等。 而且,除了 SIFT 之外,后来又出了一大堆类似的特征点,如 SURF、ORB 等。
3. 无纹理的物体
好了,有问题的物体容易解决,那么生活中或者工业里还有很多物体是没有纹理的:
我们最容易想到的就是:是否有一种特征点,可以描述物体形状,同时具有跟 SIFT 相似的不变性? 不幸的是,据我了解,目前没有这种特征点。 所以,之前一大类方法还是采用基于模板匹配的办法,但是,对匹配的特征进行了专门选择(不只是边缘等简单特征)。
简单而言,这篇论文同时利用了彩色图像的图像梯度和深度图像的表面法向作为特征,与数据库中的模板进行匹配。 由于数据库中的模板是从一个物体的多个视角拍摄后生成的,所以这样匹配得到的物体位姿只能算是初步估计,并不精确。 但是,只要有了这个初步估计的物体位姿,我们就可以直接采用 ICP 算法(Iterative closest point)匹配物体模型与 3D 点云,从而得到物体在相机坐标系下的精确位姿。
当然,这个算法在具体实施过程中还是有很多细节的:如何建立模板、颜色梯度的表示等。另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。 针对部分遮挡的情况,我们实验室的张博士去年对 LineMod 进行了改进,但由于论文尚未发表,所以就先不过多涉及了。
4. 深度学习
由于深度学习在计算机视觉领域得到了非常好的效果,我们做机器人的自然也会尝试把 DL 用到机器人的物体识别中。
首先,对于物体识别,这个就可以照搬 DL 的研究成果了,各种 CNN 拿过来用就好了。有没有将深度学习融入机器人领域的尝试?有哪些难点? - 知乎 这个回答中,我提到 2016 年的‘亚马逊抓取大赛’中,很多队伍都采用了 DL 作为物体识别算法。 然而, 在这个比赛中,虽然很多人采用 DL 进行物体识别,但在物体位姿估计方面都还是使用比较简单、或者传统的算法。似乎并未广泛采用 DL。 如 @周博磊 所说,一般是采用 semantic segmentation network 在彩色图像上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。
当然,直接用神经网络做位姿估计的工作也是有的
它的方法大概是这样:对于一个物体,取很多小块 RGB-D 数据(只关心一个patch,用局部特征可以应对遮挡);每小块有一个坐标(相对于物体坐标系);然后,首先用一个自编码器对数据进行降维;之后,用将降维后的特征用于训练Hough Forest。
5. 与任务/运动规划结合
这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人操作物体提供信息,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模块相结合。
我们让机器人从冰箱中拿一瓶‘雪碧’,但是这个 ‘雪碧’ 被‘美年达’挡住了。 我们人类的做法是这样的:先把 ‘美年达’ 移开,再去取 ‘雪碧’ 。 所以,对于机器人来说,它需要先通过视觉确定雪碧在‘美年达’后面,同时,还需要确定‘美年达’这个东西是可以移开的,而不是冰箱门之类固定不可拿开的物体。 当然,将视觉跟机器人结合后,会引出其他很多好玩的新东西。由于不是我自己的研究方向,所以也就不再班门弄斧了。
❾ 什么是机械手控照相机
是机械手控制的照相机。
机械手是一种能模仿人手和臂的某些动作功能,用以按固定程序抓取、搬运物件或操作工具的自动操作装置。特点是可以通过编程来完成各种预期的作业,构造和性能上兼有人和机械手机器各自的优点。
机械手是最早的工业机器人,也是最早的现代机器人,它可以代替重劳动人民实现生产的机械化和自动化,能在有害环境下操作以保护人身安全,因此被广泛应用于机械制造、冶金、电子、轻工和原子能等部门。
(9)上下相机与机器手对位算法扩展阅读:
机械手控制系统是伴随着机械手(robot)的发展而进步的。机械手是出现在一个发达的早期阶段的基础上古代机器人,机械手的研究始于20世纪中期,随着计算机和自动化技术的发展,特别是自1946年第一个数字计算机是发达,电脑已经取得了惊人的进展,方向的高速、大容量、低价格。
同时,大批量生产的迫切需要推动了自动化技术的进步,为机器人和机械手控制系统的发展奠定了基础。另一方面,核能技术的研究需要一定的操作机器来处理放射性物质,而不是人类。在此背景下,美国于1947年开发了遥控机械手控制系统和遥控机械手,1948年开发了机械主从式机械手控制系统和机械手。