I was corrsponding with D Jay, and some things occured to me about the microcontroller vs PC computer debate.
You guys say that doing things in microcontrollers is easier than with bigger computers. That may be true for you, but it is not true for everybody. For me, I no longer like that aspect of programming. It has its fun, for sure, like camping, the simplicity and the thrill of doing it all yourself, but it seems, to me at least, needlessly pedantic.
Yes, if you are making a "mouse" robot, by all means a micro-controller is the only thing that fits.
I have also said that micro-controllers do have a place, as long as they have a well defined function (and I'm not the one developing it). This is my preference, perhaps not yours, but it is the perspective from which I write.
Lastly, in our discussions I have also noted a trepidation about doing things on a computer running an OS like Linux or Windows. I can fully understand this reaction in Windows. I have written more than a few device drivers and data acquisition applications on NT, and found that while the device driver model is pretty damn good, the application layer is very unpredictable (pretty damn bad!). Systems like Linux and the BSDs have a (IMHO) less well designed driver model, but a MUCH better over all system design.
In the end, yes, Linux and BSD are not real time operating systems. They do have a level of unpredictability, but they are not "unreliable." This is important. I guess this echos back to the post about not needing a RTOS.
In the realm of motion control, it is impossible to make a blanket statement that a RTOS is not needed, because I can think of quite a few applications where it would be. In the general case however, a home made mobile robot does not typically need one.
I had a discussion with my son about a month ago. He said something was
1.536 miles away. Sure he was thinking he was funny, but it opened up a conversation about precision. (1) There is no way he could have known or measured that something was 1.536 miles away. (2) Even if he was 100.0000% accurate in the measurement, it is meaningless in the context of a rolling vehical that must move on an imperfect surface with imperfect wheels with imperfect alignment.In most cases, a "reliable" OS can do the same amount (or more) of aggregate processing as an RTOS. The issue is dealing with the variability in response times. While this can complicate the algorithms slightly, it is not unmanagable.
Think about Linux or FreeBSD for a minute. One can download a web page, play MP3s or watch a video, burn a CDROM, perhaps even talk on an AIM window. The network, video, audio, and CD writing are all time critical applications.
A higher level OS can do most of things you are worried that it can't.