
多源数据融合的机器人定位系统设计与实现以多源数据判定标定算法为基础设计一种多源数据融合的机器人定位系统。本章 详细介绍该系统的硬件设计和软件设计两个方面。该系统使用卫星导航与惯性导航和轮 式里程计作为定位系统能够在复杂环境下保证系统定位的实时性、可靠性和准确性 同时没有使用激光雷达等昂贵的传感器实现了系统的造价成本低的优点。同时该系统 拥有良好的算力性能能够部署深度学习部署路径规划等功能。该系统具备良好的兼 容性可以将其部署到低速摆渡车、无人船、无人机等机器中从而实现低成本高精度 的无人驾驶。基于GNSS/INS/轮式计的融合定位方法设计机器人定位系统因此该系统需要搭建 GNSS 定位系统、惯导定位系统、轮式计定位系统。能够实现RTK定位技术的GNSS定位 系统需要3个部件卫星接收机、差分定位基站与云端通信器。卫星接收机负责接收卫 星信号产生GNSS定位源数据差分定位基站负责产生RTK差分数据云端通信器负责 将RTK差分数据发送到卫星接收机中。惯导定位系统和轮式计定位系统需要轮式编码器电机驱动器和IMU模块才能生成 里程计定位源数据和下发位姿调整指令。最后需要核心处理器处理多个定位源数据并 对定位源数据进行复杂的融合计算。多源数据融合的机器人定位系统的硬件设计根据上述的系统需求多源数据融合的机器人定位系统硬件部分可以分为6个模块分别为融合定位模块、卫星接收机模块、里程计模块、网络通信模块、基站模块和公 网模块。融合定位模块主要负责接收 GNSS 定位数据和里程计数据并部署因子图优化 算法和多源数据判定标定算法卫星接收机模块负责接收卫星信号并将卫星信号转换成 GNSS 定位数据信息里程计模块负责产生机器人运行过程中的Odom里程计定位数据 网络通信模块负责传输RTK差分数据、Odom定位数据和RTK获取请求基站模块负责产 生RTK差分数据公网模块负责接收RTK差分数据并且当有RTK获取请求时将RTK差分 数据发送给RTK获取请求的计算机。整体框架如图4.1所示。1 融合定位嵌入计算系统融合定位嵌入计算系统作为融合定位模块核心部分主要负责部署和运行算法模型 接收和处理GNSS定位数据和Odom里程计数据并于互联网中的计算机进行通信。该模 块运行因子图优化融合算法多源数据判定标定算法这两个对算法都使用了最小二乘法 进行迭代运算需要较强的CPU处理性能才能保证实时性。同时需要提供深度学习算法 相关的拓展还需要模块能够支持深度学习算法的部署。该模块负责获取多种不同传感 器的数据因此需要满足在loT场景下能够与各种不同的接口进行通信支持丰富的通 信协议。同时由于体积重量的限制功耗会受到限制需要在保证算力足够的前提下 尽量功耗较低。常用的AIoT Soc和开发板主要有高通QCS8250、瑞芯微RK3588、华为atlas200DK。 对于高通QCS8250它基于ARM架构的通用性处理器CPU采用2.4G A771.8GHz A55 的组合架构四核A77和四核A55设计同时内置独立的NPU算力能够达到15TOPS能 够用于部署深度学习模型GPU为Adreno 650 GPU内存支持LPDDR5/LPDDR4X最高 2750MHz 速率。接口包含2*USB3.12*PCIE、3*I2C 等接口。支持Android 10、Linux 等操作系统。瑞芯微RK3588该芯片的CPU为搭载四核A76和四核A55的八核CPUGPU为ARM G610MP4,同时内置 6TOPS 算力的 NPU。内存规格是LPDDR4X8GB 大小。接口包含2*GE RJ45 网络接口、2*USB2.0 接口、1*USB3.0 接口、1*Type-C 接口、2*HDMI TX 接口、 1*HDMI RX 接口、1*MIPI TX 接口、1*VGA 接口、1*SATA接口、1*PCIE3.0*4 接口。支持 Android 12、Linux、麒麟 OS 等操作系统。华为atlas200DK该开发板使用昇腾310作为NPU能够提供16TOPS算力。内存 为LPDDR4x,8GB,3200Mbps。接口包含 1*GE RJ45、1*USB3.0 Type C、2* 15 pin raspberry pi、1*40 pin IO。在CPU处理性能方面三款设备的CPU处理器性能相似都能够满足运算要求。在 NPU 算力方面高通QCS8250和华为Atlas200Dk高于瑞芯微RK3588但瑞芯微RK3588 算力也足够部署深度学习模型。接口方面瑞芯微RK3588、高通QCS8250接口丰富能 够支持许多传感器接口华为Atlas200Dk接口较少。软件方面瑞芯微RK3588能够支 持国产操作系统并且AI生态更加成熟提供很多样例代码高通QCS8250都需要基于官方SDK进行开发自由度较低。同时高通QCS8250和华为Atlas200Dk价格更贵。 因此结合成本、接口丰富度、性能和软件生态等原因本文选择瑞芯微 RK3588 作为 融合定位嵌入计算系统的处理单元。2 卫星接收机模块卫星接收机模块主要负责将卫星信号解析成 GNSS 定位数据信息并输出给融合定 位模块同时接收融合定位模块发送来的RTK差分数据使得GNSS定位数据达到厘米级 的定位精度。卫星接收机为提高定位精度使得计算出的位置更加精确和可靠需要接收机能够 支持多星多频。多星是指能够接收来自GPS、GLONASS、Galileo、BDS、QZSS这五个卫星 系统的所有卫星信息使得接收机能够捕获更多的卫星在复杂环境下提高定位可用性 和精度。多频是指能够接收一颗卫星发送的不同频带的测距信号和导航数据这些信号 拥有各异的可靠性和可用性同时多个频带的信息可以消除电离层误差、降低电磁干扰 影响、降低多路径现象的影响、提供更高的精度、快速RTK解算等优点。同时卫星接收 机还需要能够能够进行高精度的RTK解算提供厘米级的GNSS定位数据。同时卫星接 收机的体积和重量应尽可能的小。GNSS 高精度定位芯片主要有ublox的ZED-F9P、和芯星通的UM982。ublox的ZED F9P 高精度定位芯片是ublox公司开发的一款提供厘米级定位的高精度GNSS接收机。 支持的星座有BDS、GPS、GLONASS、Galilea。支持的频点有BDSB1I、B2I、B3I、B1C、 B2a、B2bGPSL1 C/A、L1C、L2P(Y)、L2C、L5GLONASSG1、G2、G3GalileoE1、 E5a、E5b、E6RTK 定位精度可以达到0.01m。和芯星通UM982该模块使用的是最新一代NebulasIV射频基带及高精度算法一体 化GNSS SoC 芯片。支持的星座有BDS、GPS、GLONASS、Galileo、QZSS。支持的频点有 BDSB1I、B2I、B3I、B1C、B2a、B2bGPSL1 C/A、L1C、L2P(Y)、L2C、L5GLONASS G1、G2、G3GalileoE1、E5a、E5b、E6QZSSL1、L2、L5NavICL5。单点定位 的平面定位精度为1.5m高程定位精度为2.5mDGPS的平面定位精度为0.4m高程定 位精度为0.8mRTK 的平面定位精度为0.4m高程定位精度为0.8m。航向姿态精度为 0.3°横滚姿态精度为0.2°俯仰姿态精度为0.2°。数据更新率为100Hz IMU原 始数据输出、50Hz RTK 定位结果输出。差分数据为 RTCM 3.X。数据格式为 NMEA 0183,Unicore。ublox 的 ZED-F9P 与和芯星通 UM982 都拥有支持多星多频RTK精度高芯片体积 小等优点。但和芯星通UM982支持基站模式和接收机模式两种模式可以通过同一款芯 片实现RTK定位而ublox的ZED-F9P只能作为接收机需要NEO-D9S或者NEO-D9C作 为基站实现RTK定位功能。同时由于成本因素考虑本文选用和芯星通UM982作为卫星 接收器模块。3 网络通信模块网络通信模块主要负责连通互联网保证核心控制模块能够与互联网进行通信。网 络通信模块为保证通信质量和通信速度要选用支持 5G 独立组网的模块同时芯片的 体积和功耗不能太高需要支持Linux系统。网络通信模块常用的有广和通的 FM150-AE 与移远通信的 RM500U-CN。广和通的 FM150-AE 支持 5G NSA 通信支持Windows、Linux、Android操作系统接口主要包含 1*USB3.0、1*PCIe2.0、1*GPIO、1*UIM、1*I2S、1*MIPI数据传输速率 5G NR SA 模式 下2.1Gbps下行/0.9Gbps上行、LTE 模式下600Mbps下行/90.4Mbps上 行、WCDMA 模式下42Mbps下行/5.76Mbps上行通信天线使用4根。行、WCDMA 模式下42Mbps下行/5.76Mbps上行通信天线使用4根。 移远通信RM500U-CN模块该模块是5G Sub-6 GHz模块符合3GPP Release15规 范支持5G NSA和SA模式。支持Windows 7/8/8.1/10、Linux、Android等操作系统 下的USB驱动。接口主要包含2*SIM接口、2*UART接口、1*USB2.0接口、1*USB3.0接 口、1*PCIe3.0 接口、4*Antenna 接口。数据传输速率5G SA Sub-6 2CC模式下2.4Gbps 下行/1.0Gbps上行、5G NSA Sub-6 模式下2.2Gbps下行/575Mbps上行、 LTE 模式下400Mbps下行/75Mbps上行、WCDMA模式下42Mbps下行/11.5Mbps 上行。天线使用的是IPEX-J-4代一共4根。根据上面对比移远通信RM500U-CN模块5G速率更快并且RM500U-CN与RK3588 之间的软件程序更加适配因此本文选用RM500U-CN模块用于搭建系统的网络通信模块 使得在户外情况下能够实现5G高速无线连接并且体积小和功耗低。4 里程计模块里程计模块主要负责计算机器人的Odom里程计数据并将Odom里程计数据通过串 口发送给核心控制模块。主要分为四个部分机器人轮毂伺服电机、伺服轮毂电机驱动 器、底盘控制单元、IMU单元。轮毂伺服电机将编码器、轮胎、轮子、电机和减速器进行集成是一种集成化很强 的电机采用外转子电机可以在转子上直接安装轮胎然后进行驱动。传统方法是使用 伺服电机、轮子、轮胎、减速器进行组装每个模块分隔开并且没有编码器。由于轮 毂伺服电机没有减速器使得其在运行过程相比传统方法的噪声更小同时得益于外转 子和编码器使得其拥有力矩更大运动精度更高的优点。轮毂伺服电机集成化高制 作成本低。因此本文选用中菱科技的ZLLG80ASM250-4096 V2.0型号轮毂伺服电机该电机将 转子、轮胎、定子绕线编码器霍尔传感器热敏电阻、轴全部集成为一体。外经为 206mm、额定电压为24V、额定功率250W、额定扭矩6N·m、额定电流6A、额定转速160RPM、 最大负载150KG/2sets。伺服轮毂电机驱动器使用的是中菱科技的 ZLAC8015D 型号电机驱动器,该驱动器可以驱动轮毂伺服电机含有配套的软件。驱动器采用CAN总线和RS485总线进行通讯 CAN 总线支持CANopen协议的CiA301及CiA402子协议最多可挂载127个设备波特 率范围25-1000KbpsRS485。输入电压为24-48V。IMU 模块负责获取机器人姿态。本文所搭建的系统用于低速机器人低速机器人在 短时间内无法做到大的姿态变化因此需要灵敏度较高的IMU模块, 量程与灵敏度成 反比量程越大灵敏度越低本文使用的 IMU 模块的最大量程不能大于2000°/s。除此之 外IMU的ADC输出位数越大则获取的姿态信息精度越高。Holybro 的 Pix32 v6 型号该控制器的主处理器使用的是STM32H753支持32位的 ARM 处理器480MHz频率,2MB内存1MB SRAM、协处理器使用的是STM32F103支持32 位的ARM处理器72MHz频率64KB SRAM。接口包含16 PWM输出2 CAN总线。其中 包含IMU单元BMI055、ICM-42688,量程都为±2000°/sADC输出位数都为16bit。本文 选用Holybro的Pix32 v6作为底盘控制单元和IMU单元。5 基站模块基站模块主要负责计算RTK差分数据将RTK差分数据送入卫星接收机模块使得 卫星接收机模块可以输出厘米级精度的RTK定位数据。基站模块需要包括逻辑处理计 算RTK差分数据发送RTK差分数据这三个功能。这三个功能由三个单元实现这三个 单元分别为计算机单元、RTK差分单元、通信单元。基站模块由这三个单元组成。计算机单元进行逻辑处理负责接收RTK差分单元产生的RTK差分数据并将RTK 差分数据打包成RTCM数据再 通过通信单元将RTCM数据发送到互联网中的NtripCaster 服务器中。计算机单元要求与多源数据融合的机器人定位系统的融合定位模块功能类似。 因此本文使用瑞芯微的RK3588作为基站模块的计算机单元。RTK 差分单元负责接收卫星信号再根据卫星信号和本身的经纬度位置解算出 RTK 差分数据。多源数据融合的机器人定位系统的卫星接收机模块和芯星通UM981可以设置 成计算RTK差分数据模式。因此本文使用和芯星通UM981作为基站模块的RTK差分单 元。通信单元负责将计算机单元生成的RTCM数据发送到互联网中的NtripCaster服务 器中它需要能够与互联网进行通信。该单元与多源数据融合的机器人定位系统的网络 通信模块功能相同。因此本文选用移远通信RM500U-CN作为基站模块的通信单元。三 个单元之间相互连接组合即可组成基站模块实现计算RTK差分数据并将RTK差分数据 发送到互联网的功能。基站模块网络结构如图4.2。6 公网模块公网模块负责获取基站模块发送来的RTK差分数据和网路通信模块发送来的RTK获 取请求根据RTK获取请求中的信息回复RTK差分数据给网络通信模块。在物理位置 上网络通信模块与基站模块距离较远基站模块需要安放在开阔的高地因此网络通 信模块与基站模块之间的信息传递需要借助互联网。由于5G通信模组产生的IP地址都 是随机的且都在内网中导致网络通信模块与基站模块无法直接通过互联网进行通信 因此需要在互联网中部署一个公网IP且IP地址固定的服务器。实际应用过程中存在多 个网络通信模块和基站模块所有网络通信模块和基站模块都可以访问该公网IP地址 从而实现数据的交互。7 多源数据融合的机器人定位系统硬件集成多源数据融合的机器人定位系统硬件集成设计如图4.3所示。里程计模块用于机器 人底盘系统。融合定位模块、网络通信模块与卫星接收机模块集成在同一块开发板上 作为多源数据融合机器人的主控系统。机器人主控系统物理安装在机器人中与机器人 底盘系统共同组成整个机器人车身。基站模块和公网模块独立于机器人车身不与机器 人车身装配在一起。机器人主控系统工作过程首先是卫星接收机通过两根天线接收卫星信号然后接收 融合定位模块通过USB串口发送来的RTK差分数据从而进行RTK解算获得GNSS定位 数据再将GNSS定位数据通过USB串口发送给融合定位模块。融合定位模块通过网络 通信模块获取得到基站模块的RTK差分数据。里程计模块将产生的里程计定位数据通过 串口发送给融合定位模块。融合定位模块获取到里程计定位数据和GNSS 定位数据后 使用多源数据判定标定算法进行处理再使用因子图融合算法融合定位数据。同时该系 统使用12V直流电源进行供电。里程计模块中一共使用四个机器人轮毂伺服电机使用两个伺服轮毂电机驱动器 来驱动四个机器人轮毂伺服电机。电机中包含编码器编码器获取到轮胎的角速度等信 息计算出轮速等信息发送给电机驱动器电机驱动器将轮速信息发送给底盘控制单元 底盘控制单元根据轮速等信息计算出位移数据同时IMU单元计算姿态数据并将姿态 数据发送给底盘控制单元底盘控制单元使用位移数据和姿态数据生成当前里程计定位 数据再通过串口发送给融合定位模块。机器人作为除基站模块和公网模块外其他硬件系统模块的载体本文采用的是自研 的四轮滑移转向机器人将多源数据融合的机器人定位系统硬件集成到该四轮机器人上。 该四轮机器人长88cm宽65cm高60cm。重量约为45KG。车身材质为铁表面刷上一 层防锈漆。四轮机器人车体如图4.4所示。机器人底盘系统如图 4.5 所示它主要由里程计模块的编码器、电机驱动器构成 包括四个伺服轮毂电机左右两边的两个电机轮子分别由一个伺服轮毂电机驱动器来控 制最后将轮胎数据发送给底盘控制单元。机器人主控系统、底盘控制单元和IMU单元集成在同一开发板中。网络通信模块通 过USB接口与融合定位模块通信卫星接收机模块通过Uart串口与融合定位模块通信 底盘控制单元和IMU单元集成在Pix32 v6模块中通过USB接口与融合定位模块通信。 开发板外壳采用铝制外壳提供固定、保护和散热功能。开发板与开发板外壳如图4.6 所示。将机器人主控系统和机器人底盘系统集成到该四轮滑移转向机器人后如图 4.7 所 示。系统集成开发板固定在正中央车身左上角和右下角固定卫星接收机的两根天线 电机驱动器固定在左右两侧。