邵明启, 郭 嵘, 郑 明
(北京航空航天大学a.自动化科学与电气工程学院;b.仪器科学与光电工程学院;c.物理学院,北京100191)
现代建筑钢筋混凝土的结构对卫星信号的屏蔽以及现代社会室内环境的高复杂度使得传统的卫星定位无法在室内发挥作用,室内定位的高需求催生了许多室内定位的解决方案,如RFID[1]、WiFi[2]、蓝牙[3]、可见光[4]、超宽带[5]、ZigBee和超声波等。
但目前现有的室内定位方案都有其缺点:如WiFi定位采取的位置指纹法,需要在室内的每个地方采集WiFi信号特征,并且需要在多个节点来完成,另外WiFi信号很容易受到其他信号的干扰,并且体积较大,部署成本高[6];蓝牙定位也同样具有易受干扰,信号稳定性差的缺点[7];而对于目前精度较高的超宽带技术,也存在着定位基站多、定位成本高的问题[8]。本文设计的超声波室内定位系统,则在结构相对简单的情况下实现对室内的高精度定位需求。
陆蔺[9]结合蒙特卡罗算法设计了一套超声波定位系统,并开发了定位跟踪操控界面软件,进行实时监测。市场上也有不少的超声波定位产品,能够实现实时定位,并且精度也达到了厘米级。但目前的这些超声波定位系统有一个共同点,由于超声波发射波束的限制,只能朝向特定的方向发射声波,定位时需要安装多个方向的发射器[10]。
本系统采用带有反射锥的超声波发射(接收)器[11],将束状的超声波折射到全平面范围内,不需要向各个方向都安装发射(接收)器。另外,与传统的反射锥定位装置相比,集成度更高,占用空间小;在二维定位中,通过采用转机模拟人的双耳进行定位[12-13],将坐标的测量分解成了对极角和极径的测量,降低了定位精度与测距精度的相关程度,减小了定位误差;在三维定位中,通过多次旋转模拟尽可能多的基站,为Chan算法提供冗余方程,从而提高定位精度。
与TDOA三边定位算法[14]不同,本系统利用双耳效应原理,通过测量极角和极径得到物体的坐标,其工作原理如图1 所示。图中:S即为被定位的声源;A、B、C分别为初始状态时的3 个接收器,S 位于A、B 接收器之间,并且S到A的距离SA大于S到B的距离SB,整个接收装置在电动机的带动下逆时针转动θ°,A、B、C接收器分别转到了A′、B′、C′的位置,此时S与A′、B′之间的距离应相等,上述过程就是利用双耳效应定位的过程。在实际工作过程中,很难做到SA′与SB′严格相等,可以设置ε 为一很小的正数,当| SA′ - SB′| <ε时,即可认为SA′ = SB′,本文中ε取0.5 cm。θ为接收装置转过的角度;R为接收装置的半径。
图1 二维定位原理示意图
下面给出在SA′ = SB′条件下声源S 的坐标表达式,其中∠A、∠B、∠C分别为接收器A、B、C在初始状态时极角,如图2 所示,∠A = 90°,∠B = 210°,∠C = 330°。
图2 接收器的初始角度
在△ABC中确定的坐标系下,将△ABC 绕外接圆圆心旋转θ°到△A′B′C′,此时声源S 正对△A′B′C′,即S位于A′B′的垂直平分线上(见图1),通过几何关系可得到S点的极角为
最终可得到声源S 在二维平面内的坐标为(ρcos ∠S,ρsin ∠S)。
图3 推导极径表达式原理图
三维定位原理与二维定位原理不同。三维定位主要使用Chan算法[]。Chan 算法是一种具有解析表达式解的非递归方程组解法,算法计算量小,在噪声服从高斯分布的环境下定位精度高。当基站的数量大于3时,得到的非线性方程组要多于未知变量的个数,Chan算法能够充分利用冗余数据,获得更好的位置估计值。
在三维定位时,通过控制步进电动机旋转固定的角度,获得多个基站数据,进而利用Chan 算法计算出声源的三维坐标。
2.1.1 基于反射锥发射接收装置
接收装置由固定在半球形球壳上的3 个带反射锥的超声波接收器和1 个步进电动机组成,球壳的半径为6 cm。其中3 个接收器呈120°均匀对称分布在球壳上,球壳底部固连1 个步进电动机,使得球壳及其上的3 个接收装置能够在水平面内旋转,如图4(a)所示。发射装置由反射锥、换能器、变压器、无线模块组成,如图4(b)所示。
图4 (a)半球壳体接收装置,(b)带有反射锥和无线模块的超声波发射装置
2.1.2 步进电动机控制
步进电动机带动接收装置转动,并且直接作为转角的测量元件,因此需要对步进电动机进行精确控制。本系统使用DM542 步进电机驱动板,如图5 所示。该驱动板可控制步进电动机400 ~25 000 步转1 周。目前使用的是400 步/ r,即精度为0.45°/步。
图5 步进电动机和其驱动板
2.2.1 二维定位工作流程
系统二维定位流程如图6 所示。PC 端周期发送测距指令,利用超声波装置测得距离信息,而后PC 端将测得的距离信息通过串口传递给控制电动机的Arduino单片机,单片机根据测距信息决定顺时针还是逆时针旋转,同时单片机将转过的角度回传给PC 端,这样保证了步进电动机旋转具有实时性。当与发射点距离最近的两个接收点的距离小于某个阈值时,即| SA′ - SB′| <ε时,步进电动机可以及时停下,得到准确的θ值,最终得到发射点的二维坐标。
图6 二维定位程序流程示意图
2.2.2 三维定位工作流程
三维定位与二维定位存在一定的区别。三维坐标的定位算法是Chan算法,通过电动机旋转,模拟出多个基站,模拟出的基站越多,定位精度越高。系统在三维定位时的工作流程如图7 所示。PC 端发送测距指令,单次测距完成后控制步进电动机旋转一定角度,继续测距,重复3 次,将测得的3 组距离信息和单片机得到的角度信息代入Chan算法解得坐标。
图7 三维定位程序流程示意图
测量时将发射器放在任意位置,测得数据如表1所示,其中真实坐标由固定式测距量具得到。
表1 二维定位数据
从图8 可以看出,转动式的二维定位方法误差均在2 cm之内,多数点的误差都在1 cm 之内。该定位系统在进行二维定位时,将极角和极径两个参数分开测量,利用步进电机对角度的精确控制,从而减小了极角与测距的相关程度,解算坐标时不会将测距的误差放大,使得定位解算出的坐标的精度基本取决于传感器测距的精度。
图8 二维定位误差
接收装置的安装和放置与二维定位中的相同,发射器的3 个坐标也同样由固定式测距量具进行测量,接收装置旋转2 次,一共获得9 个不同基站到声源的距离数据,代入Chan算法解算,数据如表2 所示。
表2 三维定位数据
对表中的x,y,z 轴数据的误差分别进行分析,误差分布如图9 所示。
三维定位各坐标的误差均在5 cm之内,平均误差约为3 cm,比二维定位的误差略大。三维定位中的误差主要是由于反射锥自身的结构限制,反射锥在平面内表现很好,但在三维空间中存在很大的测量盲区,从而导致测距不准确。可以采用体积更小的反射锥或球状压电陶瓷换能器[16]以减少空间中的盲区。
图9 三维定位误差
本文在反射锥型超声波测距装置的基础上设计了一种基于“双耳效应”的转动式反射锥定位系统,从理论上对该系统进行了分析,并通过实验验证了该系统的可行性,定位误差在允许范围内,该定位系统可应用在常见的室内定位场景中,例如用于室内循迹小车的定位,工厂生产车间货物的定位等场景。该定位系统的设计对室内定位领域有实际参考意义。