1. RTK 概述

RTK 载波相位差分技术,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。一般包含流动站 (移动站) 和基准站 (基站) 。本文中RTK定位采用千寻定位, 参考的也是千寻CORS基站的坐标,所以需要先登入千寻cors账号。

2. RTK配置千寻账号

(1) RTK 输入差分源设置为 Ntrip Client,因为GNSS接收机放在车子上,所以选择流动站

(2)填写千寻服务参数

地址:填写千寻IP, 端口:国内一般是用8003(CGCS2000坐标),挂载点一般选择接入点: AUTO(五星十六频)

3. RTK接入ROS系统

nmea_navsat_driver是一套用于获取并解析GPS数据的ROS驱动包,使用Python语言实现。GPS设备使用此包的条件是:遵守或者兼容NMEA0183协议。

(1)环境配置

系统:Ubuntu18.04
ros: melodic
RTK :GNSS接收机 + 2个蘑菇天线  (串口转usb)

(2)nmea_navsat_driver源码安装

cd catkin_ws/src
git clone https://github.com/ros-drivers/nmea_navsat_driver/
cd ..
catkin_make -DCATKIN_WHITELIST_PACKAGES='nmea_navsat_driver'

(3) launch 文件

<launch><!-- A simple launch file for the nmea_serial_driver node. --><arg name="port" default="/dev/gps" />    <!--udev 规则映射, 查找gps设备--><arg name="baud" default="115200" />     <!--波特率--><arg name="frame_id" default="gps" />     <!--参考坐标系--><arg name="use_GNSS_time" default="False" /><arg name="time_ref_source" default="gps" /><arg name="useRMC" default="False" /><node name="nmea_serial_driver" pkg="nmea_navsat_driver" type="nmea_serial_driver" output="screen"><param name="port" value="$(arg port)"/><param name="baud" value="$(arg baud)" /><param name="frame_id" value="$(arg frame_id)" /><param name="use_GNSS_time" value="$(arg use_GNSS_time)" /><param name="time_ref_source" value="$(arg time_ref_source)" /><param name="useRMC" value="$(arg useRMC)" /></node></launch>

(4) 代码解析
nmea_navsat_driver提供四个节点:nmea_topic_driver,nmea_serial_driver,nmea_topic_serial_reader和nmea_socket_driver ;

nmea_topic_serial_reader节点:此节点从串口读入GPS数据,然后封装为nmea_msgs/Sentence数据格式,发布话题nmea_sentence。

nmea_topic_driver节点:此节点订阅话题nmea_sentence,然后根据NMEA0184协议解析,并发布解析后的数据,发布话题为:经纬度/fix,速度/vel,gps时间/time_reference和航向角/heading.

nmea_serial_driver节点:此节点从串口读数据,直接解析发布数据,相当于nmea_topic_driver节点和nmea_topic_serial_reader节点的结合体。

发布话题为
/fix : gps经纬度
/vel : gps速度
/time_reference : gps时间
/heading : 航向角
/extend_fix : GPSFix消息包含GPS卫星状态和定位信息

4. GPS坐标转换UTM坐标

UTM坐标系——Universal Transverse Mercator, 统一横轴墨卡托投影系统,UTM是一种投影坐标,使用基于网格的方法表示坐标,是将球面经纬度坐标经过投影算法转换成的平面坐标,即通常所说的XY坐标。坐标原点位于本初子午线与赤道交点,以正东方向为x轴正方向(UTM Easting),正北方向为y轴正方向,建立坐标系。

cd catkin_ws/src
git clone https://github.com/swri-robotics/gps_umd
cd ..
catkin_make

创建launch文件 :GPS坐标转换为UTM坐标

gps2utm.launch

<launch>
<node name="gps2utm" pkg="gps_common" type="utm_odometry_node"><remap from="odom" to="YOUR_ODOM_TOPIC"/><remap from="fix" to="YOUR_FIX_TOPIC" /><param name="rot_covariance" value="99999" /><param name="frame_id" value="base_link" />
</node>
</launch>

utm_odometry_node:将gps经纬度转换为utm坐标
utm_odometry_to_navsatfix_node: 将UTM坐标转换为GPS坐标
订阅的话题:/fix (经纬度)
发布的话题:/odom (UTM坐标)
参数:
~rot_covariance (double, default: 99999)
Variance (in meters) to specify for rotational measurements

~frame_id (string, default: Copy frame_id from fix message)
Frame to specify in header of outgoing Odometry message

~child_frame_id (string)
Child frame to specify in header of outgoing Odometry message

5.运行结果

roslaunch nmea_navsat_driver nmea_serial_driver.launch
roslaunch gps_commom gps2utm.launch


坐标转换工具:http://www.whoi.edu/marine/ndsf/utility/NDSFutility.html

参考链接:ROS WIKI:gps_common
参考: ROS WIKI:nmea_navsat_driver

无人驾驶(二)---室外导航之RTK配置与接入及GPS与UTM坐标转换相关推荐

  1. SharePoint 2013 托管导航及相关配置

    原文:SharePoint 2013 托管导航及相关配置 设计完善的导航可告诉您网站的用户大量有关网站所提供业务.产品和服务的信息.通过更新导航背后的分类法,可以推动业务并保持更新,而不必在过程中重新 ...

  2. 什么是RTK?GPS导航和RTK的基本原理有什么不同?

    极飞科技XAG在 2015 年开始自营作业,当时使用的是单点 GPS, 遇到了各种罗盘干扰.航迹偏移.起降需人工干预等问题:2015 年下半年开始做 RTK 相关的研发,努力实现全自主飞行.极飞的 P ...

  3. Linux学习记录二——文件导航

    文件导航 前言 一.理解文件系统树 二.导航命令 1.pwd(显示当前工作目录) 2.ls(列出目录内容) 3.cd(更改当前工作目录) 三.路径名 绝对路径名 相对路径名 四.有关文件名的一些重要说 ...

  4. 基于ROS的室外导航尝试

    学过ROS入门的人应该都跑过经典的turtlebot,其中就有导航的demo,大致流程就是可以先通过激光SLAM构建出场景地图,然后导入地图,进行初始姿态标定,接着便可以在Rviz下实现点到点之间的导 ...

  5. React系列---Webpack环境搭建(二)不同环境不同配置

    React系列---Webpack环境搭建(一)手动搭建 React系列---Webpack环境搭建(二)不同环境不同配置 React系列---Webpack环境搭建(三)打包性能优化 实际项目中,往 ...

  6. oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上

    Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上 Item Source System Target System Platform RHEL6.4 ...

  7. log4net保存到数据库系列二:独立配置文件中配置log4net

    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...

  8. 二台S3928P堆叠的配置文档,大家可以参考

    发表于:2007-5-17 22:19 标题:二台S3928P堆叠的配置文档,大家可以参考下! 刚配置的二台S3928,通过27,28堆叠.划发11个vlan.vlan1----vlan11   vl ...

  9. 从前后端分离到前后端整合的“退步”(二)pom.xml文件配置

    系列文章目录 从前后端分离到前后端整合的"退步"(一)项目结构 从前后端分离到前后端整合的"退步"(二)pom.xml文件配置 Spring Boot + Vu ...

最新文章

  1. 获取手机idfa_七麦线上公开课:后IDFA时代,链接用户的新生态解决方案
  2. 电脑怎么连蓝牙耳机_魅族蓝牙耳机POP2说明书 魅族蓝牙耳机POP2怎么样
  3. 扩展Pentaho Report Designer报表工具
  4. 启动oracle00119,oracle启动报ORA-00119错误
  5. OSI 参考模型与TCP/IP 参考模型的比较
  6. 网络对抗作业——程瑀
  7. linux在bin下加入ssh,移植 ssh 到开发板
  8. Python logging 学习
  9. 计算机应用基础 制作表格说课稿,职业教育:计算机应用基础类一等奖作品《Premiere视频制作初体验》说课稿.docx...
  10. ionic云开发系列一
  11. Linux运维之--zabbix使用(实时更新)
  12. PyCharm大全(转)
  13. 华泰证券高薪诚聘 技术大牛/运维平台架构师
  14. 36艺教育完成3000万元Pre-A轮融资,星火资本投资
  15. 安化哪里赏雪景?去云台山巅,一步一景,景景皆宜!
  16. 最全Airtest接口功能介绍和示例总结,新手同学千万不能错过呀!(一)
  17. 二维码解码芯片最新三款的二维码芯片MCU不同之处
  18. Kotlin判空的各种操作(替换if else)
  19. 1476_OSP以及HASL等几种PCB表面处理工艺了解
  20. Github Markdown表情速查表

热门文章

  1. 瑞康医药与亚马逊云科技达成战略合作,全国上百家子公司业务上云
  2. Centos7.4安装与下载
  3. Go之Benchmark
  4. 3D游戏建模师看不看学历?现在转行还能行吗?
  5. 6. 中文命名实体提取
  6. linux pyinstaller打包python文件
  7. c语言 自锁按键,具有自锁功能的按键结构的制作方法
  8. 怎么制作手机网站?如何建一个wap手机网站?所谓手机网站指手机能访问的网站,现在手机浏览器对html...
  9. linux surface pro 4 driver,重置出错?微软Win10平板Surface Pro 4重装系统教程详解
  10. surface pro4-7安装黑苹果教程