1.引言
移动机器人在未知环境下的自动导航涉及环境感知、地图构建、机器人定位、路径规划等任务。同步定位与地图创建SLAM(simultaneous localization and mapping)根据传感器感知的信息对机器人的位姿和环境路标的位置信息进行概率估计,在估计机器人的位置的同时构建一个基于路标的环境地图,进而实现机器人在未知环境下的自动导航。这个概念自1986年在国际机器人和自动化会议上提出后,同步定位与地图重建研究取得了很大进展,尤其是基于激光扫描的SLAM算法在室内服务机器人、自动驾驶汽车等方面已经获得一些成功的应用。但是,激光扫描仪高昂的价格限制了其推广应用,很多学者因此研究基于摄像头的SLAM算法设计与实现。相比于激光扫描仪,视觉传感器具有价格低、信息量丰富等优势,因此更容易在低成本的机器人上使用。
基于视觉的SLAM算法计算复杂度较高,往往涉及大量的数据处理和存储工作,所以很多研究工作都是在通用计算机平台上进行。基于通用计算机的视觉SLAM在国外已取得了一些重要的成果,hartmann等人[1]利用Kinect摄像头和笔记本电脑实现了FAST SLAM算法。有基于单摄像头的SLAM[2,3],也有基于立体摄像机[4,5]和RGBD (Red-Green-Blue-Depth) 摄像头[6]的SLAM,但通用计算机存在着体积大、功耗高、需要不间断供电电源等问题,限制着视觉SLAM技术的实际应用。
目前在机器人应用领域,大量的工业机器人和服务机器人都采用嵌入式处理器。嵌入式计算机系统具有体积小、功耗低、抗干扰能力强等优点,基于嵌入式平台的视觉SLAM算法因此具有更大的市场和更广泛的应用价值。嵌入式平台的计算能力和存储资源相对于通用计算机比较受限制。因此,在嵌入式平台上实现SLAM算法往往需要在特征选取、特征关联、数据结构、算法运行速度方面精心考虑。
视觉SLAM算法的关键技术包括视觉特征提取、特征关联和定位与地图重建算法。其中视觉特
征要求光照稳定性好,且具有良好的尺度和旋转不变性。在SLAM算法中用得比较多的特征算子有SURF (Speeded-UpRobust Features)[7]和SIFT(Scale-invariantfeaturetransform)[8]算子。其中,SIFT算子具有良好的尺度不变性和光照稳定性,但是计算量太大,不适合用在嵌入式平台。Rublee 等人[12]提出的ORB (Oriented FAST and Rotated BRIEF) 特征算子是BRIEF(Binary Ro-bust Independent Elementary Feature)算子的改进,具有良好的旋转不变性、尺度不变性和抗噪能力,是SIFT算子的良好替代。
Kinect传感器是微软2010年推出的一款面向家庭娱乐的体感传感器。其工作原理是将红外结构光投射到物体对象上,经表面散射的反射光进入红外相机,然后根据采集到的红外光斑形状和位置计算出视场内的物体距离。Kinect既能获得深度图像,也能采集彩色RGB图像,其中深度图像包含了当前场景的空间距离信息。
2.硬件平台
本文选择实验室自行开发的一个四轮移动机器人平台改造后来完成视觉导航和定位实验。该移动机器人具有两个驱动轮和两个随动轮。移动机器人本体上除了DSP控制板外,还安装有多个红外开关和近距离超声传感器模块。Kinect传感器安装在机器人顶部,替代原来的模拟CCTV摄像头。整个系统的硬件框架如图1所示。
2.1控制器
该四轮移动机器人平台的控制系统由一块DSP主控板、两块DSP从控板、两个直驱伺服电机、1个舵机、摄像头以及多个红外和超声传感器模块组成。主控制器的任务包括导航、路径规划、避障、图像采集、通信等。从控制器负责电机的驱动控制以及红外超声等传感器的信息采集。主控板与从控板之间通过RS232串口交换数据。主控制器采用的是T1公司生产的DaVinci 系列的DM3730双核处理器。DM3730内部有1个Cortex-A8处理器和一个多媒体数字信号处理DSP内核,其中ARMCortex-A8处理器的主频为1GHz,DSP内核的主频是800MHz。另外,控制板还集成了512MBARM和512MBROM,具有较强的存储能力。主控板上装载了Ubuntu Linux
操作系统,方便软件的开发和调试。
两个从控制板都采用TMS320LF2407芯片作为处理器,分别实现电机的驱动控制和传感器信息的采集。TMS320系列处理器功耗低、性能稳定,能够满足电机驱动和传感器信号采集的要求。
暂无评论内容