机械臂视觉的上位机实现
发布日期:2022/2/23 15:48:57 浏览量:
工业六轴机器人,协作机器人,包括并联机器人乃至AGV,其实都是又聋又瞎。如果把机械臂比作人的胳膊,手比作末端执行器(如焊枪,手抓)等等,往往需要眼睛才能干活。视觉的信息是非常丰富的,这个眼睛就是工业相机。机器人视觉是个研究热点,各种方向层出不穷。这里我仅仅列出我接触过的,做过的,且在工业界成功的方向:
(1)视觉跟踪:典型代表是焊缝跟踪,视觉以线激光3D传感器为主,引导机器人末端对准焊缝。
(2)定位/纠偏: 这个在3C行业做的最多,相机以2D相机为主,拍照测量目标位置或者得到其偏差,机器人改变末端位置使其精准定位。
(3) 视觉伺服:这个相对难一些,2D/3D都有,也可以算在视觉跟踪范畴中,专指目标物运动,视觉获取目标物特征,控制机器人使其动态跟踪误差最小;大家可以搜搜梅西和视觉守门员对抗,就是视觉伺服典型代表。
(4)轮廓扫描/图像重建:这也是一个精彩纷呈的方向,典型代表就是CT和各种三坐标测量仪,CT虽然大部分不用机械臂,但仍可以归为此类问题,记录机械末端实时位置-相机拍照所得图片,经过相应的数学运算,将人体内部器官三维重建(CT),激光扫描轮廓,重建3D模型(三坐标测量仪/汽车车身扫描)。
如果做这个机器人视觉方向的项目,有几个共性问题需要提出来,并将其总结归纳一般方法,做好标准作法,当然以下问题在项目中可能用不到,但作为技术储备是非常必要的,我仅是抛砖引玉,期望引起大家特别是项目设计阶段的思考.
a.相机和机器人安装问题:这里可以区分为 eye in hand 和eye to hand的问题,如下图(引用halcon)所示
这两种方法都有其典型应用,Eye to hand要简单一些,需要注意的问题如下:
1)相机电源线和通信线是否足够长,不要被机械臂扯到,或被夹到线;
2)待测物如果发生变动了,是否会出现相机离焦问题,最好能够实现自动对焦功能;
3)eye in hand用于跟踪的时候,如果机械末端轨迹如果是曲线,如何处理?不同的项目,难以共性总结,但项目设计阶段,必须考虑。
4)打光的问题,如果2D相机,必须克服外界光线对相机的干扰。打光的关键就是从目标物出发,思考光源如何打。
5)在三维重建过程中,很重要的事情就是图像不要产生拖影,不产生拖影最有效的办法就是等机械臂或者运动轴停止了再同步触发拍照。但这样效率不高。还有一个办法就是等待运动轴匀速了,再异步获取图像,注意涉及到加减速部分帧舍弃。
以上洋洋洒洒写了这么多,总之就是一句话,稳定可靠的得到好的图像,先图像,后处理,不要迷信算法,算法没有有效数据支撑,算法没有价值。
b.相机标定相关问题:如果需要精确定位,相机就必须要标定,这是一个非常长的篇幅才能说明的问题。这里我只是介绍下我看过的比较好资料,我都是依据这些资料写的代码,并验证成功。
(1)2D:2D相机都是小孔成像原理,这方面比较好的阐述当属OPCV那本书。重点是区分好靶面,镜面和目标物三者矩阵换算关系,如果需要高精度或者鱼眼镜头,需要处理相机畸变。棋盘格和菲林板都可以用,但是如果跟机器人末端配合的话还是推荐棋盘格,因为菲林板的圆孔,机械臂末端不好精准定位。
(2)激光视觉:这里推荐天津大学叶声华院士实验室提出的消隐法标定,论文可以搜到。
(3)3D相机:3D有很多种,如双目相机,还有各种编码结构光等传感技术融合,实在难以总结,还得具体项目具体分析。
c.机器人TCP标定:机器人出场的TCP是手腕圆心,很多项目,必须标定末端工具的TCP点,方法主流就两种而已。但必须强调的是,怎么标也肯定有误差,如何解决是关键。首先要清楚的是,这是一个系统误差,多试几次,就可以得到的系统误差具体值的,是可以在末端移动中乘以这个误差矩阵的。
d.手眼关系:这里特指相机和机器人末端之间关系。我们图像处理得到的是像素坐标,机器人得到的末端TCP在机器人基坐标系的位置。如果把这两件事关联起来,就要做,像素坐标到机器人末端TCP的对应关系,这里主要的矩阵包括:像素坐标系-相机镜头坐标系-机械手末端TCP坐标系—机器人基坐标系;
如果标定了相机,和TCP,那么接下来少的就是,相机和TCP的标定了。这个2D相机的做法可以是,相机看棋盘格四个点得到像素坐标,机器人末端对准这四个点读取位置,而后建立期间的矩阵关系;
网上文章很多,这里随便搜了一篇:
e.坐标系综合: 以上洋洋洒洒写了这么多,说穿了就是建立好相机和机器人坐标系之间的关系,相信大家看的也晕了,但做几次也就没啥了。需要注意的是,不同坐标系,不要相加减。
f.采图周期与控制周期问题:
1)采图方式:同步采集和异步采集,为了提高采图效率,建议采用异步采集。
2)图像通信接口:GIGE和USB3各有优劣,但GIGE能满足的情况下肯定是首选,因为传输距离更远,且网络技术发展速度明显更快,更符合未来发展方向;
3)控制周期:不是越短越好,关键要合适,这个很难用稳定性理论去把握,还得靠调试;
g.安全问题:作为系统软件设计者,必须考虑如果图像处理有问题了,会不会影响机器人运动,图像接口断开了怎么处理,安全链如何设计。
以上洋洋洒洒写了很多,后期也许会有更正,但核心问题大致就是这些,上位机软件工程师,如果从事过类似手眼系统开发的,其实本质是系统工程师,需要全盘考虑,设计合理,有特色,且能保证系统稳定性,且按时交付。
特色技术很大程度上决定了你的项目值多少钱,设计和调试能力决定能不能把钱稳稳地得到。
马上咨询: 如果您有业务方面的问题或者需求,欢迎您咨询!我们带来的不仅仅是技术,还有行业经验积累。
QQ: 39764417/308460098 Phone: 13 9800 1 9844 / 135 6887 9550 联系人:石先生/雷先生