前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器人视觉3

机器人视觉3

作者头像
用户4442670
发布2022-06-29 16:38:07
4480
发布2022-06-29 16:38:07
举报
文章被收录于专栏:机器人小农

随着技术的发展,3D相机的使用越来越频繁,当然如果价格亲民点、再亲民点,那将得到更多的使用。

今天我们就来说说3D相机和机器人之间那些思维。

往往3D相机是标定工具的,因此相机给出的位置信息对于机器人来说相当于绝对坐标值,就是说相机给了这个产品的位置信息,机器人拿到就直接执行这个位置就可以了。

首先我们来了解一下3D相机的原理:

3D相机是通过“激光”扫描得到镜头下物体轮廓的点云,并且计算出预先设置好的特征,并且计算出机器人tcp的位置

由此看来相机需要知道机器人的base坐标系位置,tcp位置,tcp抓取姿态,产品特征点等信息。这些信息都是通过标定和信息录入来得到的。

当这些都设置完成后就可以相机的工作了。

相机通过扫描得出镜头下物体的轮廓,并且从中选择抓取容易度比较高的零件,计算出抓取该产品的TCP位置。把这个位置信息发送给机器人。

当机器人收到后只需要执行这个位置就可以实现抓取了。

真的吗!!!

假的,机器人到达这个位置之前的所有运动点都还是需要我们自己计算的,(有些品牌相机会帮我们做好这个计算)

比如下图:这个姿态是我们的抓取点姿态,但前提是我们必须延红色箭头线方向将抓手伸进产品“身体里”,,,做个“活塞”运动。,,,

这个“活塞”运动一点也不简单,因为产品的位置决定了运动的方向。然而相机只给了机器人插入后的位置信息。(怎么总觉得在开车)

就是说我们知道目标点的姿态和位置{x,y,z,a,b,c}如果我们不在进入前把姿态调整好将无法进入。当然姿态调整好了还吧必须沿着这条红色箭头线进入。否则就像找不到洞的小伙子。

回头看看我们前面说过相机给我们的数据是:机器人的base坐标系下,tcp位置,tcp抓取姿态。

运用到实际抓取中就是这样的

代码语言:javascript
复制
def pick ()
ini

ptp home

ptp p1

ptp pick ;相机传过来的数据

先做个假设,相机给的坐标值中永远都有一个坐标轴与产品的“深入”方向平行。

这样我们就可以利用这个坐标值进行tcp的运算了。

为了实现这个假设,我们必须在标定前就完成tcp的建立和base的建立。并且要求预先选定让tool坐标的一个方向与夹爪深入产品的方向一致

此时需要注意的是相机标定会实现base的位置计算,base的方向计算,tcp的计算,但不能实现tool的方向计算。

此时我们建立tool1和base1。全部完成后开始标定。

正确的标定以后我们通过相机传来的位置信息为目标点,这时我们需要让这个运动点在base1下,并且采用tool1

有了目标点后我们在计算抓取前的点。

如果我们的夹爪需要深入产品200mm那么我们把工具位置偏移250mm到达我们的目标点,这时这个点位就是我们的抓取上方点了

代码语言:javascript
复制
def pick()
ini
tool_data[2]=tool_data[1]
tool_data[2].z=tool_data[2].z-250

ptp pick tool2 base1 ;抓取上方点

tool_data[2]=tool_data[1]
lin pick tool2 base1;直线伸入产品腔体

怎么样你会了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器人小农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档