In most operating conditions, Spiri will know and control its position to within the width of a fingernail. This essay discusses a number of techniques used for precision navigation, and how we approach them on our robots.
Real Time Kinetic Correction to Global Navigational Satellites
Global navigational satellite systems such as GPS (global positioning system) provide reference points to find your position through triangulation. Satellites in the GPS and other networks broadcast the four coordinates of their present position and time. Their onboard clocks are synchronized and proper adjustments are made based on general relativity. As long as your receiver can read at least four satellites, this is enough to solve for your position, based on the length of time it takes each signal to reach you. A Spiri listens to GPS as well as the Russian and European satellite networks, and on a clear day away from obstructions, can typically see more than twenty satellites. This provides position estimates with about an arm’s length of precision. On Spiri, we use a technique called real time kinetic (RTK) correction to improve the precision by a factor of ten to one hundred. RTK measures the carrier wave phase of each incoming satellite transmission, adding one more independent data point to the calculation. This improves the precision of our GNSS position estimate to within the width of a fingernail. Until recently, RTK correction required a ground station with its own GNSS receiver to work. On Spiri, there is no such requirement — the full capability is embedded on the robot itself.
Simultaneous Location and Mapping
Visual SLAM uses onboard cameras to infer your position based on the features in the architecture or landscape around you. On Spiri we use a SLAM algorithm called ORB_SLAM2, aided by graphics acceleration and stereo vision. The result is a position estimate relative to Spiri’s surroundings which is precise to within the width of a fingernail. This technique does not provide Spiri’s position in longitude or latitude, but only in reference to its surroundings. It works, however, indoors, underground, and anywhere else that no satellite signal is available or where a pernicious human is interfering with GNSS radio frequencies.
Runes, Landmarks and Other Fixed Markings
Another way to infer your position is to identify landmarks or markings of known position and triangulate from them. We have trained Spiri to recognize a variety of runes — simple black shapes on a white background that are easy to identify. If you place these runes at fixed, known positions, then Spiri can again achieve navigational precision to within the width of a fingernail. Runes can be scaled up so they are visible from high up or far away, or scaled down so they all fit within a camera frame even when Spiri is very close. Spiri can be trained to recognize any object, of course, so a distinctive hilltop, building, or tower can serve as a landmark.
Beacons and External Position Estimates
Infrared and other beacons provide another short-range positioning estimate similar to runes, available in low or no light. Beacons are interpreted on board Spiri to calculate Spiri’s position. Other externals can feed position estimates to Spiri. Motion capture cameras, normal cameras, lidar, ultrasound rangefinders, and many other instruments are equally capable of estimating the position of an object, and do not need to be mounted on Spiri to work. Where such devices are built into the architecture or landscape and able to transmit their position estimates of a Spiri to the Spiri, that external position estimate can override, or factor into, Spiri’s positioning system.
Operating Conditions with Appropriate Positioning Techniques
Outdoors, Night: Use RTK GNSS, lighted runes, beacons and externals. Outdoors, Day: Use RTK GNSS, SLAM, runes, beacons and externals. Indoors, Dark: Use lighted runes, beacons and externals. Indoors, Light: Use SLAM, runes, beacons and externals.