基于rssi的三点定位算法,是已知三个点的坐标和未知点到这三个点的rssi的信号值,求解未知点的坐标。

首先是将rssi信号转换为距离:

d=10^((ABS(RSSI)-A)/(10*n))


其中d为距离,单位是m。

RSSI为rssi信号强度,为负数。

A为距离探测设备1m时的rssi值的绝对值,最佳范围在45-49之间。

n为环境衰减因子,需要测试矫正,最佳范围在3.25-4.5之间。

在获取未知点到三个点的距离后,剩下的就是求解未知点的坐标。我们都知道两个圆会相交于一个或者两个点(如果相交),那么三个圆如果相交的话,必然会交于一个点(三个探测设备在一条直线上的情况下有可能相交于两个点,这里不考虑),所以我们要求解的未知点便是以三个已知点为圆心,以他们与未知点之间的距离为半径画出的三个圆的交点。那么这个问题就转化为了求三个已知圆的交点,然后如果根据圆的方程:

      (x1 – x)^2 + (y1-y)^2 = r1^2

(x2 – x)^2 + (y2-y)^2= r2^2

(x3 – x)^2 + (y3-y)^2= r3^2


求解的话,是非常难求出未知点的坐标的。

这里介绍另一种程序容易实现的计算方法:

一、判断任意两个圆是否相切(内切或外切),这里可以设定一个误差允许值d,也就是

(x1 – x2)^2 + (y1-y2)^2= (r1+r2+d)^2


满足上述公式时就认为两个圆相切,其中d为误差值,可以是正数或者负数。如果两个圆相切的话,那么交点就比较好求解了:

       x = x1+ (x2 - x1)*(r1/(r1 + r2));

       y = y1 + (y2- y1)*(r1/(r1 + r2));


求解到x和y的坐标后,只需要用第三个圆进行验证,即求出这个点到第三个圆的圆心的距离,再和第三个圆的半径做比较,如果在误差允许范围内,那么就可以认为求得的x,y是三个圆的交点,也就是未知点的坐标。

二、没有任意两个圆相切,那么就先用两个圆求解两个交点,如下图:

其中A,B是两个圆心,坐标分别为(xaya)和(xbybs),C,D是两个圆的焦点,E为AB与CD的交点。

其中

AB^2 = (xa – xb)^2 +(ya-yb)^2


其中

       AC^2 =AE^2 + CE^2               ……………………1

       BC^2 = BE^2+ CE^2                                ……………………2            

        AC = ra

        BC= rb

          AE + BE = AB = (xa – xb)^2+ (ya – yb)^2


等式2转换为

BC^2 = (AB - AE)^2 + CE^2

BC^2 = AB^2 + AE^2 – 2*AB*AE + CE^2 ……………………3


等式3减去等式1:


BC^2 - AC^2 = AB^2 – 2*AB*AE

AE = (rb ^2 - ra ^2 -AB^2)/( – 2*AB)


于是可以根据以下公式求得CE

CE^2 = AC^2 – AE^2


我们还可以获取E点的坐标(xE, yE)

xE = xa + ( (xb- xa)*AE )/AB

yE = ya + ( (yb- ya)*AE )/AB

然后我需要求得AB和CD的斜率KAB和KCD


kAB = (yb - ya)/(xb - xa)

kCD = (-1)/kAB //这里要注意kAB为0的情况

然后求得CD和x轴的夹角

∠CDX = atan(kCD)

这时候就可以求得C (xc, yc)和D(xd, yd)的坐标

xc = xE + CE*cos(∠CDXs)

yc = yE + CE*sin (∠CDXs)

xd = xE - CE*cos(∠CDXs)

yd = yE - CE*sin (∠CDXs) //这里也要注意sin (∠CDXs)和cos(∠CDXs)为nan的情况

至此,我们就求得了两个圆的两个交点坐标,然后只需要用这两个点去第三个圆做验证,就可以获得三个圆的交点,也就是我们要求的未知点。

基于rssi的三点定位算法相关推荐

  1. 基于RSSI室内定位算法介绍

    前言 基于RSSI的室内定位算法有很多,像三角/三边质心算法.加权质心算法.最小二乘法.双曲线法.位置指纹算法.融合算法以及各种改进衍生算法等等.而依据定位策略的不同,BLE信标定位算法可分为基于距离 ...

  2. RSSI 平面 三点定位算法(C语言、JS源码例程)

    目录 前言 安卓app实例 图示 公式 公式推导 源码 C语言 JavaScript 测试 测试代码 不平行xy轴3参考点,随机生成交点p(x,y) 示例图 测试数据全为整数 3参考点改为小数 参考点 ...

  3. 基于RSSI三维空间四点定位算法

    之前写过基于rssi的三点定位算法,但是那是平面的,下面介绍三维空间的四点定位算法: 基于rssi的原理,这里不再重复,请参考以前的博文: http://blog.csdn.net/u01309067 ...

  4. 一文详解基于测距的空间定位算法

    一文详解基于测距的空间定位算法 文章目录 一文详解基于测距的空间定位算法 0 定位算法分类 0.1 基于测距与非基于测距的定位算法 0.2 集中式与分布式定位算法 0.3 绝对与相对定位算法 0.4 ...

  5. rssi定位算法 c语言,【论文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...

    摘要:Recent rapid rise of indoor location based services for smartphones has further increased the imp ...

  6. 【定位问题】基于RSSI均值的等边三角形定位算法matlab系统

    1 简介 为了提高无线传感网络的定位精度从提高测量精度.改善信标N点分布的角度提出了一种基于RSSI均值的等边三角形定位算法.该算法引入信号强指( RSSI)敏感区和非敏感区概念采用高斯模型对非敏感区 ...

  7. rssi室内定位算法原理_基于RSSI的精确室内定位算法

    基于 RSSI 的精确室内定位算法 何山 [期刊名称] <现代电信科技> [年 ( 卷 ), 期] 2011(000)003 [摘要] 无线传感器网络的关健问题是实现节点的精确定位 . 为 ...

  8. rssi室内定位算法原理_一种基于RSSI测距的室内定位方法与流程

    本发明涉及室内定位领域,尤其涉及一种基于RSSI测距的室内定位方法. 背景技术: : 室内无线定位,是指利用无线网络和定位终端提供待测节点位置.速度和方向等相关信息的服务.对于一个定位算法而言,评价其 ...

  9. 基于RSSI定位算法的matlab仿真

    up目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及 ...

最新文章

  1. WWDC2019:iPad全新发布
  2. VS2012 生成项目报 Lc.exe已退出,代码为-1 错误
  3. 企业运维笔试考题(1)
  4. oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...
  5. 遇见未来 | 对话王璞:谈分布式系统在企业落地的挑战
  6. Linux窗口按钮大小,Fitts: 给Ubuntu窗口一个大按钮
  7. 1065. 单身狗(25)-PAT乙级真题
  8. Python3 爬虫之 Scrapy 核心功能实现(二)
  9. android查看数据库
  10. Emacs Lisp程序单步调试
  11. FindBugs插件的安装与使用
  12. bootstrap-table导出excel科学计数法bug,数字过长变成科学计数法
  13. WPS中插入“公式”后行距不正常的解决办法
  14. The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR
  15. ElementUI table表格数据html格式解析
  16. 幻立方解法之4阶,5阶,7阶
  17. mac 10.11 brew php71,MAC OS X 10.11.4下载-OS X 10.11正式版下载 V10.11.6-PC6苹果网
  18. 【_ 面試 】在单点登录中,如果 cookie 被禁用了怎么办?
  19. 陈绮贞 旅行的意义 Ukulele 尤克里里谱
  20. ArrayList源码学习第二天全解

热门文章

  1. 男女间互送礼物的含义大全.别送错…
  2. Unicode介绍及Unicode编程
  3. java swt gridlayout_SWT GridLayout使用总结
  4. MATLAB系列(3)——读取txt文件
  5. hexo搭建Gitcafe博客(专栏)
  6. k米评分容易得高分的歌_《K歌情人》:经典随性的美式甜心
  7. BCGControlBar Pro 31.2 正式版-Key
  8. 百度Web前端面试经历
  9. 数据结构:图:AOV网和AOE网
  10. 4.Oracle 在删除表、表空间、用户时 如何释放磁盘空间