4.3 Kinect外部视觉定位

4.3 Kinect外部视觉定位

Kinect是微软公司开发的3D体感摄像机,开始用于体感游戏,目前广泛用于机器人视觉系统。Kinect外观如图4.5所示。

图4.5 Kinect外观

RGB彩色摄像头用于彩色图像的摄取,深度图像信息采用的是主动获取方式,红外发射器发射红外线,红外传感器对反射回来的红外线进行接收,通过对反射信息的处理,就能获得每个像素的深度值。Kinect是目前最便宜的三维深度摄像头。

为了精确获取四旋翼飞行器的位置信息,设计了一套基于Kinect的旋翼飞行机器人视觉定位系统。Kinect是一款RGB-D传感器,即在获得彩色图像的同时,通过对红外数据的处理获得图像中每个点的深度数据,配备了1 080 P的高清摄像头,采用专用的USB3.0端口传输数据,数据帧率最高可达50帧/秒。基于Kinect的外部视觉定位系统结构示意图如图4.6所示,在3 m×3 m×3 m 的室内空间中,搭建了实验平台,其中Kinect位于正中心的上方。Kinect利用光编码技术计算深度信息,通过USB3.0与主机相连,四旋翼飞行器通过蓝牙与主机通信,接收主机的控制指令和主机所计算的坐标数据。地面主机上运行使用跟踪定位软件,软件可以通过Camshift等算法跟踪安装在飞行器表面的彩色标记以及向飞行器发送彩色目标所在的位置信息,利用该视觉定位系统可以控制飞行器飞行到目标附近,并将目标所在的三维坐标信息输出给机械臂,操纵机械臂完成目标抓取作业。

Kinect所发出的红外散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说,空间中任意两处的散斑图案都是不同的。因此,根据物体上面的散斑图案,就可以计算这个物体距离Kinect平面的距离。第二代Kinect配置了1 080 P的2D彩色摄像头,水平视野达到70°,垂直视野达到60°。

Kinect坐标系的坐标原点位于彩色相机镜头的中心(见图4.7)。设彩色图像处理计算得到的物体重心在Kinect彩色图像中的坐标为(x,y),图像坐标的原点在图像的左上角,必须首先将图像坐标转换成以图像中心点为原点的坐标值(x 1,y 1),计算公式为:

图4.6 基于Kinect的外部视觉定位系统结构示意图

其中,H 和W 分别是图像分辨率的高和宽,H =920 dpi,W =1 080 dpi。

由于Kinect彩色摄像头的视野范围(FOV)为垂直60°和水平70°,由此可以求出FOV与像素的关系约是0.065°/pixel。进而可以求得图4.7中的水平转角θh 和竖直转角θv 如下。

图4.7 Kinect坐标系的侧视图与俯视图

然后根据Kinect深度信息z w,可以求得在Kinect坐标系中的目标坐标(x w,y w,z w),下标w表示世界坐标。

由此就完成了基于Kinect视觉系统的图像坐标系到世界坐标系的映射。再通过Camshift或其他检测追踪算法实时捕捉到无人机的图像,就可以基于此图像实时获取无人机在世界坐标系下的位置。该方法的好处是简单易懂,花费不高,精度准确,但局限性也是一目了然的,因为有许多地方并不适合安装外部视觉的摄像头。