首页
定位区域的规划和基站的用量估算
- Written by: zhang
- Category: 技术
定位区域的规划和基站的用量估算
在工作中,我们经常会收到客户的咨询,希望我们能帮助对某个应用进行定位区域的规划,并估算基站的使用数量。例如:“我有一个4万平方米厂房,需要多少基站?”,对于类似问题,本文进行了一些分析。
基站部署要考虑的因素
首先,需要了解到UWB定位的限制:
基站的覆盖范围。UWB是近场通讯,因为UWB占用很宽的带宽,频率占用范围非常广。从占用的频率来看,它与其他的很多无线通讯是有冲突的。为了避免UWB对其他无线通讯的干扰,无线电管理部门对UWB通讯的信号发射功率有限制,目的是让UWB只能做短距离近场通讯用。我们在售的基站的覆盖范围是100米(850K通讯速率下),但是在6.8M的通讯速率下覆盖范围只能达到20米*20米。如果是在室内,通常我们设定定位区域的大小不会超过20米*20米。
穿墙能力。UWB使用的无线频率很高,通常4GHz~10GHz这个范围,这个范围的无线电波的穿墙能力都不太好。我们测试,穿过一道墙会可以收到信号,但是信号已经比较弱了;几乎穿不过两道墙。我们在规划定位区域时,通常会把墙作为遮挡物看待。
大的遮挡物。在需要定位的区域如果有大的遮挡物,这是一个不利因素。例如宽度超过50cm的柱子,体积较大的设备等等。其实,人体也是一种有效的遮挡物。因为人体内含有大量水份,水对电波的衰减很厉害。
大的金属物。金属对电波有反射,如果在定位区域有大的金属物,会导致定位精度下降。
我们的定位系统的特点:
基站共用。如果某个基站在两个区域之间的边界上,可以让两个区域共用这个基站。这样,可以减少基站的数量,以降低成本。
基站围成多边形。理论上,做二维定位时,只需要3个基站就可了。但是,在实践中我们发现,标签在基站围成的多边形中的时候,计算出的坐标会比较准确,当标签在多边形外的时候,坐标的误差会变大。所以,即使是二维定位,我们建议也安装4个基站,并且4个基站安装在区域的4个角上,例如房间的4个角。当然,也要求也不是那么严格,具体的安装情况根据现场情况来考虑。
定位区域与时间源。时间源与定位区域之间是一对一的绑定关系,不能共用时钟源。
定位维度。系统支持一维定位、二维定位、三维定位。如果一维定位区域至少需要1个时钟源和2个基站,二维定位区域至少需要1个时钟源和3个基站,三维定位区域至少需要1个时钟源和4个基站。
一维定位。一维定位区域是一条线段。通常一维定位用于走廊等不关心宽度方向只关心长度方向的地方。例如,一个走廊有2米宽15米长,我们一般只关心标签会在15米长度方向的哪个位置,而不太关心在2米宽度方向的哪个位置。需要注意的是如果走廊是弧形的或者是拐弯的,可能要划分成多个一维区域。
二维定位。绝大部分的定位区域都是二维定位区域,是使用最广泛的定位类型。
三维定位。三维定位理论上只需要4个基站就可以了,但是,如果只安装4个基站,定位出来的精度会有很大误差。三维定位还需要在地面安装基站,但是因为地面的遮挡物比较多,所以在实践中很少有使用三维定位
在计划一个定位系统怎么部署时,对现场的了解很重要。通常,需要根据现场的情况来考虑基站的部署。
通常,我们使用“目视原则”:让时钟源可以看得到每一个基站,让标签可以看得到每一个基站。也就是说,时钟源与每个基站之间不要有遮挡物,标签可能移动到的位置与每个基站之间不要有遮挡物。即使有遮挡物,也只能是很小的遮挡物。
基站数量的估计
在不了解现场的具体情况,如果只有一个简单的平面图,甚至平面图都没有,只知道面积,怎么估算基站的数量?
如果是这样,我们通常会简单的把场地划分为多个20米*20米的方块。先计算大致的数量。
把要部署的地方每隔20米画一条横线,每隔20米画一条竖线,每一个交叉点安装一个基站,每一个格子是一个定位区域安装一个时钟源。
假设4万平方厂房,由200米*200米构成,那么有11条横线11条竖线,需要11*11=121个基站,有10*10个格子,需要100个时钟源,合计的基站数量是 121+100=221。
然后,我们再根据对现场的了解,对计算出的数量进行适当调整。例如现场可能会有很多的建筑物,建筑物之间有巷道。巷道内是否要定位?巷道有多宽?如果定位,是做成一维定位还是二维定位?这些建筑物和巷道之类的东西,会把我们期望的理想定位区域分割得更小,这会导致需要划分更多的定位区域,也意味着需要更多的基站。当然,也会有一些地方不需要定位,这些不需要定位的地方也会分割我们期望的理想定位区域,也许会导致需要划分更多的定位区域,或者减少定位区域。
定位基站的硬件设计
- Written by: zhang
- Category: 技术
定位基站的硬件设计
定位基站的主控是STM32F103RET6,这个MCU的Flash比较大,RAM也比较大,适合跑RTOS。
基站的UWB收发器使用DW1000芯片。我们前期直接使用DWM1000模块,因为DWM1000模块按射频部分都弄好了,对外提供一些SPI接口,我们不需要操心模拟部分的电路,把心思放在逻辑电路上就好。后期新增了一些基站型,这部分有些改变,新增几种设计:(1)自己做类似DWM1000的模块,可以节省成本;(2)自己的UWB模块使用陶瓷天线、或PCB天线,也有IPX座引出使用外置高增益下划线的; (3)增PA/LNA。原厂在850K的速率下通讯距离最远可到300米,增加PA/LNA后可以达到1000米以上。
定位引擎的设计
- Written by: zhang
- Category: 技术
定位引擎的设计
定位引擎是整个定位系统中最重要的部分。它负责接收各个基站发来的数据包,并计算标签的坐标。
最初的版本,我们是使用Java开发的。后来需要作为产品对外销售,Java缺少足够的安全措施,很容易就会被反编译了,我们的知识产权无法得到保护。所以,我们改为C++重写定位引擎。因为我们的客户基本上都是使用Windows服务器,所以目前定位引擎只有Windows版。在设计之初,我们考虑到跨平台,在一些重要的地方都考虑到对Linux的支持。实际上,C++版本的定位引擎在刚写好时,我们顺利编译了一个Linux版本,并在ubuntu上运行了它。
我们需要不断对引擎进行改进,增加功能,或者提升易用性。而客户基本上没有Linux上的需求,所以,我们就再未关注Linux的支持。如果您有这个需要,应该可以最容易就让定位引擎适配Linux。
定位引擎的核心是坐标的计算。我们研究了好几个算法,缺省的情况下,使用最小二乘法进行计算。这个算法速度快、准确性也高。
定位引擎的接口支持5种方式:TCP 二进制消息接口、RESTful 风格接口、TCP 文本消息接口、TCP 自定义二进制消息接口、串行文本消息接口。
因为UWB被定义为近场通讯,这意味着UWB的覆盖范围会很小。特别是无线电管理部门对UWB发送设备的信号强度有限制,如果要保证设备合规,覆盖范围会很小。另外,有些需要定位的环境比较复杂,例如有墙之类的遮挡物。总之,我们需要支持多区域定位,把一个大的场地划分为多个定位区域,每个定位区域都部署定位基站,这些小的定位区域合并在起,就组成一个完整的定位区了。
我们的定位引擎支持多区域定位。例如,正常情况下,每个定位区域的范围是100米*100米,可以把400米*400米的区域划分为“田”字型的4块小区域,相当于部署“4套定位系统”。当然,我们系统支持区域边界上的基站复用,例如“田”字正中心的位置部署一个基站,4个区域都可以共用这个基站。在“田”字的每个交叉点部署一个基站,合计9个基站,就可以达到每个定位区4个基站的效果。
在实践中,我们发现,有些地方会有固定的偏移。为此,我们开发了一个算法,对固定偏移进行纠偏。
关于我自己
- Written by: zhang
- Category: 过程
前几年跟几个朋友一起搞公司,弄了几个产品,市场都不好。 最后一个项目是给一个禁毒实验室搞实验室管理系统,用起来应该还好。 本来潜在客户不少,但是因为经济形势的原因,好几个客户的项目推迟,撑不下去了,只好大家散伙。
今年 56 岁,再出来找工作有点尴尬。但是没办法,有套房被许皮带坑了,每月还着 10K+的房贷。如果现在卖出,也卖不了多少钱。
在智联投了一些职位,都没有任何反馈。看上去,有些公司的一些职位长年挂着,永远在招人,不知道是什么骚操作。当然,也许 HR 看到我这个年龄,直接无视。
在大公司待过(珠海巨人/亚信),在小公司的时间更长。虽然做过管理岗,但是兴趣更多在技术方面,所以最后的选择都是技术。
技术方面大致的经历:
-
199x 年代主要使用 x86 汇编和 C ,写过一个 dos 下的汉字系统(优点是可以显示 24x24 点阵汉字),估计现在好多人都不知道这是什么东东。努力推广,无疾而终。
-
200x 年代 Delphi 用得较多,Delphi7 写过一个邮件系统,支持 POP3/SMTP ,内核弄成 COM 组件,用 ASP 写了个 UI 可以支持 web 收发邮件。现在网上应该还能搜索得到,叫《领旌 web 邮件系统》。当时想试一下共享软件的玩法。结果每月收入无法覆盖支出。
-
然后找了个小公司上班,带团队用 delphi 写了一些应用系统。
-
后来去朋友的公司帮忙,带团队搞了些 GIS 方面的东西(Java+JS),还用 Delphi 写了一些图像处理的小程序,用于处理卫星照片(纠偏校正/颜色调整/照片拼接/分割等等)
-
后来去亚信搞电信计费,负责贵州电信技术支持。用 C++/Java 在计费系统上加用户需求,更多时候用 PL/SQL 操纵 Oracle 。待了几年,升到部门副经理的位置。但是不太喜欢,感觉亚信太像一个国企,高层各种勾心斗角。作为基层领导,在夹缝中,如果站公司角度,要帮公司想办法压榨员工,如果站员工角度,要顶住上面的压力。后来就辞了。
-
跟几个朋友一起搞公司。
-
先是搞了个针对某个特定行业的门禁系统,仓库要开门时,双人按指纹申请,上级远程开门。在省内应用得还可以。后来打算升级,被另一家公司低价挤走。来后了解到,中标方几个月后无力继续,也被甲方弄走。总之一地鸡毛。这个项目中,门禁系统的硬件软件我一人搞定。用 AD 画电路图画 PCB ,采购元器件,找贴片厂 SMT ;用 C 写固件;用 Delphi 写控制端。
-
后来搞了个 UWB 精确定位系统。项目初期硬件软件也是我一手包办,项目成型后才组团队。从画板子写固件,研究时钟同步/TDOA 算法,到写定位引擎,都是一人搞定。定位引擎开始是用 Java 写的,后来要作为产品销售,就用 C++重新写了一个。用尽各种方法推广,利润无法覆盖支出,更不用说收回先期投资。顺便说一下,如果哪位有兴趣,全套技术可以转让(详细情况见 https://uwbhome.top )。
-
再后来,给某个毒品实验室搞了个管理系统。我负责整体的技术工作,技术选型、构架设计、底层系统开发等等。这个是标准的 Java 项目,前后端分离,前端使用 VUE ,后端使用 Spring 全家桶。我们以 pig4cloud 作为基础,对不合适的地方做了些修改。有一些特点:使用了一个通用的打印方案,前端 js 直接控制打印机打印(如样品标签),不依赖某一个具体厂家的票据打印机;使用 WebRTC 来控制高拍仪,不依赖具体厂家的高拍仪 SDK ;后端搞了几个线程连接摄像头(HIK)/人脸识别终端(HIK)/电子天平,可以在前端直接抓拍摄像头照片/接收人脸识别消息(websocket)/样品称重消息(websocket)。
-
近年来,政府对禁毒工作比较重视,在禁毒方面的投入比较大。有一些潜在客户(一些地方的禁毒部门)表达了意向,但是由于经济形势,很多客户的项目都被延期。在前景不明的情况下,大家商量之后,决定散伙。
-
-
2022年底考了构架师,2023年 5 月考了分析师。其实我在大三(1988)的时候就考了高级程序员,那还是全国第一次统考。本来觉得不混体制内,软考没什么用,就没接着考。去年 8 月有个同事打算考高项,鼓动我,想想还是考一个分析师吧,曾经觉得"系统分析员"是程序员之路的天花板。上网一看,分析师只有上半年才有,那就先考个架构试试。结果就得了两个证。
本人身体健康,有健身习惯。以前是去健身房,后来健身房老板跑路,10K+的私教课打水漂之后,就在家自己练(周一到周五)。周末一般都会跟一群朋友去徒步(夏天溯溪/冬天探洞等等)
虽然 60 岁可以开始领退休工资,但是我打算工作到 65 岁以上,所以应该还有 10 年左右的工作时间。
希望能找个贵阳本地的工作,或者远程也行。
计算机领域的事,无论硬件还是软件/无论技术还是管理,大部分都能干。熟悉的领域上手会快一些,不熟悉的领域也许需要一些时间。可以带团队指导其他人,也可以直接一线编码/画板子。
如果合适的工作机会,可以直接电话我 18985041403, QQ: 30823154, 或者 mailto:
现在我已经全职在深圳上班了,还是做嵌入式方面的工作,与 UWB 相关。如果你有 UWB 方面的技术合作,可以联系我。电话 18985041403 (微信同号), QQ: 30823154, 或者 mailto:
Page 8 of 10