For quite some time I have been working on the construction of an autonomous driving robot car with a Raspberry Pi computer as central processing unit. So that the robot can determine its GPS position, I have equipped the robot car with a GPS receiver. It is important that the GPS receiver is also supported by the operating system of the Raspberry Pi and that it works. I have several GPS receivers that work under Raspbian. Now it is possible for the robot car to determine its GPS position. I chose GPS for the tracking because the signal is easily available and the typical USB GPS receivers are not too expensive to buy.
When choosing the GPS receiver, the support under Raspbian or generally under Linux was very important for me. If the GPS receiver connected to the Raspberry Pi works automatically, you save yourself a lot of work and trouble. So I bought three different GPS receivers over time and tried this one under Raspbian. The three models I bought all came from the online shop of Amazon. In the product description it is often stated whether the models are generally supported by Linux.
On the following picture you can see from left to right the three USB GPS receivers I have tested:
- 167 channel Adopt SkyTraQ Venus8 chipset
- UNIK VK – 172 GPS receiver
- NAVILOCK GPS NL-602U USB
The Navilock receiver was immediately recognized by the Raspberry Pi operating system Raspbian. It appeared in the list of connected USB devices as desired. After starting the GPSD Demon, the reception down under Raspbian was fully operational. It took a few minutes until the first GPS coordinates were received but from then on he didn’t lose the signal anymore. I had used the receiver on my robot car between a few houses with a limited view of the sky.
Technically, the Navilock relies on a u-blox6 GPS & GALILEO SuperSense chipset. Furthermore, the GPS mouse is waterproof and has a very strong magnet in the base of the housing. This allows you to mount the receiver securely on a car roof, for example. But I removed this magnet for my robot car. Navilock recommends the removal of the magnet e.g. if the receiver is used in an airplane. I was worried that the magnet could damage the Raspberry Pi and other electronics.
The price of the Navilock GPS NL-602U is not quite cheap, but you will receive a GPS receiver that works perfectly on the Raspberry Pi with Raspbian as operating system and determines its position
167 channel USB GPS receiver with Adopt SkyTraQ Venus8 chipset
During my further search on the internet for a slightly cheaper GPS receiver I came across a model with Adopt SkyTraQ Venus8 chipset. Also this model was immediately recognized under Linux and Raspbian and I could access the received GPS coordinates with my self-written Python programs without any problems. With clear skies and a clear view upwards, this model also receives the first GPS coordinates very quickly. When I let the robot car drive in front of the house again and the view to the sky was a bit limited, the receiver had no problem with these conditions and I could navigate perfectly according to the accuracy of the GPS signal.
The following picture shows the receiver. The product description said that the receiver has a magnet in the base but this was not the case with my model. I was happy about that, because I did not have to remove the magnet first.
In the technical details the description says that the GPS receiver supports up to 167 channels and has an Adopt SkyTraQ Venus8 chipset installed. Unfortunately I cannot judge whether this is particularly good or not. For my robot car, this GPS receiver also works very well. The case is also waterproof and looks very stable. The price of this model is a bit lower than the price of the Navilock GPS NL-602U but not much lower.
UNIK VK – 172 GPS receiver
During my search for a very cheap model I came across a USB receiver that costs around 20,-€. Again it said that the model should work under Linux / Raspbian, only I did not make it properly or only partially. The receiver was recognized under Raspbian but I could not process the received GPS signal as desired. The GPSD daemon did not display GPS coordinates despite some configurations. From a purely technical point of view, however, it looked like the receiver was working. With the command “screen /dev/ttyACM0 38400″ I could access the GPS receiver under Rasbian and see data. However, I just couldn’t get the GPSD Demon to work with this GPS receiver.
The following picture shows the really small GPS receiver which is directly connected to the USB port.
From a technical point of view I can’t say much about this model, except that it comes without a cable and is plugged directly into the GPS connector of the Raspberry Pi. The chipset VK-172 says nothing to me except to read in the product description that it is supported by the usual Windows operating systems. Under Raspbian I did not get the GPS receiver configured together with the GPSD daemon, so I could have used it for the robot car. Therefore I do not recommend to buy it because I cannot say for sure how to configure the receiver under Linux together with the GPSD daemon.
From a technical point of view the two GPS receivers with cable work very well under Linux and on the Raspberry Pi under Raspbian. I liked the Navilock receiver best because it worked most reliably. With some knowledge of the GPS tools under Linux, the two GPS receivers with cable are very well suited for building an autonomous driving robot car. The small model without cable unfortunately did not get the GPSD demon together with the Raspbian.