The SwiftNav Piksi is a low cost RTK (real-time kinematic) GPS that can archive cm level accuracy in the right conditions. There are several different ways to connect to your Piksi board, the main two being serial and ethernet. We recommend connecting via ethernet cable when possible. This is becuase if you’re using RTK GPS you are probably developing an outdoor robot, and its not very comfortable to debug outside. This tutorial will show you how to route the GPS information from the robot to a development computer that can be inside (this even works if the robot and the development computer are on different networks). Routing the data is much easier to do with ethernet data than it is with serial data.
- SwiftNav piksi (orange)
- Piksi development board (blue)
- Serial cable
- Ethernet cable
- Robot computer (running ubuntu)
- Development computer (running ubuntu)
To begin we will assume both the robot computer and the development computer are on the same wifi, although later on we will describe how to setup a VPN so that they can be on different networks. Below is a chart of the xample IP address’s and usernames that will be used throughout the tutorial.
|Computer||Wifi IP Address||Ethernet IP Address||Username|
|Robot computer||192.168.1.5||not set yet||my_robot|
|Development computer||192.168.1.6||not set yet||my_laptop|
Note: You can check your IP address using the ‘ifconfig’ command
You can check you username by using the ‘user’ command
Step 0 - Download SwiftNAv console
If you haven’t already go to the SwiftNav site and download the latest console. https://support.swiftnav.com/customer/en/portal/articles/2492795-swift-console
Step 1 - Set the Piksi’s IP address
Using the serial cable provided connect to your Piksi. Once connected navigate to the settings tab and under the ethernet section change your setting to match the below table.
|ip config mode||static|
Hit ‘save to device’ and wait a few seconds for the changes to be written
Step 2 - Connect to Piksi using Ethernet Cable
Disconnect the serial cable and connect to the Piksi using an ethernet cable. Set the ethernet IP address of your development computers ethernet interface to be 126.96.36.199
sudo iface etho 188.8.131.52
Try to ping 184.108.40.206. If successful open up the console and connect using 220.127.116.11 and port 55555. If you see the same data as step 1 everything is working so far and you can go on to step 3.
Step 3 - Connect Piksi to the Robot Computer
Disconnect the Piksi from the development computer and connect it to the robot computer using the ethernet cable. Now SSH into your robot computer
set the ethernet IP address to 18.104.22.168
sudo iface etho 22.214.171.124
Try pinging your 126.96.36.199. If successful, run the following command to setup a reverse ssh tunnel that will forward the GPS data to your development computer
ssh -R 55555:188.8.131.52:55555 email@example.com
If successful it should look like youu SSH’ed back into your development computer
Step 4 - View the data with swiftnav console
Next open the swiftNav console using a different terminal. For IP address put “localhost” and for port put “55555”. Hopefully you should now see all your GPS data.
Step 5 - (Optional) Setup VPN
Right now you can view GPS data with another computer, but you computers have to be on the same network which isn’t very useful. To solve this add both computers to a VPN using OpenVPN or Tinc VPN. Here is a very nice tutorial on how to setup a Tinc VPN https://smartystreets.com/blog/2015/10/how-to-setup-a-tinc-vpn
Step 6 - (Optional) Move robot to cell network
To do truly remote monitoring of an outdoor robot its very nice to have your robot using cellular data. You can buy a netgear cell modem for about $100 https://www.amazon.com/NETGEAR-LTE-Modem-Broadband-Connection/dp/B01N5ASNTE/ref=sr_1_1?ie=UTF8&qid=1529813520&sr=8-1&keywords=netgear+cell+modem
Just plug in an activated SIM card into your netgear modem and then plug your robot, your Piksi, and the netgear modem all into an ethernet switch. Login to the modem and set its IP address to be static and 184.108.40.206 and the subnet to be 255.255.255.0.
From your robot computer test if you can ping www.google.com and also if you can ping 220.127.116.11. If you can do both you should be able to run the reverse ssh tunnel now to monitor your robots GPS data anywhere within cell coverage! Pretty neat aye :)
This site was built using GitHub Pages.