第5期 贺超,等:采用Kinect的移动机器人目标跟踪与避障 .427. 信息获取的影响, 体感摄像机,它也可以在个人计算机上使用,目前支 本文利用Kinect代替传统测距传感器,构建移 持Kinect在个人计算机上使用的软件开发包有 动机器人目标跟踪与避障系统,利用基于统计的局 OpenNI以及微软公司提供的SDK,Kinect通过USB 部地图更新法解决了其在使用中存在的盲区问题和 接口与计算机连接.使用Kinect可以获得一幅分辨 噪声问题结合改进的人工势场避障算法[3】与基于 率为640×480的RGB彩色图像和一幅与之对应的 颜色信息的粒子滤波目标跟踪算法9),在差动驱 深度图像利用获得的深度信息,可以通过转换得到 动的轮式移动机器人上实现了目标跟踪的同时进行 相应环境的3-D模型,转换后的三维坐标系如图2, 动态避障 原点0为摄像机所在位置,Z轴正方向为摄像机正 1移动机器人与Kinect简介 前方。 RGB彩色摄像机 1.1移动机器人运动学模型 目前使用的移动机器人多为轮式差动驱动,其 在惯性坐标系下的运动学描述为 0 sg2 红外发射与接收 图2 Kinect及其图像坐标系 式中:x、y为移动机器人在全局参考系下的坐标,日 Fig.2 Kinect and its image coordinates 为移动机器人在全局参考系中的方向角,”为移动 由于Kinect摄像机的坐标系统与移动机器人 机器人直线移动速度,ω为移动机器人转动的角速 度.图1为移动机器人的惯性坐标系,其中X,、Y,确 使用的坐标系统不同,因此从Kinect获得的3-D坐 定了移动机器人的局部坐标系,X、Y确定了其世界 标需要经过转换才能保证与移动机器人坐标系统一 坐标系 致.具体的转换关系如图3所示,图中X、Y、Z为Ki- nect的3-D坐标系,X,、Y,为移动机器人局部坐标系」 10 图1移动机器人惯性坐标系 Fig.I Inertial coordinate system of the mobile robot 图3 Kinect与移动机器人坐标系对应关系 根据移动机器人全局坐标系与局部坐标系的 Fig.3 Coordinates relationship between Kinect and mobile robot 相应关系,可以将局部坐标系中的坐标转换为相对 因此,根据Kinect与移动机器人的坐标对应关 于全局坐标系的坐标.令坐标(x1,y)为机器人局部 系以及坐标转换方法,可以将由Kinect获取的移动 坐标系的坐标,并且已知移动机器人在全局坐标系 机器人局部坐标系的环境信息转换为移动机器人全 中的位置(xy,0),那么其相对于机器人全局坐 局坐标系下的环境信息。 标系的坐标(x。y)可由式(1)计算: 需要注意的是Kinect读取深度数据时存在盲 (x=x.+xcos 0.yisin 6., (1) 区,在实际的使用中,Kinect能够读取到深度数据的 (y=ye xisin 0 y cos 0. 有效范围约为600~5000mm,这就导致当障碍物进 1.2 Kinect 入到距离Kinect小于600mm的范围时,其位置信 Kinect是微软公司推出的一款用于X-OX360的 息不能有效地被获取.因此需要将障碍物的信息做信息获取的影响. 本文利用 Kinect 代替传统测距传感器ꎬ构建移 动机器人目标跟踪与避障系统ꎬ利用基于统计的局 部地图更新法解决了其在使用中存在的盲区问题和 噪声问题.结合改进的人工势场避障算法[3 ̄8] 与基于 颜色信息的粒子滤波目标跟踪算法[9 ̄11] ꎬ在差动驱 动的轮式移动机器人上实现了目标跟踪的同时进行 动态避障. 1 移动机器人与 Kinect 简介 1.1 移动机器人运动学模型 目前使用的移动机器人多为轮式差动驱动ꎬ其 在惯性坐标系下的运动学描述为 x y θ é ë ê ê ê ê ù û ú ú ú ú = cos θ 0 sin θ 0 0 1 é ë ê ê êê ù û ú ú úú v ω é ë ê ê ù û ú ú = vcos θ vsin θ ω é ë ê ê êê ù û ú ú úú . 式中:x、y 为移动机器人在全局参考系下的坐标ꎬθ 为移动机器人在全局参考系中的方向角ꎬv 为移动 机器人直线移动速度ꎬω 为移动机器人转动的角速 度.图 1 为移动机器人的惯性坐标系ꎬ其中 Xr、Yr确 定了移动机器人的局部坐标系ꎬX、Y 确定了其世界 坐标系. 图 1 移动机器人惯性坐标系 Fig.1 Inertial coordinate system of the mobile robot 根据移动机器人全局坐标系与局部坐标系的 相应关系ꎬ可以将局部坐标系中的坐标转换为相对 于全局坐标系的坐标.令坐标 (xlꎬyl) 为机器人局部 坐标系的坐标ꎬ并且已知移动机器人在全局坐标系 中的位置 (xcꎬycꎬθc)ꎬ 那么其相对于机器人全局坐 标系的坐标 (xg ꎬyg ) 可由式(1)计算: xg = xc + xl cos θc - yl sin θcꎬ yg = yc + xl sin θc + yl cos θc { . (1) 1.2 Kinect Kinect 是微软公司推出的一款用于X ̄OX360的 体感摄像机ꎬ它也可以在个人计算机上使用ꎬ目前支 持 Kinect 在个人计算机上使用的软件开发包有 OpenNI 以及微软公司提供的 SDKꎬKinect 通过 USB 接口与计算机连接.使用 Kinect 可以获得一幅分辨 率为 640×480 的 RGB 彩色图像和一幅与之对应的 深度图像.利用获得的深度信息ꎬ可以通过转换得到 相应环境的 3 ̄D 模型ꎬ转换后的三维坐标系如图 2ꎬ 原点 O 为摄像机所在位置ꎬZ 轴正方向为摄像机正 前方. 图 2 Kinect 及其图像坐标系 Fig.2 Kinect and its image coordinates 由于 Kinect 摄像机的坐标系统与移动机器人 使用的坐标系统不同ꎬ因此从 Kinect 获得的 3 ̄D 坐 标需要经过转换才能保证与移动机器人坐标系统一 致.具体的转换关系如图 3 所示ꎬ图中 X、Y、Z 为 Ki ̄ nect 的 3 ̄D 坐标系ꎬXr、Yr为移动机器人局部坐标系. 图 3 Kinect 与移动机器人坐标系对应关系 Fig.3 Coordinates relationship between Kinect and mobile robot 因此ꎬ根据 Kinect 与移动机器人的坐标对应关 系以及坐标转换方法ꎬ可以将由 Kinect 获取的移动 机器人局部坐标系的环境信息转换为移动机器人全 局坐标系下的环境信息. 需要注意的是 Kinect 读取深度数据时存在盲 区ꎬ在实际的使用中ꎬKinect 能够读取到深度数据的 有效范围约为 600~5 000 mmꎬ这就导致当障碍物进 入到距离 Kinect 小于 600 mm 的范围时ꎬ其位置信 息不能有效地被获取.因此需要将障碍物的信息做 第 5 期 贺超ꎬ等:采用 Kinect 的移动机器人目标跟踪与避障 427