张旭,姚善化
(安徽理工大学 电气与信息工程学院,安徽 淮南,232001)
室内定位的研究一直以来都是人们研究的热点,研究人员一直致力于寻找出室内环境下的定位解决方案,然而室内环境的布局差异较大,很难设计出一套适用于所有环境下的定位系统,不同环境下所采用的解决方案如:蓝牙、WiFi、ZigBee、超宽带等,也会因为所采用的方法和设施的差异存在各自的优缺点,很难成为室内定位的唯一解决方案。
近年来随着光通信技术的快速发展,将可见光用于室内定位的研究越来越多,目前在室内环境内,LED的使用越来越广泛,而且LED的成本低、寿命长、更节能。利用LED 光源来进行室内定位,可以直接利用现有的照明基础设施,通过人眼无法识别的快速开关的方法来调制发光二极管的强度,调制后的光可以被光敏二极管或相机的接收端所捕获,建立无线通信链路以此来实现室内定位[1-5],利用光通信来定位没有电磁干扰,频谱资源丰富。然而采用这种方法需要为每个LED 光源配置额外的硬件来调制光源,使得定位系统的成本和复杂度增加,而未被调制的光源的光强是永恒和连续的,随着我们距离光源的远近不同,测量的光信号强度也会不同,以此来推断出接收器与光源的接近程度。采用未调制的光源可以大大降低定位的成本,文献[6]提出一种新的无器件可见光定位技术,它利用了由移动实体引起的环境光水平的变化,通过使用一个嵌入到室内环境中的人工势能场系统来定位目标,该系统不需要修改现有的基础设施,还采用了不需要校准数据的校准程序,大大降低了成本。文献[7]提出了一个通用的室内定位和导航框架,基于现有的基础照明设施,使用任何未修改的光源,智能手机作为接收器,使用在用户行走过程中获得的多个光强值作为位置标签,以最小化用户的工作量,同时采用粗粒度和细粒度相结合的定位方法,实现快速定位。文献[8]提出一种简单而鲁棒的定位方案,它使用未经修改的荧光灯作为位置标记和智能手机作为接收器,每个荧光灯都有一个固有的特征频率来作为一个鉴别特征,手机上集成一套采样、信号放大和编码优化机制,使手机能够捕捉及其微弱和高频的特征。本文研究了在单个光源和多个光源下使用未调制光进行定位的情况,采用卡尔曼滤波对移动机器人的运动轨迹进行优化[9-11],并通过实验仿真来验证使用未调制光进行定位的可行性。
通常情况下采用LED 光源作为发射端,光电探测器作为接收端,采用接收信号强度的方法来进行定位,光的传播模型服从朗伯辐射模型,如图1 所示。
图1 光定位模型
光电探测器的接收信号强度
式中Pt是LED的发射功率,Ar为光电探测器的有效接收面积,m为朗伯发射级数,d为LED 与光电探测器之间的直线距离,φ为发射角,ϕ为入射角,ϕc为接收视场角,入射角必须要小于等于接收视场角,Ts(ϕ)为接收器的带通光滤波器透射率,g(ϕ)为非成像聚光器的增益。
传统的采用三边或者三角测量的可见光室内定位方法,通常需要3 个LED 光源才能够实现定位,在一些光源部署稀疏的情况下往往无法实现定位。在这里只研究使用1 个LED 光源来进行定位的情况,单个光源可以有效的解决像走廊这样LED 布置稀疏的狭窄空间,同时采用的是未调制的光源来进行定位,可以避免在多个光源下的区间干扰以及光源区分不清的问题[12]。
当使用1 个LED 光源作为发射器时,其光功率分布如图2 所示。只使用1 个光电探测器无法完成定位,需要在机器人上安装多个光电探测器来测量光信号强度,将测量到的光信号强度值根据朗伯辐射模型计算出光电探测器到LED 光源的距离,然后采用三边测量的方法就可以估算出机器人的位置。
图2 单个LED的光功率分布
本文研究多个LED 光源作为发射端,当使用多个光源时,接收端可以采集到更多的光信号强度,从而利用三边测量的方法可以有效的估算出接收器的位置。然而采用多个未经调制的光源,会面临一个重要的问题,测量的单个信号强度值没有定义唯一的位置,这就会导致在数据关联时出现错误。图3 为4 个LED 光功率分布,按照这种照明布局,关联误差在房间中心时最大,因为从原点向外移动的所有方向的光强最初都是一样的。使用多个光电探测器可以显著的减少仅使用单个接收器测量的数据关联问题。此外光电探测器在机器人上放置的位置也很重要,随着光电探测器被放置的越来越远离某一个点,定位精度提高,还应该有一些与机器人运动方向相反的光电探测器去减少数据关联带来的误差。
图3 4 个LED的光功率分布
为了使机器人的运动轨迹与真实轨迹更接近,需要对运动轨迹进行优化。在进行目标跟踪的时候,目标当前时刻的状态与上一时刻的状态相关,可以根据上一时刻的位置以及状态来估计当前时刻的位置。在对机器人当前的位置进行估计时,由于状态转移和测量概率都是非线性的,这样就可以采用卡尔曼滤波器来获取更精准的位置[13]。在使用卡尔曼滤波器之前先建立系统的状态方程和观测方程,即:
式中Xk、Xk-1是X在k和k-1时刻的状态矩阵,A是状态转移矩阵,B是系统参数,C是状态观测矩阵,Uk是控制输入矩阵,Yk是系统k时刻的测量值矩阵,Wk是服从高斯分布的过程噪音,是服从高斯分布的观测噪音,
卡尔曼滤波器主要分两步进行:第一步为预测阶段,根据前一个状态计算出当前状态的预测值,以及预测值与真实值之间的误差协方差,公式如下:
P为k-1时刻的估计误差协方差。第二步为更新阶段,通过比较预测值与测量值,将预测值与测量值之间的差异进行加权,与测量值一起获取估计值,公式如下:
式(8)中Kk为卡尔曼增益,为k时刻的状态估计值,Pk/k为k时刻的估计误差协方差,I为单位矩阵。
为了验证所提方法的可行性,通过MATLAB 仿真软件,只考虑视距的情况下,忽略多径反射,分别采用1 个LED、4 个LED 来进行可见光室内定位。具体方法为:随机生成一条机器人的运动轨迹,在1 个LED 和4 个LED 作为发射器的情况下,采用4 个光电探测器来测量光信号强度,通过三边测量的方法估算出机器人的运动轨迹,最后采用通过卡尔曼滤波器对运动轨迹进行优化。实验参数见表1。
表1 仿真环境参数
图4 为仿真实验结果。由图4 可知,在4 个LED 作为发射端的情况下的定位精度要由于1 个LED 作为发射端的情况下,当发射端的数量较多时,能够采集到的信息更多,定位精度也就更高。通过对估算到的运动轨迹进行卡尔曼滤波,使得运动轨迹更接近真实的运动轨迹,定位误差大大降低。整体定位精度如表2 所示。
图4 卡尔曼滤波后运动轨迹对比
表2 平均定位精度/m
本文所提出的未调制可见光室内定位大大降低了定位系统的成本和复杂度,并通过实验仿真验证所提方法的可行性。未调制可见光室内定位的精度相比于调制可见光定位精度要低,未来的研究将进一步降低定位误差,同时考虑方法在实际应用中可行性。