by PaulL » Sun Jun 24, 2012 4:09 am
by PaulL
Sun Jun 24, 2012 4:09 am
Hi Limor, Just noticed this post via another...
limor wrote:This is the only way forward for many reasons
I could not agree more, and not just in the context of robotics, but in many embedded versus PC scenarios. There is a fact that few seem to want to acknowledge: the PC as a platform is ubiquitous, and as such, is in itself a standardized hardware platform, one that can be applied to embedded applications.
Embedded processors (PIC, Atmel, etc) support a world of per-application software development. Using a PC in what once was an embedded application changes things: software is suddenly capable of being repurposed, enhanced, and expanded much more easily. Compatibility and communications with other systems improves dramatically. Access to useful things like databases becomes trivial, higher level programming languages result in greater levels of productivity.
If you build custom hardware such as proprietary embedded controllers, you'll fight tooth and nail to stake your claim as time marches on, but if you're a software developer (and hardware doesn't do squat without software), you'll find a much more powerful and compatible world in a PC-based controller.
- The fun in this hobby is about innovation and cutting edge technology.
YUP! Definitely agree. As much horsepower (CPU speed, instructions per clock cycle, ram, etc) as I can pack on my bot's back, the better!

- PIC and Atmega have had their run as robot brains.
Absolutely agree. It's nice to have a base to start with, but at some point, controllers had to do more than just move servos.

An oversimplification, but point being that the trend was fairly obvious: start with an embedded controller (MRC-3024 or whatever), and eventually bluetooth it to a PC, and then finally realize one can slap a PC on the bot instead.

They are great at doing real-time stuff and digesting loads of sensor input but if you take the
DARwIn software framework as a glimpse of where the future is heading, then the small microprocessors have a minor role in that future. DARwIn runs on linux with 10x the megaherz of an atmega.
Yes, embedded controllers DO have a place, but it is a small place that consists of otherwise CPU-hungry tasks (the "in hardware" versus "in software" problem). IMHO, high level control software doesn't belong in an embedded processor. It can be (and has been) done to some extent, but there's a better way.
There is a world that parallels hobby robotics more than anyone might realize: industrial automation. There are a number of big players in this billion dollar industry, some of which have been doing what they do (ex: embedded controllers running "ladder logic") for some time now. A bot with over a dozen servos walking around and looking at things with vision processing code (and many other types of sensors) is representative of industrial systems that cost MANY times more than such bots do. Software-wise, what we're doing is functionally no different than what big companies like Omron, Allen Bradley, Siemens, and Cognex have been doing. Clearly, there are differences in the hardware itself, but the functional aspects of software are the same, ex: move this to there, check some sensor, do something else, continue, etc.
There is a reason as to why what we want from our bots is often not easy to come by: many engineers have been developing control systems for decades, and they STILL haven't developed a standardized approach to control system software, or even hardware for that matter. Some claim standardization on one aspect or another, but step out onto any production floor and you'll see a number of "standards" in action - a potpouri of hardware and software brutally hammered into something that serves a singular purpose (production), usually at great cost, particularly when the word "integration" (read, connecting two incompatible systems) is used in the design meetings.
My point is, if someone designs a control system flexible enough to easily run any bot hardware configuration with n desired features, that person will surely shake up more than just the bot world.

And, I have a sneaking suspicion that the way to do that is with PC-based controller hardware.
Take Care,
Paul
Hi Limor, Just noticed this post via another...
limor wrote:This is the only way forward for many reasons
I could not agree more, and not just in the context of robotics, but in many embedded versus PC scenarios. There is a fact that few seem to want to acknowledge: the PC as a platform is ubiquitous, and as such, is in itself a standardized hardware platform, one that can be applied to embedded applications.
Embedded processors (PIC, Atmel, etc) support a world of per-application software development. Using a PC in what once was an embedded application changes things: software is suddenly capable of being repurposed, enhanced, and expanded much more easily. Compatibility and communications with other systems improves dramatically. Access to useful things like databases becomes trivial, higher level programming languages result in greater levels of productivity.
If you build custom hardware such as proprietary embedded controllers, you'll fight tooth and nail to stake your claim as time marches on, but if you're a software developer (and hardware doesn't do squat without software), you'll find a much more powerful and compatible world in a PC-based controller.
- The fun in this hobby is about innovation and cutting edge technology.
YUP! Definitely agree. As much horsepower (CPU speed, instructions per clock cycle, ram, etc) as I can pack on my bot's back, the better!

- PIC and Atmega have had their run as robot brains.
Absolutely agree. It's nice to have a base to start with, but at some point, controllers had to do more than just move servos.

An oversimplification, but point being that the trend was fairly obvious: start with an embedded controller (MRC-3024 or whatever), and eventually bluetooth it to a PC, and then finally realize one can slap a PC on the bot instead.

They are great at doing real-time stuff and digesting loads of sensor input but if you take the
DARwIn software framework as a glimpse of where the future is heading, then the small microprocessors have a minor role in that future. DARwIn runs on linux with 10x the megaherz of an atmega.
Yes, embedded controllers DO have a place, but it is a small place that consists of otherwise CPU-hungry tasks (the "in hardware" versus "in software" problem). IMHO, high level control software doesn't belong in an embedded processor. It can be (and has been) done to some extent, but there's a better way.
There is a world that parallels hobby robotics more than anyone might realize: industrial automation. There are a number of big players in this billion dollar industry, some of which have been doing what they do (ex: embedded controllers running "ladder logic") for some time now. A bot with over a dozen servos walking around and looking at things with vision processing code (and many other types of sensors) is representative of industrial systems that cost MANY times more than such bots do. Software-wise, what we're doing is functionally no different than what big companies like Omron, Allen Bradley, Siemens, and Cognex have been doing. Clearly, there are differences in the hardware itself, but the functional aspects of software are the same, ex: move this to there, check some sensor, do something else, continue, etc.
There is a reason as to why what we want from our bots is often not easy to come by: many engineers have been developing control systems for decades, and they STILL haven't developed a standardized approach to control system software, or even hardware for that matter. Some claim standardization on one aspect or another, but step out onto any production floor and you'll see a number of "standards" in action - a potpouri of hardware and software brutally hammered into something that serves a singular purpose (production), usually at great cost, particularly when the word "integration" (read, connecting two incompatible systems) is used in the design meetings.
My point is, if someone designs a control system flexible enough to easily run any bot hardware configuration with n desired features, that person will surely shake up more than just the bot world.

And, I have a sneaking suspicion that the way to do that is with PC-based controller hardware.
Take Care,
Paul