LC29H(XX) GPS/RTK HAT
| |||||||||||||||||
| |||||||||||||||||
说明
产品简介
LC29H 系列产品是树莓派双频 GNSS 定位扩展板, 可追踪 L1+L5 双频段、多星座 GNSS 卫星信号,降低城市峡谷中的多径效应,提高定位精度同时保持低功耗,模组内置低噪声放大器 (LNA) 和声表面滤波器 (SAW Filter),实现了高灵敏度和强抗干扰能力,利用双频定位和 RTK 技术,可满足厘米级的高精度定位需求,助力无人机、智能农机、共享两轮车等行业应用实现升级体验,是实时跟踪系统、共享经济应用的理想选择。
产品特性
- 基于 Raspberry Pi 40PIN GPIO 接口设计,适用于 Raspberry Pi 系列主板
- 支持同时追踪 L1+L5 双频段卫星信号,降低城市峡谷中的多径效应,提高定位精度
- 支持并发接收多卫星系统 (GPS、BDS、GLONASS、Galileo 和 QZSS) 信号,同时系统可保持低功耗
- LC29H(AA) GPS HAT 支持以下特性:
- 支持定位增强系统 (WAAS、EGNOS、MSAS 和 GAGAN),提高服务地区的定位性能
- 支持 EASY 技术,实现无信号时使用星历、历书等存储信息定位,改进定位和首次定位时间 (TTFF)
- LC29H(DA) GPS/RTK HAT 支持以下特性:
- v支持快速收敛双频 RTK 厘米级定位,适用于终端设备高精度定位
- LC29H(BS) GPS/RTK HAT 支持以下特性:
- 支持 GNSS 原始观测量和校正数据输出,适用于建立 RTK 基站
- 内置低噪声放大器和声表面滤波器,实现 -165dBm 高灵敏度和增强抗干扰性能
- 支持多频主动干扰消除,有效抑制或消除窄带信号 (WiFi/2/3/4/5G) 干扰,保证导航准确性
- 支持 AGNSS(Assisted GNSS),减少首次冷启动上电定位时间 (TTFF) 至 5 秒
- 支持串口通信波特率范围:9600~3000000bps (默认 115200bps)
- 支持 QGNSS 软件,方便设置模块各项功能
- 板载电池座,可接入 ML1220 充电电池,用于掉电保存星历数据以及热启动
- 板载 4 个 LED 指示灯,方便查看模块运行状态
- 提供完善的配套资料手册 (Raspberry Pi / Jetson Nano 等 Python 示例程序)
产品参数
- 接收信号: GPS,SBAS,QZSS,GLONASS,BeiDou,Galileo
- 支持SBAS: WAAS, EGNOS, MSAS, GAGAN(仅 LC29H(AA) GPS HAT支持SBAS)
- 信号频段: GPS L1C/A L5,GLONASS L1,BeiDou B1I B2a,Galileo E1 E5a
- 捕获时间: 冷启动:26S;热启动:1S
- 捕获灵敏度: -145dBm(LC29H(DA)),-147dBm(LC29H(AA),LC29H(BS))
- 跟踪灵敏度: -165dBm
- 重捕捕获灵敏度:-157dBm(LC29H(DA)),-159dBm(LC29H(AA),LC29H(BS))
- 定位精度: 1m CEP(PVT),0.01m+1ppm CEP(RTK)
- 最高海拔: 10000M
- 最大速度: 500m/s
- 逻辑电压: 3.3/2.8V
- 通信接口: UART,I2C
- 串口通信波特率: 9600~3000000bps (默认115200)
- 更新速率: 最大 1Hz@RTK,GPS模式(默认 1HZ)
- 通信协议: NMEA 0183 V4.10,RTCM 3.x,PAIR
- 工作电压: 5V(由5V 引脚或USB输入电源)
- 整机耗流: 小于 40mA@5V (Continue 模式)
- 工作温度: -40℃ ~ 85℃
- 产品尺寸: 65mm × 30.5mm
硬件说明
硬件连接
- 接入 Raspberry Pi 前,LC29H(XX) GPS/RTK HAT 的黄色跳冒连接至 B 位置,Raspberry Pi使用/dev/ttyS0收发信息
- 当需要使用 USB 端口时,需要将板子上黄色跳冒连接至 A 位置,Raspberry Pi使用/dev/ttyUSB0收发信息
- 连接 L1/L5 双频天线到板载 IPEX 1代 座子,板子连接至 Raspberry Pi 40Pin座子,天线朝向可视天空,如下图所示
引脚说明
- RXD,TXD 引脚为 LC29H(XX) 模组的 UART,输出NMEA0183等信息和指令收发,引脚连接LED灯用于指示信息收发
- SDA,SCL 引脚为 LC29H(XX) 模组的 I2C,输出NMEA0183等信息和指令收发
- WAKEUP 引脚为 LC29H(XX) 模组唤醒引脚, 当模组在 Backup 模式,可通过翻转引脚电平唤醒
- PPS 引脚为 LC29H(XX) 模组脉冲信号引脚, 可用于时间同步,引脚连接LED灯用于指示模组是否进入定位
- WI/RES 引脚为 LC29H(XX) 模组保留引脚,暂不开放
产品尺寸
定位原理
什么是GNSS?
GNSS全称Global Navigation Satellite System(全球导航卫星系统) , 是多个卫星系统的总称 , 目前世界上有BDS(中国) , GLONASS(俄罗斯) , GPS(美国) , Galileo(欧洲) , QZSS(日本) , IRNSS(印度)导航卫星系统 , GNSS特性如下:
- GPS系统是现阶段应用较为广泛 , 技术较成熟的卫星定位技术 . 相继发展出L1C/A , L2C , L5等频段信号提高了定位精度 .
- 多系统多频段GNSS模组能够捕获来自不同卫星系统的卫星 , 使得有效卫星数大幅度提升 , 提高定位精度和稳定性 .
- GNSS模组接收到的信号包含反射和折射信号 , 产生多路径效应影响定位精度 , 多频段多星座系统技术可以有效抑制削弱大气层误差 , 提高定位精度 .
- 随着GNSS发展 , 出现了多种定位技术如RTK , PPP-RTK和多传感融合定位DR(Dead Reckoning 航位推测法)等 , 满足差异化高精度定位需求 .
GPS工作原理
本小节简述GPS接收机定位的工作原理如下图所示 细节描述如下5点 . 定位原理详情请参考GPS定位基本原理 GPS工作原理 , Fundamentals of gps receivers , FUNDAMENTALS OF GPS
- GPS卫星在空中连续发送带有自身时间和位置信息的无线电信号 , 供GPS接收机(GNSS模组如ZED-F9P)接收
- 卫星和接收机内部会产生伪随机码 , 一旦两个伪随机码实现同步 , 接收机便能测定无线电信号发射时间与到达接收机的时间之差(简称时延) , 将时延乘上光速便得到距离(简称伪距)
- GPS系统时间是由每颗卫星上原子钟的铷原子频标保持的 . 这些星钟一般来讲精确到世界协调时(UTC)的几纳秒以内 , UTC是由海军观象台的“主钟”保持的,每台主钟的稳定性为若干个10^(-13)秒 .
- GPS卫星上的计算机和导航信息发生器精确地了解其轨道位置和系统时间 , 而全球监测站网保持连续跟踪卫星的轨道位置和系统时间 . 位于科罗拉多州施里弗(Schriever)空军基地内的主控站与其运控段一起 , 至少每天一次对每颗GPS卫星注入由复杂模型基础上计算出的轨道位置和星上时钟校正数据 .
- 计算GPS接收机(GNSS模组)的三维位置 , 要求GPS接收机至少接收来自4颗卫星的信号 , 根据空间三角形勾股定理和四元一次方程计算得到三维位置.
什么是RTK?
RTK全称Real Time Kinematic (实时动态技术) , 又称载波相位差分技术 , 是一种支持厘米级定位精度的GNSS定位技术(简称RTK技术) , 是实时处理两个测量站载波相位观测量的差分方法 , RTK技术工作过程如下图所示,通过移动网络实时将基准站(GNSS接收机)的生成的DGPS corrections传输给流动站(GNSS接收机)进行计算实现厘米定位 .
RTK技术的应用
- 各种控制测量比如传统的大地测量 , 工程控制测量采用三角网 , 导线网方法来施测,采用RTK技术实时测得定位精度保证观测质量 , 提高作业效率 , 相比常规GPS静态测量 , 快速静态 , 伪动态这些非实时性方法在测量完成后,后续处理若发现精度不合要求还须返测 . 另外RTK技术用于公路控制测量 , 电子线路控制测量 , 水利工程控制测量 , 大地测量 , 可减少人力强度 , 节省费用 , 在几分钟甚至于几秒钟内就可完成控制点测量 .
- 地形测图 . 采用RTK时,仅需一人背着仪器在要测的地形地貌碎部点呆上一二秒种,并同时输入特征编码,通过手簿可以实时知道点位精度,把一个区域测完后回到室内,由专业的软件接口就可以输出所要求的地形图,这样用RTK仅需一人操作,不要求点间通视,大大提高了工作效率,采用RTK配合电子手簿可以测设各种地形图,如普通测图、铁路线路带状地形图的测设,公路管线地形图的测设,配合测深仪可以用于测水库地形图,航 海海洋测图等等。
- 放样程放样是测量一个应用分支,采用RTK技术放样时,仅需把设计好的点位坐标输入到电子手簿中,背着GPS接收机,它会提醒你走到要放样点的位置,既迅速又方便,由于GPS是通过坐标来直接放样的,而且精度很高也很均匀,因而在外业放样中效率会大大提高,且只需一个人操作。
NTRIP
- NTRIP(Networked Transport of RTCM via Internet)简称通过互联网传输 RTK 差分数据,是一种通过 Internet/本地网络分发 RTK 校正数据的协议.这允许扩展具有无限基地和无限流动站的 RTK 网络.具有多个 NTRIP 设备的网络称为 NTRIP 网络.NTRIP 网络中有 3 个角色:
- NTRIP Caster,它是一个服务器,负责接收、发送 GNSS 差分数据.从一个或多个基站收集 RTK 校正数据(即RTCM 数据),并将它们分配给 RTK 流动站.rtk2go 是基于云的公共 Caster,可以将 RTCM 数据通过上传到 rtk2go.
- NTRIP Server,它是由一个物理 RTK 基站和软件组成的.它的作用是将 RTK 校正数据(即RTCM 数据)通过互联网网络发送到 NTRIP Caster 比如 rtk2go. RTKLIB_2.4.3_b34 的 strsvr 软件可以实现 NTRIP Server.
- NTRIP Client,GPS 定位模块通过 NTRIP Client 接收 RTK 校正数据(即RTCM 数据)进行 RTK 定位, 此时 GPS 模块和 NTRIP Client 简称 RTK 移动站.RTKLIB_2.4.3_b34 的 strsvr 软件可以实现 NTRIP Client,u-center,QGNSS 也集成了 NTRIP Client.
NMEA0183
- GNSS模组输出NMEA0183信息,由外部控制器解析NMEA0183信息输出人类适读信息
- NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式.现已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议
- NMEA 0183包括$GPZDA、$GPRMC、$GPVTG、$GPGNS、$GPGGA、$GPGSA、$GPGSV、$GPGLL、$GPGST等7种协议帧,其中$后跟随的前两个字符代表国家或地区的GNSS系统,比如GPGGA代表美国GPS ,BDGGA代表中国北斗 ,GLGGA代表俄罗斯GLONASS ,GAGGA代表欧盟Galileo,GNGGA代表多星联合定位
- 以$GPRMC为例简要描述协议帧中各部分所代表的信息,其它6种协议帧请查阅NMEA 0183手册
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息 $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF> $GNRMC,010555.000,A,2232.4682,N,11404.6748,E,0.00,125.29,230822,,,D*71 <1> UTC时间,hhmmss.sss(时分秒)格式 <2> 定位状态,A=有效定位,V=无效定位 <3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) <4> 纬度半球N(北半球)或S(南半球) <5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) <6> 经度半球E(东经)或W(西经) <7> 地面速率(000.0~999.9节,前面的0也将被传输) <8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输) <9> UTC日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也将被传输) <11> 磁偏角方向,E(东)或W(西) <12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效) *hh : 最后校验码*hh是用做校验的数据。在通常使用时,它并不是必须的,但是当周围环境中有较强的电磁干扰时,则推荐使用。hh代表了“$”和“*”的所有字符的按位异或值(不包括这两个字符)。个别厂商自己定义语句格式以“$P”开头,其后是3个字符的厂家ID识别号,后接自定义的数据体。
使用说明
RTK Rover 指使用 LC29H(DA) HAT 模块作为流动站,连接并接收千寻位置(中国大陆)或其它参考基站服务商的 RTCM 数据流,实现高精度厘米级定位
RTK Base 指使用 LC29H(BS) HAT建立CORS(Continuous Operational Reference System 连续运行参考站),为其它设备提供 RTCM 数据流,实现设备的实时厘米级定位
Windows
Windows小结是使用 Windows 电脑上的 QGNSS 等软件对 LC29(XX) 系列模组进行快速设置和使用的说明,QGNSS 软件的详细使用说明请参考 QGNSS_1.8.zip中的Quectel_QGNSS_User_Guide_V2.0.pdf文件
AGNSS
- LC29H(AA) HAT 支持 AGNSS(Assistant GNSS), 使用 QGNSS 软件导入 EPO 数据,可减少 LC29H(AA) HAT 首次定位时间至5秒
- 打开 QGNSS 软件,点击菜单栏 Device-->Set Device Information-->Model-->LC29H(AA),选择对应 COM 口和默认波特率115200
- 点击菜单栏 AGNSS-->Assistant GNSS Offline-->connect, 选择下载对应 EPO 再下载到 LC29H(AA) HAT,如下图所示
RTK Rover
- LC29H(DA) HAT 进入 RTK Rover 模式,实现厘米级定位
- 用户需要先申请当地机构参考基站服务,如美国用户向 UNAVCO 申请,笔者毗邻香港,以 Hong Kong Geodetic Survey Services 为例进行测试.
- 下载安装打开 QGNSS 软件, 国内用户使用资料区的 baidu网盘链接.
- 连接 LC29H(DA) HAT 到电脑,如需安装驱动请点击下载安装完成后在QGNSS选择对应COM口.
- 用户需要先申请当地机构参考基站服务,如美国用户向 UNAVCO 申请,笔者毗邻香港,以 Hong Kong Geodetic Survey Services 为例进行测试.
- 在QGNSS菜单栏点击打开Tools-->NTRIP-->NTRIP Client,弹出选项卡,输入下面的参数.
- 在QGNSS菜单栏点击打开Tools-->NTRIP-->NTRIP Client,弹出选项卡,输入下面的参数.
建议参考基站和流动站之间直线距离小于50KM Address: landsd-gncaster.realtime.data.gov.hk Port: 2101 Username: psi_user Password: psi
- 输入完成后点击 Update source table,在 NTPIP mount point 下拉框选择最近距离的 T430_32 后,点击 Connect To Host 保存运行RTK Rover服务.
- LC29H(DA) HAT 进入 RTK Rover后,QGNSS 的 Data Dock 栏显示 RTK 状态,RTK Fixed 为 RTK 确定状态,此时厘米定位准确,RTK Flaot 浮动状态,厘米定位不准确.
- 输入完成后点击 Update source table,在 NTPIP mount point 下拉框选择最近距离的 T430_32 后,点击 Connect To Host 保存运行RTK Rover服务.
RTK Base
- NTRIP 相关术语请查阅 NTRIP 章节.
- 使用 LC29H(BS) HAT 建立 CORS(Continuous Operational Reference System 连续运行参考站),为其它流动站设备提供 RTCM 数据流,配置指令手册参考Quectel_LC29H(BS)_GNSS_Protocol_Specification_V1.0.pdf
- LC29H(BS) 作为基站运行,天线应安装在固定点上(尽量选择具有良好天空视野、避免遮挡的位置安装). 天线精确的坐标位置可以通过 LC29H(BS) 的测量模式(Survey-in)获得.
- 使用 QGNSS 软件设置 $PQTMCFGSVIN 命令,使 LC29H(BS) 进入 Survery-in 模式, 此模式通过建立所有有效 3D 定位结果的加权平均值来确定接收机天线的位置.下图为 $PQTMCFGSVIN 命令的参数设置表和详细操作
- 命令 $PQTMCFGSVIN,W,1,3600,1,0,0,0*16 设置 LC29H(BS) 观测 3600 秒, 3D 定位精度 1 米, 注意 "*16" 后面的 "16" 为十六进制的校验值,在输入完 $PQTMCFGSVIN 命令和参数后点击 CheckNum 按钮生成,按钮在 QGNSS->Tools->Command Console->CheckNum, 校验和计算方式请查阅[ 手册]第2章.
#在复选框输入 $PQTMCFGSVIN,W,1,3600,1,0,0,0 #点击 CheckNum 按钮会自动添加校验值 $PQTMCFGSVIN,W,1,3600,1,0,0,0*16
- 观测结束后, 通过 $PQTMCFGSVIN,R*26 命令查阅由 Survey-in 模式得到地心地固坐标(ECEF)值, 比如:
#查阅观测结果 $PQTMCFGSVIN,R*26 #返回结果 $PQTMCFGSVIN,OK,1,3600,50.0,-2404572.0411,5381092.5507,2429899.7105*6F
- 如果用户有专业仪器测得天线的固定点坐标点, 可以直接输入到 LC29H(BS), 使其进入固定模式(Fixed), 需要注意的是基站天线位置的任何误差将直接转化为移动站位置误差.此处测试将用观测结果用于固定点模式.
#注意用户需要根据自己GPS模块观测结果或专业仪器测得的定位坐标进行填充, 注意 -2404572.0411,5381092.5507,2429899.7105 分别为 ECEF坐标系的 XYZ 值. $PQTMCFGSVIN,W,2,0,0,-2404572.0411,5381092.5507,2429899.7105*21
- 下载 RTKLIB_2.4.3_b34 , 用于建立 NTRIP Server, 将 LC29H(BS) 输出的 RTCM 数据传送到 rtk2go 的 NTRIP Caster 服务器上.
- 断开 QGNSS 连接, 解压打开 RTKLIB_bin-rtklib_2.4.3.zip 中的 strsvr , 配置 Serial 和 NTRIP Server 选项,如下图所示
- 注意 Serial 端口为 LC29H(BS) 在电脑中枚举的COM号, 波特率为 115200
- 注意 NTRIP Server HOST为 rtk2go.com, Port为2101,Mountpoint为您自己注册的挂载点名字,密码请自行设置
- 配置 Serial 和 NTRIP Server 选项后点击start, 可以上传基站的 RTCM 数据, 用户可以点击链接查阅自行建设的基站上线与否
- 当使用 NTRIP Client 连接自建基站时, 注意需要填写 username 为您注册基站的邮箱地址
其它设置
- PAIR 指令集是用于设置 LC29H(XX) HAT 系列模组的功能 ,通过 UART 或 I2C 进行收发
- 使用 QGNSS 软件设置 LC29H(XX) HAT 系列模组功能, 详细操作查看PAIR指令集
- 打开 QGNSS, 选择对应 Model 和正确波特率(默认115200), 点击菜单栏 Tools-->Command Console
- 注意每条指令的校验值可以点击 CheckNum 按钮生成,按钮在 QGNSS->Tools->Command Console->CheckNum, 校验和计算伪代码如下所示,详情请查阅[ 手册]第2章.
// pData is the data array of which the checksum needs to be calculated: unsigned char Ql_Check_XOR(const unsigned char *pData, unsigned int Length) { unsigned char result = 0; unsigned int i = 0; if((NULL == pData) || (Length < 1)) { return 0; } for(i = 0; i < Length; i++) { result ^= *(pData + i); } return result; }
RaspberryPi
此小结是关于 Raspberry Pi 4B 和 LC29H(XX) HAT 的使用说明
环境设置
- 使能树莓派上的 UART I2C 等功能引脚,不熟悉树莓派用户请查阅文档设置树莓派开启 UART I2C 等, 如下图所示
- 参考硬件连接小结选择黄色跳线帽至 B 位置, Raspberry Pi 使用 /dev/ttyS0 设备文件进行交互,天线放置在可视天空区域内
RTK Rover
- 安装Python函数库
sudo apt-get update sudo apt-get install gpsd gpsd-clients sudo pip3 install gps3
- 修改gpsd参数
#打开gpsd文档 sudo nano /etc/default/gpsd #将文档以下参数修改后保存退出 USBAUTO="false" DEVICES="/dev/ttyS0" GPSD_OPTIONS="/dev/ttyUSB0"
- 下载源码
wget https://www.waveshare.net/w/upload/1/14/Lc29h_gps_rtk_hat_code.zip
测试程序
- 网络RTK测试,使用 TCP/IP 传输 LC29H(DA) 的 GGA 信息到 RTCM 数据流服务器, 如果地址有效返回 RTCM 数据流, LC29H(DA) 接收并解析 RTCM 数据流
- 执行程序后,终端将每秒打印 GGA 信息, GGA 信息包含 RTK 定位结果
cd ~/lc29h_gps_rtk_hat_code/python/rtk_rover/ python3 main.py -u psi_user -p psi landsd-gncaster.realtime.data.gov.hk 2101 T430_32 #python3 main.py -u test@emali.com -p your_ntrip_server_password rtk2go.com 2101 your_mountpoint_name # # python3 main.py -u username -p password caster port mountpoint # # username: replace it with your NTRIP Caster username, it would be an email address # when you use rtk2go Caster # # password: replace it with your NTRIP server password # # caster:suppose that the nearby caster is "landsd-gncaster.realtime.data.gov.hk" # if you dont have a base station send rtcm stream to your # RTK HAT,please contact the local RTK service appropriate # authority,or make a base station by RTK Base HAT(like as ZED-F9P, LC29H(BS) HAT) # port: the caster port # mountpoint: T430_32 #
- 坐标转换,执行程序后,终端每隔10秒打印 wgs84 gcj02 bd09 等坐标系定位结果
cd ~/lc29h_gps_rtk_hat_code/python/coordinate_converter python main.py
RTK BASE
Windows 系统可以使用STRSVR将基站信息上传服务器,Linux 系统可以参考以下步骤安装rtkbase工具上传服务器
- 复制以下在树莓派到终端
https://github.com/Stefal/rtkbase git clone https://github.com/Stefal/rtkbase.git cd rtkbase/tools sudo ./install.sh --all release
- 打开终端,运行以下命令,接受新的 Suite 值:
sudo apt-get update --allow-releaseinfo-change
- 如果上述步骤不起作用,你可以尝试执行以下命令,显式地接受新的 Suite 值:
sudo apt-get update --allow-releaseinfo-change --allow-unauthenticated
- 缺少相应的公钥。解决这个问题的方法是导入正确的公钥。可以使用以下命令导入缺失的公钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131
- 正确安装工具到网页后,会有以下提示:
- 然后直接打开浏览器访问本机(树莓派IP)地址(这里是192.168.10.87),树莓派那边要打开对应的按钮,才可以实现服务器在线
资料
文档
程序
软件
数据手册
File:Quectel_L89_R2.0&LC29H&LC79H_AGNSS_Application_Note_V1.0.pdf
File:Quectel_LC29H&LC79H_Series_GNSS_Protocol_Specification_V1.1.pdf
File:Quectel_LC29H(BA,CA,DA)_DR&RTK_Application_Note_V1.0.pdf
File:Quectel_LC29H(BS)_GNSS_Protocol_Specification_V1.0.pdf
NMEA0183
FAQ