PDR (Pedestrian Dead Reckoning)行人航位推算基本原理及实现

简介: PDR (Pedestrian Dead Reckoning)行人航位推算基本原理及实现

PDR (Pedestrian Dead Reckoning)行人航位推算算法是利用加速度计、磁力计、陀螺仪等多种传感器数据进行处理。对行人行走的步数、步长、方向进行测量和统计,推算出步行者行走轨迹,和位置等信息。

作者本身不是搞PDR (Pedestrian Dead Reckoning)行人航位推算这个方向了,最近有门课了解了一些知识,做了个小的课程作业,这里分享给大家,进行讨论。

基本思路

行人的位置可以通过下式进行推算:

1.计算步长

常数/准常数模型、线性模型、非线性模型以及AI(人工智能)模型等,均基于步长与某些加速度计统计特征之间的良好相关性来确定步长的大小。(如步长正比于步频或者行走速度)

这里采用线性模型进行计算:

式中:a,b 分别为系数,H为身高,SF为步频(后续通过加速度计算),c为常数设置为1.

1.1加速度计数据预处理

读取原始的加速度数据,如下图所示:

滤波,计算total acceleration,如下图中的红色曲线所示,去除重力的影响,如下图中蓝色曲线所示:

1.2步态检测

利用波峰探测法检测蓝色曲线中的波峰波谷,判断是否走了一步,如下图所示:

统计出步数后,通过下式计算出步频:

随后,代入前述计算步长的式中,计算步长,计算步长𝑆𝐿为0.71 m。

2.计算航向角

基于磁力计数据计算航向角,并通过加计数据进行角度补偿。

(1)当手机完全水平时,可以不用考虑垂直方向,通过下式进行计算:

(2)当手机不完全水平时,利用加速度计数据进行补偿计算:

其中:

计算出航向角之后,再回到博客开始时所介绍的推算公式,计算轨迹。

3.实验效果

4.代码实现

参考链接如下,写的有些乱,没有细致的整理,大家有需要的可以参考一下。

https://download.csdn.net/download/wxc_1998/87152903

目录
相关文章
数字频带传输——二进制数字调制及MATLAB仿真
数字频带传输——二进制数字调制及MATLAB仿真
896 1
|
2月前
|
人工智能 自然语言处理 安全
用AI重构人机关系,OPPO智慧服务带来了更“懂你”的体验
OPPO在2025开发者大会上展现智慧服务新范式:通过大模型与意图识别技术,构建全场景入口矩阵,实现“服务找人”。打通负一屏、小布助手等系统级入口,让服务主动触达用户;为开发者提供统一意图标准、一站式平台与安全准则,降低适配成本,共建开放生态。
274 31
|
2月前
|
传感器 人工智能 算法
数字孪生智慧水务系统,三维立体平台,沃思智能
智慧水务系统融合物联网、数字孪生与AI技术,实现供水全流程智能监测、预测性维护与动态优化。通过实时数据采集与三维建模,提升漏损控制、节能降耗与应急响应能力,推动水务管理从经验驱动迈向数据驱动,助力城市水资源精细化、可持续化管理。
523 143
|
5月前
|
算法 机器人 Python
【启发式算法】RRT*算法详细介绍(Python)
RRT(Rapidly-exploring Random Tree Star)* 是一种用于机器人路径规划的启发式算法,它是在经典的 RRT(Rapidly-exploring Random Tree)算法的基础上进行改进的。RRT* 通过优化路径质量,能够找到最短的路径,适用于高维空间中的路径规划问题。
755 2
|
算法 安全 定位技术
地图一共有多少个坐标系?有什么区别?如何选择?
地图一共有多少个坐标系?有什么区别?如何选择?
1852 11
|
iOS开发 MacOS Windows
电脑怎么截图?截屏电脑快捷键ctrl加什么?
截图是我们日常使用电脑过程中非常常见的操作之一。无论是想保存有用的信息、分享有趣的内容,还是记录某个错误信息,截图都是一个简单而有效的方式。但是,不同的操作系统和需求会决定使用不同的方法来截图。接下来,我们将详细介绍几种在Windows和Mac电脑上常见的截图方法,帮助您快速掌握这一技能。
电脑怎么截图?截屏电脑快捷键ctrl加什么?
|
Java Maven Spring
如何在idea中创建Springboot项目? 手把手带你创建Springboot项目,稳!
文章详细介绍了在IDEA中创建Spring Boot项目的过程,包括选择Spring Initializr、配置项目属性、选择Spring Boot版本、导入依赖、等待依赖下载以及项目结构简介。
14616 1
|
传感器 机器学习/深度学习 算法
基于PDR算法实现行人惯性导航附matlab代码
基于PDR算法实现行人惯性导航附matlab代码
|
算法 Linux 编译器
【C++ 泛型编程 进阶篇】 C++ 模版元编程 类型转换 std::decay 全面教程
【C++ 泛型编程 进阶篇】 C++ 模版元编程 类型转换 std::decay 全面教程
609 0
|
网络协议 应用服务中间件 网络安全
SSH远程直连--------------Docker容器
SSH远程直连--------------Docker容器
746 0

热门文章

最新文章