前言
本篇开始学习视觉伺服内容。
基础概念
定义
所谓视觉伺服,就是通过摄像头输入的图像信息,控制机器人运动的过程。
分类
IBVS (Image-based visual servoing) :基于图像的视觉伺服控制。直接应用2D图像平面信息。
PBVS (Position-based visual servoing) :基于位置的视觉伺服控制。需要把图像信息投影到3D空间中。
相机位置
eye-in-hand 相机在臂末端
eye-to-hand 相机位置与臂位置固定
伺服目标
经典的视觉伺服目标误差函数为:
e
(
t
)
=
s
(
m
(
t
)
,
a
)
−
s
∗
{\bf e}(t)={\bf s}({\bf{m}}(t), {\bf a}) - \bf{ s*}
e(t)=s(m(t),a)−s∗
其中,
m
(
t
)
{\bf m}(t)
m(t)表示特定的图像信息,
a
\bf{a}
a表示系统参数,如相机内参等,
s
,
s
∗
\bf s, s*
s,s∗分别表示当前和期望的图像特征,如位置等。
IBVS中的 s \bf s s就是图像中的某些2D像素点信息,PBVS则是空间中的3D信息。
把上面的式子对时间求导:
e
˙
=
s
˙
\dot {\bf e}=\dot {\bf s}
e˙=s˙
而
s
\bf s
s又和相机的位置有关:
s
˙
=
L
s
v
c
,
L
s
=
L
e
\dot {\bf s} = \bf L_s v_c,L_s=L_e
s˙=Lsvc,Ls=Le
其中,
L
s
,
v
c
\bf L_s,v_c
Ls,vc分别表示相机位置与图像特征的关系矩阵(雅可比矩阵),以及相机(比如机械臂末端)的线速度和角速度。
于是最终就得到了经典的相机速度和伺服误差的关系:
e
˙
=
L
e
v
c
\dot {\bf e} = \bf L_e v_c
e˙=Levc
如果要使伺服误差指数级下降,就可以通过雅可比矩阵的伪逆,把控制律设置为:
v
c
=
−
λ
L
e
+
e
{\bf v_c} = -\lambda {\bf L_e^+ e}
vc=−λLe+e
后记
本篇是视觉伺服的最基础底层内容,后续会完成IBVS,PBVS,HYBRID算法的理论学习和代码实践。