Using an RTK GPS

Introduction

Position information can be critical for achieving high accuracy localization and one way to get this information is through the use of a GPS. It is possible to put a GPS only on the robot, but to get the centimeter level accuracy provided by RTK GPS systems a base station is required to send corrections to the GPS on the robot. What follows is a series of notes and lessons learned from working with a GPS system.

Notes and Lessons Learned:

  • GPS Board
    • https://www.sparkfun.com/products/15136
    • Robot and base station boards should match
  • GPS Antenna
    • https://www.sparkfun.com/products/15192
    • One of these for each the robot and the base station
    • There are other similar ones available that are cheaper if budget is a concern
    • Both antenna should have unobstructed open sky above them and ideally have buildings well off to the side of them
    • Antennas should be on large flat metal surfaces away from the ground such as a car roof
      • Aluminum foil might provide enough shielding on your robot with around a square foot of area below the antenna
      • The metal shields the antennas from signals bouncing up off the ground
  • Software
    • U-center software - https://www.u-blox.com/en/product/u-center
  • Will need to figure out how to connect the base station and robot GPS over radio
    • Whip antenna for the radio
    • Should be parallel ideally
  • GPS signal strength
    • You should be able to get 3D/DGNSS/FIXED with a few bars in the 30s and 40s dB range at the same time
    • FIXED has a 2 cm uncertainty
  • Connect to the GPS by
    • Plugging the USB into your computer
    • Receiver > Connection > COMX (on Windows for example)

Key Issues and how to solve them

  • Setting the frame rate for the GPS
    • Only should need to change the Measurement Period

  • Making the settings permanent on the GPS

  • Poor connection between the base station and robot GPS

  • Make sure that all the values match between the base station and robot GPS except for the target - robot should be UART2 and the base station UART1

  • Loading a configuration file (You may not need to do this)