本文介绍了一项由Xianmin Li等人于2020年11月5日发表在学术期刊《International Journal of Optics》上的原创性研究。该研究的主要作者包括来自中国核电工程有限公司核电安全监控技术与装备国家重点实验室的Xianmin Li,以及来自华南理工大学自动化科学与工程学院的Zihong Yan、Linyi Huang、Shihuan Chen和Manxi Liu。这项研究聚焦于机器人技术和室内定位领域,旨在解决移动机器人在复杂室内环境中实现高精度、实时且低成本定位的挑战。
研究的学术背景源于室内机器人应用场景的日益复杂化,例如大型地下停车场和购物中心,这些场景对机器人的自主导航能力提出了更高要求。传统的机器人定位方案,如依赖摄像头、激光雷达等外部传感器,虽然精度较高但成本昂贵且计算复杂。而基于Wi-Fi等无线电的定位技术,其精度通常难以满足机器人厘米级定位的需求。可见光通信(Visible Light Communication, VLC)技术为室内定位提供了新的思路。VLC利用LED(发光二极管)灯具的高速明暗闪烁来传输信息,具有频谱资源丰富、无电磁干扰、硬件成本低等优势。基于VLC的可见光定位(Visible Light Positioning, VLP)技术因此成为研究热点。然而,现有的VLP系统在应用于移动机器人实时定位时,往往在精度、鲁棒性或实际部署便利性方面存在不足。因此,本研究的目标是设计并实现一个基于VLP和移动机器人的高精度、实时室内定位系统,并将其集成到机器人操作系统(Robot Operating System, ROS)中,进行实际场景验证。
本研究的工作流程详细而系统,主要包含以下几个核心环节:智能LED灯具设计、基于CMOS图像传感器的LED-ID识别、动态LED-ROI区域追踪算法、三灯定位算法,以及最终在ROS平台上的系统集成与实验验证。
首先,研究团队自主设计了用于定位的智能LED灯具。这不仅是信号的发射源,也是照明设备。该设计包含硬件设计和蓝牙控制两部分。在硬件上,研究团队在LED驱动电源和LED灯珠之间加入了VLC控制器,其核心是一个集成了蓝牙功能的片上系统(BLE SOC)。该控制器可以通过蓝牙无线信道直接配置VLC数据(即LED的ID信息)和调制频率。VLC控制信号通过BLE SOC的一个I/O引脚产生。为了高效生成调制信号,系统利用BLE SOC的DMA(直接存储器访问)控制器和SPI(串行外设接口)模块。VLC数据预先存储在闪存中,上电后加载到专用RAM区。DMA控制器被设置为重复模式,根据VLC比特持续时间调整SPI频率,从而在无需CPU持续干预的情况下,实现VLC信号的连续发射。此外,每个灯具的VLC ID、蓝牙MAC地址及其物理坐标都存储在云端,构成了定位系统的数据库。用户可以通过手机摄像头获取LED的VLC ID,进而通过云端映射获得其物理位置或进行灯具控制。这种设计使得灯具部署和ID维护变得非常灵活。
其次,系统利用CMOS图像传感器的滚动快门(Rolling Shutter)机制来捕获和识别LED的ID信息。当CMOS传感器拍摄高频闪烁的LED时,由于逐行曝光和读取的特性,在图像上会形成明暗相间的条纹图案。这些条纹的序列就编码了LED的ID信息。研究团队引入了四个特征变量来描述这些条纹码:频率、占空比、距离和相位差系数。通过简单的图像处理技术提取这些特征,并与预先建立的数据库进行匹配,即可识别出LED的ID,从而获得该LED在空间中的已知坐标。
第三,为了实现移动机器人的实时定位,必须能够从连续的视频流中实时、准确地追踪LED在图像中的区域,即LED的感兴趣区域(Region of Interest, LED-ROI)。本研究采用了一种改进的CamShift-Kalman算法来实现动态LED-ROI追踪。CamShift算法用于追踪目标(LED)的输出位置作为测量信号,而卡尔曼滤波器则用于预测和校正目标位置。为了提高追踪的鲁棒性,算法引入了巴氏系数(Bhattacharyya coefficient)来实时更新卡尔曼滤波器的观测噪声矩阵。实验表明,即使在有其它LED灯管作为背景干扰的动态场景下,该算法也能保证LED-ROI的准确检测,展现了良好的鲁棒性和实时性。
第四,当相机视野中同时检测到三个或更多LED时,系统启动三灯定位算法来计算机器人的位置。算法基于透视几何中的相似三角形原理。已知三个LED在世界坐标系中的坐标(通过LED-ID识别获得)以及它们的像点在图像平面上的坐标,并假设所有LED安装高度相同(天花板高度一致)。首先,根据相机焦距f和LED像点坐标,计算每个LED像点到镜头光心的像素距离。然后,利用相似三角形关系,结合LED到相机镜头平面的垂直距离h,计算出相机镜头光心到每个LED的实际空间距离。最后,通过求解由这三个距离方程构成的方程组,即可得到相机镜头光心在世界坐标系中的三维坐标。再通过相机与机器人底盘之间预先标定的静态坐标转换关系,最终得到机器人自身的位置坐标。
第五,研究团队在办公室环境中搭建了完整的VLP机器人系统进行实现和验证。系统平台采用Turtlebot3移动机器人,其上垂直固定了一台MindVision UB-300工业相机。机器人的主控是Raspberry Pi 3 Model B,运行Ubuntu 16.04和ROS Kinetic。由于树莓派计算能力有限,图像处理和定位计算程序在一个远程笔记本电脑(运行Ubuntu 16.04)上执行。办公室天花板上安装了三个自主研发的智能LED灯具,其坐标已知。在定位过程中,相机捕获图像,通过上述的动态追踪算法获取LED-ROI,再通过LED-ID识别算法解析出LED的坐标信息,最后利用三灯定位算法实时计算机器人的厘米级位置,并在ROS中可视化显示。
本研究取得了一系列明确的结果。在定位精度方面,针对静止机器人的测试显示,系统的平均定位误差为2.14厘米,90%的定位误差小于3.231厘米,最大误差不超过5厘米。这证明了该系统具备厘米级的高精度定位能力。在动态定位性能方面,研究控制机器人以不同速度(2-4厘米/秒)沿直线和折线路径运动,结果显示定位结果(紫色点)与机器人的实际运动轨迹高度吻合,表明系统在机器人运动状态下依然能保持稳定可靠的定位效果。更重要的是,研究对系统的实时定位速度(即支持的最大移动速度)进行了理论分析和计算。定位速度取决于从图像捕获到完成定位计算的总时间t。在本实验设置中,由于图像需要传输到远程电脑处理,平均耗时t为0.3893秒。根据LED在图像中的像素位移与世界实际位移的比例关系,计算出该系统理论上能支持的最大移动速度约为9.497米/秒,即约20公里/小时。作者指出,若在机器人本体搭载性能更强的嵌入式计算机,省去图像传输时间,将能支持更高的移动速度。
基于以上结果,本研究得出结论:成功设计并实现了一个基于ROS和VLP的高精度、实时室内机器人定位系统。该系统在办公室实际场景中达到了厘米级(2.14厘米)的定位精度,并具有良好的实时性,可支持高达20公里/小时的移动速度。这为室内机器人的自主定位与导航提供了极具前景的研究方向。
本研究的亮点和价值体现在多个方面。首先,在方法学上具有显著的创新性:1)自主研发了集VLC与蓝牙控制于一体的智能LED灯具,硬件设计巧妙,通过DMA和SPI实现了高效的VLC信号生成,并通过云端管理实现了灵活的部署和维护。2)提出并实现了改进的CamShift-Kalman动态追踪算法,有效提升了在动态及有干扰环境下LED目标追踪的鲁棒性,这是实现实时VLP的关键。3)将完整的VLP算法(包括动态追踪、ID识别、三灯定位)与成熟的机器人操作系统ROS进行松耦合集成,构建了一个完整的、可实际运行的机器人定位系统,而非停留在仿真或实验台阶段,推动了VLP从理论走向实际应用。其次,在研究结果上取得了重要进展:实现了高达2.14厘米的平均定位精度,同时理论上支持20公里/小时的高速移动,这在当时的VLP研究中属于性能领先的水平。它综合平衡了精度、实时性和成本。最后,该研究展现了广阔的应用潜力。系统硬件成本相对较低(主要利用现有照明设施和普通摄像头),且可见光无电磁辐射,特别适用于医院、核电站等对电磁敏感或要求高可靠性的特殊环境。论文也提到,未来工作可将VLP系统与ROS中的其他传感器(如惯性测量单元IMU)进行融合定位,或用于机器人导航,充分利用VLP优势的同时弥补其可能存在的缺陷(如遮挡问题)。
此外,论文中还有一些有价值的细节。例如,作者详细分析了影响定位速度的关键因素,并指出了通过提升本地计算能力来进一步提高系统实时性的途径,这为后续优化提供了明确思路。同时,整个系统架构的各个模块(发射端、接收端、处理算法、集成平台)描述清晰,构成了一个完整的技术闭环,具有很好的可复现性和参考价值。