最近在研究uwb空间四点的精准定位,其实是基于RSSI原理的,蓝牙IBEACON,GPS也差不多基于这个原理

三维空间的四点定位算法:

已知四个基站点的坐标(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)和到未知点(x,y,z)的距离R1,R2,R3,R4

所以四点定位使用矩阵求解方程的方式:

其中要求的点的坐标是(x,y,z),已知的四个探针的位置为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4),r1到r4为所求的点到四个探针的距离。

现在我们的任务就是求解上述方程,首先分解:

然后相减:

其中:

这时候就可以转换为矩阵相乘:

假设上面矩阵为A*B=C,那么此时只需要求解A的逆矩阵,然后把逆矩阵同时乘以等式两边,就可以求得x,y,z了。

具体求解逆矩阵的方法为高斯-约旦消元法(计算机专业的大一线性代数课程内容)

/**
 * G-J消元法求矩阵逆矩阵
 *
 * @param 
 * @return 一个矩阵对象,为当前的矩阵的逆矩阵
 */
Matrix Matrix::inverseGJ(){
    int i,j,k;
    int dimension = row;
    Matrix output(row,col);
    //将输出矩阵初始化为单位矩阵
    output.eye();
 
    for(i=0;i<dimension;++i)  //依次处理每一列
    {
        for(j=0;i<dimension;++j)  //如果当前行当前列值为0,做行变换
        {
            if(pmm[j*col+i]!=0)
            {
                swap(0,j);
                output.swap(0,j);
                break;
            }
        }
        for(j=0;j<dimension;++j)  //依次处理每一行
        {
            if(j==0)  //如果是第一行,将input[j][i]设置为1,其他元素均除以input[i][i]
            {
                for(k=dimension-1;k>=0;--k)
                    output.setElement(j,k,output.getElement(j,k)/pmm[j*col+i]);
                for(k=dimension-1;k>=i;--k)
                    pmm[j*col+k]/=pmm[j*col+i];
            }
            else  //如果不是第一行,将每一行的input[j][i]设置为0,该行其他元素都要倍数的减去第一行对应位置上的值
            {
                for(k=dimension-1;k>=0;--k)
                    output.setElement(j,k,output.getElement(j,k)-pmm[j*col+i]/pmm[i]*output.getElement(0,k));
                for(k=dimension-1;k>=i;--k)
                    pmm[j*col+k]=pmm[j*col+k]-pmm[j*col+i]/pmm[i]*pmm[k];
            }
        }
        swap(0,(i+1)%dimension);  //每次都将下一次需要处理的行和当前的第一行交换
        output.swap(0,(i+1)%dimension);
    }
    output.reorder(); //因为之前的交换操作,行顺序乱了,需要重新排列一下,即把第一行的数据放到最后一行后面
    
    return output;
}

具体C++代码请加微信:

    

ibeacon UWB GPS 空间四点定位算法相关推荐

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

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

  2. 已知空间四点,求四点拟合的球圆心和半径

    参考汇总: (55条消息) 球面拟合算法_liyuanbhu的博客-CSDN博客_球面拟合 (54条消息) 球面数据拟合算法简介__IRONMAN_的博客-CSDN博客_最佳拟合球面 空间四点确定球心 ...

  3. 【欧式距离:二维和三维定位算法】

    [关于开发UWB模块所使用的二维和三维定位算法] 本文将介绍开发UWB模块中所使用到的二维定位算法(三点定位算法) 链接:三维空间的构建(四点定位算法) 内容概览 概念介绍 需要的材料 算法 欧几里得 ...

  4. 简述isodata算法的原理_基于UWB技术的室内定位方法简述

    1. UWB室内定位概述: UWB室内定位技术与传统通信技术有极大的差异,它不需要使用传统通信体制中的载波,而是通过发送和接收具有纳秒或纳秒级以下的极窄脉冲来传输数据,从而具有GHz量级的带宽.超宽带 ...

  5. UWB定位算法比较TDOA和TWR究竟哪个好

    使用UWB技术进行定位时,有两种基本定位算法:基于差分飞行时间(TDOA)和双向测距(TWR)的UWB定位算法,这两种算法各有优劣,下面将进行比较. 超宽带是一种可用于室内定位的短距离无线电通信.与蓝 ...

  6. GPS、WiFi、基站、蓝牙(iBeacon)、AGPS几种定位方式总结

    1.GPS GPS(Global Positioning System)即全球定位系统,它是由美国研究的一种定位方式,特点是:不需要SIM卡,不需要连接网络,只要在户外,基本上就能随时随地的准确定位. ...

  7. 基于UWB的室内SDS_TWR测距算法优化和定位算法融合的研究

    1.内容简介 略257 2.内容说明 1.RSSI定位方法 基于接收信号强度RSS(Receive Signal Strength)[57]方法通过三个及以上己知位置的锚节点来测量移动节点发射的信号场 ...

  8. matlab水声定位,基于水平投影的ROV水下GPS精确定位算法

    基于水平投影的ROV水下GPS精确定位算法 基于水平投影的ROV水下GPS精确定位算法 张颖军 付本国 刘光 (海军潜艇学院,山东青岛,266046) 摘 要 精确的水下定位是提高水下机器人(ROV) ...

  9. matlab rdk,rtklib_2.4.2_p3 gps导航定位算法,有最先进的rtk matlab 238万源代码下载- www.pudn.com...

    文件名称: rtklib_2.4.2_p3下载 收藏√  [ 5  4  3  2  1 ] 开发工具: C++ Builder 文件大小: 14970 KB 上传时间: 2014-07-20 下载次 ...

  10. rssi室内定位算法原理_室内定位方案常用的4种定位算法

    目前常见的室内定位技术有超宽带UWB室内定位技术,蓝牙室内定位技术,RFID(无线射频识别)定位,超声波定位,Wi-Fi定位等.室内定位依赖于定位算法,定位算法决定了室内定位的模式.室内定位种类虽然比 ...

最新文章

  1. LinkQueue的基本创建
  2. 数据结构—什么是基数排序?
  3. How to create a Python dictionary with double quotes as default quote format?
  4. linux解压tz zip,TZ 文件扩展名: 它是什么以及如何打开它?
  5. eclipse调试第一个java程序
  6. 无线时代来临,谁来管理我的无线AP?
  7. 认识协程gevent
  8. 设计模式(九): 从醋溜土豆丝和清炒苦瓜中来学习模板方法模式(Template Method Pattern)...
  9. java面试资料整理(高级必备)
  10. 「 硬核分享」 ❤️ QQ连连看自动消除外挂完整源码❤️「 复制即用」
  11. #SpringBoot#阿里云服务器#将微信小程序后端代码部署到阿里云服务器 http转https
  12. 中职生计算机应用基础心得,关于中职计算机应用基础教学的几点心得
  13. ThinkPad E450 10.11 驱动HD4400的注意即解决方法_s芃成_新浪博客
  14. 迁移学习系列--方法篇
  15. Symbol数据类型
  16. An工具介绍之3D工具
  17. AP 计算机 从D到A,8节课完成飞跃的进步----麻省理工老师的学生如何说
  18. html----烟花代码
  19. [个人笔记]HCIP-Routing Switching-IEEP/H12-223
  20. Vue源码之渲染watcher

热门文章

  1. 根据显卡ID识别显卡型号
  2. 百度ai人体关键点识别
  3. android 自动化测试 百度,Android 自动化测试框架-百度cafe
  4. 锁仓怎么解_[期货知识]期货锁仓后怎么解锁?期货锁仓解锁技巧介绍 - 南方财富网...
  5. jQuery第5章上机练习3(使用jQuery变换网页效果)
  6. js 判断是企业微信或微信
  7. Android Glide加载Base64圆形图
  8. 最好的科普著作《追寻记忆的痕迹》——神经与精神的历史和未来
  9. 16比9尺寸是多少厘米_16比9尺寸换算方法
  10. 启动计算机 登管理员用户,Windows xp系统使用管理员账户登入系统的技巧