Excellent.
You could be right in that I'm assuming too much. Many robot implementations brake up their function by organization into seperate individual "behaviours." Typically these behaviours lie latent until the right set of conditions exist at which time they are activated. While your "motor control" process is always active, the "avoid" behaviour is typically only awoken when some set of obstacle sensors are activated.
So, no, I wasn't assuming that the behaviour that takes control of your robot in response to obstacles was running all the time. And when awoken, I was assuming that it would write its motor control commands out and the motor control process would do as it is told. Thus, it could be asleep for a long time before it is actually needed.
Depends on the RTOS and the architecture it is running on.
Again, I'm thinking of a model where you have broken your robot control down into a collection of processes. Am I wrong to assume this? I would have thought that would be one of the strong points of Linux - process management and the ability to use the rich Unix development environment. If you are making one giant process then I'm not sure you are really making a case for using Linux in the first place.
But there are many bugs that might cause a process to loop. Assuming an independent process model, this will largely not affect the other processes such that they can still keep running. Maybe you've got a bug in a high level process that does something relatively inconsequential such as, oh, I don't know - being beligerant to your neighbors using the speech synthesis or something. Lets just say, hopothetically speaking of course, that it starts looping, repeating the same old stuff monotonously.
A preemptive RTOS will still ensure that your critical real-time processes that you have designated as such will get the cycles they need to keep your 'bot under control, even though you have an errant process trying to consume too much CPU.
Of course, nothing can protect you from every possible mistake.
But I'm not really advocating RTOS's, per se. We started this simply talking about motor control, which is a real time process.
Very good.
Not too many people have said certain things cannot be done. I can only speak for myself and my position is simply that a PC motherboard is not a particularly good platform for the low-level control of a robot. You do seem to agree with that somewhat based on some of your responses to others. I get the impression that maybe you've challenged yourself to do this and if that's the case, then no amount of information or "proofs" or anything else is going to change your mind.
But a lot of your problems pretty much vanish if you use a good old reliable microcontroller. Pick a flavor - we've got Basic, Forth, C, Pascal. AVR, PIC, 68xx, Motorola DSP, 8051, ARM. Unix tools, Windows tools, expensive tools, free tools. Interpretted, compiled. Flash memory, eeprom, serial eeprom. Breadboards, polished boards, surf boards (OK, how'd that get in there?). So much variety to choose from, inifinite diversity in infinite combinations. More flavors than Baskin Robins. There's bound to be one you can find acceptable to you and within your budget.
Come on ... you know you want to.
Why not make your $400 or $500 robot a $500 or $600 robot?
Nothing in all that time - not home made robots or anything?
OK.
OK, that's pretty cool. Were you able to retain quadrature? I'm assuming so if the mouse interface is still working.
I can predict cause and effect. It's harder to predict actual events, though. You know, Murphy and all that.
But you can calculate worst case response time by examining code paths.
Actually I'm a "new" Mac guy - I know very little about MacOS 9. I'm really a FreeBSD guy who switched to a MacOS X desktop about a year ago, and still have a handful of FreeBSD systems for various purposes in my home office / lab. I don't claim to be an expert on the *BSD VM system (there's only a couple of people who can claim that) but I do have a working knowledge of it, as well as most of the FreeBSD internals. Linux less so.
Why don't you want to play Halo on your robot?
Sounds like you have a plan. Keep us updated on your progress.
-Brian