机械臂作为一种作业机器人,不仅广泛用于工业领域,在服务领域也逐渐大显身手。机器人操作一般分为两类:一类为基于位置、速度或力的接触式静态操作;另一类为非接触式动态操作[1]。接触式操作有众多的研究,而非接触式动态操作由于机器人与目标不发生接触或者只是很少的时间发生接触,对目标的运动特性要求较高。非接触式动态操作包括机器人射箭、机器人打乒乓球、机器人打高尔夫球等[2-3]。
机器人瞄准也是一类非接触式动态操作。与机器人打乒乓球、机器人射箭不同,机器人瞄准的操作任务是通过移动激光光源使得激光光束瞄准靶标的中心,而激光本身并没有动力学特性,轨迹也不受重力的影响,在传输过程中时间可以忽略不计,但准确性要求更高。
机器人瞄准大致分为两步:一是对靶标进行精确的视觉检测;二是基于视觉反馈伺服完成对目标的瞄准。目前涌现了大量视觉检测方法,Tan等[4]提出了名为EfficientDet的目标检测器,在小目标的识别上取得了较好的效果。Zhu等[5]提出了一种学习已标记和未标记数据的自监督自集成RGB-D显著性检测网络,在更少的标注信息下完成RGB-D显著性目标检测。YOLO系列作为经典的目标检测算法,也被广泛改进并应用于各个领域。张震等[6]在深度分离卷积中使用Ghost卷积构建了新的主干模块,在保持模型精度的基础上提高了检测速度。该团队还尝试引入卷积注意力模块来进一步提高该模型的精度[7]。Li等[8]提出了一种基于内部伪标签迭代更新的端到端方法,有效解决了弱监督RGB-D显著目标检测问题。Carion等[9]实现了一个以Detection Transformer (DETR)为主要组成部分的新框架,其检测精度和Faster R-CNN几乎相当。Meng等[10]在DETR的基础上提出了Conditional DETR,解决了DETR训练收敛缓慢这个关键问题。但是,上述算法在实时性方面在推理时经常有所欠缺。
在视觉伺服方面,Dong等[11]提出了一种新的基于图像的视觉伺服控制器,通过优化一个多目标损失函数将机械臂末端执行器的运动方向限制在预定的范围内,因此,优化后的运动轨迹冗余运动明显减少。Ranganathan[12]设计了由鱼眼相机引导的机械臂与真人棋局对弈系统,采用Kanade-Lucas-Tomasi[13]方法实现了机械臂的视觉伺服。Paradis等[14]提出了深度间歇视觉伺服(deep intermittent visual servoing,IVS)框架,IVS在自动化外科手术的执行器转移中获得了较高的成功率。Al-shanoon等[15]提出了深度视觉伺服(deep visual servoing, DVS)框架,DVS是基于RGB相机的深度卷积神经网络与视觉伺服相结合的可靠框架。Al-shanoon等[16]还提出了一种用于目标姿态估计的卷积神经网络算法,并将其集成到3D视觉伺服系统中,使用单个摄像机实现了移动操作任务。Lee等[17]将基于深度学习的视觉伺服与基于力的操作基元动态序列相结合,完成了机器人装配任务。Zhong等[18]提出了一种自学习视觉伺服方法,能够使机械臂在非结构化环境中完成操作任务。Puang等[19]提出了一种新的基于学习和关键点的视觉伺服框架,只需在仿真环境中训练深度神经网络,训练后的模型可直接用于现实世界的视觉伺服任务。Ribeiro等[20]训练了一个卷积神经网络以执行视觉伺服控制,确保被抓取的物体始终保持在机械臂的视野范围内。
然而,目前的算法存在两个问题:一是基于深度学习的目标检测算法存在检测速度较慢等问题,影响了视觉伺服的控制周期和响应速度;二是基于图像的视觉伺服方法,当期望特征位置和实际特征位置很近时,收敛将变得缓慢,收敛时间较长。
本文主要针对上述问题提出改进的瞄准方法。首先,针对目标检测速度慢的问题,对经典的深度学习目标检测算法YOLOv4的Backbone中用于平衡速度和精度的CSPDarknet53部分进行裁剪以增加检测速度;其次,受图像目标点位于连接光心和图像点的三维射线方向上的启发,所使用的方法不通过驱动相机的移动使得图像目标实际坐标移动到期望位置,而是直接依据目标点图像坐标信息,通过反投影得到空间三维射线,并基于此射线构造期望的激光束坐标系,把这部分信息作为前馈量驱动机械臂的运动;最后,对机械臂进行微调,驱动激光发射器精确瞄准。
本文基于协作机械臂UR3e,通过单目视觉前馈实现对三维动态目标的检测和快速瞄准。
如图1所示,系统主要包括机械臂和可独立移动的靶标。此外,机械臂末端还配备了单目相机、光源和激光发射器。其中单目相机用于拍摄目标图像,为控制系统提供反馈信息输入。当环境太暗无法清晰成像时,光源用于提供补充光。激光发射器可以通过蓝牙远程控制,由软件触发,触发后可以发射激光束,完成瞄准的任务。
图1 系统硬件结构
Figure 1 System hardware structure
瞄准方法主要包括坐标系标定、目标检测、单目瞄准、前馈伺服4大模块,如图2所示。其中坐标系标定用于得到激光发射器与相机、相机与机械臂的相对位姿;目标检测用于检测瞄准目标,得到目标点相对于相机坐标系的位姿;单目瞄准用于根据期望的激光位姿和实际位姿之差计算当前机械臂末端的期望运动;前馈伺服将机械臂末端的期望运动转换为机械臂6个关节电机的控制指令,最终驱动机械臂控制激光发射器实现对目标的瞄准任务。
图2 3D目标瞄准系统的模块组成
Figure 2 Module composition of the 3D target aiming system
实现精确瞄准需要得到两个坐标系变换矩阵,首先是相机坐标系相对于机械臂末端坐标系的变换矩阵即手眼参数;其次是激光发射器坐标系相对相机坐标系的变换矩阵。前者可通过Danilidis的手眼标定算法[21]来获取;针对后者,本文在张氏相机标定算法[22]基础上提出如下新的外部参数标定方法。
具体方法如图3所示,保持棋盘格不动,手动移动机械臂在不同的位姿,使得在每个位姿下激光器都瞄准棋盘格的某一个具体的点。通过建立这些点同时在棋盘格坐标系、相机坐标系及激光坐标系下的约束,完成激光坐标系和相机坐标系之间的标定。
图3 不同坐标系之间的约束关系
Figure 3 Constraint relationships among different coordinate systems
CTL表示相机坐标系与激光发射器坐标系之间待求解的变换矩阵,如式(1)所示:
(1)
式中:CRL为旋转分量;COL为平移分量。作为单位向量,CXL、CYL、CZL相互正交:
(2)
在图 3 中,棋盘格的单个方格的边长为30 mm。当激光发射器发射的激光束刚好照射到棋盘角点位置时,有:
COL-CiPi=λiCZL。
(3)
在每次观测中,相机的中心点坐标可能会发生变化,因此增加了下标i。同时,即使下标发生变化,COL、CZL分别为未知待标定的平移量和z轴方向矢量,它们不会随着相机位姿变化而变化。这里CiPi为棋盘角点Pi在相机坐标系中的坐标,满足:
CiPi=CiTbbPi。
(4)
式中:CiTb表示相机坐标系与棋盘格坐标系之间的变换矩阵, 可以通过张氏相机标定算法[22]来获得;bPi为棋盘角点在自身棋盘格坐标系中的坐标,可以根据棋盘格的尺寸得到,每个点的z轴方向坐标值为零。
由于同方向的向量叉乘结果为0,式(3)可以改写为
(5)
式(5)可转换为CZLxCOLy、CZLxCOLz、CZLyCOLx、CZLyCOLz、CZLzCOLx、CZLzCOLy、CZLx、CZLy、CZLz等变量的线性方程组:
AX=0。
(6)
式(6)中有3个方程,5个独立未知数。实际操作中选取i=1,2,…,10,共10个点,如图3所示,这些点尽可能覆盖棋盘格的横坐标和纵坐标,并采用DLT[23]联立式(6)和式(2)进行求解。
由于光照、距离等不可控因素,实际环境往往非常复杂,传统算法的泛化能力较弱。并且对于移动目标,检测算法耗时更少,因此,本文结合了深度学习算法来检测圆心。
为了提高算法的准确性和速度,以YOLOv4[24]为基础,对其网络结构进行了一定的修改。YOLOv4的网络结构主要包括3个部分:Backbone、Neck和Head。作为图像特征提取的关键模块,Backbone的设计需要根据任务要求权衡精度和速度。在YOLOv4中,这部分使用了CSPDarknet53[24]模型。作为融合不同尺寸特征图特征信息的重要模块,Neck利用了SPP(spatial pyramid pooling)[25]和PAN(path aggregation network)[26]。作为图像特征预测、生成边界框及预测类别的模块,Head 融合先验值并根据离散特征尺度的推理输出预测最终结果。图4为修改后的 YOLOv4 算法的网络结构。首先,对于每个CSPDarknet网络,Conv2d_BN_Mish单元数从5个减少到2个,省略了特征拼接操作。因此,对于每个下采样模块,除了残差单元外,还添加了两个卷积操作;其次,卷积核通道数从64个减少到32个。这些操作大大减少了需要优化的参数数量和计算量。
图4 Lite YOLOv4 网络结构
Figure 4 Lite YOLOv4 network structure
图5为目标点相对于激光坐标系的俯仰方位。如图5所示,一般来说,在瞄准目标点M之前,首先需要获取其3D坐标。这样就可以很容易地求解出相对激光坐标系的俯仰方位角,然后控制激光发射器的位姿,使点M位于新的激光坐标系的z轴方向上。
图5 目标点相对于激光坐标系的俯仰方位
Figure 5 The elevation angle of the target point relative to the laser coordinate system
然而,三维目标需要采用双目立体相机,单目相机难于获得三维坐标。由于所观测的目标为2D目标,采用基于图像的视觉伺服存在精度不高的问题。同时,当期望图像位置与实际图像位置距离较近时,收敛速度会变慢,而为了保证精度不得不花较长时间等待以得到较小的伺服误差。
本论文提出一种新的单目瞄准算法,该算法无须获得如图5所示的目标的三维坐标,而是受到图5的启发,视觉瞄准所需要获得的并不是P点,只要获得经过P点的空间三维射线,就可以操作机械臂,使激光瞄准器的z轴和这条空间三维射线重合即可。通过图像坐标点反投影求解,恰好可以得到一条三维空间的射线,以这条射线作为激光器瞄准的z轴,则可以实现视觉前馈的三维瞄准。
图6为单目瞄准算法中的映射关系。在图6中,CTCd为要求解的相机位姿偏移矩阵;f为焦距;a为OA2的长度;b为OA3的长度。A1(u0,v0)为成像面中心的像素坐标,A3(u3,v3)为目标板中心点的像素坐标。此外,δx、δy表示像素的物理尺寸。所以瞄准过程可以分为以下两个步骤。
图6 单目瞄准算法中的映射关系
Figure 6 Mapping relationship in monocular aiming algorithm
首先,将相机坐标系绕y轴旋转角度θ,由于ΔOA1A2为直角三角形,有:
(7)
式中:δx为单个像素x方向的物理尺寸。
其次,相机坐标系围绕先前更新的x轴旋转角度φ,在ΔOA2A3中,φ可以根据余弦定律得到
(8)
其中,
(9)
CTCd包含两部分:旋转分量Rxyz和平移分量txyz:
(10)
平移分量txyz可以设置为零向量:
(11)
结合式(9),求解得旋转分量Rxyz:
Rxyz(φ,θ,0)=Rz(0)Ry(θ)Rx(φ)。
(12)
最后,发送期望的末端执行器位姿命令WTe1d以实现激光发射器坐标系中的瞄准过程:
WTe1d=WTCCTCdLTCCTe1。
(13)
该目标反投影视觉前馈瞄准算法如下。
算法1 目标反投影视觉前馈瞄准算法。
① 标定相机和激光器之间的相对位姿CTL:
在平面标定棋盘格内选取10个或以上的点;
for 每一个待标定点 do
根据棋盘格尺寸确定其在棋盘格坐标系下的空间坐标;
手动移动机械臂,让激光瞄准待标定角点;
根据棋盘格计算相机相对棋盘格的外参数矩阵CiTb;
根据10个点所得到的参数获得式(6)中A的表达式,并采用DLT方法求解出外参数CTL;
② 采用Lite YOLOv4获得目标的中心点坐标(u, v);
③ 根据式(7)、式(8)计算俯仰角θ和方位角φ;
④ 根据式(11)、式(12)计算相机位姿偏移矩阵CTCd;
⑤ 根据式(13)计算机械臂末端执行器期望位姿WTe1d;
⑥ 由机械臂末端执行器期望位置执行位置指令到达指定点并发射一次激光。
在本文实验中,机械臂采用UNIVERSAL ROBOTS的UR3e;相机采用allied vision相机,最高图像分辨率为1 936×1 216像素,最高帧率可达220 帧/s,搭配6 mm定焦镜头;其他连接及辅助部件见本文第1节系统组成。实验运行的计算机硬件配置GPU为NVIDIA TITAN V,CPU为Intel(R) Xeon(R) Silver 4114 CPU@2.20 GHz;软件运行为Ubuntu 18.04操作系统、RT Preempt实时系统内核;深度学习环境为CUDA 11.3、darknet;软件各模块基于ROS melodic完成各模块的实现和集成。
本文利用基于霍夫变换的传统检测算法[27]、原始YOLOv4算法[24]和本文所提修改后的Lite YOLOv4算法进行对比实验。实验采用的数据集包括了在不同角度、不同距离、异常光照条件下的400张包含目标板的实际场景图像,按照9∶1的比例分配给训练集和验证集进行训练。输入模型的图片大小608×608×3像素。在数据集中随机采集22张图像作为测试集,图7显示了3种检测算法的平均单帧检测时间和平均检测误差。
图7 目标检测算法的时间与精度对比
Figure 7 Comparison of time and accuracy of target detection algorithms
平均检测误差中使用的圆心坐标真值通过人工标注得到。如果检测结果在目标板上的圆圈内,则认为检测过程成功。如果检测失败,则该图像将不计入平均检测误差的计算公式。
表1为目标检测算法结果对比。如表1所示,对于传统的目标检测算法[27],单帧图像的平均检测时间为47.218 ms,检测帧率21.18 帧/s,检测成功率为90.91%,平均检测误差为3.838个像素点。对于原始的YOLOv4算法[24],单帧图像的平均检测时间为27.055 ms,检测帧率36.96 帧/s,检测成功率100%,平均检测误差为0.377个像素点。对于本文算法,单帧图像的平均检测时间为14.122 ms,检测帧率提升至70.81 帧/s,同时检测成功率保持100%,平均检测误差为0.341个像素点。
表1 目标检测算法结果对比
Table 1 Comparison of object detection algorithm results
算法单帧时间/ms检测误差/像素成功率/%传统算法[27]47.2183.83890.91YOLOv4算法[24]27.0550.377100.00本文算法14.1220.341100.00
为了验证单目瞄准算法的有效性,本文统一使用Lite YOLOv4算法进行目标检测,分别使用传统的基于图像的视觉伺服算法和单目瞄准算法进行瞄准实验。将目标板放置在21个不同位置进行对比实验,用来比较两种算法的响应时间和成功率。图8显示了两种瞄准算法的平均响应时间。对于每次瞄准实验,如果机械臂最终能够将激光束照射到目标板的圆圈内,则认为这个瞄准过程是成功的。
图8 两种瞄准算法的平均响应时间
Figure 8 Average response time of two aiming algorithms
对于视觉伺服算法,其瞄准过程的平均响应时间为4.934 s,成功率为 90.476%;而对于本文的单目瞄准算法,平均响应时间仅为0.611 s,瞄准成功率为95.238%。
本文分别进行了目标检测实验和实物瞄准实验。实验结果显示,本文所提出的Lite YOLOv4 算法在基本不降低检测精度的情况下,将检测帧率从 36.96 帧/s提高到 70.81 帧/s,速度约为原YOLOv4的两倍。本文提出的单目瞄准算法相比于传统的基于图像的视觉伺服算法,平均响应时间从4.934 s降为0.611 s;成功率从90.476%提高到95.238%。实验结果表明,本文方法可以通过单目视觉前馈很好地提高3D目标瞄准的速度和精度。
[1] MATHESON E, MINTO R, ZAMPIERI E G G, et al. Human-robot collaboration in manufacturing applications: a review[J]. Robotics, 2019, 8(4): 100.
[2] 王大浩, 平雪良. 基于规定性能的六自由度机械臂视觉伺服控制[J]. 传感器与微系统, 2022, 41(3): 104-108.WANG D H, PING X L. Six-degree-of-freedom manipulator visual servo control based on prescribed performance[J]. Transducer and Microsystem Technologies, 2022, 41(3): 104-108.
[3] LING X, ZHAO Y S, GONG L, et al. Dual-arm cooperation and implementing for robotic harvesting tomato using binocular vision[J]. Robotics and Autonomous Systems, 2019, 114: 134-143.
[4] TAN M X, PANG R M, LE Q V. EfficientDet: scalable and efficient object detection[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Piscataway: IEEE, 2020: 10778-10787.
[5] ZHU L, WANG X Q, LI P, et al. S3 net: self-supervised self-ensembling network for semi-supervised RGB-D salient object detection[J]. IEEE Transactions on Multimedia, 2023, 25: 676-689.
[6] 张震, 王晓杰, 晋志华, 等. 基于轻量化YOLOv5的交通标志检测[J]. 郑州大学学报(工学版), 2024, 45(2): 12-19.ZHANG Z, WANG X J, JIN Z H, et al. Traffic sign detection based on lightweight YOLOv5[J]. Journal of Zhengzhou University (Engineering Science), 2024, 45(2): 12-19.
[7] 张震, 陈可鑫, 陈云飞. 优化聚类和引入CBAM的YOLOv5管制刀具检测[J]. 郑州大学学报(工学版), 2023, 44(5): 40-45, 61.ZHANG Z, CHEN K X, CHEN Y F. YOLOv5 with optimized clustering and CBAM for controlled knife detection[J]. Journal of Zhengzhou University (Engineering Science), 2023, 44(5): 40-45, 61.
[8] LI J J, JI W, BI Q, et al. Joint semantic mining for weakly supervised RGB-D salient object detection[C]∥Proceedings of the 35th International Conference on Neural Information Processing Systems. New York: ACM, 2021: 11945-11959.
[9] CARION N, MASSA F, SYNNAEVE G, et al. End-to-end object detection with transformers[C]∥European Conference on Computer Vision. Cham: Springer, 2020: 213-229.
[10] MENG D P, CHEN X K, FAN Z J, et al. Conditional DETR for fast training convergence[C]∥2021 IEEE/CVF International Conference on Computer Vision (ICCV). Piscataway: IEEE, 2021: 3631-3640.
[11] DONG J X, ZHANG J. A new image-based visual servoing method with velocity direction control[J]. Journal of the Franklin Institute, 2020, 357(7): 3993-4007.
[12] RANGANATHAN G. An economical robotic arm for playing chess using visual servoing[J]. Journal of Innovative Image Processing, 2020, 2(3): 141-146.
[13] SHIRLEY D R A, RANJANI K, ARUNACHALAM G, et al. Automatic distributed gardening system using object recognition and visual servoing[C]∥Inventive Communication and Computational Technologies. Berlin: Springer, 2021: 359-369.
[14] PARADIS S, HWANG M, THANANJEYAN B, et al. Intermittent visual servoing: efficiently learning policies robust to instrument changes for high-precision surgical manipulation[C]∥2021 IEEE International Conference on Robotics and Automation (ICRA). Piscataway: IEEE, 2021: 7166-7173.
[15] AL-SHANOON A, LANG H X. Robotic manipulation based on 3-D visual servoing and deep neural networks[J]. Robotics and Autonomous Systems, 2022, 152: 104041.
[16] AL-SHANOON A, WANG Y J, LANG H X. DeepNet-based 3D visual servoing robotic manipulation[J]. Journal of Sensors, 2022, 2022: 3511265.
[17] LEE Y S, VUONG N, ADRIAN N, et al. Integrating force-based manipulation primitives with deep learning-based visual servoing for robotic assembly[C] ∥ICRA 2022 Workshop: Reinforcement Learning for Contact-Rich Manipulation. Piscataway:IEEE, 2022.
[18] ZHONG X G, SHI C Q, LIN J, et al. Self-learning visual servoing for robot manipulation in unstructured environments[C]∥International Conference on Intelligent Robotics and Applications. Cham: Springer, 2021: 48-57.
[19] PUANG E Y, PENG TEE K, JING W. KOVIS: keypoint-based visual servoing with zero-shot sim-to-real transfer for robotics manipulation[C]∥2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). Piscataway: IEEE, 2020: 7527-7533.
[20] RIBEIRO E G, DE QUEIROZ MENDES R, GRASSI V J. Real-time deep learning approach to visual servo control and grasp detection for autonomous robotic manipulation[J]. Robotics and Autonomous Systems, 2021, 139: 103757.
[21] DANIILIDIS K. Hand-eye calibration using dual quaternions[J]. The International Journal of Robotics Research, 1999, 18(3): 286-298.
[22] ZHANG Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334.
[23] SUTHERLAND I E. Three-dimensional data input by tablet[J]. Proceedings of the IEEE, 1974, 62(4): 453-461.
[24] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. (2020-05-23)[2024-08-15].https:∥doi.org/10.48550/arXiv.2004.10934.
[25] HE K M, ZHANG X Y, REN S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916.
[26] LIU S, QI L, QIN H F, et al. Path aggregation network for instance segmentation[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2018: 8759-8768.
[27] YUEN H, PRINCEN J, ILLINGWORTH J, et al. Comparative study of Hough Transform methods for circle finding[J]. Image and Vision Computing, 1990, 8(1): 71-77.