APP下载

基于双目视觉的机器人抓取目标的研究

2023-05-22赵宝乐姬五胜陈建敏

物联网技术 2023年5期
关键词:手眼位姿标定

赵宝乐,姬五胜,2,陈建敏

(1.天津职业技术师范大学 电子工程学院,天津 300222;2.天津市现场总线控制技术工程中心,天津 300222)

0 引言

自20世纪50年代以来,人类对机器视觉的研究取得了重大突破,视觉检测技术为科学技术的发展提供了新的思路,它不仅是高级视觉处理和分析任务的基础,也是未来发展的重要动力[1-3]。Marr 教授领导的研究团队首次提出了一种全新的视觉计算理论(Vision Computational Theory)。北美、欧洲和日本等地区相继成为国际机器视觉的重要产业基地。在“十四五”时期,中国积极推动机器视觉技术的发展,制定了一系列有助于推动智能工厂建设的政策,大力推广智能机器人的大规模应用,从而促进了机器视觉技术的普及和应用[4]。基于ROS 技术机器人能够实现基于双目视觉的自动抓取。首先,机器人需要经过相机标定[5];然后,机器人需要进行手眼标定[6],从而获取物体的基本位置信息。此外,ROS 还能够利用其独特的消息传输机制,构建机械臂和相机之间的三维空间模型,从而实现机器人的自动抓取,并且能够实现基于视觉的机械臂抓取系统的研究[7-9]。

随着技术的发展,单目测绘的地图轨迹与实际情况存在较大的不同,而且只依靠图片也不能准确反映出物体的真实尺寸和深度。因此,为了更准确地测量物体的位置,人们普遍采用双目测绘技术[10]。深度相机[11]可以获得外界环境信息,将尺度信息和彩色图像特征信息结合起来建立外界环境,但处理信息并不能像双目视觉一样通过软件计算来实现。采用一种结构已知、精度较高的参照物,根据参照物在图像和空间坐标系的位姿约束关系,建立摄像机参数标定的方程组,基于视差理论的双目立体视觉[12]利用两个相同摄像机对同一场景不同位置进行成像,从而获得场景立体图像[13]。

本文基于双目视觉机器人的手眼标定,采用“眼”(相机)在“手”(机械臂)上的方法,相机探测像素在目标图像上的位置,标定坐标变换矩阵实现像素坐标到空间坐标的变换,并基于机械手坐标解算机器运动方式;根据机械手坐标计算所述机器的运动方式,以控制所述机械手到指定地点对物体进行抓取操作。通过将多种先进的技术融合到一起,如视觉检测、深度学习、运动规划和物体抓取,最终实现一个基于双目视觉的高效物体抓取实验。

1 机器人抓取目标系统结构

机器人抓取目标系统结构如图1所示。根据研究任务和实验背景,将相机固定在机械臂上,采用“眼”在“手”上的方法,在机械臂末端安装夹爪,机器人在收到指令后通过相机采集图像,对目标物体进行检测;双目相机经过相机标定后,将采集到的图像传送到机械手的空间坐标系中,根据检测的手眼标定和图像分析结果进行姿态估计,通过相机和机器人末端坐标系位姿关系,获得连续的关节位置坐标进行运动规划,最后控制机械臂对目标物进行抓取任务。

图1 系统结构

2 机器人硬件设计

根据实验场景选取合适的硬件,主要包括:(1)Realsense D435:librealsense sdk、realsense-ros 功能包;(2)Marker 标记识别:Aruco 功能包;(3)手眼标定:easy_handeye 功能包;(4)机械臂:轻型6 自由度协作机器人;(5)电脑主机:负责通过ROS 控制相机采集图像信息,经过数据处理后将物体的坐标位置发送给机械臂,实现抓取任务;(6)夹爪:具有力控制和位置控制的功能。

3 机器视觉原理与方法

3.1 相机标定

根据相位测量原理,相机可以准确地测量物体的高度。当光栅投射到物体表面时,相位会受到物体高度的影响,获取相位变化值,从而准确地反映出物体的高度信息。相机标定的主要目的在于获得相机的内外参数,当获得的相机的内外参数都正确时,图像失真比较小,描述数字图像中物体成像的像点坐标并从相机坐标系中读出信息,坐标为(u,v),单位为pixels(像素数目)。

通过相机标定,在三维世界和成像平面内建立物体的一一对应关系,这种一一对应关系可以通过世界坐标系、相机坐标系、图像坐标系和像素坐标系的变换来实现,如图2所示,原点通常位于左右相机之间,或者X轴方向的中点。当Z轴与光轴完全重叠时,它们将沿着一条水平线穿过,并与图像坐标系完全垂直;而像素坐标系的u-v与图像坐标系的x-y将完全重叠,两者之间的距离被称为焦距f。通过将旋转矩阵R与平移向量T结合在一起,可以将世界坐标系和相机坐标系的位置转换为一个新的坐标系,相机坐标系与图像坐标系相连接就是透视投影。如图3所示,在图像坐标系中,原点与像素点之间并不重合,在这种情况下原点在像素坐标系中的坐标为(u0,v0),而像素点在x轴和y轴方向的尺寸分别为dx和dy,实际像点p在图像坐标系中的坐标为(x,y),因此得到了它的坐标(u,v)。

图2 坐标系关系转换

图3 相机标定原理

3.2 手眼标定

通过手眼标定,机器人可以实现基坐标系和相机坐标系之间的精确转换。第一种方法是通过eye-in-hand来实现手眼标定,即将相机固定在机器臂的末端,并让它与机械臂运动;第二种方法被称为eye-to-hand,它将相机与机器人的基座完全隔绝,使得机器臂的移动不会受到相机的影响,从而实现了更加高效的操作。通过机械手臂与相机的协同作用,可以实现对机器人标定板的精确测量,并且保持基础与底座之间的关系不变,从而确保末端坐标系的准确性,如图4(a)所示。

图4 真实场景和标定示意图

手眼标定eye-in-hand 示意图如图4(b)所示,底座与末端关系为底座与相机关系为相机与标定板的关系为在eye-in-hand 的配置方式中对机器人移动过程中的任意两个位姿有以下公式成立:

标定板和机器人底座间两次运动保持不变。对式(1)进行移项后可得:

求解相机和机器人末端之间的关系X,机械臂末端的坐标变换关系设为A,相机的坐标变换关系设为B,最终转化成求解方程为:

使用三维重建函数能够精确地测量和校准相机和投影仪的内部和外部参数,并重建这些测量值在相机坐标系中的三维位置。根据设计值可以确定标定板上特征点的位置,并利用这些信息来构建一个相应的坐标系,从而实现对其进行转换。

3.3 目标检测原理

通过卷积神经网络(Convolutional Neural Network,CNN),可以根据目标的位置、尺寸和长宽比等因素进行综合抽样,从而实现快速、准确的特征提取与回收。

(1)SSD 使用了基于VGG16 的双框检测器,可以检测出大量的特征图,而且可以根据不同的尺寸来实现检测。

(2)SSD 利用卷积从测试结果中抽取不同特征进行映射,其形状为m×n×p图形,图形特征读数可利用3×3×p从更小卷积核中获取。

(3)SSD 每个单元都有不同配比的先验框,在一定程度上降低了训练难度。

4 机器人识别抓取实验

在ROS 环境中启动Moveit 框架中的相关节点程序,开启抓取程序后,相机固定到机械臂末端,通过网线连接到主机,相机识别到目标位置信息进行抓取任务。

4.1 手眼标定实验

启动Realsense 节点,相机通过Type-C 数据线与USB3.0接口相连,启动aruco 节点识别 Marker 标签,执行命令启动image_view显示图像;运行成功后在 rviz 中可以看到机器人模型与真实机械臂的状态保持一致,真实机械臂会按照 rviz中Moveit!规划的路径运动;在启动标定程序前,先在 rviz中通过Moveit 或手动调节机械臂到一个合适的姿态,然后将aruco 二维码移动至相机视野中心附近。目标物体位姿识别如图5所示。

图5 目标物体位姿识别

标定步骤如下:

(1)当Check starting pose 被激活时,“Ready to start”将会显示,但是若检测结果显示 0/17,则表明当前机械臂的姿势与预期的设计相差较远。解决方法:关闭标定节点然后调节机械臂到一个合适姿态并将aruco 码移动至相机视野中心附近,再重启标定节点继续标定。

(2)机械臂移动至新位姿,二维码在相机检测范围内检测成功,则进行下一步。若aruco 码不在相机视野范围内或部分在视野外,检测不到,则一直等到aruco 码完全在相机视野范围内且能检测成功,再进行下一步。

(3)如果Samples 对话框中显示了有用的信息,则表明第一个点已经被标定。

(4)重复执行步骤(2)和步骤(3),直至 17 个点全部标定完毕。

(5)界面2 中Result 对话框中会出现结果。

4.2 物体标定实验

相机相对于目标物体的TF 坐标转换关系为:camera_color_optical_frame到aroce_marker_frame。在抓取节点应用中,通过TF 转换可以获得机械臂的坐标系相对于目标物体的转换关系:base_link到aroce_marker_frame。相机与机械臂基坐标系的TF 转换见表1 所列,marker 在相机坐标系下的位姿终端打印信息如图6所示。

表1 位姿信息

图6 终端打印信息

4.3 机械臂抓取实验

在实验平台进行抓取测试,验证抓取实验的可行性。在测试前,通过ROS 系统的Moveit!软件实现机械臂的运动规划和运动空间限制。首先对机械臂正逆运动学进行分析,完成机械臂的运动规划并为运动空间限制提供基础,通过在move_group中设置逆解算法进行机械臂末端夹爪到目标物体的路点轨迹规划。抓取目标物体过程如图7所示。实验测试机械臂对水瓶的检测、抓取以及放置,机械臂在固定区域内完成50 次抓取测试,从目标检测成功到水瓶被抓取再到放置算一次成功抓取。整个抓取过程为开环抓取,得到目标物体位置之后,进行抓取操作,机械臂从初始姿态到抓到目标物体平均用时 12 s,放置用时 6 s,机械臂回到初始位姿等待下一次检测,用时 8 s,整体抓取时间较长,但不影响实验目的。抓取结果见表2 所列。

图7 抓取目标物体过程

表2 抓取结果

本实验对特定的物体水瓶共抓取了50 次,抓取成功率为82%,抓取失败的原因有:机械手抓取目标物体表面呈现摩擦力较小,没有更好的适应力;水瓶位置放置偏或不能到达机械臂可操作范围,机械臂无法规划出运动轨迹。

标定过程可能会受相关硬件及环境等条件因素的影响,所以标定结果可能存在一定的误差,标定完成后可以通过获取物体在相机坐标下的位姿,然后转换到机械臂下的位姿进行调试,存在误差可以后续在程序中进行补偿计算。

5 结语

本文设计的基于双目视觉抓取实验基本上实现了预期的效果,完成了手眼标定、物体识别定位抓取等操作,通过在ROS 操作系统平台实现相机和机械臂的坐标转换,结合目标检测以及路径规划相关算法,最终实现目标物体的抓取。未来将进一步探索人类视觉的三维融合及其产生的机理,为特定场景设置一些限制条件和匹配模式,以此来提升基于视觉的目标识别的准确性、及时性,同时拓宽匹配规范和算法架构。

猜你喜欢

手眼位姿标定
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
船载高精度星敏感器安装角的标定
小型四旋翼飞行器位姿建模及其仿真
基于Harris-张正友平面标定法的摄像机标定算法