Wednesday, December 9, 2009

Introducing KBot

It is my pleasure to introduce you KBot, a helper to assist me while I am on the ice and away from civilization. The helper, or the bot, will help me on a few things, making it easier to follow the expedition. These are the tasks that my robot performs:

1) Tirelessly awaits for my messages that I will be sending via satellite phone. It will "sleep" a little though, and check for my dispatches every minute or so. Hence, whatever you see on the blog will be about one minute delayed. You can't get more live than this :). Depends on what messages and commands I send, it will perform the tasks accordingly.

2) Plots my location and path on Google Earth. This allows everyone to know exactly where I am on earth. So there's no "where the heck on earth are you" anymore. It's quite scary to let people track you, but hey, this is different :). It also summarizes my status and calculates how far away I am from the South Pole, and updates it on the blog under Status section. So if you want to see the progress, you'll need to download Google Earth plugin for web browser or download the KML file and view it on standalone Google Earth.

3) Translates my crypted messages into readable (more or less) English. I had a lot of complaints from last trip to the North Pole that it was impossible to understand what I said. So those who complained will be pleased this time around :). It even goes further to translate it into Vietnamese as some don't speak English. The Vietnamese translation is done by Google Language Tools, and let just say they have a lot of work to do.

4) Learns new shorthands and uses them next time. As of now there are about 480 entries in the dictionary that KBot uses to translate my messages, but I'm sure there will be more that I need to add as I go along. I will send it new short forms and it's meaning as needed. It will take new definitions and add to its dictionary and next time I use the shorthands again, it'll know what to do. This task is invisible to you though.

5) Posts my voice dispatches on the blog. I'll do audio update in this expedition, not as much though as it can be costly. It's going to be quite interesting to hear the Antarctic noise - or may our own noise (hopefully not an embarrassing one :)), depends on what it picks up at the time.

6) Sends out tweets when messages are posted to this blog. If you follow me on Twitter (khai_nguyen) and using your phone to receive tweets, this is yet another way to follow the expedition, by the minute (only when I send messages :)).

7) Reports to me the status of the tasks. This is a crucial piece of information. As I send information back, there is no way I can check the blog, twitter and everything else so I have to rely on the reports KBot sends me. If something goes wrong (as always happens to a piece of software), at least I am aware of it and will attempt to fix, either by me directly or have someone to look into this.

8) Recovers from bad inputs. I am the only user of this program but on the ice, there are a million things I need to worried about and I'm sure I will make mistake or the communication might break somewhere from phone to the satellites hanging out at 480 miles above us. So if there are some missing tasks or I do not receive the status report in a certain amount of time, I will send a special command for recovery. If all fails, only human can do the job. Let's hope I do not have to send and SOS to someone to fix the bot.

As I wrote this program (yes, from scratch!), I almost felt like those mission control engineers who work on software for rovers, but in reverse. The rovers are controlled by engineers from a civilized location and I, somewhere in Antarctica, control my bot which resides in the well connected world.

It took me almost 2 months on and off, at night and on some weekends to implement (and research on the technology as most of them are I haven't touched before such as Google Earth, blogger, etc) and test it. There's some last testing I need to do before declaring it's completely ready. I really hope all the work pays off as I spend quite a bit of effort on this. But, I should expect the worse when things go wrong and no one could help me fixing it. That's when I will have to fall back to my old, trusted method: send directly to blog with crypted messages; and I'm sure people will have fun decrypting them :)

No comments: