Application of Visual Servo in Tracking and Grasping Moving Target
文章概括
引用:
@inproceedings{nguyen2022application,
title={Application of Visual Servo in Tracking and Grasping Moving Target},
author={Nguyen, Duc Tam-Hong and Nguyen, Vinh-Hao},
booktitle={2022 International Conference on Control, Robotics and Informatics (ICCRI)},
pages={83--87},
year={2022},
organization={IEEE}
}
Nguyen, D.T.H. and Nguyen, V.H., 2022, April. Application of Visual Servo in Tracking and Grasping Moving Target. In 2022 International Conference on Control, Robotics and Informatics (ICCRI) (pp. 83-87). IEEE.
原文: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9870710
代码、数据和视频:
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
摘要
本文提出了一种用于跟踪和抓取三维空间中运动目标的视觉伺服系统。该系统采用结合已知物体3D CAD模型的多线索特征视觉跟踪模块,用于提取RGB-D图像中的目标姿态。为进一步补偿系统延迟并估计物体运动,开发了扩展卡尔曼滤波器(EKF)。提出了一种两阶段控制器用于视觉伺服,第一部分能够控制夹爪跟踪目标,而第二部分是基于姿态的视觉伺服(PBVS)方案,用于抓取动作。实验结果表明,该系统能够执行实时跟踪和抓取运动目标的任务。
I. 引言
服务机器人在社会和自动化的发展中变得越来越受欢迎和重要 [ 1 ] [1] [1], [ 2 ] [2] [2]。服务机器人的主要功能之一是增强人机交互,以促进自动化。例如,人与机器之间的物体转移可以视为一项典型任务,该任务可以分解为跟踪和捕获物体。因此,使用相机进行机器人控制(视觉伺服)和物体识别变得必要。
视觉伺服(VS)研究多年来稳步发展。VS方法有两种主要分类:相机配置和输入信号。根据相机的排列,VS可以分为两种类型。眼在手(EIH)配置将相机直接放置在机器人上,而眼对手(ETH)配置将相机固定在空间中的位置 [ 3 ] [3] [3]。另一个基于误差信号分析的VS分类方法包括:基于图像的视觉伺服(IBVS)、基于姿态的视觉伺服(PBVS)和混合视觉伺服( 2 1 2 2\frac{1}{2} 221D VS) [ 4 ] [4] [4], [ 5 ] [5] [5]。IBVS直接使用图像像素来为机器人提供控制信号。同时,PBVS方法通过图像估计物体姿态来生成控制信号。 2 1 2 2\frac{1}{2} 221D VS方法结合了前两种方法来计算控制信号的不同部分。
为了在运动中执行视觉伺服的跟踪,研究通常使用预测器来找到物体的轨迹。根据 [ 6 ] [6] [6] – [ 9 ] [9] [9],将PBVS与3D运动估计器相结合的系统给出了最满意的结果。 [ 6 ] [6] [6]利用递归最小二乘估计器与PBVS相结合来捕捉飞行物体。 [ 7 ] [7] [7]将PBVS与卡尔曼滤波器(KF)结合使用,以处理图像数据中的噪声,并使用扩展卡尔曼滤波器(EKF)来估计目标的运动。同时, [ 8 ] [8] [8]通过增强运动跟踪,使用自适应扩展卡尔曼滤波器(AEKF)扩展了 [ 7 ] [7] [7]的工作。上述两个系统都应用于具有EIH配置和单目相机的5自由度(DOF)机器人。他们的工作集中在目标具有独特视觉特征和独特的目标抓取姿态的情况下。
随着RGB-D相机的出现,物体检测和视觉跟踪也提升到了一个新的水平。 [ 9 ] [9] [9]应用了PBVS并使用特殊的仿射几何技术,通过实时计算增强了RGB-D图像中物体的跟踪。同时, [ 10 ] [10] [10]使用了RGB-D多相机系统,用于同时观察整个工作区域,并利用立体视觉实现更精确的控制。本研究研究了一种基于ETH配置的PBVS系统在6自由度(DOF)臂上抓取运动物体的任务中的表现。目标可以从机器人工作空间外的任意位置开始。此外,基于给定3D CAD模型的多特征框架用于RGB-D图像的视觉跟踪,同时使用EKF来估计物体的轨迹。设计了一种基于两个特定区域的两阶段机器人控制器,以确保机器人能够捕捉到运动目标。
本文其余部分组织如下:第二部分介绍了视觉模块,包括RGB-D视觉跟踪系统和EKF。第三部分介绍了为跟踪和抓取任务提出的两阶段控制器。接下来,第四部分展示了系统有效性的实验结果。最后,第五部分以结论结束本文。
II. 运动目标的视觉跟踪
A. 视觉伺服系统概述
该视觉伺服系统的主要目标是捕捉一个在自由空间中运动且轨迹未知的物体。所提出系统的工作原理可以解释如下:
-
首先,视觉模块将在RGB-D图像中执行物体的识别和跟踪。该视觉跟踪框架利用多线索特征,如边缘、纹理和深度信息。通过结合已知的CAD模型,提取目标的姿态,并进一步输入到扩展卡尔曼滤波器(EKF)中进行运动估计。
-
其次,根据目标姿态和夹爪姿态选择物体的抓取姿态。期望的抓取姿态用于所提出的基于两个不同区域的两阶段机器人控制器。在该控制器中,第二个区域被定义为机器人的工作空间,而第一个区域是工作空间外的体积。
-
当期望的抓取姿态位于第一个区域时,执行控制器的第一阶段,称为瞄准跟踪控制。在这一阶段,机器人最后三个旋转关节被驱动,使得夹爪跟踪物体。当抓取姿态进入第二个区域时,控制器切换到第二阶段,该阶段用于根据PBVS方案将夹爪移向抓取姿态。
-
最后,当夹爪接近物体并且满足抓取条件时,夹爪闭合以抓取目标。图1展示了所提系统的整体算法。
图1:视觉伺服系统的算法
B. 多特征视觉跟踪模块
如上所述,视觉模块利用多个特征根据已知的CAD模型在RGB-D图像中跟踪目标物体,基于 [ 11 ] [11] [11]。在本研究中,使用Realsense D435相机捕获颜色和深度信息,并使用三个特征进行视觉跟踪。前两个特征是来自颜色通道的目标边缘和纹理。边缘特征通过使用运动边缘跟踪器 [ 11 ] [11] [11]检测,而纹理特征则通过应用SIFT跟踪器 [ 12 ] [12] [12]进行跟踪。此外,密集深度特征在我们的框架中被使用,以提供对图像噪声的鲁棒性。视觉系统通过ViSP库(C++) [ 13 ] [13] [13]实现,以提供高效的计算。
C. 扩展卡尔曼滤波器
视觉跟踪模块的输出是目标在当前图像中的姿态。为了补偿视觉伺服系统中的延迟,实施了扩展卡尔曼滤波器(EKF)。运动物体的动态模型基于 [ 14 ] [14] [14],将运动模型分为两部分:平移模型和姿态模型。首先,目标运动的平移模型是一个恒定加速度模型:
{ p k = p k − 1 + v k − 1 Δ t + 1 2 a k − 1 ( Δ t ) 2 + w p v k = v k − 1 + a k − 1 Δ t + w v a k = a k − 1 + w a \begin{equation*}\begin{cases}\mathbf{p}_k=\mathbf{p}_{k-1}+\mathbf{v}_{k-1}\Delta t+\frac{1}{2}\mathbf{a}_{k-1}(\Delta t)^{2}+\mathbf{w}_p\\\mathbf{v}_k=\mathbf{v}_{k-1}+\mathbf{a}_{k-1}\Delta t+\mathbf{w}_v\\\mathbf{a}_k=\mathbf{a}_{k-1}+\mathbf{w}_a\end{cases}\tag{1}\end{equation*} ⎩ ⎨ ⎧pk=pk−1+vk−1Δt+21ak−1(Δt)2+wpvk=vk−1+ak−1Δt+wvak=ak−1+wa(1)
其中, Δ t \Delta t Δt是采样时间。而 p k p_k pk、 v k v_k vk和 a k a_k ak分别是平移模型的位移、速度和加速度向量。此外, w p w_p wp、 w v w_v wv和 w a w_a wa是模型中的相应噪声向量。接下来,姿态模型选择为一个恒定角速度模型,并使用四元数表示:
{ q k = [ cos ( A ) I 4 x 4 + 2 ∣ ω k − 1 ∣ sin ( A ) Ω ( ω k − 1 ) ] q k − 1 + w q ω k = ω k − 1 + w ω \begin{equation*}\begin{cases}\mathbf{q}_k=\left[\cos(A)I_{4x4}+\frac{2}{|\omega_{k-1}|}\sin(A)\Omega(\omega_{k-1})\right]\mathbf{q}_{k-1}+\mathbf{w}_q\\\omega_{k}=\omega_{k-1}+\mathbf{w}_\omega\end{cases}\tag{2}\end{equation*} {qk=[cos(A)I4x4+∣ωk−1∣2sin(A)Ω(ωk−1)]qk−1+wqωk=ωk−1+wω(2)
其中 A = ∣ ω k − 1 ∣ Δ t 2 A = \frac{| \omega_{k-1} | \Delta t}{2} A=2∣ωk−1∣Δt, q k q_k qk是四元数向量, ω k \omega_k ωk是角速度, w q w_q wq和 w ω w_\omega wω是过程噪声向量。函数 Ω ( ω k ) \Omega(\omega_k) Ω(ωk)进一步定义为:
Ω ( ω k ) = [ 0 ω z − ω y ω x − ω z 0 ω x ω y ω y − ω x 0 ω z − ω x − ω y − ω z 0 ] \begin{equation*}\Omega(\omega_{k})=\begin{bmatrix}0&\omega_{z}&-\omega_{y}&\omega_{x}\\-\omega_{z}&0&\omega_{x}&\omega_{y}\\\omega_{y}&-\omega_{x}&0&\omega_{z}\\-\omega_{x}&-\omega_{y}&-\omega_{z}&0\end{bmatrix}\tag{3}\end{equation*} Ω(ωk)= 0−ωzωy−ωxωz0−ωx−ωy−ωyωx0−ωzωxωyωz0 (3)
因此,EKF的平移动态和测量模型为:
{ x 1 , k = [ p k v k a k ] = F 1 , k − 1 x 1 , k − 1 + w 1 , k − 1 z 1 , k = [ p k ] = G 1 , k x 1 , k + v 1 , k \begin{equation*}\begin{cases}\mathbf{x}_{1,k}=\begin{bmatrix}\mathbf{p}_k\\\mathbf{v}_k\\\mathbf{a}_k\end{bmatrix}=F_{1,k-1}\mathbf{x}_{1,k-1}+\mathbf{w}_{1,k-1}\\\mathbf{z}_{1,k}=[\mathbf{p}_k]=G_{1,k}\mathbf{x}_{1,k}+\mathbf{v}_{1,k}\end{cases}\tag{4}\end{equation*} ⎩ ⎨ ⎧x1,k= pkvkak =F1,k−1x1,k−1+w1,k−1z1,k=[pk]=G1,kx1,k+v1,k(4)
其中 G 1 k = [ I 3 × 3 0 3 × 3 0 3 × 3 ] G_{1k} = \begin{bmatrix} I_{3 \times 3} & 0_{3 \times 3} & 0_{3 \times 3} \end{bmatrix} G1k=[I3×303×303×3], F 1 F_1 F1基于(1), z 1 k z_{1k} z1k是状态向量 x 1 , k x_{1,k} x1,k的测量向量。此外, w 1 k − 1 w_{1k-1} w1k−1和 u 1 , k u_{1,k} u1,k是模型和测量噪声向量。接下来,EKF中的姿态模型为:
{ x 2 , k = [ q k ω k ] = f 2 ( x 2 , k − 1 ) + w 2 , k − 1 z 2 , k = [ q k ] = G 2 , k x 2 , k + v 2 , k \begin{equation*}\begin{cases}\mathbf{x}_{2,k}=\begin{bmatrix}\mathbf{q}_k\\\boldsymbol{\omega}_k\end{bmatrix}=f_{2}(\mathbf{x}_{2,k-1})+\mathbf{w}_{2,k-1}\\\mathbf{z}_{2,k}=[\mathbf{q}_k]=G_{2,k}\mathbf{x}_{2,k}+\mathbf{v}_{2,k}\end{cases}\tag{5}\end{equation*} ⎩ ⎨ ⎧x2,k=[qkωk]=f2(x2,k−1)+w2,k−1z2,k=[qk]=G2,kx2,k+v2,k(5)
其中 f 2 ( x 2 , k − 1 ) f_2(x_{2,k-1}) f2(x2,k−1)是基于(2)–(3)的非线性方程, G 2 , k = I 4 × 4 0 4 × 3 x 2 , k z 2 , k G_{2,k} = I_{4 \times 4} 0_{4 \times 3} x_{2,k} z_{2,k} G2,k=I4×404×3x2,kz2,k是状态和测量向量, w 2 k − 1 w_{2k-1} w2k−1和 u 2 , k u_{2,k} u2,k是它们对应的噪声向量。
III. 两阶段机器人控制器
如第II.A节所述,两个阶段的控制器是对应于两个不同区域实现的。如果期望的抓取姿态在机器人工作空间外,执行第一阶段(瞄准跟踪控制)来控制夹爪跟踪目标。相反,执行第二阶段(PBVS)来控制机器人抓取物体。
实施该控制器有两个主要原因。首先,当抓取姿态位于第一个区域时,目标超出了机械臂的可达范围。其次,通过使用瞄准跟踪控制,目标是为夹爪与目标之间创建一个最优的接近角度。因此,第二阶段的轨迹应该是一条笛卡尔线。
在本工作中, T i j = [ R i j t i j 0 1 × 3 1 ] T^{j}_{i} = \begin{bmatrix} R^{j}_{i} & t^{j}_{i} \\ 0_{1 \times 3} & 1 \end{bmatrix} Tij=[Rij01×3tij1] 表示变换矩阵,而 R l J R^{J}_{l} RlJ和 t l J t^{J}_{l} tlJ分别是从框架 i i i到框架 j j j的旋转矩阵和平移向量。同时,设 6 6 6为关节位置向量,当前夹爪姿态是通过正向运动学(FK)函数计算的,如下所示:
T gripper robot = T 6 0 ( θ ) = T 1 0 T 2 1 T 3 2 T 4 3 T 5 4 T 6 5 \begin{equation*}T_{\text{gripper}}^{\text{robot}}=T_{6}^{0}(\boldsymbol{\theta})=T_{1}^{0}T_{2}^{1}T_{3}^{2}T_{4}^{3}T_{5}^{4}T_{6}^{5}\tag{6}\end{equation*} Tgripperrobot=T60(θ)=T10T21T32T43T54T65(6)
图2:a) 机器人MotoMini,b) 机器人示意图与DH参数
图2a展示了本文使用的实际MotoMini机器人。同时,图2b中分配给机器人每个关节的DH参数列举如下(单位为毫米): a 1 = 20 a_1 = 20 a1=20, d 1 = 103 d_1 = 103 d1=103, a 2 = 165 a_2 = 165 a2=165, d 4 = 165 d_4 = 165 d4=165和 d 6 = 135 d_6 = 135 d6=135。
A. 第一阶段:瞄准跟踪控制
由于在这一阶段机器人无法到达期望的抓取姿态,因此计算一个新的期望姿态。控制最后三个关节,使得夹爪绕腕部中心旋转,以接近这个新的姿态。
参数 d 6 d_6 d6表示机器人腕部中心到夹爪的距离。因此,可以通过设定 d 6 = 0 d_6 = 0 d6=0并计算 ( 6 ) (6) (6)来确定腕部中心 t c e n t e r r o b o t t^{robot}_{center} tcenterrobot。然后,可以通过连接 t c e n t e r r o b o t t^{robot}_{center} tcenterrobot和 t o b j e c t r o b o t t^{robot}_{object} tobjectrobot的直线 l c o r o b o t l^{robot}_{co} lcorobot计算期望位置 t p o s e r o b o t t^{robot}_{pose} tposerobot:
t pose robot = l c o robot ( d 6 ) = t center robot + t center robot − t object robot d 6 \begin{equation*}\mathbf{t}_{\text {pose }}^{\text {robot }}=l_{c o}^{\text {robot }}\left(d_{6}\right)=\mathbf{t}_{\text {center }}^{\text {robot }}+\mathbf{t}_{\text {center }}^{\text {robot }}-\mathbf{t}_{\text {object }}^{\text {robot }} d_{6}\tag{7}\end{equation*} tpose robot =lcorobot (d6)=tcenter robot +tcenter robot −tobject robot d6(7)
期望姿态和物体姿态的旋转矩阵分别为 R p o s e r o b o t = [ x p o s e r o b o t y p o s e r o b o t z p o s e r o b o t ] R^{robot}_{pose} = [x^{robot}_{pose} \, y^{robot}_{pose} \, z^{robot}_{pose}] Rposerobot=[xposerobotyposerobotzposerobot]和 R o b j e c t r o b o t = [ x o b j e c t r o b o t y o b j e c t r o b o t z o b j e c t r o b o t ] R^{robot}_{object} = [x^{robot}_{object} \, y^{robot}_{object} \, z^{robot}_{object}] Robjectrobot=[xobjectrobotyobjectrobotzobjectrobot]。为了使夹爪与目标对准, x p o s e r o b o t x^{robot}_{pose} xposerobot和 x o b j e c t r o b o t x^{robot}_{object} xobjectrobot应该彼此平行。因此,期望姿态的方向部分计算为:
Z pose robot = ( t center robot − t object robot ) / ∣ t center robot − t object robot ∣ y pose robot = Z pose robot × X object robot X pose robot = y pose robot × Z object robot \begin{align*}\mathbf{Z}_{\text{pose}}^{\text{robot}}=(\mathbf{t}_{\text{center}}^{\text{robot}}-\mathbf{t}_{\text{object}}^{\text{robot}})/|\mathbf{t}_{\text{center}}^{\text{robot}}-\mathbf{t}_{\text{object}}^{\text{robot}}|\\\mathbf{y}_{\text{pose}}^{\text{robot}}=\mathbf{Z}_{\text{pose}}^{\text{robot}}\times\mathbf{X}_{\text{object}}^{\text{robot}}\\\mathbf{X}_{\text{pose}}^{\text{robot}}=\mathbf{y}_{\text{pose}}^{\text{robot}}\times\mathbf{Z}_{\text{object}}^{\text{robot}}\tag{8}\end{align*} Zposerobot=(tcenterrobot−tobjectrobot)/∣tcenterrobot−tobjectrobot∣yposerobot=Zposerobot×XobjectrobotXposerobot=yposerobot×Zobjectrobot(8)
接下来, R 3 0 R^{0}_{3} R30是通过关节位置反馈和 ( 6 ) (6) (6)获得的。最后三个关节的期望值 ( θ 4 d , θ 5 d , θ 6 d ) (\theta_{4d}, \theta_{5d}, \theta_{6d}) (θ4d,θ5d,θ6d)被确定为:
R d 6 3 = R 4 3 ( θ 4 d ) R 5 4 ( θ 5 d ) R 6 5 ( θ 6 d ) = ( R 3 0 ) − 1 R pose robot \begin{equation*}R_{d6}^{3}=R_{4}^{3}(\theta_{4d})R_{5}^{4}(\theta_{5d})R_{6}^{5}(\theta_{6d})=(R_{3}^{0})^{-1}R_{\text{pose}}^{\text{robot}}\tag{9}\end{equation*} Rd63=R43(θ4d)R54(θ5d)R65(θ6d)=(R30)−1Rposerobot(9)
图3展示了第一阶段新期望姿态的设置。该姿态位于直线 l r o b o t c o l_{robotco} lrobotco上,距离腕部中心 d 6 d_6 d6。其方向基于 ( 8 ) (8) (8)进行了正确定位,蓝色和红色箭头分别表示 z z z和 x x x向量。此外,当机器人接近这个期望姿态时,夹爪将与目标形成一个最优的接近角度(即一条直线)。
图 3: 目标跟踪控制的理想姿势
B. 第二阶段:基于位置的视觉伺服用于抓取
变换 T o b j e c t c a m T^{cam}_{object} Tobjectcam(从物体坐标系到相机坐标系)通过EKF和视觉系统进行预测。同时, T c a m r o b o t T^{robot}_{cam} Tcamrobot表示从相机到机器人坐标系的变换。 T g r i p p e r r o b o t T^{robot}_{gripper} Tgripperrobot通过 ( 6 ) (6) (6)计算得到。期望的抓取姿态在物体坐标系中的变换 T g r a s p o b j e c t T^{object}_{grasp} Tgraspobject将在下一部分计算。PBVS方案利用这些矩阵计算期望的平移和方向速度 V r o b o t V_{robot} Vrobot和 ω r o b o t \omega_{robot} ωrobot。首先,误差矩阵 T g r a s p g r i p p e r T^{gripper}_{grasp} Tgraspgripper通过以下方式获得:
T grasp gripper = [ R grasp gripper ( k , θ ) t grasp gripper 0 1 × 3 1 ] = T gripper robot − 1 T cam robot T object cam T grasp object \begin{align*}T_{\text{grasp}}^{\text{gripper}}&=\begin{bmatrix}R_{\text{grasp}}^{\text{gripper}}(\mathbf{k},\theta)&\mathbf{t}_{\text{grasp}}^{\text{gripper}}\\0_{1\times 3}&1\end{bmatrix}\\&=T_{\text{gripper}}^{\text{robot}^{-1}}T_{\text{cam}}^{\text{robot}}T_{\text{object}}^{\text{cam}}T_{\text{grasp}}^{\text{object}}\tag{10}\end{align*} Tgraspgripper=[Rgraspgripper(k,θ)01×3tgraspgripper1]=Tgripperrobot−1TcamrobotTobjectcamTgraspobject(10)
其中 k , θ k, \theta k,θ是 R g r a s p g r i p p e r R^{gripper}_{grasp} Rgraspgripper的轴和角度分量。然后,期望速度的计算为:
[ ω robot = R gripper robot k 1 θ k V robot = R gripper robot [ k 2 t grasp gripper − k 1 θ k × t grasp gripper + t gripper robot ] ] . \begin{equation*}\begin{bmatrix}\omega_{\text{robot}}=R_{\text{gripper}}^{\text{robot}}k_{1}\theta\mathbf{k}\\\mathbf{V}_{\text{robot}}=R_{\text{gripper}}^{\text{robot}}[k_{2}\mathbf{t}_{\text{grasp}}^{\text{gripper}}-k_{1}\theta\mathbf{k}\times\mathbf{t}_{\text{grasp}}^{\text{gripper}}+\mathbf{t}_{\text{gripper}}^{\text{robot}}]\end{bmatrix}.\tag{11}\end{equation*} [ωrobot=Rgripperrobotk1θkVrobot=Rgripperrobot[k2tgraspgripper−k1θk×tgraspgripper+tgripperrobot]].(11)
其中 k 1 , k 2 k_1, k_2 k1,k2是PBVS方案的控制参数。它们是根据响应结果(稳态时间、超调百分比和稳态误差)手动调整的,当将PBVS法应用于机器人系统时,控制输入是预定义的静态目标姿态。最后,通过机器人的雅可比矩阵 J J J,可以计算期望的关节速度 θ ˙ d \dot{\theta}_d θ˙d:
θ ˙ d = J T ( J J T + λ 2 I ) − 1 [ V robot ω robot ] \begin{equation*}\dot{\boldsymbol{\theta}}_d=J^{T}(JJ^{T}+\lambda^{2}I)^{-1}\begin{bmatrix}\mathbf{V}_{\text{robot}}\\\omega_{\text{robot}}\end{bmatrix}\tag{12}\end{equation*} θ˙d=JT(JJT+λ2I)−1[Vrobotωrobot](12)
其中 λ \lambda λ是一个预定义的参数。
C. 抓取姿态选择
由于目标是一个矩形盒子且夹爪是平行型的,机器人应该在盒子的六个面之一上抓取目标。因此,抓取姿态应该提前选择。此外,期望的抓取姿态的方向应该使夹爪的法向量(x轴)大致平行于选择的面对应的盒子轴。
定义集合 { p l } , i ∈ { 1 , … , 6 } \{p_l\}, i \in \{1, \dots, 6\} {pl},i∈{1,…,6}为对应于盒子六个面的抓取点坐标。选择与直线 l c o r o b o t l^{robot}_{co} lcorobot和夹爪位置的距离最小的点作为期望的抓取点。抓取姿态的方向计算方式与 ( 8 ) (8) (8)类似。
图 4:选择抓取姿势
图4展示了抓取姿态选择方法的示例。为了说明,给盒子附加了一个坐标系。最初在图4a中,抓取姿态位于盒子的白色长面上。然后,当实验者旋转物体时,选择了另一个面作为期望的面,并在图4b中设置了新的抓取姿态。
IV. 实验结果
在本研究中,PC工作站为戴尔Inspiron 14笔记本,搭载Intel Core i5-7200 @ 2.50GHz,运行Ubuntu 18.04。本研究使用机器人操作系统(ROS) [ 15 ] [15] [15]来处理机器人与PC之间的多线程和通信。D435相机通过USB端口连接到PC,并通过ViSP库集成。图5展示了所提视觉伺服系统的架构。
图 5:视觉伺服系统
在实验过程中,目标(矩形盒子)从机器人工作空间外的一个任意姿态开始。实验者随后将目标沿着一个未知的3D轨迹移动,向机器人移动,以模拟人类与机器人之间物体转移的动作。当夹爪完成抓取目标时,实验停止。
图 6: a) 抓手和目标在三维空间中的三维轨迹 b) 机器人关节角度的时间历程
图6a展示了抓取运动目标实验中的结果轨迹。点1和点1’表示夹爪和目标的起始姿态。当目标不可达时(点2),执行控制器的第一阶段来跟踪物体(点2’),从而获得夹爪的期望接近角度。当期望的抓取姿态进入工作空间时(点3),PBVS方案启动抓取动作(点3’)。在点4时,抓取条件满足,夹爪成功抓取目标。此外,夹爪在此时正确地与盒子对准,因为夹爪和目标的x轴(红色轴)平行。
图6b展示了实验中关节值的时间历史。从0.3秒到8.4秒,抓取姿态不可达,最后三个关节通过瞄准跟踪控制被驱动。当机器人在剩余的测试时间内能够到达抓取姿态时,机器人臂通过PBVS方案进行控制。因此,夹爪的轨迹是到目标的笛卡尔线,如图6a所示。
图 7: 从另一个角度看实验
图7从不同角度展示了实验。在图7a中,视觉模块检测到工作空间外的物体。夹爪被控制来跟踪目标,当目标在自由空间中移动时,如图7b所示。图7c显示了机器人能够在工作空间内捕捉到物体。在实际系统中,所提系统能够以20 Hz的采样频率为机器人控制系统提供实时解决方案。
V. 结论
所提的视觉伺服系统能够在跟踪和抓取期望目标的任务中执行实时操作。多特征系统与已知CAD模型的结合提高了RGB-D图像中视觉跟踪的效率。此外,EKF能够补偿系统的时间延迟。控制器的第一阶段使夹爪能够在三维空间中跟踪物体,而第二阶段则通过PBVS控制机器人以最优的笛卡尔方式抓取目标。实验结果证明了所提的两阶段机器人控制器的有效性,以及EKF在所选任务中的运动估计性能提升。