< >
Home » ROS与传感器教程 » ROS与传感器教程-Ublox RTK GPS结合RTK2go服务基站使用

ROS与传感器教程-Ublox RTK GPS结合RTK2go服务基站使用

ROS与传感器教程-Ublox RTK GPS结合RTK2go服务基站使用

说明:

步骤:

  • 参考连线,现成产品RTK GPS的uart1口为ttyUSB0,uart2口为ttyUSB1
  • 安装驱动:
  • 重用现有工作空间,或新建工作空间:
mkdir -p ~/catkin_ws
cd ~/catkin_ws/src/
git clone -b f9p https://github.com/ncnynl/ublox
cd ..
catkin_make 

利用Python脚本来获取RTK2Go服务测试

  • 配置RTK2go基站脚本
  • 功能是把RTK2go基站的rtcm数据传入给rtkgps
  • 其中一些数据需要更改为自己的,打开脚本
roscd ublox_gps/script
vim ./ntripclient_go.py
  • 修改如下内容
  • gps接受RTCM数据uart2串口的端口,波特率等,其他数据可以根据自身需要变动
  • RTK2Go 基站不需要发送GPGGA数据即可自动返回RTCM差分数据
f9p_uart2_port = '/dev/ttyUSB1'
f9p_uart2_baud = 9600
  • 如果端口号和波特率有变化,根据实际的填写
  • RTKGPS的UART1口usb先接入上位机,启动GPS
  • 启动GPS
roslaunch ublox_gps ublox_rtk.launch 
  • RTKGPS的UART2口usb再接入上位机,启动基站脚本
  • 启动RTK2Go基站脚本
roscd ublox_gps/script
python ntripclient_go.py
  • 查看话题
$ rostopic list
/diagnostics
/gps/fix
/gps/fix_velocity
/rosout
/rosout_agg
  • 查看话题/gps/fix内容
$ rostopic echo /gps/fix
    ---
header: 
  seq: 271
  stamp: 
    secs: 1625710168
    nsecs:     99423
  frame_id: gps
status: 
  status: 0
  service: 1
latitude: xx.0649714
longitude: xxx.0553912
altitude: xx.36
position_covariance: [2.2022559999999998, 0.0, 0.0, 0.0, 2.2022559999999998, 0.0, 0.0, 0.0, 2.455489]
position_covariance_type: 2

latitude:纬度,北纬为正数,南纬为负数
longitude:经度,东经为正数,西经为负数
altitude:海拔高度,单位是米

经纬度查询链接

  • 查看话题/gps/navpvt内容
rostopic echo /gps/navpvt
  • 效果如下:
fixType: 3
flags: 67
flags2: 234
numSV: 32
lon: 1130553000
lat: 230649881
height: 21146
hMSL: 27410
  • 如果是flags等于1 (3D) 是flags大于64, 进入浮点解(3D/float), flags大于124,进入固定解(3D/Fixed)
  • 采用RTK2go,目前测试主要是能进入浮点解

利用RTKLIB来获取RTK2Go服务测试

  • 安装RTKLib
git clone -b rtklib_2.4.3 https://github.com/tomojitakasu/RTKLIB.git
cd RTKLIB/lib/iers/gcc/
make   
cd RTKLIB/app/consapp
make  
  • 启动str2str
  • 选择MountPoint,可以参考
  • 假设rtkgps的uart2口是/dev/ttyUSB0
cd str2str/gcc
./str2str -in ntrip://rtk2go.com:2101/aamakinen -out serial://ttyUSB0 :238400
  • 效果:
2021/07/06 09:54:51 [CE---]     652335 B    6631 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:54:56 [CE---]     655659 B    6618 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:01 [CE---]     659814 B    6621 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:06 [CE---]     664800 B    6644 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:11 [CE---]     668955 B    6621 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:16 [CE---]     673110 B    3310 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:21 [CE---]     676434 B    6618 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:26 [CE---]     680589 B    6631 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
2021/07/06 09:55:31 [CE---]     685575 B    6644 bps (0) rtk2go.com/aamakinen (1) /dev/ttyUSB0 
  • 启动GPS
roslaunch ublox_gps ublox_rtk.launch 
  • 查看话题/gps/fix内容
$ rostopic echo /gps/fix
    ---
header: 
  seq: 271
  stamp: 
    secs: 1625710168
    nsecs:     99423
  frame_id: gps
status: 
  status: 0
  service: 1
latitude: xx.0649714
longitude: xxx.0553912
altitude: xx.36
position_covariance: [2.2022559999999998, 0.0, 0.0, 0.0, 2.2022559999999998, 0.0, 0.0, 0.0, 2.455489]
position_covariance_type: 2

latitude:纬度,北纬为正数,南纬为负数
longitude:经度,东经为正数,西经为负数
altitude:海拔高度,单位是米

  • 注意:使用百度或谷歌地图直接查询的经纬度,获取的地图定位因为是经过特殊处理,所以是不准确。
  • 请使用Google Earth来验证定位。

使用Google Earth验证位置

  • 使用网页版Google Earth,点击进入https://earth.google.com/web/
  • 点击页面左边的搜索,写入 “latitude纬度 longitude经度” 以你实际的维度和经度为准
  • 点击确认回车进行定位

参考:

  • https://github.com/KumarRobotics/ublox
  • http://wiki.ros.org/ublox

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与传感器教程