Sam, Here are a few things I took into consideration when working on a
My application had a client (the viewer) and a vision system (robot,
When we plugged in the hardware for doing the vision to a Windows XP
computer, it just worked. Getting it to work on Linux was tricky.
Running the Windows OS with the desktop GUI on the hardware doing the
vision was a bummer.
After we finally worked through the hassle of getting the hardware
working on Linux things went very smooth. In other words, the problem
was getting a driver. Once the driver worked everything went
We were able to tweak the drivers on Linux to get two hardware devices
working at once. In Windows, the driver was easy to get going initially
but we could not customize it at all and therefore limited to one
hardware device at a time (hardcoded into the driver I guess).
We were able to strip all of the unnecessary drivers and applications
(including the desktop, graphical environment) off of the os for the
"robot" so that we could get by with a very modest computer. While
we're not doing this now, we could easily port our entire application
(including the OS) to a 64 - 128MB flash disk. Smaller is possible, but
we need a good bit of temporary disk space.
When it came to writting the graphical client software which ran on
another computer we used Windows and benefitted from the RAD toolkit of
the .Net platform. Specifically, we used the open source and freely
available RAD tool SharpDevelop (#develop) found at
Really it all depends on what you're doing. We are not C coders nor are
we kernal hackers. However using the source code as an example and some
trial and error we were able to customize the immature drivers in order
to meet our needs. We were also able to scale down the OS so that we
had a very lean running system. Its kind of like having the low
resource requirements of MS DOS, but having a modern OS, including
development tools and a lot of drivers.
I am a big fan of both Windows XP and Linux. I use each when
appropriate. After this experience, I feel that for a robot you can get
a lot more bang for your hardware bucks using Linux rather than
Windows. I have enough licenses for Windows from the various computers
I've owned (some running Linux now) that the cost for the OS is not an