Emlid Reach GPS setup - robotique-udes/zeus_rover GitHub Wiki
Emlid Reach GPS receiver
There are two GPS receivers. One of them will be used on the rover, and another will be used at the base station to give corrections to the rover receiver to increase position accuracy.
Emlid Reach documentation: https://github.com/emlid/reach-docs/tree/old-docs
LED patterns
The module app can be accessed when the green LED is blinking along with another color. It can take multiple minutes before it is fully booted.
If the light blinks white and magenta, you will not have acces to the web app. You will need to take the GPS outside until it starts blinking green instead of magenta
First setup
- Download the Reach app on your smartphone
- Plugin the receiver with the micro-usb cable and wait for the LED to turn on.
- Connect to the Reach wifi hotspot on your smartphone. The password is
emlidreach
- Go into the app and connect to the receiver.
- Make the receiver connect to your wifi to access internet and download the latest firmware.
- Once the update is done, click on "Reboot and go to the app" and wait until the reboot is complete. When the LED alternates from blue to green, that means it is ready to connect.
Steps for the rover GPS
The communication from the rover's Jetson to the module will be done via the USB cable that will act both as an ethernet connection for the correction input, and a serial connection for the position output.
- Set the position streaming to
USB to PC
with a Baud rate of 115200. - You can deactivate the second position streaming since we will not be using it.
- For the corrections input, set it up as a TCP server with the port 9000
- Turn off corrections output since it will not be used on the rover.
Steps for the base GPS
The communication from the base station's Raspberry Pi to the module will be done via the USB cable that will act as an ethernet connection for the correction output.
- Set the correction output as a TCP server with the port 9000
- Turn off the position streaming.
Setting up the base mode
To use the corrections to increase the accuracy, the base module will first need to accumulate GPS data every time it is booted. This is done automatically when it is powered on and will last a few minutes. By default, it needs 2 minutes of data before outputting corrections. This can be changed in app. It is also possible to trigger the module to redo it's initialization in the appé
Using the GPS in the field
When not in the presence of the network you used to setup the module, you must power it the pins left of the USB connectors. Otherwise, it will not boot from USB power. Once booted, the LED will flash green and white continuously, indicating that it is in hotspot mode. For some reason, I was not able to connect to it with the ReachView 3 app, but it is still possible to access it via a web browser with the address 192.168.42.1
.
Network setup
When communicating with the modules by ethernet over USB, the address will always be 192.168.2.15
and there is no way to change it. In order to make it work with across the robot's network, the tcp_repeater is used to publish the corrections inside the ROS network by a node and to the be injected into the rover module by another node.
Note: you will need to give the permissions to use the port every time you boot the Jetson: sudo chmod 666 /dev/ttyXXX
with XXX
replaced by the correct port name.
Firmware reflashing
If the Reach module stops working, you can reset it by reflashing the firmware https://docs.emlid.com/reachrs2/reach-panel/firmware-reflashing/#reach-firmware-flash-tool-installation
Common problems:
- The webapp won't load, or the smartphone app can't connect to the module: Make sure there is a green light, and turn of your cellular data, as it will try to access the IP address by that interface instead of by the wifi interface.
- The module never fully boots up when powerd from a computers USB port: For some reason, the module thinks it is underpowered when plugged in to some computers. This can be solved (for reasons I do not understand) by using a USB hub.