
In May 2006 I first learned of a skunkworks initiative that Microsoft had been working on for about two years. They were working on a standardized programming platform that would make programming robots a lot simpler, quicker, and cheaper. The first technology preview (CTP) for Microsoft Robotics Studio 1.0 was released in June 2006. Every few months, on average, a new technology preview was released that included their latest efforts.
For the next year or so, I purchased several different wheeled robots for testing and development. My creative energies were pondering the possibilities. I defined, in my own terms, what I perceved a "robot" should be. In my definition, a robot is any piece of equipment that is controlled by software. It doesn't have to be self aware, or have a complex array of sensors, or have multitudes of actuators and servos. In the basest sense, a robot is simply a machine that is controlled by pre-defined logic constraints and formulas (software).
Over the next few decades the world should see significant advances in robotics. The question I pondered until July 2007 was, "What, exactly, could I do to be a part of those advances in robotics?" The past fifteen years of my career has been very focused upon the IT industry. I've been a systems integrator, a software developer, a network engineer, an enterprise architect, a director of IT, a database administrator, and a senior level business consultant (just to name a few). I spent several years in a wide variety of business sectors such as healthcare, telecommunications, and large retail. I've worked on clusters since "Wolfpack" and thin-client implementations since the days of "WinView".
But how, exactly, could that knowledge make me unique within the IT world? There are thousands of IT professionals that are as good, or better, than me in every one of those skills already mentioned. What, in my personal experience, could be used to my advantage? What I have I done that gives me a unique edge? And then it dawned on me:
Twenty years ago I enlisted in the US Navy. As a deck hand. The job is as far removed from the IT industry as you can get. The hours were long, even by IT standards. The labor involved was backbreaking. The pay was ... well, I make more in one day as an IT professional than I made in a month as a deck hand. The one really cool aspect of that job was discovered the first time I stood bridge watch. I got to drive the boat. Er, "I was the helmsman on an aircraft carrier". I don't know of another person in the IT industry that can say that. Now, the question was, how could I use that to my advantage?
Well, I wasn't just any helmsman aboard the two aircraft carriers where I was stationed. I was the MASTER helmsman. I was the person who taught aspiring new helmsmen the tricks of the trade. I was the one person that captain wanted on the helm when the ship performed difficult or dangerous maneuvers. And, during the last few years of my enlistment, I was also (by a very strange twist of fate) a full time Data Systems technician. I was one of two guys on the whole ship of more than 5,000 crew members who had any computer support skills. Because, even though I had stopped being a bosun after two years in the USNavy and had changed to be a Data Systems technician, ... I was the only person qualified as a Master Helmsman aboard the USS George Washington.
I know how to pilot a ship like the best of the best, and I can teach those skills to the uninitiated. I also have a very, very broad skillset within the IT field. What if ... what if I could focus those skills and use Microsoft Robotics Development Studio the same way an artist uses a painbrush? A ship, or a large boat, would be the ideal canvas. Ships have sensor arrays (radar, sonar, atmospheric sensors, GPS receivers) that link to data sources (NOAA charts) so they can control actuators (rudder direction, throttle control). A ship is a robot. Or, it could be, if there was a computer coordinating all of those features.
Now, if you're a sailor, you're already thinking of how we already have autopilots and chart plotters and interfaces to sensor arrays. That's true. What we don't have, though, is a computer that is capable of standing lookout for us and being INTELLIGENT about it. Nor an automated helmsman that knows what a spring line is and how to use rudder / throttle to automatically dock on a finger pier. Or any of a thousand other skills that a knowledgeable deck hand uses every day.
Phase One, preparing the robotic platform, is mostly completed. Phase Two, systems design and hardware integration, begins today. I have a long laundry list of robotic shipboard systems waiting to be designed, implemented, and tested.