Unmaned Robotic Mower - Navigation Part 2

written by mr337 on 2016-03-24

Continuation from Naviation Part 1

New Hardware

After a week the additional additional NS-HP GPS receiver came in.

Later that evening, programmed one NS-HP as base and used a 180s survey for a rough position that then became static. The other NS-HP was programmed in rover mode expecting RTK corrections. A jumper cable provided the corrections from Base pin 11 to Rover pin 3.

One thing that was overlooked , and explicit in the documentation, is the NS-HP in rover mode expects the RTK correction to be at 5700bps. The base NS-HP was transmitting at 115200bps, learned this the hard way.


After correcting 3D fix turned into RTK float, finally making progress! RTK float is RTK correction resulting in a non integer value. This provides better accuracy, but not centimeter accuracy wishing to attain. The current state of the GPS satellites was mixed so decided to wait. Eventually the GPS satellites finally came into correct elevation and positionin to get a RTK fix. The fix only lasted about two minutes before reverting back to RTK float.

The Problem

The NS-HP is designed to perform RTK fix when the following conditions have been met [1]:

  • 7 satellites with a signal greater than 38db
  • Satellites with elevation higher than 15 degrees
  • Satellites must be spread through out over entire sky

These seem like reasonable requirements except for a location in the US. Getting 7 satellites that meet all those conditions are only available for a limited time span. In the case setup above I got RTK fix two minutes out of testing for two hours. Most of the time waiting for GPS satellite 11 to reach correct elevation.

This is not a setup to be used by an unmanned mower. There are a few things to blame that could be resolved by better hardware and setup, except for the number of satellites. A RTK expert might point out that RTK fix can be attained with few satellites, five to be precise. This is true, but the engineers of NS-HP required seven satellites to attain RTK fix of centimeter. Less than 7 and the firmware doesn't even attempt RTK corrections [1].


The solution to this problem is in the stars, literally. The NS-HP only works with US GPS constellation. There are more constellations than GPS. Here is a quick rundown of them

  • GPS - US based system, global coverage
  • GLONASS - Russian GNSS that has global coverage
  • Galileo - EU GNSS that has partial coverage
  • BeiDou - China GNSS that has primary coverage over China, global coverage in 2020

In the case of the NS-HP, it only receives GPS signals. What is needed is a receiver that can use all constellations and aggregate them to provide RTK corrections. Unfortunately for the NS-HP, this is something down the road and probably a newer device. In the meantime back to get the mower operational we need to find a new receiver.

Window Shopping

With the explosion of drone usage a few projects have been developed to provide low cost RTK, low cost being < $1,000. There are already existing RTK systems primarily used by surveyors. The price of them rules them out. Two projects that looked promising is Pitski and Reach. Both of them have been backed on Indegogo. Pitski looks promising and polished, but was the most expensive of the two options.

Reach I feel like is in a whole other arena with their design. Instead of going the hardware route and fabbing a custom chip and providing tools for interfacing them, did a 180 went software. The Reach is comprised of a Ublox GPS receiver and Intel Edison, fabbed on the same board. The RTK processing is performed on the Intel Edison using RTKlib. As a bonus features the Edison has bluetooth and wifi built in. Within wifi range, you don't need to worry about transmitting the RTK correction as the rover communication with the base is point to point via wif.. Going one step further, eliminating the issue of having tools Emlid decided to go full web on the Edison. All interfacing and configuration is accessed through a web interface.

Emlid has solved a lot of issues such as data link between rover and base, and worrying if Linux can work with the GNSS receivers (hint, not all of them can). If you didn't know already I'm excited to try them out and at the time of writing should be sent in a couple of days. Until Reach comes in, focus needs to be moved to hardware.

UPDATE - NavSpark updated the firmware for NS-HP chip that now includes SBAS and BeiDou


[1] - http://navspark.mybigcommerce.com/content/NS-HP-User-Guide.pdf