Designing and creating the hardware was a relatively straight forward task. I had a few false starts and design changes, but since I used high level parts the construction came together rather quickly. The software however is a much longer and on-going project - not because it is particularly difficult but simply because that is the nature of software development. Software takes a long time to mature properly, and between work and home-life I only have a few hours a week to work on side projects like this. I considered selling the software since it represents a good chunk of investigation, time, and expertise on my part. However with selling a product comes the moral obligation of quality assurance and ongoing support - neither of which I am willing to commit to. Plus - I have taken my fair share of open-source and sample code from the Net over the years, and I figure it's about time that I pay back that debt, so I am releasing all of the source code and binaries for free under the "whatever the hell you want to do with it" license.
Before installing the control software you have to set up the OS and support software. Here is a guide for configuring the netbook (as best as I can remember). If something is missing contact me and I can update this procedure.
1. Set Auto-login
Configure your login account so that it will automatically log in on startup because you will probably need to remotely reboot the computer fairly often. (Be aware of any company security policies that this may affect)
2. Disable automatic power management
You don't want your computer going to sleep on you, so go into your power options and set the computer to never dim the screen, never turn off the screen, and never sleep when plugged in. It's a good idea to reduce the brightness of your screen a bit to draw less power and increase your battery life. Disable any screen savers.
3. Disable unnecessary applications.
To conserve power you don't want a bunch of background apps burning CPU cycles. I can't be specific here but go through your Services, installed applications, and startup apps and remove as much clutter as you can. For example - virus scanners, auto-updating software, file indexers, quick start services, tray tools, etc.. are all useless since this machine is dedicated to a single app.
4. Install some type of VNC or Remote Desktop software.
At some point you will absolutely need to log in to your desktop and diagnose or configure your environment. Having remote desktop software is a life saver instead of asking a coworker to come and handle it.
5. Install the web cam.
Just install the basic drivers and avoid any extra applications that come with it.
6. Install Skype.
One crucial feature that was removed in recent versions of Skype (5+) is the "auto-answer with full-screen video" feature. This is really important since you want your robot to automatically answer your video call when you Skype it and display your face in full screen without any human intervention. For this reason you should install a legacy version of Skype that still has this all-important feature. I am using Skype 220.127.116.11 and that works well for me and is compatible with a Skype 5 peer call.
Setup a new Skype account for the robot and configure Skype to auto-launch and auto-login at startup. Also configure Skype to use the LifeCam video and microphone and set it to auto-answer with full screen video. Another issue is that Skype attempts to automatically adjust the microphone level when it detects silence. When having a conversation with someone this is fine, but while driving around in silence it tends to amplify all the robot motor noises and bumps to an annoying level. It is a good idea to configure Skype with a fixed mic level to minimize this noise.
7. Install Eagletron PowerPod Service.
The software interface to the PowerPod is in the form of an ActiveX control that communicates indirectly with the hardware via a Service application. The "Eagletron TrackerPod Service" should be installed to startup automatically. You can install it indirectly through their tester utility, or you can get it directly here.
8. Install the TPRobot application on the netbook.
This application serves both as the direct robot interface and also the remote control app. It was based originally on Johnny Lee's C# robot driver and still has the same basic GUI design and a few snippets of code left from that project, however the bulk of the code has been completely rewritten (still in C#). The TPRobot application should be added to the Startup folder so that it automatically launches on startup. The source and binaries are here. There is no installer so just unzip the contents to a location of your choice.
9. Register the Skype interface
From the command line type "regsvr32 Skype4COM.dll"
10. Run the application.
11. Install TPRobot on the control computer.
Repeat steps 6 and 8-10 on a your control computer at home. You should create a personal Skype account instead of reusing the robot account.
The next post will be devoted to how to use the software and the robot.
Disclaimer: While this code has settled down significantly over the last couple of months to a relatively stable and usable level - this is still very much prototype/alpha level code and there is much room for improvement. Most of the problems now are just annoyances, but there are still a couple of major problems that you must be constantly aware of. I will detail all of this in the next post.
Next-> Part 8: Software Usage