前言:ROS机器人操作系统(Robot Operating System)用于编写机器人软件程序的一种具有高度灵活性的软件架构,随着市场智能化的发展,机器人从原来的封闭工厂开始走向户外,而GNSS作为户外高精度定位解决方案,因为其全天时全天候和高精度定位的特点,成为移动机器人ROS主流的集成方案。基于此,本文就北斗/GNSS其主要原理及特点,共同探讨其在ROS机器人系统的相关应用。

  • GNSS系统

GNSS全球导航卫星系统(Global Navigation Satellite System)是利用一组卫星的伪距、星历、时间等观测量,在地球表面或近地空间的任何地点为用户提供全天候全天时的三维坐标、速度以及时间信息的空基无线电导航定位系统,其精度分为米级、分米级和厘米级,测速精度可达0.03m/s,授时精度达纳秒级别。

GNSS误差源:

  1. 与卫星相关。包括卫星轨道误差、卫星钟差、相对论效应。
  2. 与传播途径相关。电离层误差、对流层误差、多路径效应。
  3. 与接收设备相关。接收机天线相位中心偏移和变化、接收机钟差、接收机内部噪声。
  4. 其他影响。地球潮汐、负荷潮。
  • 原理解析

1.RTK差分定位

在利用GNSS进行定位时,会受到各种各样因素的影响,为了消除这些误差源,必须使用两台以上的GNSS接收机同步工作。GNSS静态测量的方法是各个接收机独立观测,然后用后处理软件进行差分解算。那么对于RTK测量来说,仍然是差分解算,只不过是实时的差分计算。对于移动机器人主要用到的是RTK技术。

实时动态差分法(Real-time kinematic,RTK,载波相位差分技术):基准站通过数据链将其载波观测量及站坐标信息一同传送给用户站。用户站接收卫星的载波相位与来自基准站的载波相位,组成相位差分观测值进行处理,计算后给出厘米级的定位结果。

RTK系统由三部分组成:

  • 基准站(差分数据源)
  • 差分数据通讯链(网络、电台、4G等)
  • 移动站(终端)

RTK精度影响

  • 移动站和基站观测到的共同卫星数:RTK精确定位要求要求移动站与基站观测到相同的多频段卫星且卫星数量、质量满足其解算要求才能实现RTK固定解,观测到越多的卫星就能越快速的得到RTK固定解。
  • 移动站和基站距离:移动站与基站之间的距离有要求,低纬度地区的基站有效覆盖距离小,高纬度地区的距离远;随着移动站与基站的距离增加,误差会越来越大。

RTK解的形式

  • 单点解:是RTK在工作的时候移动站和基准站互相不能联系,接收机未使用任何差分改正信息计算的3D坐标
  • 浮动解:精度相对高一点,但其精度一般是不可靠的,定位精度可接近于固定解或到达20-30cm,在遮挡严重环境下获取的一般是浮点解
  • 固定解:是RTK的精确定位数据,精度一般在2-5cm

2.Ntrip协议

  • Ntirp协议是针对于RTK系统中,通过网络传播的区域地基增强系统,其结构如上图所示,主要包括如下三部分:
  • Ntrip Server:通过某种途径获取基准站的差分观测数据,然后传送给Ntrip Caster数据中心;
  • Ntrip Caster:接收Ntrip Server的差分观测数据,给Ntrip Client发送差分数据;
  • Ntrip Client:向Ntrip Caster请求基站差分观测数据,最终实现RTK定位

3.NMEA-0183协议

NMEA是National Marine Electronics Association(美国国家海事电子协会)的缩写。该协会是一家专门从事海洋电子设备方面研究的民间机构,它制定了关于GNSS(全球定位系统)电子设备之间的通信接口和协议的NMEA标准。

NMEA-0183协议是目前GNSS接收机上使用最广泛的协议,大多数常见的GNSS接收机、GNSS数据处理软件、导航软件都遵守或者至少兼容这个协议。NMEA-0183协议定义的语句非常多,常用的兼容性最广的语句有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG等。

协议采用ASCII码,其串行通信默认参数为:波特率115200(与接收机厂家定义相关),数据位8bit,开始位1bit,停止位1bit,无奇偶校验。

  • 应用

计算机(联网)通过Ntrip获取基站的差分观测数据,然后通过串口给到北斗/GNSS板卡,板卡通过接收到的基站差分观测数据解算出RTK定位数据并上发,系统通过NMEA-0183协议解析相关数据。

  1. RTKLIB

RTKLIB是全球导航卫星系统GNSS(global navigation satellite system)的标准&精密定位开源程序包,RTKLIB由日本东京海洋大学(Tokyo University of Marine Science and Technology)的高须知二(Tomoji Takasu)开发。RTKLIB由一个便携式程序库和多个AP(应用程序)工具库组成。RTKLIB的主要功能有:

  • 支持多个GNSS系统的标准和精密定位算法,包括GPS,GLONASS,Beidou,Galileo,QZSS和SBAS
  • 支持多种GNSS实时和后处理定位模式:单点定位、DGPS/DGNSS,动态RTK、静态RTK、移动基站、PPP
  • 支持多种GNSS标准格式和协议:RINEX2.10、RINEX2.11、RINEX2.12、RINEX3.00、RINEX3.01、RINEX3.02、RTCM2.3、RTCM3.1、RTCM3.2、BINEX、NTRIP、NMEA0183、SP3、ANTEX1.4、IONEX1.0、NGS PCV、EMS 2.0
  • 支持外部通信:Serial、TCP/IP、NTRIP、本地日志文件(记录和播发)和FTP/HTTP
  • 提供许多函数库和API(application program interfaces):卫星和导航系统函数、矩阵和向量函数,时间和字符串函数、坐标的转换,输入和输出函数、调试跟踪函数、平台依赖函数、定位模型、大气模型、天线模型、地球潮汐模型、大地水准面模型、基准转换、RINEX函数、星历和时钟函数、精密星历和时钟、接收机原始数据函数、RTCM函数,解算函数、谷歌地球KML转换、SBAS函数、选项(option)函数、流数据输入和输出函数、整周模糊度解算、标准定位、精密定位、后处理定位(解算)、流服务器函数、RTK服务器函数、下载函数。

RTKLIB包含Ntrip协议,基于此可以获取基站的差分观测数据,也可以对于获取的数据进行基础处理分析。

ROS

ROS通过串口获取北斗/GNSS板卡RTK解算好的NMEA数据进行分析,最终实现机器人的位置感知以及操作控制。

值得一提的是,我们通常有个误解,通过GNSS测量的速度是位置与时间的函数。如果是这种情况,GNSS的速度几乎无法使用,GNSS位置依赖于接收机到卫星距离的精准测量,这一步骤受大气、钟差等多种因素影响,精度不可控。

事实上,速度测量是基于卫星信号的多普勒频移,具有极高的速度测量精度,在单点米级定位的基础上,速度精度也能达到厘米级的测速精度。

北斗/GNSS在ROS机器人系统的应用相关推荐

  1. 【安装】安装ros机器人系统和无人机环境配置常见问题总结

    安装ros机器人系统和无人机环境配置常见问题总结 一.安装ROS 二.无人机环境配置 更多安装 Ubuntu16.04安装ros:http://wiki.ros.org/cn/kinetic/Inst ...

  2. ROS机器人系统中遇到的坐标系问题

    ROS机器人系统中遇到的坐标系问题 前段时间,我在做项目的时候负责四轮无人小车的ROS仿真,URDF和Xacro机器人建模过程比较顺利,URDF/Rviz/Gazebo的综合应用也比较顺利,但是在机器 ...

  3. 【ROS机器人系统】自主导航+YOLO目标检测+语音播报

    文章目录 一.总体功能设计 二.实验环境 三.演示 四.场景搭建.建图与导航模块 4.1 场景搭建 4.2 小车模型 4.3 导航模块 (1)安装依赖 (2)从github下载的文件中的test_ws ...

  4. ROS机器人系统学习笔记(一)--------ROS安装与配置

    一.ROS概述 ROS的全名是RobotOperating System,即机器人操作系统起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司WillowGarage的个人机器人项目(Per ...

  5. 蓝桥ROS机器人系统更新和功能包安装记录

    直接系统更新会有错误: ☞ ROS域名解析问题记录(蓝桥云课ros.asc) sudo apt update 使用ros.asc如下: -----BEGIN PGP PUBLIC KEY BLOCK- ...

  6. 【ROS教程 001】ROS机器人系统简介及安装

    1 ROS简介 ROS(Robot Operating System)是一种得到广泛使用的机器人操作与系统软件框架,现在很多研究机构通过增加ROS支持的硬件或开放软件源代码的方式加入ROS系统的开发中 ...

  7. ROS::机器人系统分布式配置

    ROS机器人系统分布式配置 说明:由两台电脑A和B都装了ROS,且两台电脑在同一个局域网内. A的ip为:192.168.1.26 B的ip为:192.168.1.27 现在想让rosmaster运行 ...

  8. 第一篇:ROS机器人的多系统的移植(包括Ubuntu、ROS安装)--Kinetic

    ROS机器人系统的移植(从一台电脑到另一台电脑) 第一步:安装UBUNTU16.04 LTS 第二步:启动Ubuntu,初始配置好并更换国内软件源 第三步:ROS的安装 第四步:建立catkin_ws ...

  9. 多ROS机器人 系统管理平台的架构设计

    多ROS机器人 系统管理平台的架构设计 草图: 简单介绍: 各端: 1.ROS系统端 2.服务云端 3.管理控制端 ROS系统端: ROS机器人操作系统开机启动 socket_server_ROS R ...

  10. ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模

    ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. 2. ...

最新文章

  1. 1.为什么使用spring boot
  2. vb.net2019-打开外部程序发送键盘信号(4)
  3. can 总线通信协议开发_Simulink应用层开发—CAN总线信号处理
  4. 用idea添加一个模块
  5. dbnetlib sqlserver不存在或拒绝访问_404:对不起,您访问的网页不存在
  6. 基于linux的应用开发视频教程,基于LINUX+ARM的视频系统的应用和开发
  7. Q136:PBRT-V3,双向路径追踪(Bidirectional Path Tracing)(16.3章节)
  8. 前端基础学习之CSS选择器
  9. Python上传文件到百度网盘(一)
  10. flutter报错[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3) X Andr
  11. GB28181国标错误码
  12. AIC准则选三个变量的r语言代码
  13. proftpd ldap mysql_安装proftpd+ldap报错
  14. 30个非常流行的提示信息插件(jQuery Tooltip Plugin)
  15. 图像处理基础——空间域处理之灰度变换
  16. 2020年服务器的七个发展趋势:数据为王、特定领域的CPU将崛起、机架密度新增一倍以上……...
  17. iOS保持App真后台运行
  18. 如何在USGS下载Landsat 8-9影像(2022年版)
  19. 反复p图、修图,照片画质低如何修复模糊图片为高清?
  20. POIExcel--狂神

热门文章

  1. “程序员年薪50万到底有多累、多辛苦?”,句句扎心
  2. 如果你想专升本那就一定要看的专升本语文_文学常识完整版(四)
  3. 三插头内部结构图_三孔插座内部结构
  4. 使用GDAL实现坐标转换
  5. video.js的使用,打造自定义视频播放器(综合详解,可收藏)
  6. 新浪微博爬取笔记(4):数据清理
  7. 【房价预测】BP神经网络回归的现实应用-上海市二手房价格影响因素分析——思路剖析和结果分享
  8. 认知计算、大数据及人工智能革命
  9. Word 尾部空格添加下划线
  10. java 睡眠时间_java中sleep()的用法(毫秒)