惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
V
V2EX
S
Security Affairs
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
IT之家
IT之家
J
Java Code Geeks
The Register - Security
The Register - Security
U
Unit 42
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Cisco Talos Blog
Cisco Talos Blog
Project Zero
Project Zero
S
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
博客园 - 司徒正美
V
Vulnerabilities – Threatpost
T
Tor Project blog
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
小众软件
小众软件
L
LangChain Blog
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
A
Arctic Wolf
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta

Mereith's Blog

记一次代理转发问题的排查与解决 PVE DataCenter Manager 端口号跳转错误修复 k8s + jenkins + gitlab 触发器 【转载】没有编程生产力这样的东西 【后续】居然被 ddos 了 居然被 ddos 了 Tagger - 让版本标签管理更简单 openclash 开启后端口转发失效 nextjs 启动时执行代码 买了太多VPS不知道干什么,干脆做个网站 juhost Level-1 测评 VMISS CN - Hong Kong VMISS JP - Tokyo - BGP 测评 VMISS CN - Hong Kong - BGP HomeLab 的终点是 最近在做的事情 因为选择艰难症,自己写了一套开源博客系统 手撸一个nodejs分布式爬虫,还要可视化 HomeLab 分享 我的个人工作流——开源项目推荐 动手写一个超简单的编译器 safari 插件开发 Safari Extensions Preferences 按钮无响应 设置移动端软键盘回车按钮文案 nginx proxy manager 非标准端口反代 Host 不对 监控 k8s ingress 自动添加域名 DNS 解析 使用 ingress 注解给 traefik ingress 添加中间件 使用流水线功能为文章添加固定结尾 为 VanBlog 添加一个小挂件 基于React/umi/egg自建博客系统 如何正确停止 NodeJS 子进程 k8s pod 替换策略 让威联通、pve 共享 ups 实现断电关机 Ubuntu 配置 samba 混合云部署k3s集群(基于wireguard) pve 无法启动 grub lvmid not found error antd Password 关闭自动补全 code-server node not found pve no quorum 错误 || 无法登录 pve Cannot Initiate CMAP Service pve 节点删不干净 PVE 指针(鼠标)漂移 pve 重启网络 Proxmox VE 直通显卡 ProxmoxVE (PVE) 7.0 换源升级 用 SOCAT 端口转发 git 无法 pull 仓库refusing to merge unrelated histories 用 vuepress 搭建私人知识库 js 防抖节流中的 this 与箭头函数 Dockerfile 给 Ubuntu 换源 docker 内访问宿主机 docker 删除无用镜像 css 实现展开收起动画 nginx 301 问题 Node.js 流式编程 关于我重写了三次博客项目这件事 css flex 布局超出隐藏 css 隐藏滚动条 css 文字超出隐藏并显示省略号 css 填充 svg 颜色 css 黑白滤镜 nginx 反代丢端口 docker-compose 部署 matomo 分析系统 基于 strapi 开发应用 strapi 关闭 Content Security Policy nginx 反代 rewite url ssh 通过跳板机访问目标机器 Cent os 7 安装 zsh 5.6 以上版本 win11 任务栏不合并 bash 数组操作 vim 修改文件格式为 unix k8s 集群 control-plane-endpoint 主机名 git https 保存密码 Bash 判断命令存在 & 重定向 python 导出项目依赖 cent os 7 安装 gcc 版本 9 System limit for number of file watchers reached cent os 7 安装 git 2.x css 下划线中间向两边滑动效果 linux 挂载 SMB/CIFS linux 清除 ACL windows 命令行安装 inf 驱动 css 文字不可选择 iperf3 网络测速工具 cent os 换源 k8s 1.21.3 从 docker 迁移到 containerd 解决Nginx安装错误:No package nginx available 问题 从pve的硬盘里导出数据 Errors were encountered while processing adguardhome配合clash pve中使用LXC容器安装OMV LXC直通硬盘 nginx反代模版 docker常用开启容器的命令 PVE的LXC容器中安装Docker ProxmoxVE系统分区相关 基于clash搭建旁路网关 Portainer添加节点 linux声卡设置及录音音 OpenWrt用VLAN PVE换源及去掉订阅提示和改端口
基于UWB的室内三维定位
wanglu@mereith.com (mereith) · 2024-11-26 · via Mereith's Blog

请注意,本文编写于 2325 天前,最后修改于 557 天前,其中某些信息可能已经过时。

现已开源 github:RTLS-UWB
最近做了课程设计,是 基于UWB的室内三维定位,现在大概过程整理如下:

目的和要求

1.目的

  1. 实现STM32F103与DWM1000模块通信;
  2. 实现UWB模块之间的TWR(双边测距)完成测距,并将距离信息发送至PC电脑;
  3. 利用采集的距离信息和基站的坐标求解标签位置坐标并显示。

2.要求

  1. UWB模块之间的通信距离不低于15m;
  2. 在空旷环境下可以得出X,Y,Z轴坐标,其中X,Y轴坐标误差在50cm以内;
  3. 标签的位置坐标显示延时不超过0.5s;

实验器材和开发环境

器材

  1. 研创物联的 UWB Mini 3s Plus开发版,板载 dw1000芯片(用于UWB通讯),STM32F103T8U6芯片用于主控。

开发环境

  1. keil v5 用于修改单片机代码
  2. blend vs2019用于开发上位机客户端(采用 c#/.net4.8)

实验原理

采用STM32F103和UWB通信模块DWM1000组成一个设备,通过软件编写分别设置成标签或基站。在房间的四个角落布置四个基站,标签通过TWR(双边测距)方式依次完成(TDMA)与各基站之间的测距,将标签与基站的距离消息发送至PC端,利用三边定位原理求解标签的位置坐标并显示。

实验方案

大体分为四部分:设计方案、keil源代码修改与调试、定位算法的研究与实现、上位机的客户端的开发;我主要负责keil源码和上位机的开发部分。

1.总体的设计方案:

芯片选取:我们采取了研创物联的 Mini 3s Plus一体化模块,主芯片是一个中等容量的 stm32f103t8u8芯片,通讯芯片是 dw1000芯片,中间通过 spi总线进行连接,如下图:

2.测距原理

双向飞行时间法(TW-TOF, two way-time of flight)每个模块从启动开始即会生成一条独立的时间戳。模块A 的发射机在其时间戳上的Ta1发射请求性质的脉冲信号,模块B 在Tb2时刻发射一个响应性质的信号,被模块A 在自己的时间戳Ta2时刻接收。有次可以计算出脉冲信号在两个模块之间的飞行时间,从而确定飞行距离S。 S=Cx[(Ta2-Ta1)-(Tb2-Tb1)]/2 (C 为光速)

3.具体步骤

我们采用4个不共面的、已经标定好的基站和一个标签来实现3维室内测距,首先标签会每隔一定时间闪烁发送数据包,各个基站收到数据包后会通过双向飞行时间法来测出4个基站分别和标签的距离,并把距离数据传回A0基站,由A0基站通过usb模拟串口传输给上位机的客户端界面,上位机的客户端界面收到信息后,根据最小二乘法来计算出可能的标签坐标,在计算过程中,我们会添加一些修正参数来修正系统的天线时延,在空旷的室内环境,它是线性的。为了防止冲突和碰撞,具体的原理大概如下图:

1) keil源代码及其调试

Keil源码我们在熟读官方例程的基础上进行了一些修改

2) 定位算法的研究

整个算法我们基于最小二乘法,这是我们了解到的,比较容易实现的精度符合要求的算法,大体分为三步。 建立信标节点与未知节点距离方程组其中:(xi,yi,zi)为基站坐标;(x,y,z)为标签坐标;

方程组为非线性方程组,用方程组中前n-1个方程减去第n个方程后,得到线性化的方程: AX=b

用最小二乘法求解方程:

由于客户端采用C#/.NET开发,所以我们集成到里面,如下图:

3) 上位机客户端的开发

这是主窗体的设计图,里面包含了一个串口调试助手,包含了一些调试功能,自定义功能,和纠错功能,完美支持原厂的帧格式(只需要点一下原厂兼容就可以了)。

实验结果与分析

最后我们选择在长9.6m,宽6m的大厅进行测试,xy轴误差在20cm左右,在28m的通信距离下依旧能保持良好的准确率,符合了最初的目的。 并且制作了展示视频,如下:

客户端和相关资料下载

百度网盘(提取码:mu0r)