应用手册#
DM-Mark3D标记块定位应用#
新建工程#
打开DUCOMIND 网页, 若已知控制器Ip地址,可用另外一台笔记本或电脑打开DUCOMIND网页, 前提是该设备的网络需与 控制器的IP设置为同一网段, 比如控制器的IP是192.168.3.10, 则访问 192.168.3.10:7300 即可
详情参见 软件操作指南->工程管理->新建工程
打开DUCOMIND网页后, 若之前已经建立过工程可直接点击工程名字然后会显示 打开 字样, 点击 打开 即可打开相应工程, 如下图为点击第一个工程后的效果
若想要新建工程, 只需要点击 新建工程 即可, 如下图
点击 新建工程 后会弹出以下界面, 输入相应的信息即可
相机#
详情可参考 软件操作指南->相机管理->新建相机 以及 软件操作指南->相机管理->相机配置->知微相机
硬件介绍#
视觉工装介绍#
视觉选配包清单#
标定板安装示意图(标定板在手上)#
3D相机安装示意图(相机在手上)#
相机网线连接#
相机网线插到控制器网口, 确保插入的网口已经设置为 仅本地链路连接 , 设置控制器某个网口为 仅本地链路连接 的方法:
方法一
打开终端, 若直接通过示教器显示, 按 Ctrl+Alt+F2/F3/F4 即可打开一个终端;
当前控制器有3个网口, 名称分别为 enp1s0 , enp2s0 , enp3s0
3. 比如设置 enp1s0 网口为 仅本地链路连接 的命令为:
sudo ifconfig 网口名称 169.254.7.12 broadcast 169.254.255.255 netmask 255.255.0.0
Tip
一般中间的网口为 enp3s0 , 靠近HDMI接口的为 enp2s0 , 另外一个口为 enp1s0 , 出厂Ip均已设置好, 将相机网线接在 enp1s0 口即可
方法二
打开管理软件(DucoManager)界面, 点击 网络配置;
点击网络配置后可看到3个网络状态,分别为 LAN1 , LAN2 , LAN3 , 这3个网口分别对应控制器上的 LAN1 , LAN2 , LAN3
选择 LAN2 或 LAN3 , 点击设置, 将网口设置为 仅本地链路连接 即可
将相机网线插在设置为 仅本地链路连接 的网口即可
相机电源线连接#
相机电源需符合电压为24V, 电流为2A的规格, 如下图为标准的相机电源适配器信息
Caution
相机电源第一次连接上后相机镜头会打光并显示Logo, 大约10-20s左右Logo会消失, 若相机连上电源通电后相机镜头没有出光显示Logo或出光显示的Logo一直不消失此时需检查电源线路
新建相机#
打开刚刚新建的工程或者打开已存在的工程, 新建 知微相机
如下图所示, 点击下图箭头所指出即可弹出 新建相机 界面, 相机型号选择 知微相机 即可
选择好相机型号后, 点击下图箭头所指的扫描按钮即可扫描当前设备存在的 知微相机
Tip
上图的结果为本地设备已经连接一台知微相机后扫描的结果, 并且点击扫描后需要等待几秒钟的时间才会出结果
在扫描到 知微相机 后,点击扫描到相机信息后面的 + 号即可新建一个相机, 如下图:
新建相机后,新建的第一个相机名称默认为 相机1 , 点击 相机1 可出现相机配置界面, 如下图:
连接相机#
点击 连接 按钮后系统会尝试连接 知微相机, 一般等待几秒钟的时间即可连接成功, 连接成功后, 连接 按钮会变成 断开 按钮
Tip
知微相机 为POE接口的相机, 与设备连接后, 需将连接的网口设置为 仅本地链路连接 后才能连接成功(若提前知道相机IP, 将网络设为与相机相同网段也可)
若相机连接不成功会弹出报错窗口, 此时需检查网口配置, 并检查网线与相机是否完好, 也有可能是供电不足所致
参数配置#
下图为知微相机的参数配置界面
Tip
这些参数中我们经常配置的是 IR曝光 以及 多曝光次数
IR曝光 : 当相机拍照过亮或过暗可通过设置该参数调节
多曝光次数 : 相机打光次数, (默认一次, 可将该参数设置为3)
设置完成后需要点击确认按钮才可生效
机器人#
详情可参考 软件操作指南->机器人管理->新建机器人
新建机器人#
点击下图箭头所指即可弹出新建机器人界面
Tip
机器人型号支持两种 ducocore_gcr10 和 ducocore_gcr5
点击 新建 按钮即可新建机器人
连接机器人#
点击刚刚新建的机器人名称会弹出机器人配置界面, 输入机器人的IP点击 连接 按钮即可连接机器人, 连接 成功后 连接 按钮会变为 断开 并且连接前面的圆点会由红变绿, 如下图
3D手眼标定#
3D手眼标定存在两种标定物, 分别是 标定球 和 标定板 , 我们选择其中一种进行标定即可
方法一(3D标定球)#
详情可参考 软件操作指南->工具->3D手眼标定->标定球
入口#
如下图所示, 选择 标定工具->3D手眼标定 即可
在上图中选择 标定方式 为 手动标定 , 标定物 为 标定球 然后点击 下一步 即可到达如下界面
- 在上图中
- 点云数据( 二选一 , 这里选择相机数据 )
相机数据 : 选择本地已连接相机的点云数据, 此时我们应该选择刚刚连接上的相机, 比如 相机1 , 然后在 选择输出 中选 点云数据 或 pointcloud 即可
载入点云 : 从本地路径读取一个 ply 格式的点云
- 点云滤波( 这里无需开启 )
点云采样 : 表示点云降采样, 当开关按钮向右拨动时表示打开点云降采样, 向左拨动表示未开启点云降采样, 上图表示未开启, 保持不变即可
采样精度 : 采样精度越大, 输出的点云质量越小
- 机器人数据( 二选一 , 这里选择机器人 )
机器人 : 选择本地已经连接成功的机器人即可, 此时我们选择刚刚连接上的机器人即可, 比如 机器人1
手动输入: 每次移动机器人时手动输入机器人的位姿, 手动输入在添加数据成功后在界面左侧数据栏中的 机器人 数据下方
拍照并添加数据#
将参数都设置好了之后, 将标定球放于相机正下方的位置, 最好相机保持与地面平行, 大致如下图
参数都设置好了之后可以点击 拍照并添加数据 按钮, 点击完后会进入 标定球识别 界面, 如下图
- 在上图中
界面左侧区域为 点云浏览器 , 显示的是 标定球的点云 , 此时需要将鼠标点击一下标定球的中心点(大致)
先验半径 : 当前标定球的半径
邻域范围 : 表示标定时围绕球的中心点选取的点的个数
固定半径 : 上图表示固定半径为开启(默认不开启), 开关向右表示开启, 如果不开启将对先验半径进行优化, 开启则将半径先验值带入模型进行球心坐标解算
标定球识别#
鼠标在上图左侧的球的点云中心点击一下会显示当前的xyz点, 然后点击 识别 , 识别成功后的效果如下图
Tip
在某个位置拍到的球点云数据比较好且能识别时, 最好在DUCOCORE端将当前位置记录下, 可用于后面模板制作的位置
上图显示的效果表示识别成功, 此时点击确认即可添加一条数据, 点击 确认 后返回上一级界面, 如下图所示
上图表示已经成功添加了1条数据, 此时需要移动机器人到不同的位置然后进行 拍照并添加数据->识别
主要是使相机在球的 正上方,左上方,右上方以及前方和后方 以及这些方向的 3个不同高度 一共 15个位置 , 注意移动后相机能拍到标定球, 相机的位置大致如下面几组图像所示
Tip
每次移动到位置后点击 拍照并识别 按钮会到标定识别界面, 鼠标点击球心然后点击识别即可, 识别成功点击确定即可添加一条数据, 反复操作15次左右即可
标定计算#
当添加完15组数据后点击 标定计算 按钮即可, 如下图所示
保存#
在标定计算成功后即可点击下一步到达保存数据界面, 如下图
在 标定计算 后点击 下一步 即可到达 保存 数据界面, 点击下图箭头所指即可选择保存的文件名称和路径, 然后点击 保存文件 即可
Tip
保存后的文件会自动追加后缀 .dmcalib , 稍微记一下保存的名称, 后面的 3D手眼标定转换 算子会用到
这里介绍的是 手动标定 , 选择 自动标定**时设置好 **生成位姿 时的参数即可, 自动标定时注意适当降低机器人的移动速度
方法二(3D标定板)#
详情可参考 软件操作指南->工具->3D手眼标定->标定板(基于点云和图像)
准备工作#
Tip
在进行3D标定板之前, 需要连接一台3D相机(这里选择的是知微相机)和一个机器人
- 连上知微相机后需要点开相机界面, 将以下相机数据打开
点云图像
左红外图像
图像点云查找表
如下图所示其他数据通道均可关闭, 打开或关闭通道数据后需要点击 确定 按钮才可生效(设置相机参数后也需点击确定按钮)
Caution
连上相机和机器人后应将标定板平放并移动机械臂, 使相机镜头与标定板平行, 可边移动相机镜头, 边拍照, 查看相机的 左红外图像 , 当标定板清晰可见并位于图像中央即可
相机与标定板初始位置大致如下,
初始相机拍到标定板的图像的 左红外图像 大致如下图
除了图像清晰外, 相机初始高度(相机与标定板距离)也应保持在 350-450 左右, 可通过相机的点云图像的 Z坐标 查看高度(鼠标在点云图像中点一下), 如下图此时的高度为428
入口#
如下图所示, 选择 标定工具->3D手眼标定 即可
如上图, 3D标定板存在两种标定方式(手动和自动), 这里我们选择 自动标定 , 标定物选择 标定板(基于图像和点云) , 标定板规格选择 DB30405A , 此时点击下一步即可出现如下界面
参数设置#
- 如上图中, 图像及点云数据
- 相机
选择刚刚连接的 知微 相机即可, 如 相机1
- 点云数据
选择已连接相机的点云图像, 如 点云图像
- 图像数据
选择已连接相机的灰度图像, 如 左红外图像
- 如上图中, 机器人数据
选择已经连接上的机器人即可, 如 机器人1
下图为已设置好的相机数据以及机器人数据
生成位姿#
设置完相机数据以及机器人数据即可点击 生成位姿 按钮, 该按钮功能为生成多组机器人位姿, 点击该按钮后的界面如下:
Tip
在生成位姿前应确保相机与标定板位于最佳的位置
如上图, 生成位姿 的界面存在 拍照并识别
按钮, 该按钮的作用为检测当前位置是否能识别出结果(测试按钮), 点击一次后若能正常识别, 则左侧数据栏会显示识别出的数据, 如下图
可通过点击 3D点云 和 2D图像 按钮分别查看2d和3d的数据, 如下图:
上图为3d的数据图像, 下图为2d图像识别结果:
Tip
若点击拍照识别按钮无反应或弹出报错弹框, 此时需检查相机与标定板的位置以及拍出的图像是否过亮或过暗(此时需调节相机参数)
拍照并识别
能识别出数据后, 可设置生成位姿的参数, 如下图
在上图中, 手眼类型
和 欧拉角类型
目前无需设置
位姿层数: 相机总共在几个空间高度运动, 默认为3表示相机会在3个不同的高度运动识别
空间高度: 空间的高度
顶层长度: 顶层的长度
顶层宽度: 顶层的宽度
底层长度: 底层的长度
底层宽度: 底层的宽度
旋转数量: 每一层的位姿数量
Tip
空间高度,顶层长度以及顶层宽度不宜设置过大, 因为机械臂长度固定可能有些位姿运动不到, 一般空间高度设置100-120左右, 顶层长度以及顶层宽度默认100即可
生成位姿的参数设置完后点击生成位姿即可, 点击后的效果如下图
自动标定#
相机大致会在以下几个位置的不同高度进行标定, 如下图
Tip
自动标定无需手动移动机器人, 若是手动标定时需将相机移动到标定板的 正上方,左上方,右上方以及前方和后方 以及这些方向的 3个不同高度 一共 15个位置 , 注意移动后相机能拍到标定板
此时点击 开始标定 软件会开始按照生成的机器人位姿一行一行地自动标定, 如下图为标定5行成功的结果
若标定过程需要停止自动标定可点击 停止标定 按钮来停止标定
等待一段时间后标定数据全部完成, 如下图
查看数据#
标定全部完成后, 可点击某一行数据最后的按钮选择查看该位姿下的数据, 如下图为查看第二行数据的按钮
查看数据时可在 数据 , 2D图像 , 3D点云 3个按钮之间切换查看的数据, 如下3图
标定计算#
点击 标定计算 按钮即可, 此时每行数据后的 误差
都会出现数据, 失败或识别效果不好的数据会被自动删除
上图为点击标定计算后的结果, 每行误差均在1以下, 此时的结果可以使用, 若某行误差过大可将该行删除然后重新点击标定计算即可
保存#
在标定计算成功后即可点击下一步到达保存数据界面, 如下图
在 标定计算 后点击 下一步 即可到达 保存 数据界面, 点击下图箭头所指即可选择保存的文件名称和路径, 然后点击 保存文件 即可
Tip
保存后的文件会自动追加后缀 .dmcalib , 稍微记一下保存的名称, 后面的 3D手眼标定转换 算子会用到
3D模板制作#
详情请参考 软件操作指南->工具->3D模板制作
首先, 将标记块放在刚刚标定球的旁边, 实际位置大致如下图所示
下面提供两个方法, 推荐使用 方法二
方法一#
入口#
依次点击 模板工具, 3D模板制作 即可到达 3D模板制作 工具界面, 如下图
在上图的中选择 系统变量 , 然后选择 全局变量 中的已连接相机的pointcloud(点云数据)即可, 比如选择 相机1.pointcloud
点云修整#
此时点击下一步, 即可到达 点云修整 界面此时的工具默认为裁剪, 适当放大点云, 用鼠标在模板中心点击一下此时即可看到xyz的坐标, 我们在裁剪工具下方的 xyz 中即可输入刚刚的xyz值, 然后 大小 首先可输入100,100,100,点击 执行并察看 , 察看效果, 如果效果不佳可以点击 撤销 按钮
自动重置中心#
在修整工具中选择 自动重置中心 , 点击 移动至中心 即可, 如下图
法线计算#
在上图的基础上点击 下一步 到达法向修改界面, 将 z=-100 , 然后点击 执行并察看 即可, 如下图为已经做完法线的结果
保存#
在上图的基础上继续点击 下一步 可达到保存模板界面, 点击下图箭头所指可选择保存的文件夹以及名称, 最后点击 保存模板 即可
方法二:#
将标记块放在相机的正下方, 点击一次 相机拍照 , 然后在 全局变量 中查看相机输出的 点云数据 , 适当放大点云数据, 在点云数据中能找到标记块的点云即可
新建一个 流程 , 在流程中加入 3D视觉->ROI->点云裁切 算子, 然后加入 3D视觉->检测->平面拟合 算子和 3D视觉->输入输出->点云保存 算子, 如下图
3. 双击 点云裁切 算子, 将输入设置为相机的点云数据, 找到相机输出的标记块点云数据中的标记块, 鼠标点击一下标记块的中心, 此时界面上会有一个xyz的坐标显示, 记下这个坐标, 在 点云裁切 算子中 X方向的平移量, Y方向的平移量和Z方向的平移量输入刚刚记下的坐标, 然后在包围盒的长宽高中分别输入100即可
双击 平面拟合 算子, 将输入设置为 点云裁切 的输出, 然后根据下图设置参数
双击 点云保存 算子, 将输入设置为 平面拟合 的输出, 保存文件的名称自取, 如下图
通过 软件操作指南->工具->3D模板制作 即可进入制作标记块的模板界面, 在 载入点云 界面中选择本地刚刚通过 点云保存 算子保存的点云, 然后点击 下一步 按方法一中的自动重置中心->法线计算->保存操作 即可
3D标记块定位流程#
详情可参考 软件操作指南->流程管理->流程及模板->从预设模板增加流程 , 添加一个3D标记块定位流程, 如下图
点击流程后面的第一个图标即可从预设模板添加3D标记块定位流程, 如下图
添加完成后, 点击流程名称, 即可弹出下图所示界面表示添加3D标记块定位流程成功
相机拍照#
相机拍照 算子的输入直接选择已经连接上的相机即可, 比如相机1
点云裁切#
点云裁切 算子的输入选择 相机拍照 算子的输出即可, 找到相机输出的标记块点云数据中的标记块, 鼠标点击一下标记块的中心, 此时界面上会有一个xyz的坐标显示, 记下这个坐标, 在 点云裁切 算子中 X方向的平移量, Y方向的平移量和Z方向的平移量输入刚刚记下的坐标, 然后在包围盒的长宽高中分别输入100即可
比如, 标记块点云的中心坐标为(12,24,48), 输入的参数如下图所示即可
平面拟合#
平面拟合 算子的输入选择 点云裁切 算子的输出即可, 该算子的作用为去除标记块点云下方的平面, 一般参数按下图设置即可, 若没有去掉平面则可将 距离阈值 每次调大1
离群点过滤#
离群点过滤 算子的输入选择 平面拟合 算子的输出即可, 该算子的作用为过滤掉点云中的杂点, 一般参数按下图设置即可
法线估计#
法线估计 算子的输入选择 离群点过滤 算子的输出即可, 该算子为计算法线的算子, 参数设置按照下图所示即可
粗匹配#
粗匹配 算子的输入选择 法线估计 算子的输出即可
- 模板路径
含义:3D模板文件路径, 选择刚刚用 3D模板制作 工具做的模板即可, 文件后缀为 dmtemp
- 角度细分数
含义:内部参数,用来设置角度量化数, 无需调整, 60即可
范围:[15,100]
- 使用投票比例
含义:算法内部使用投票方法进行匹配,这个参数和投票有关,大于该参数的投票结果才可能被输出, 无需调整
范围:[1,99]
- 模板点云体素采样值
含义:降采样参数,用于控制模型(模板)点云体素降采样时的体素大小
范围:[0.5,20]
- 场景点云体素采样值
含义:降采样参数,用于控制场景点云体素降采样时的体素大小
范围:[0.5,20]
Tip
模板点云体素采样值 和 场景点云体素采样值 主要目的为了采样和加速, 值越小算子运行速度越慢,匹配精度越高
- 场景点云跳点采样值
含义:该值越大,匹配速度越慢
范围:[1,100]
Tip
匹配时为了进一步加速,会对场景点云(待匹配的点云)进行采样,这个参数用来控制采样率. 值越大,采样的点数增大,匹配时间增长。值越小,采样的点数越少,虽然速度边快,但匹配效果变差
- 最大匹配个数
含义:用于匹配结果个数的控制, 保持1即可
范围:[1,10]
- 匹配位姿使用率
含义:算法执行时,内部产生的中间匹配结果的使用率
范围:[1,100]
Tip
值越大速度越慢,值越小速度越快。 建议: 速度比较慢时把这个值调低些
Note
粗匹配调参优先级顺序(从高到低):
模板点云体素采样值 和 场景点云体素采样值
场景点云跳点采样值
匹配位姿使用率
精匹配#
精匹配 算子的输入中, 输入点云选择 法线估计 算子的输出即可, 匹配位姿选择 粗匹配 算子的输出即可
- 模板路径
含义:模板文件路径, 选择刚刚用 3D模板制作 工具做的模板即可, 文件后缀为 dmtemp
- 精匹配方法
含义:精匹配方法
范围:金字塔精匹配,经典精匹配, 我们选择经典精匹配即可
- 经典精匹配-计算方法
含义:
范围:点到面,点到点, 我们选择点到面即可
- 经典精匹配-包围盒扩张尺寸
含义:一般设置为-1,即在匹配的时候不扩大boundingbox去增加搜索范围,
范围:[-1,200]
- 经典精匹配-采样方式
含义:
范围:跳点采样,均匀采样 , 我们选择跳点采样即可
- 经典精匹配-经典模型点云体素采样率 OrigmodelSampleRate
含义:降采样参数,用于控制模型(模板)点云体素降采样时的体素大小
范围:[1,100]
- 经典精匹配-经典场景点云体素采样率 OrigSceneSampleRate
含义:降采样参数,用于控制场景点云体素降采样时的体素大小
范围:[1,100]
Tip
OrigmodelSampleRate和OrigSceneSampleRate为匹配时为了进一步加速,会对场景点云(待匹配的点云)进行采样,这个参数用来控制采样率值越大,采样的点数越多,匹配时间增长
- 经典精匹配-最大迭代次数
含义:迭代次数,迭代次数也不宜太大, 一般30左右即可
范围:[5,10000]
- 经典精匹配-最小重叠率
含义:判断匹配后前后的点云重叠率,在点云较少的情况下,重叠率不宜设置过高如果没有匹配位姿输出,可减少重叠率来控制匹配位姿的输出
范围:[0.1,0.99]
3D手眼标定转换#
3D手眼标定转换 算子的输入选择 3D手眼标定转换 算子的输出即可, 在参数配置中, 文件路径选择通过 3D手眼标定 工具保存的文件即可, 文件后缀为 dmcalib
DUCO Core端#
视觉插件#
打开DUCO CORE界面, 鼠标点击下图箭头所指处即可弹出视觉插件界面, 输入控制器IP地址点击连接即可
流程#
在DUCOCORE中新增如下图所示流程
新建一个pose类型的全局变量pose类型的 g_pose 和局部变量pose类型的 pose_out 以及pose_list类型变量名为的 list , 在 Vision3dMark`中的流程选择上一步新建的流程, 变量选择 `pose_out
在 Script 中输入如下脚本
Tip
由于新增的g_pose没有值, 因此需要先将程序运行一下获取值才可再下一步中将 g_pose 设置为基准
双击 RecordPoseTrans , 将 g_pose 设置为基准, 将 输出-转换位姿 设置为 list , 然后点击 示教添加 , 需要几个示教点添加几个即可, 下图为添加一个示教点
Tip
示教添加点的个数决定 GetListElement块的个数, GetListElement的值即为抓取点
新建局部变量pose类型的 pick1 , 在 GetListElement 中取 list 的第1个值给到 pick1 , 此时pick1即为第一个抓取点, 然后添加 MoveL, 移动到 pick1 即可, 如下图
Tip
上图为添加一个示教点的程序, 若要添加多个示教点, 只需要在 RecordPoseTrans 中多次点击 示教添加 即可
精度验证SOP#
- 精度异常现象描述
现场实际抓取精度偏差较大
精度验证工具验证误差较大
X 方向超过0.5 , Y 方向超过0.5 , Z 方向超过0.5 , RX 方向超过0.1 , RY 方向超过0.1 , RZ 方向超过0.1
1. 排查相机点云完整度和质量#
- <1>. 排查相机参数设置是否合理
检查相机参数设置会不会导致图像过爆( 曝光 一般设置为3000-5000),过爆的现象即为中间部分会有部分点云缺失
- <2>. 检查相机的工作空间是否在标定空间内
一般在 420 - 550 的工作空间内进行手眼标定, 那么工作空间也在这个范围内
2. 排查匹配算法输出#
<1>. 检查流程里精匹配算子的Debug3D结果
正确匹配的结果如下图所示( 绿色为模板 ,与待匹配点云(白色)完全覆盖上)
Caution
如果模板点云与待匹配点云, 没有完全覆盖上 ,请从两方面改善匹配效果
第一个方面是 制作优质模板
第二个方面是 调整 粗匹配 和 精匹配 参数
务必使匹配达到一个最优的状态,再进行抓取等应用操作
- <2>. 制作优质模板策略
保证模板点云完整,且边缘清晰,边缘噪点较少
- <3>. 粗匹配参数调整策略
点云体素采样值
和场景点云体素采样值
可以往小了调整, 但这两个参数的值 保持一致场景点云跳点采样率
可以往 大 了调整, 确保粗匹配算子的Debug3D结果比较稳定且匹配效果相对来说比较好
- <4>. 精匹配参数调整策略
经典模板点云体素采样率
和经典场景点云体素采样率
往 大 了调整(一般设置为 20-30 ), 且这两个值 保持一致 , 设置完成后, 查看精匹配结果是否会有好转
3. 手眼标定精度排查#
- <1>. 检查初始标定时标定板/球是否在相机视野中央
检查相机 成像是否清晰 ,检查这一点时需要 检查相机的参数设置 ,参数设置不能过爆,且 相机工作空间 是否合理
- <2>. 检查自动标定参数设置是否合理
自动标定时 机械臂的运动空间 是否包含真正 应用时的工作空间 , 如果不包含,那么请 设置自动标定时的参数 来进行 重新标定 ,可 适当将自动标定参数加大
Tip
自动标定参数不能一下子设很大,原因有两个:
机械臂本身的姿态受限,自动标定生成的位姿机械臂不一定能走,其二为
机械臂运动范围较大时可能会导致相机拍不到标定板/球,因而自动标定的参数需要慢慢的精调
- <3>. 检查标定计算的误差结果
如果 误差 80%以上在 1mm以内 , 那么标定还可以, 如果误差有高达十几毫米的那么请从 相机精度排查 和机 械臂运动精度 两方面进行检查
4. 相机精度排查#
<1>. 在机械臂移动过程中 确保标定块不动
<2>. 确保标定块的 模板 是优质的,确保 粗匹配和精匹配的参数 是调整优化后的参数
<3>. 将机械臂按照X方向移动 只移动机械臂的X值 , 移动固定值 (这个值跟现场有关,要确保在机械臂移动前和移动后相机都能拍到 完整的标定块 , 不然这个值设置的就太大了)
<4>. 记录机械臂在 移动前后的三维点位 ,同时记录机械臂在移动前和移动后匹配到的 标定块的位姿
<5>. 计算机械臂 移动前和移动后三维点位之间的移动距离 , 以及识别的两个标定块三维点位之间移动的距离(x,y,z两个三维点之间的距离), 计算这两个距离的 差值
<6>. 重复 以上操作(1-5)分别将机械臂按照 Y , Z 方向移动, 如果每个移动方向上这个差值都小于0.5mm, 那么更换一台新的相机,重新做这个测试,如果还是一样的结果,那么请协调排查机械臂运动精度,否则更换新相机再次进行标定精度工具验证
5. 协调排查机械臂运动精度#
<1>. 协调工作人员对机械臂的运动精度进行排查
<2>. 如果机械臂重新标定后,那么请再进行一遍标定精度工具验证
6. 精度验证工具#
用于计算相机与标记块偏移一定距离后的精度误差
入口#
点击 标定工具->3D手眼精度验证 即可, 如下图
工具设置#
流程设置
选择我们用于识别的
3D标记块定位流程
即可
机器人设置
选择我们连接的机器人即可
工具设置完后点击下一步即可弹出如下界面
基准识别#
使相机处于正常识别标记块的位置, 点击识别按钮此时软件会自动调用 3D标记块定位流程
, 识别成功或失败会弹框, 如下图为识别成功
操作点位姿#
该功能为设置一个示教点, 因此需切到DucoCore机器人界面, 将机器人移动到一个示教点的位置然后切会DucoMind界面即可, 如下图为设置成功
生成拍照偏移位姿#
点击 生成拍照偏移位姿 按钮, 可进入以下界面, 如下图
- 上图为设置生成位姿参数的界面, 其中
X范围: 机器人基于当前识别位姿
moveTCP
的X范围Y范围: 机器人基于当前识别位姿
moveTCP
的Y范围Z范围: 机器人基于当前识别位姿
moveTCP
的Z范围角度1范围: 机器人基于当前识别位姿
moveTCP
的RX范围角度2范围: 机器人基于当前识别位姿
moveTCP
的RY范围角度3范围: 机器人基于当前识别位姿
moveTCP
的RZ范围位姿数量: 总共生成多少个位姿
Tip
设置的xyz和角度参数后, 程序自动生成正负范围
设置完参数后, 点击 生成位姿 按钮即可
自动验证#
点击 开始验证 即可从第一行数据开始自动验证, 点击 停止验证 会停止验证, 验证结果会在每一行的状态栏显示
验证计算#
点击 验证计算 按钮会计算所有数据的 误差 , 均值 和 方差 , 其中误差包括 最大值 和 最小值
DM-Mark2D标记板位姿校正应用#
新建工程#
打开DUCOMIND 网页, 若已知控制器Ip地址,可用另外一台笔记本或电脑打开DUCOMIND网页, 前提是该设备的网络需与 控制器的IP设置为同一网段, 比如控制器的IP是 192.168.3.10, 则访问 192.168.3.10:7300 即可
详情参见 软件操作指南->工程管理->新建工程
打开DUCOMIND网页后, 若之前已经建立过工程可直接点击工程名字然后会显示 打开 字样, 点击 打开 即可打开相应工程, 如下图为点击第一个工程后的效果
若想要新建工程, 只需要点击 新建工程 即可, 如下图
点击 新建工程 后会弹出以下界面, 输入相应的信息即可
相机#
详情可参考 软件操作指南->相机管理->新建相机 以及 软件操作指南->相机管理->相机配置->DM-Cam2D相机
硬件介绍#
视觉工装介绍#
视觉选配包清单#
相机安装示意图#
相机视场示意图#
在200mm和300mm拍照高度下,相机视场的视野范围如下图:
光源调节说明#
Tip
电源开关 用来对光源以及相机供电电源的开闭
触发类型 默认置为 [REMO] 模式,即可以使用相机软触发模式驱动光源开关,[MANU] 模式则为光源常量
通过 通道切换键 可切换光源的通道为通道1或者通道2, 亮度调节键 上下键分别可调节光源的亮度值,越大则越亮,亮度值可以通过LED显示
Tip
上面的 触发类型 的使用要结合上图的相机配置参数:触发/常亮软件进行操作
相机网线连接#
相机网线插到控制器网口即可(无需设置), 但建议控制器端先插相机的网线, 即可连接相机
相机电源线连接#
Caution
相机电源及网线连上后, 相机端的提示灯显示蓝色, 同时控制器端网口的显示灯也是正常闪烁, 即正常连接, 否则及时检检查线路是否正常
新建相机#
打开刚刚新建的工程或者打开已存在的工程, 新建 DM-Cam2D ,请参考
如下图所示, 点击添加相机所指出即可弹出 DM-Cam2D 界面, 相机型号选择 DM-Cam2D 即可
选择好相机型号后, 点击下图箭头所指的扫描按钮即可扫描当前连接设备中的 DM-Cam2D
Tip
在连接相机前, 可借助大华Mv viewer查看相机Ip 点击扫描后需要等待几秒钟的时间才会出结果
在扫描到 DM-Cam2D 后, 点击扫描到相机信息后面的 + 号即可新建一个相机, 如下图:
新建相机后, 新建的第一个相机名称默认为 相机1 , 点击 相机1 可出现相机配置界面, 如下图:
连接相机#
点击 连接 按钮后系统会尝试连接 DM-Cam2D, 一般等待几秒钟的时间即可连接成功, 连接成功后, 连接 按钮会变成 断开 按钮
Tip
DM-Cam2D 为POE接口的相机, 与设备连接后, 点击连接相机后,可设置相机自动连接状态,即每次打开工程后即可连接相机
若相机连接不成功会弹出报错窗口, 此时需检查网线与相机是否完好, 也有可能是供电不足所致
相机调整#
调整 焦距 时, 需要拧镜头最下方的螺柱, 至于如何调整合适的 焦距 可参考下面表格里正确的焦距图
焦距调整结果图 |
示例:图 |
---|---|
不合适焦距图 |
|
正确焦距图 |
调整 光圈 时, 拧镜头最上方的螺柱, 至于如何调整合适的 光圈 可参考下面表格里正确的光圈图
光圈调整结果图 |
示例:图 |
---|---|
不合适光圈图(过亮) |
|
不合适光圈图(过暗) |
|
正确光圈图 |
在调整相机焦距和光圈时, 需要注意以下问题:
Tip
在调整相机的焦距和光圈前, 需要确定相机的 工作高度 , 在确定的工作高度下,再调整相机的焦距和光圈
在调整相机参数之前, 需要 先调整相机的焦距 , 再调整相机的光圈, 一般出场时相机的焦距和光圈一般是调整好的, 但如果存在拍照不清晰的情况下, 需要手动调节焦距和光圈
在调整相机焦距和光圈的时候也可以 参考相机调整焦距和调整相机亮度的工具 ,进行调节
以上调整需要配合光源一起, 在光源打开的前提下 , 进行调整
参数配置#
下图为 DM-Cam2D 相机的参数配置界面
Tip
这些参数中我们经常配置的是 曝光 以及 增益
曝光 : 当相机拍照过亮或过暗可通过设置该参数调节(注意, 在光源开着的情况下, 曝光不需要设置很高, 防止过爆), 可利用自带的 大华软件 , 设置自动曝光, 并记录曝光值, 输入到已连接相机配置界面里的曝光参数
增益 : 可利用自带的 大华软件 , 设置自动增益, 并记录增益值, 输入到已连接相机配置界面里的增益参数
设置完成后需要点击确认按钮才可生效
机器人#
详情可参考 软件操作指南->机器人管理->新建机器人
新建机器人#
点击下图箭头所指即可弹出新建机器人界面
Tip
机器人型号支持两种 ducocore_gcr10 和 ducocore_gcr5
点击 新建 按钮即可新建机器人
连接机器人#
点击刚刚新建的机器人名称会弹出机器人配置界面, 输入机器人的IP点击 连接 按钮即可连接机器人, 连接 成功后 连接 按钮会变为 断开 并且连接前面的圆点会由红变绿, 如下图
DM-Mark2D位姿矫正#
选择 资源->智能流程 , 点击智能流程左上角的加号, 添加DM-Mark2D位姿矫正智能块
基础设置#
相机配置, 点击 相机, 选择连接的2D相机(目前这个功能块配置的相机为海康相机)
机器人配置, 选择 已连接的机器人 后, 进入下一步
自动标定#
拍照位姿示教#
在进行自动标定前, 先检查一下以下注意点
Tip
确认相机为 眼在手上 的安装方式
移动机器人末端至合适位置( 末端调平, 即Rx=180, Ry=0), 令 标定板在图像正中央 , 推荐标定距离为 200mm
调整 相机焦距, 光圈及参数 至标定板成像清晰
自动标定#
标定板类型: 选择DM-DB300405A类型的标定板(工艺包自带标定板)
标定状态: 默认自动
标定距离: 输入标记板距相机的高度(单位为mm)
内参文件导出/导入:支持智能块内参标定文件的导出与导入
手眼文件导出/导入:支持智能块手眼标定文件的导出与导入
点击自动标定, 即可进行自动标定. 首先会先进行 内参标定 , 如果内参标定一次能成功, 即会自动进行 手眼标定 . 如果第一次自动内参标定没有成功, 算法会再进行一次内参标定, 在 两次内参自动标定 都没有成功的情况下, 需要用户检查一下 相机曝光参数 设置是否过爆, 其次检查相机的 拍照高度 是否低于200mm
标定结果#
内参标定的 投影误差, 以及手眼标定的最大最小以及平均误差会显示在界面上, 点击下一步进入基准设置界面
内参标定误差: 内参误差高于 0.7 时, 建议重新调整相机曝光, 标定板在相机中心的位子, 重新进行内参手眼标定
手眼标定误差: 最大误差高于 0.9 , 平均误差大于 0.5 时, 建议重新调整相机曝光, 标定板在相机中心的位子, 以及确认相机距标定板的距离, 重新进行内参手眼标定
基准设置#
基准位姿示教#
在进行基准位姿设置前, 先检查一下以下注意点
Tip
确认相机为 眼在手上 的安装方式
移动机器人末端至合适位置( 末端调平, 即Rx=180, Ry=0), 令 2DMark标记板在图像正中 , 建议拍摄距离不要偏离标定距离上下 25mm
请不要调整相机焦距, 光圈及参数
基准配置#
标记板类型: 选择 DM-Mark2D50A标记板
当前状态: 默认是未设置状态, 点击 识别并设置基准/自动调平 时, 状态即变为已设置
标定距离: 即为自动标定时, 界面上 输入的标定板距相机的距离
标记距离: 自动标定后, 计算标记板距相机的距离 , 如果标记距离剧标定距离超过25mm, 界面会显示 过远 , 此时若精度满足需要可忽略, 若不满足需求, 需要调整标定距离, 重新标定
自动调平: 自动调平功能, 此按钮即让 相机平面与标记板平面保持平行 , 这个按钮 如果没有强制要求,建议不使用 ( 在末端水平, 末端与工作平面平行的情况下, 建议可以不点击,如果要使用建议在距工作平面100mm内使用调平功能 ), 如果点击后, 需要点击识别并设置基准, 记录基准位姿
识别并设置基准 : 识别标记板, 并记录 此时标记板的位姿 , 给矫正调姿使用, 设置完成后, 点击下一步, 进入位姿矫正界面
位姿矫正#
矫正配置#
最大累积矫正位移(mm): 矫正过程中, 机器人移动的距离累积和, 如果 机器人移动的累积距离大于最大累积矫正位移 , 那么矫正进程即终止, 矫正结束
最大累积矫正角度(°): 矫正过程中, 机器人移动的角度累积和, 如果 机器人移动的累积角度大于最大累积矫正角度 , 那么矫正进程即终止, 矫正结束
最大伺服矫正次数: 矫正过程中, 机器人移动的次数累积和, 如果 机器人移动的累积次数大于最大伺服矫正次数 , 那么矫正进程即终止, 矫正结束
终止条件-位移误差(mm): 矫正过程中, 识别到的 标记板位姿与基准记录的位姿之间的位移偏差小于终止条件时, 在同时满足角度误差的终止条件时 , 那么矫正进程即终止, 矫正结束
终止条件-角度误差(°): 矫正过程中, 识别到的 标记板位姿与基准记录的位姿之间的角度偏差小于终止条件时, 在同时满足位移误差的终止条件时 , 那么矫正进程即终止, 矫正结束
调姿延时(ms): 为防止机器人没有停稳, 会对调姿精度带来影响, 默认延时500ms
重设基准#
在 标记板动了的情况下, 或者重新换了一个标记板, 需要重新设置标记板基准 , 此时是可以重设基准的, 但如果标记板没有任何更改, 那么这里可以忽略
标定距离: 即为自动标定时, 界面上输入的标定板距相机的距离
标记距离: 自动标定后, 计算标记板距相机的距离
矫正测试#
矫正测试: 点击矫正测试, 即可进行位姿矫正, 此时矫正结束的终止条件即为上面配置的矫正配置条件(调试配置阶段可以使用)
矫正误差: 显示每次矫正过程中, 机器人矫正的位移和角度
重置所有参数#
重置 基础设置->位姿矫正 界面上的所有参数的配置, 重新配置此智能块流程
取消#
取消 位姿矫正 界面所有配置的参数设置, 矫正配置恢复到默认值, 重设基准取消(如何有重设基准)
确定#
保存 基础设置->位姿矫正 界面上的所有参数的配置, 提供给机器人端配置使用
DUCO Core端#
视觉插件#
打开DUCO CORE界面, 鼠标点击下图箭头所指处即可弹出视觉插件界面, 输入控制器 IP 地址点击连接即可
流程#
在DUCOCORE中新增如下图所示流程
新建一个局部变量pose类型的 mark_in_base (矫正识别后标记板的位姿)以及Bool类型的 detect_success (是否矫正识别成功)
在 Mark2DPoseCorrect 里配置输出, 如下图
添加 If 功能块, 如果矫正识别成功, 再进行抓取操作, 即下图条件
新建一个pose类型的全局变量pose类型的 g_pose 和pose_list类型变量名为的 picklist
在 Script 中输入如下脚本
Tip
由于新增的g_pose没有值, 因此需要先将程序运行一下获取值才可再下一步中将 g_pose 设置为基准
双击 RecordPoseTrans , 将 g_pose 设置为基准, 将 输出-转换位姿 设置为 picklist , 然后点击 示教添加 , 需要几个示教点添加几个即可, 下图为添加一个示教点
Tip
示教添加点的个数决定 GetListElement块的个数, GetListElement的值即为抓取点
新建局部变量pose类型的 move_pick1 , 在 GetListElement 中取 picklist 的第1个值给到 move_pick1 , 此时pick1即为第一个抓取点, 然后添加 MoveL, 移动到 move_pick1 即可, 如下图
Tip
上图为添加一个示教点的程序, 若要添加多个示教点, 只需要在 RecordPoseTrans 中多次点击 示教添加 即可
2D目标定位应用#
新建工程#
打开DUCOMIND 网页, 若已知控制器Ip地址,可用另外一台笔记本或电脑打开DUCOMIND网页, 前提是该设备的网络需与 控制器的IP设置为同一网段, 比如控制器的IP是 192.168.3.10, 则访问 192.168.3.10:7300 即可
详情参见 软件操作指南->工程管理->新建工程
打开DUCOMIND网页后, 若之前已经建立过工程可直接点击工程名字然后会显示 打开 字样, 点击 打开 即可打开相应工程, 如下图为点击第一个工程后的效果
若想要新建工程, 只需要点击 新建工程 即可, 如下图
点击 新建工程 后会弹出以下界面, 输入相应的信息即可
相机#
这里支持相机列表中所有的2D相机进行连接, 连接不同相机时请查看连接品牌相机的说明书, 下面仅详细介绍Cam2D相机的硬件安装及设置
详情可参考 软件操作指南->相机管理->新建相机 以及 软件操作指南->相机管理->相机配置->DM-Cam2D相机
硬件介绍#
Tip
在200mm和300mm拍照高度下, 相机拍照的视野范围如下图:
Tip
电源开关 用来对光源以及相机供电电源的开闭
触发类型 默认置为 [REMO] 模式,即可以使用相机软触发模式驱动光源开关,[MANU] 模式则为光源常量
通过 通道切换键 可切换光源的通道为通道1或者通道2, 亮度调节键 上下键分别可调节光源的亮度值, 越大则越亮, 亮度值可以通过LED显示
Tip
上面的 触发类型 的使用要结合上图的相机配置参数:触发/常亮软件进行操作
相机网线连接#
相机网线插到控制器网口即可(无需设置), 但建议控制器端先插相机的网线, 即可连接相机
相机电源线连接#
Caution
相机电源及网线连上后, 相机端的提示灯显示蓝色, 同时控制器端网口的显示灯也是正常闪烁, 即正常连接, 否则及时检检查线路是否正常
新建相机#
打开刚刚新建的工程或者打开已存在的工程, 新建 DM-Cam2D ,请参考
如下图所示, 点击下图箭头所指出即可弹出 DM-Cam2D 界面, 相机型号选择 DM-Cam2D 即可
选择好相机型号后, 点击下图箭头所指的扫描按钮即可扫描当前连接设备中的 DM-Cam2D
Tip
在连接相机前, 可借助大华Mv viewer查看相机Ip 点击扫描后需要等待几秒钟的时间才会出结果
在扫描到 DM-Cam2D 后, 点击扫描到相机信息后面的 + 号即可新建一个相机, 如下图:
新建相机后, 新建的第一个相机名称默认为 相机1 , 点击 相机1 可出现相机配置界面, 如下图:
连接相机#
点击 连接 按钮后系统会尝试连接 DM-Cam2D, 一般等待几秒钟的时间即可连接成功, 连接成功后, 连接 按钮会变成 断开 按钮
Tip
DM-Cam2D 为POE接口的相机, 与设备连接后, 点击连接相机后,可设置相机自动连接状态,即每次打开工程后即可连接相机
若相机连接不成功会弹出报错窗口, 此时需检查网线与相机是否完好, 也有可能是供电不足所致
相机调整#
调整 焦距 时, 需要拧镜头最下方的螺柱, 至于如何调整合适的 焦距 可参考下面表格里正确的焦距图
焦距调整结果图 |
示例:图 |
---|---|
不合适焦距图 |
|
正确焦距图 |
调整 光圈 时, 拧镜头最上方的螺柱, 至于如何调整合适的 光圈 可参考下面表格里正确的光圈图
光圈调整结果图 |
示例:图 |
---|---|
不合适光圈图(过亮) |
|
不合适光圈图(过暗) |
|
正确光圈图 |
在调整相机焦距和光圈时, 需要注意以下问题:
Tip
在调整相机的焦距和光圈前, 需要确定相机的 工作高度 , 在确定的工作高度下,再调整相机的焦距和光圈
在调整相机参数之前, 需要 先调整相机的焦距 , 再调整相机的光圈, 一般出场时相机的焦距和光圈一般是调整好的, 但如果存在拍照不清晰的情况下, 需要手动调节焦距和光圈
在调整相机焦距和光圈的时候也可以 参考相机调整焦距和调整相机亮度的工具 ,进行调节
以上调整需要配合光源一起, 在光源打开的前提下 , 进行调整
参数配置#
下图为 DM-Cam2D 相机的参数配置界面
Tip
这些参数中我们经常配置的是 曝光 以及 增益
曝光 : 当相机拍照过亮或过暗可通过设置该参数调节(注意, 在光源开着的情况下, 曝光不需要设置很高, 防止过爆), 可利用自带的 大华软件 , 设置自动曝光, 并记录曝光值, 输入到已连接相机配置界面里的曝光参数
增益 : 可利用自带的 大华软件 , 设置自动增益, 并记录增益值, 输入到已连接相机配置界面里的增益参数
设置完成后需要点击确认按钮才可生效
机器人#
详情可参考 软件操作指南->机器人管理->新建机器人
新建机器人#
点击下图箭头所指即可弹出新建机器人界面
Tip
机器人型号支持两种 ducocore_gcr10 和 ducocore_gcr5
点击 新建 按钮即可新建机器人
连接机器人#
点击刚刚新建的机器人会弹出机器人配置界面, 输入机器人的IP点击 连接 按钮即可连接机器人, 连接 成功后 连接 按钮会变为 断开 并且连接前面的圆点会由红变绿, 如下图
2D目标定位#
选择 资源->智能流程 , 点击智能流程左上角的加号, 添加2D目标定位智能块
基础设置#
相机配置, 点击 相机, 选择连接的2D相机, 这里只支持相机2D相机
机器人配置, 选择 已连接的机器人 后, 进入下一步
基准注册#
拍照位姿示教#
在基准注册前, 先检查以下注意点
Tip
确认相机为 眼在手上 的安装方式,使相机垂直拍摄识别物
移动机器人至 末端水平, 即Rx=180, Ry=0, 这一步是为了保证相机所在平面水平, 这样能够使得纠偏精度得以保证
令 待识别物在图像正中央, 自研相机推荐使用距离为 200mm, 若工作距离发生变动, 需要重新调整相机焦距, 以及相机曝光等参数
相机端调整 相机焦距, 光圈及相机参数 至待识别物成像清晰 调整 相机焦距, 光圈及相机参数 至图像成像清晰
基准注册#
相机拍照: 在基准注册前, 首先进行拍照, 可查看当前调整好的图像
识别目标: 绘制区域, 点击后, 在左侧会显示绘制ROI工具, 可选择ROI绘制方式, 将待检测的部分用ROI框出来
注册状态: 点击注册, 即可记录当前基准位的信息, 如果注册状态显示成功, 即可继续进行下面的配置, 否则, 请调节相机参数至图像清晰
点击注册后, 如果注册成功, 界面上会显示注册成功的状态, 同时图像会画出在ROI区域内识别到的模板特征点信息, 这里可以检查一下图像上绘制的模板特征点信息,若特征信息是均匀散布在待识别物体上,即特征良好
如果没有显示注册成功, 那么需要检查相机拍摄的图片是否清晰, 如果不清晰, 请调整相机参数至相机拍照清晰, 再重新绘制ROI, 重新进行注册
自动标定#
拍照位姿示教#
在进行自动标定前, 需要查看当前机器人运动空间范围, 是否有障碍物
Tip
合理设置自动标定时, 确定平移距离和旋转范围, 确保在此范围内相机是可以拍全待识别物体的
若自动标定时初始状态下机器人的位姿动了, 那么此时需要回到基于注册点时的位姿, 确保初始标定状态下机器人位姿与基准注册时机器人位姿是同一个
自动标定#
平移范围(mm): 自动标定时, 上一个标定位姿距下一个标定位姿的平移距离, 可根据相机视野, 以及机器人可运动的距离来决定
旋转范围(°): 标定旋转时的旋转范围, 在此范围内进行旋转识别标定
最小分数: 匹配时的最小分数, 分数过大时, 会导致在当前位姿下无法识别出结果
按住回基准位 : 若机器人的初始标定位与基准注册位时的机器人位姿不相同时, 此时可按住回基准位, 即可回到基准注册下的机器人位姿
自动标定 : 自动进行标定, 首先进行9次平移, 之后再进行7次旋转, 即可完成标定, 中间有任何一次无法正确识别待识别物时, 标定即刻停止,即标定失败
停止标定 : 点击后, 自动标定停止, 再次标定时, 点击自动标定即可
标定结果#
标定结果: 如果标定成功, 会显示标定成功的状态, 否则显示标定失败
标定误差: 如果标定成功, 则会显示平均标定误差, 最大标定误差以及最小标定误差
定位纠偏#
识别配置#
最大目标个数: 输入最大识别个数, 若待识别物只有一个, 那么最大目标个数为1
最小分数: 识别匹配的最小分数, 大于设置分数的识别结果即会被输出
排序方式: 识别结果输出可以按照多种排序方式选择输出, 分数从高到低, 从左到右, 从右到左, 从上到下, 从下到上输出, 按照抓取方便, 选择某种方式对识别到的结果进行排序后输出
速度-精度: 控制识别的速度和精度, 当滚动条拉向速度时, 识别速度会变快, 但精度会变差, 滚动条拉向精度时, 识别速度会变慢, 精度会变好
识别测试#
在 标记板动了的情况下, 或者重新换了一个标记板, 需要重新设置标记板基准 , 此时是可以重设基准的, 但如果标记板没有任何更改, 那么这里可以忽略
按住回基准点: 回到机器人基准注册位时机器人的位姿
识别测试: 识别配置完成后, 即可进行识别测试, 同时识别到的结果图会显示在左图图像上, 如果识别结果不满意, 需要重新设置识别配置参数, 再次进行识别测试
纠偏测试#
按住回基准点: 回到机器人基准注册位时机器人的位姿
序号: 选择纠偏序号, 有几个识别结果就会有几个纠偏
纠偏测试: 选择某个纠偏序号, 即可进行纠偏, 会将机器人移动到, 基准注册时机器人与待识别物的相对关系
重置所有参数#
重置 基础设置->定位纠偏 界面上的所有参数的配置, 重新配置此智能块流程
取消#
取消 定位纠偏 界面所有配置的参数设置, 定位纠偏恢复到工程上次保存的默认值
确定#
保存 基础设置->定位纠偏 界面上的所有参数的配置, 提供给机器人端配置使用
DUCO Core端#
视觉插件#
打开DUCO CORE界面, 鼠标点击下图箭头所指处即可弹出视觉插件界面, 输入控制器 IP 地址点击连接即可
流程#
在DUCOCORE中, 首先连接DUCOMInd, 本地连接输入连接的mind的IP, 如下图
接着拖出 Detection2D 插件
在 Detection2D 里参数里进行配置
服务器状态#
若服务器连接状态断开, 需要从DUCOMind插件端进去, 重新连接DUCOMind, 之后再进行下列配置. 若连接成功, 点击下图中的转到, 即可转到当前配置的ducomind工程
流程配置#
选择DUCOMind端已打开的工程中配置好的2D定位智能块, 若没有可选择的智能块, 可以刷新一下
拍照点配置#
拍照点有两种选择:运动到基准注册点/基于当前位置, 默认选项为运动到基准注册点
运动到基准注册点:基准注册点是一个固定的机器人位姿, 也就是机器人拍照位是固定的
基于当前位置: 机器人拍照位是不定的, 运动到自己定义的机器人位姿
模式#
纠偏模式分为纠偏和纠偏并操作两种方式, 默认仅纠偏
纠偏:仅对识别到的物体进行纠偏操作, 其他操作可在undefined的块中, 自行定义添加
纠偏测试:基于当前拍照位下, 点击识别, 若识别成功会显示识别成功字样, 否则即识别失败. 若识别成功即可按住纠偏(点击后进入机器人移动界面, 按住移动即可),运动完成纠偏(多目标情况下,仅进行一次纠偏操作)
示教操作点: 点击后进入机器人移动界面(设置示教的是抓取物体的点位), 示教机器人移动到抓取点
记录当前点: 记录抓取物体的操作点位
移动到此点: 移动到记录的抓取操作点位
过度点偏置高度(mm): 设置抓取物体的操作点位上方点位, 默认50mm
变量IO#
识别成功: 返回全局bool变量, 返回检测目标物是否成功
总目标数: 返回检测目标总数, 即形状匹配到的目标个数
确定#
点击确定, 即完成编辑块名称记录, 完成流程配置, 拍照点配置, 以及操作点配置并保存配置, 并生成流程块程序
取消#
点击取消, 即将流程配置, 拍照点配置, 以及操作点配置恢复到默认状态
3D目标定位应用#
新建工程#
打开DUCOMIND 网页, 若已知控制器Ip地址,可用另外一台笔记本或电脑打开DUCOMIND网页, 前提是该设备的网络需与 控制器的IP设置为同一网段, 比如控制器的IP是192.168.3.10, 则访问 192.168.3.10:7300 即可
详情参见 软件操作指南->工程管理->新建工程
打开DUCOMIND网页后, 若之前已经建立过工程可直接点击工程名字然后会显示 打开 字样, 点击 打开 即可打开相应工程, 如下图为点击第一个工程后的效果
若想要新建工程, 只需要点击 新建工程 即可, 如下图
点击 新建工程 后会弹出以下界面, 输入相应的信息即可
相机#
详情可参考 软件操作指南->相机管理->新建相机 以及 软件操作指南->相机管理->相机配置->知微相机
硬件介绍#
视觉工装介绍#
视觉选配包清单#
标定板安装示意图(标定板在手上)#
3D相机安装示意图(相机在手上)#
相机网线连接#
相机网线插到控制器网口, 确保插入的网口已经设置为 仅本地链路连接 , 设置控制器某个网口为 仅本地链路连接 的方法:
方法一
打开终端, 若直接通过示教器显示, 按 Ctrl+Alt+F2/F3/F4 即可打开一个终端;
当前控制器有3个网口, 名称分别为 enp1s0 , enp2s0 , enp3s0
3. 比如设置 enp1s0 网口为 仅本地链路连接 的命令为:
sudo ifconfig 网口名称 169.254.7.12 broadcast 169.254.255.255 netmask 255.255.0.0
Tip
一般中间的网口为 enp3s0 , 靠近HDMI接口的为 enp2s0 , 另外一个口为 enp1s0 , 出厂Ip均已设置好, 将相机网线接在 enp1s0 口即可
方法二
打开管理软件(DucoManager)界面, 点击 网络配置;
点击网络配置后可看到3个网络状态,分别为 LAN1 , LAN2 , LAN3 , 这3个网口分别对应控制器上的 LAN1 , LAN2 , LAN3
选择 LAN2 或 LAN3 , 点击设置, 将网口设置为 仅本地链路连接 即可
将相机网线插在设置为 仅本地链路连接 的网口即可
相机电源线连接#
相机电源需符合电压为24V, 电流为2A的规格, 如下图为标准的相机电源适配器信息
Caution
相机电源第一次连接上后相机镜头会打光并显示Logo, 大约10-20s左右Logo会消失, 若相机连上电源通电后相机镜头没有出光显示Logo或出光显示的Logo一直不消失此时需检查电源线路
新建相机#
打开刚刚新建的工程或者打开已存在的工程, 新建 知微相机
如下图所示, 点击下图箭头所指出即可弹出 新建相机 界面, 相机型号选择 知微相机 即可
选择好相机型号后, 点击下图箭头所指的扫描按钮即可扫描当前设备存在的 知微相机
Tip
上图的结果为本地设备已经连接一台知微相机后扫描的结果, 并且点击扫描后需要等待几秒钟的时间才会出结果
在扫描到 知微相机 后,点击扫描到相机信息后面的 + 号即可新建一个相机, 如下图:
新建相机后,新建的第一个相机名称默认为 相机1 , 点击 相机1 可出现相机配置界面, 如下图:
连接相机#
点击 连接 按钮后系统会尝试连接 知微相机, 一般等待几秒钟的时间即可连接成功, 连接成功后, 连接 按钮会变成 断开 按钮
Tip
知微相机 为POE接口的相机, 与设备连接后, 需将连接的网口设置为 仅本地链路连接 后才能连接成功(若提前知道相机IP, 将网络设为与相机相同网段也可)
若相机连接不成功会弹出报错窗口, 此时需检查网口配置, 并检查网线与相机是否完好, 也有可能是供电不足所致
参数配置#
下图为知微相机的参数配置界面
其中相机曝光参数,需要根据现场条件进行更改,一般曝光参数为2000-3000即可,如下图:
Tip
这些参数中我们经常配置的是 IR曝光 以及 多曝光次数
IR曝光 : 当相机拍照过亮或过暗可通过设置该参数调节
多曝光次数 : 相机打光次数, (默认一次, 可将该参数设置为3)
设置完成后需要点击确认按钮才可生效
机器人#
详情可参考 软件操作指南->机器人管理->新建机器人
新建机器人#
点击下图箭头所指即可弹出新建机器人界面
Tip
机器人型号支持两种 ducocore_gcr10 和 ducocore_gcr5
点击 新建 按钮即可新建机器人
连接机器人#
点击刚刚新建的机器人名称会弹出机器人配置界面, 输入机器人的IP点击 连接 按钮即可连接机器人, 连接 成功后 连接 按钮会变为 断开 并且连接前面的圆点会由红变绿, 如下图
3D目标定位#
选择 资源->智能流程 , 点击智能流程左上角的加号, 添加3D目标定位智能块
基础设置#
相机配置, 点击 相机, 选择连接的3D相机, 这里只支持相机3D相机
机器人配置, 选择 已连接的机器人 后, 进入下一步
自动标定#
拍照位姿示教#
在自动标定前, 先检查以下注意点
Tip
确认相机为 眼在手上 的安装方式,使相机垂直拍摄识别物
调整机械臂, 使得 待识别物在图像正中央
自动标定#
标定板类型: 选择正确的标定板, 进行标定, 默认为DM-DB300405A的标定板
标定距离: 点击识别测距,即可计算出标定板距相机的距离,才可以进行标定
高级参数: 勾选时,可对空间高度,顶边边长,低边边长进行修改,若未勾选,则参数为默认参数
3D手眼标定文件导入:若在当前工装下,无法进行自动标定,那么可利用标定工具,进行手动标定,并把标定文件导入即可,导入标定文件,标定状态为已标定
3D手眼标定文件导出:当前智能流程的标定结果可进行导出,其中导出文件名为自定义,导出文件路径为当前工程的resource目录下
自动标定:点击后即可进行自动标定,视窗会自动更新识别结果图像
停止标定:若自动标定过程中,需要急需暂停标定,点击停止标定即可,若想要再次标定时,要回到标定初始位重新进行自动标定即可
标定状态:可进行自动标定,若自动标定成功,则标定状态为已标定,否则标定失败
标定结果#
标定结果: 如果标定成功, 会显示标定成功的状态, 否则显示标定失败
标定误差: 如果标定成功, 则会显示平均标定误差, 最大标定误差以及最小标定误差
模板分割#
拍照位姿示教#
在拍照位姿示教前,需要检查以下注意事项:
Tip
确认相机为眼在手上安装方式
移动机器人末端至合适位置,令标记块在图像正中,建议拍摄距离不要偏离标定距离上下浮动25mm
模板数据分割#
相机拍照: 相机拍照得到当前拍照的图片
分割方式: 用来分割标记块点云,这里支持自动分割/手动分割
自动分割分数: 用于自动分割,分数过大,自动分割可能会没有结果输出,分割结果及分割分数会显示在图像上
自动分割精度: 自动分割精度越高,分割标定块的完整性也越高
自动分割: 点击自动分割,即可在左图上显示分割结果图
手动分割: 点击绘制区域后,可在左图拍摄的图像上画出旋转框,即可框住标记块,点击确定即可完成分割
模型修整#
修整工具#
修整工具: 这里提供很多可以修整模板点云的工具,选择修改即可
重置:重置所有修整操作,使点云恢复到分割点云
撤销:撤销当前对点云进行的修整操作
执行并查看:执行查看当前对点云进行修整的操作
Tip
修整工具与模板制作工具同步,使用方式可参考模板制作工具
模板修整顺序可参考以下顺序:自动重置中心-擦除点云-滤波
模板生成#
视点重定向#
XYZ: 定义法线的视点方向,一般将Z值设置为-100即可
特征计算#
特征类型: 法线,默认为法线,不可进行修改
半径: 特征计算半径,默认为5mm
执行并查看:得到法线点云
识别配置#
识别配置#
自动分割分数: 用于自动分割,分数过大,自动分割可能会没有结果输出,分割结果及分割分数会显示在图像上
自动分割精度: 自动分割精度越高,分割标定块的完整性也越高
最小重叠率:点云匹配结果与模板的最小重叠率,重叠率过大,可能没有位姿输出
高级参数: 粗匹配点云采样值,一般为默认值,粗匹配位姿使用率,一般为默认值
识别测试:依次进行拍照,分割,匹配操作得到匹配结果
重置所有参数#
重置 基础设置->识别配置 界面上的所有参数的配置, 重新配置此智能块流程
取消#
取消 识别配置 界面所有配置的参数设置, 定位纠偏恢复到工程上次保存的默认值
确定#
保存 基础设置->识别配置 界面上的所有参数的配置, 提供给机器人端配置使用
DUCO Core端#
视觉插件#
打开DUCO CORE界面, 鼠标点击下图箭头所指处即可弹出视觉插件界面, 输入控制器IP地址点击连接即可
流程#
在DUCOCORE中新增如下图所示流程
新建一个pose类型的变量 g_pose 和bool类型变量的 g_check , 在 Detection3D`中的流程选择上一步新建的流程, 变量选择 `g_pose 和 g_check
这里 `g_pose`为标记块在机器人基坐标系下的位姿,而 `g_check`是此次拍照下,是否有识别到标记块. 如果标记块识别到了,再进行抓取操作
至于抓取操作,请参考 3D标记板定位应用 DUCO Core端部分即可