A Masters Degree and an Afternoon...
This month’s post serves two purposes, first, to update the next topic of the month (as usual), but also to write a blog on a recent project that I did because of some stuff my company is working on. This project involving AIS ship transmission subsequently led one of my bosses to ask I write up a little more thoroughly because it highlights some themes that are relevant to what we are doing, namely, that the tech we are developing isn’t extraordinary, it’s just deliberate.
First a quick update on March; Unqualified success. I easily moved into the exact parameters I set for myself, namely, working out to re-establish patterns, working out 6 days a week (I was actually up to 7 some weeks), working out to the point where I sweat, and setting myself up to continue building. I set this up so much in fact, I think I’m going to continue this sub-topic every month, and divide the monthly update into two sections; Physical goals and intellectual goals. (If I’m really feeling squirrely, I might even add spiritual goals including philosophy and meditation). For the month ahead, physical goals will be to continue my 6 days/week streak with a minimum of cardio and calisthenics every day, OR strength training with weights. I’m going to start slow with the weights and just go for 2/6 days, and elevate from there. Regarding my extended goals of programming education, I had additional mixed success. I’m still working though a JavaScript book, and while I haven’t deliberately learned any Go in the past month, on two separate occasions I reviewed some Go code and it was fairly transparent to me. This gratified my efforts thus far that the small bit I’ve learned stuck. My one worry is that all my monthly topics will become extended topics and I’ll end up right back where I started trying to do too much. Thus far, doing something physical and something intellectual seems manageable, but at some point I’ll need to deliberately swap something out….more to follow in the months ahead.
Ok, onto April’s Topic. I very much want to make April about ROS, as so I shall. :) however, this is a bit of an undertaking not well suited to travel and as we are a week into the month already I don’t think I would be able to start in ernest until I return halfway though the month. So this might be a 2-month topic (or longer!!). Of course, as long as I’m with this company, travel probably won’t slow, so maybe I just need to buckle down and get it done. The specific goals of this project are to get any one of my robots (preferably the arm) working under ROS control and hopefully, tele-controlled by my Steam Deck. Which reminds me, ROS 2 is fully installed on my Steam Deck, including Rviz and Gazebo, and I have QGroundControl Appimage running on the gaming side no problem, but it doesn’t communicate with the USB hub just yet so it can’t actually do anything other than plan and manage missions. Not nothing, but more to do.
A Masters Degree and a Weekend
Radio is hard, except for sometimes, when it’s not. On a whim this last weekend, I dug out a SDR dongle left over from a project during grad school and decided to Google around until I found some open-source software to read AIS transmissions from marine vessels and view them on some mapping software. I did this because one of the applications my company is working on involves the location of ships spotted by surveillance drones. One easy way to cue the drones (or corroborate the data once the drone has seen something) is the Automatic Identification System (AIS) emissions from marine vessels world wide. While not mandatory in all regions, many vessels voluntarily transmit their location, size, vessel ID and a host of other information to aid in collision avoidance and navigation. If you can receive this data it’s easy to confirm that a vessel may actually be where you think it is, and continue to use the AIS transmissions to track the ship location into the future (so long as the transmitter is still active). Data aggregation services will sell you worldwide AIS data for pennies, but I live near the Boston Harbor, so I wanted to see if I could pull some of this data myself. Within half an hour I had found AIS-catcher, installed it on my computer, configured my RTL-SRD dongle and had a browser window open watching transmission from the boats in my local waterways popping up as dots (and even vessel “outlines”) on my screen. I thought this was pretty cool! I noted that one vessel was docked not too far from my home. My dog needed a walk, so I recorded the location and name of the ship, and went to see if I could find it. 20 min later, boom! there it was! Right where my SRD system reported. Ok, so this isn’t magic… A ship sent a radio message saying “Here I am” and low and behold, I found it in that spot. Big deal. But on the other hand this is kind of cool. AIS isn’t intended for random people sitting in their house, it’s intended for other ships, the coast guards and people in the Maritime industry so they can stay safe and make logistics run smoothly. And all it took for me to see this myself was to plug a $40 USB dongle into my computer. I say it took 30 min because that is the real time in an afternoon in which it took me to google, find, install and run the software, but if I’m being honest the know-how to find the right search terms, understand the code building and install procedures, and parsing the somewhat obscure commands to make the software run, has been a 6-7 year long process. Various random bits of aggregated knowledge dating back to when I started messing around with electronics again in 2016, through to the completion a masters degree in electrical/computer engineering this last May led to my ability to do this. All of this is easy, but only if you happen to have the know-how. I’ll give you another story from when I was on the uninitiated side of the technology fence. Software Defined Radios (SRD) are unique pieces of radio equipment because (among other reasons) they can capture a incredibly broad range of the radio spectrum with a very cheap, readily available device in a small package. No longer do you need precisely measured antennas and expensive tuners to pick up the specific signals you’re aiming to receive. You can use the device to pick up AIS data, sure, but you can also pick up regular AM/FM radio, amateur radio bands, and another fun protocol similar to AIS called ADS-B all at once. My first experience with ADS-B (AIS for airplanes) was in Afghanistan when one of my soldiers plugged in a SRD dongle in his computer and no kidding, showed me military drones openly broadcasting their positions above our heads. Now, we were near a military airfield when this happened, and I’m sure the benefits of ADS-B broadcasts in an area where an enemy may already know aircraft will be present, outweigh the risks of transmitting exact locations of the same. For all I know this was intentional and outside a certain radius of the airfield they switch off the transmission and are as stealth as can be. However, this was still concerning. It’s not at all hard to imagine a somewhat educated Afghan, antagonistic to the American presence, would be able to gain the relatively low level of know-how to plug a $40 device into a $100 computer and figure out exactly where the drones are looong before they get to their location. So my sergeant wrote a report to address the apparent problem and sent it up the chain of command. A few weeks later, we still saw the ADS-B data for many other aircraft, but no longer saw it for the drones. Once I returned home from my walk with my dog, chuffed that I was actually able to find the ship, I decided to find, download and install some ADS-B software as well. Minutes later I had reconfigured my SRD into a whole other kind of radio watching planes takeoff and land at Logan International. That got me thinking about radio again in general. A trip back to the “unused electronics” cubby in my home office and out came the HackRF and Wifi-Pineapple. These, to be fair, are slightly more expensive than $40, but still well within the price threshold of a hobbyist, to give capability that is easily commercial grade. All of a sudden, my personal computer turned into a wireless vacuum able to soak up radio protocols down to 1Mhz all the way up to 6GHz (and transmit on the same). This includes all the aforementioned protocols, but also includes Bluetooth and Wi-Fi. And with a host of associated open source software, I now had the hypothetical capability to get anything from garage door openers and home automation devices all the way to Security systems and Nanny-cams (encryption protocols notwithstanding…) without writing a single line of code.1. The punchline to these stories is this; while not everyone can simply plug in a thing and make it go (I’ve been on both sides of the equation) many technological problems like this are often more or less solved. If you’re in the group of people who are in the know, it is no longer hard. They can then make the thing that was hard for them, less hard for everyone else. Literally every day since the 1950’s most Americans have been users of radio technology just by getting in their car and tuning one dial until catchy tunes came piping out the other end. It’s not hard. Today almost all Americans use mobile devices that rely on radio protocols as a backbone, and watch YouTube, make video calls and send emails. It’s not hard. AIS transmissions are just one of literally thousands of methods to move data, and all anyone needs is the right, inexpensive, hardware, and the right software to make it go. I still don’t even fully understand how how the AIS software works itself, but from the time I’ve spent building experience, I know enough to make it work. I elevated my personal level of understanding to translate what it took years to understand and learn, and make something cool and useful, literally in an afternoon.
-
I’ll fully admit I have not played with or pulled in all of these devices listed recently, but I have done some of them in the past, and proof of concept articles, easily google-able, show that I do not exaggerate the capability. ↩
