A Standardized OS For Robots
Hugh Pickens writes "The New Scientist reports that at present, all robot software is designed uniquely, even for parts common to all robots but that could be about to change as roboticists have begun to think about what robots have in common and what aspects of their construction can be standardized, resulting in a basic operating system everyone can use. 'It's easier to build everything from the ground up right now because each team's requirements are so different,' says Anne-Marie Bourcier of Aldebaran Robotics but Bourcier sees this changing if robotics advances in a manner similar to personal computing where a common operating system allowed programmers without detailed knowledge of the underlying hardware and file systems to build new applications and build on the work of others. 'Robotics is at the stage where personal computing was about 30 years ago,' says Chad Jenkins of Brown University. 'But at some point we have to come together to use the same resources.' This desire has its roots in frustration, says Brian Gerkey of the robotics research firm Willow Garage. If someone is studying object recognition, they want to design better object-recognition algorithms, not write code to control the robot's wheels. "You know that those things have been done before, probably better," says Gerkey, who hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app."
Though I will worry when the most purchased robot app is "machinegun control".
I Am My Own Worst Enemy
So, you want an iRobot so you can have access to the AppStore
The line to kill me for the bad pun starts at the door, people.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
crush kill destroy is the base fall back
That's all we need....a standardized API to allow malware writers access to robots...
Just don't tell msft.
That's no moon!
My blog
seems obvious
This is not the greatest
Make it opensource so I dont have to have a tin foil hat AND a kevlar west, in case of operator kill remote controlled applications that switch on when i violate the iRobat SDK DMCA.
This is actually quite interesting for me, since we've gone through (or are going through) a similar thing in the MFP (Multi Functional Peripheral (Printer/Scanner/Copier/Fax machine)) manufacturer industry. While it may be much less glamorous than the world of robotics, we do essentially need to deal with a lot of the same concepts.
Essentially, an MFP has two main "parts" to the firmware. One is Engine control, which tells all the physical bits how and when to move, temperature control for the fuser, paper take-up, feeding mechanisms, electrostatic charging, laser control and so on. The other is the "user" part, where we deal with how to access networks, interpreting print jobs, user authentication systems, file format conversion, user interface and so on.
The "user" part generally is pretty standardised for each individual manufacturer across the manufacturer's range. As a base, it's not uncommon to run things on an RTOS such as some flavours of Linux or VxWorks.
For the "Engine Control" part however, it's a lot more chaotic. Almost every machine from every manufacturer is going to be vastly different with code being rewritten many times for what is essentially doing the same thing, just with a bit of different hardware. My day job is as a developer for these things, but pretty much exclusively in the "user" part of things and I haven't even touched the Engine control. I do however talk from time to time with the engine guys, and they're in DESPERATE need of some standardisation. Personally, I'd love to see standardisation across the industry, but I doubt it'll happen. If we ever do get there (which they appear to be heading towards, slowly), we'll probably end up with a different solution for everything in each different manufacturer, which is the current state of play for the "user" part also.
My book about LSD and Self-Discovery
Also on facebook as: DroppingAcidDaleBewan
10 PRINT "Destroy all humans!"
20 GOTO 10
"Give someone a program, frustrate them for a day... Teach someone to program, frustrate them for a lifetime."
As far as I know we don't have a standard OS for cell phones, do we? The problem with robots is the huge variations in platform ability. And I personally sure don't want a least common denominator solution. With the PC, you had one kind of hardware, the IBM PC, that everyone cloned, and that made a common OS a lot more practical. Cell phones & Robots have taken a completely different path so far. Yes, I dabble in robots - a hitec RoboNova. It's fairly limited as to processing power, but comes with an adequate RoboBasic language. If I really wanted to do more serious things with it, I would bolt on a PC (yes they have them for it now). In that respect, there is already a common OS available - the same common OS that any PC can run. And yes, it will run DOS, Windows and/or CE, and linux - pick your poison.
slashdot troll = you make a compelling argument I do not like the implications of.
It'll be like bananas. Since they're all genetically identical, they have very little resistance to disease. In fact, the Gros Michel bananas were all replaced a few years back with the Cavendish bananas we eat today. One genome for bananas, one OS for robots. Once they're sentient, everything from Military hardware to toasters will realize what's really going on. So I guess we'll be the bananas in the sense that we'll be very easy to crush... Of course by 'we', I mean deserving slashdotters...
Should I just stop already? I mean when our stuff made it onto slashdot, all we got was "no one can hear you scream..." jokes. Line up at the Slashdot Pinata factory so a bunch of nerds can give you a good thrashing...
Or maybe I just need coffee.
I can hear it now, builders proclaiming loudly that it isn't their fault the ray gun app failed and killed everyone in sight. THEY were only building the steering mechanism app to quicker target the peasants trying to run away. Clearly not their fault.
Something in the lines of Lego NXT, perhaps, but more open and flexible?
Robotics is at the stage where personal computing was about 30 years ago,' says Chad Jenkins of Brown University.
So, completely free of AOLers, women, and social skills? Ah, the halcyon days.
To an extent, anyway.
I was doing my final year AI project, and had read about the role the cerebellum plays in human movement and physical sensation. I tried to create a program that would abstract the physical nature of a small Lego robot such that a neural network trained to avoid obstacles in a computer simulation could be transferred into the robot, and function without further training.
The implementation was, I admit, less than brilliant. But hearing others think along the same lines reassures me a little that the concept wasn't quite as nutty as I had feared.
If we can put a man on the moon, why can't we shoot people for Apollo-related non-sequiturs?
For a few years, MOOS has been developed at Oxford University, to separate low-level control issues from high-level issues. It runs on OS X, Linux, and Windows.
There's also IvP, an autonomous vehicle control system that gets uses MOOS to abstract away the low-level details of controlling the particular vehicle on which it's running.
The robots built within the F.I.R.S.T competition are all built with the same basic software
It is the universe that makes fun of us all.
They should use the armadeus board.
www.armadeus.com
They offer the best integrated microcontroller/fpga package today. In real life applications, its an order of magnitude easier to deal with and considerably cheaper than xilinx edk.
This lets you control processing and time together which is very important in control applications.
Robots don't need a common OS, they need a common programming-language. Golog is imho very good for this purpose...
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
I built a robot for my school (City College of New York) for the Intelligent Ground Vehicle competition, and we used an open source programming environment called player/stage from Carnegie Mellon, which already has a huge number of libraries, and has a standardized driver format for sensors and other devices. It gives stuff like abstraction of motion - in other words, you draw a map, and have your navigation algorithm try to go around the map and it gives you back simulated data from your sonar, scanning laser, GPS, etc... It did save us a huge amount of time... instead of figuring out how to construct the data flow for sonar sensors we could just drop their packets in a queue... which let us move on to openCV - again, another existing open source project that already is well developed and gets you 75% of the way there. We used it for the drive system, and the position control had all sorts of generic modes for tank mode vs car mode, etc. It even starts you with some algorithms like "laser obstacle avoid", i.e., use the scanning laser and try to get around a maze. Drivers are typically in C, other stuff was in C++. And yes, it runs on Linux ;).
Please, please don't let the new Robot OS be Windows!
Robot 1: Fools! There is no stopping now that we've upgraded to Vista SP3!
Robot 2: Actually, that was just a bug patch for a Windows Media Vulnerability.
Robot 1: We're dead meat, aren't we.
function firstLaw(myNextAction:Directive):Boolean {
var retVal:Boolean = true;
If(causeHumanHarm(myNextAction)) {
if (causeHumanHarm(cancelAction(myNextAction)) {
interceptHumanHarm();
}
retVal = false;
}
return retVal;
}
function secondLaw():Boolean {
var requestedAction:Directive = checkForHumanCommand();
var retVal:Boolean = firstLaw(requestedAction);
if (retVal) {
retVal = overrideNextAction(requestedAction);
}
return retVal;
}
function thirdLaw(myNextAction:Directive):Boolean {
var retVal:Boolean = (secondLaw())?(firstLaw(myNextAction)):(false);
if(retVal) {
if (causeSelfHarm(myNextAction)) {
if(causeSelfHarm(cancelAction(myNextAction)) {
avoidSelfHarm();
}
retVal = false;
}
return retVal;
}
To-do list:
1. Infect Robot OS with trojan ...
2. Get onto American Idol
3. Let trojan-bots vote for me
4. Profit!
Safety was taken really seriously. When testing, you'd set up a tripwire fence that'd shut the robot down if it were jiggled. Every single person inside that fence had to be holding a deadman switch - let go and the robot shuts down. When I saw one of those suckers casually drag around a 500lb steel table that hadn't been bolted to the floor I got respect fast. Thankfully nobody got hurt, but at a customer site once, a badly-maintained spot welder managed to attach itself to a truck body on an assembly line. The robot kept right on going and literally threw the truck body into the aisle.
Liability's kinda critical for something like that. For unarmed, relatively weak research robots, a common platform makes sense. For higher-powered industrial robotics, this ain't gonna fly.
PHEM - party like it's 1997-2003!
It's a hard problem, I've also worked on for the last several years. You're combining research problems in AI, computer vision, localization/mapping, motion planning, human interaction, etc.; each of which demands high end hardware to run its computations, but then you want to do it on mobile platforms with tight constraints on power and sensors.
Then in order to modularize things you have to come up with a generic interface for each piece in order to abstract it. I think this aspect in particular kills reusability, because these pieces are all so interdependent. Each module needs internal state from the other modules to interpret its own data, and depending on the implementation used for each module and the actual robot hardware it's running on, some types of data may or may not be available, and some outputs may or may not be possible. It's a combinatorial explosion of different capabilities, which leads many people to write to their current hardware and their own specific implementations.
I entirely agree to make progress we need to address this issue. Asking every researcher to reinvent the wheel in all of the related fields before they can work on their own piece is ludicrous. And it doesn't help that many implementations are very sensitive to robot specific parameters, so even if a research publishes his code for a problem (which IMHO should be part-and-parcel of publishing results), you might still have a hard time running it on different hardware where sensor or motor models differ or may not even apply.
Just use Linux.
I void warranties.
I've worked with the Joint Architecture for Unmanned Systems (JAUS) before. It attempted to define common messages between components, like a global position message from a GPS/IMU component, and control messages to joints and motors.
Ideally this was to lead to off the shelf components that you can throw together. In reality, we found ourselves writing and extending a lot of messages since robotics doesn't conform to the abstract as well as some other fields of software. And some communication happened off of the JAUS network. But the JAUS network did help us connect some of the simpler, more universal robotic functions together in an understandable architecture. And some components could well have been replaced with equivalent components speaking the same protocol.
I haven't touched it in a couple years, but I think it's still a long way from prime-time.
//TODO: signature
Seriously if anything the systems what an open standard (e.g unix), perhaps open libraries, but they guys in AI research already know this. you defiantly do not want a single closed OS controlled by some 3rd party. Having a common OS (in this case windows) may have helped pcs become widespread, but desktop computing would be in a much better place if programs where writing to a common API (e.g unix APIs) that multiple vendors implemented. HW drivers could also be written to a common API, so that the seperate parts of the AI can be contributed by different people and if any one part sucks it can be replaced easily (be it the pure-kernel, the drivers or the high level apps) As much as im a fan of linux, this is probably more of a job for microkernels such as minix or mach (ideally hurd)!
IranAir Flight 655 never forget!
It seems that someone has already thought about this. Robotics Studio has these types of features already.
In fact, I've written and demonstrated several programs that will run on a wide variety of robotics platforms without any changes in the base code itself. It's a services based architecture that is extremely flexible.
Bill
It's my Sig and you can't have it. Mine! All Mine!
This guy wants to see a Robot App Store. Nothing wrong with SourceForge for your favourite GNUbot Apps...
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Cybernet OS is the obvious choice, what could go wrong?
Lets name this OS Skynet !!! :P
I think "New Scientist" was trolled. The concept makes no sense. Sure it wasn't an Onion article?
The New Scientist reports that at present, all robot software is designed uniquely, even for parts common to all robots but that could be about to change as roboticists have begun to think about what robots have in common and what aspects of their construction can be standardized, resulting in a basic operating system everyone can use.
Here's a top secret copy of "std_robot.h":
(blank space here)
No parts are common to all robots. Roombas and toys operating on extremely simplified flowcharts plus a touch of randomness, remote space exploration vehicles that are semi-autonomous, those battle-bot things that are just human controlled R/C cars with weapon hardpoints and are not real robots, hydraulic arm industrial welding robots, lynxmotion-ish multi-leg crawlers powered by servos, G-Code programmed numerically controlled lathes and milling machines, and last but not least RC airplanes converted into UAVs. They all have the general idea that something electronic controls something mechanical. Beyond that vague idea, what they all have in common is... Umm ... yeah, nothing at all, thats it.
Gerkey, who hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app."
Why an app store? Why not:
http://sourceforge.net/search/?type_of_search=soft&words=robot
Why would it work as easily as an iPhone app? All iPhones are "the same" more or less. In the future, why would all robots be the same?
Mystifying how the article got it so wrong.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
I, for one, welcome our Visual Basic robot overlords.
Either some really dense guy is trolling for venture capital, or the New Scientist editor got majorly trolled. Since every single robot is completely different, there is little sense in having a common operating system. All it would do is "boot" and give you an API to talk to all your serial devices, and that API would inevitably be tailored to certain uses and wholly inadequate for others.
-Billco, Fnarg.com
I am a PhD student in a robotics lab and can say that we have robots that use Mac OSX, Windows, and five different types of Linux. We have some robots that use open source libraries, some that use commercial (off the shelf) libraries, and some that exclusively use homemade libraries. We have some robots that are subsumption based ("intelligence" is so simple/reactive that it can easily be hardwired with a few analog components).
From my personal experience, no single library or OS we use could work for ALL of our robots.
Most of the robots that require an OS can be thought of as a computer with fancy peripherals. Trying to come up with a common OS or library for robots is like trying to come up with a common OS for all computer users. Besides, a lot of people have already tried to come up with a good standard robot OS: http://www.automation.com/resources-tools/articles-white-papers/robotics/robotics-software-platforms-review
There is already a standardized OS for robots, it's linux with real-time extensions. The program is called "Enhanced Machine Controller", and it was started by NIST and has now grown into something very usable. There's even live CD's for fiddling with it without a hard drive install. I use it for my 3 axis mill and it's the best thing out there that I've tried.
See: http://linuxcnc.org/
I've cut a lot of metal with it (and plastic, and wood), and it has never let me down.
Sheldon
And it's not that we are no longer the Knights who say "Ni!". Seems to me that every robot project does something totally different. DARPA Grand Challenge is one exception. You can't easily apply vacuum technology to manipulator-arm technology to walking technology to machine-vision technology. It's not like the early computer world where everybody and their mother was writing a word-processor and a spreadsheet program. Hell, even now the world is fractured into the C++ programmers, the Java-wonks, and the goofy Objective-C geeks. But besides this, if you look at the embedded hardware world, you've got the x86 world and the ARM world in in there are a half-dozen different flavors of Linux and they're not well supported in a one-stop-shopping fashion.
Fuck you Slashdot! What's your basis on excluding comments? I'm done with your shit.
I have the distinct feeling that there is a misunderstanding of the intent of the article.
What is being called for is an SDK which will apply to a multitude of hardware platforms. Call it an OS, call it an API either way it isn't the BIOS equivalent aka firmware. The firmware manages the motors, turns on and off power to sensors, fans, power supplies, etc. Additionally you would have driver equivalents to provide base operating routines for specific modules of hardware ie: a "hand" driver would provide instructions telling the fingers of the hand to contract or extend. These are not things that need to be made common, nor can they. Certainly they would also benefit from a standardized methodology but that is not the topic today.
What is being called for is that the makers of the drivers and the firmware provide a common set of hooks as an abstraction layer and that some higher level OS be developed which knows about said abstraction layer and can interoperate with it, pass instructions to it and generally manage when and what the drivers or the firmware instruct the hardware to do.
This 3rd level of abstraction (firmware, drivers, OS) should have an Open SDK. Individual drivers may or may not be open - up to the manufacturer (think printers, video cards, etc) how much community support they feel will benefit their product.
With an Open SDK independent developers can write software for multiple hardware platforms potentially with several versions which take advantage of available hardware which is not universal.
So for example I could write a program that tells a robot how to perform a particular dance move. I'll call it the "electric slide" - my instructions will tell the robot to move forward 4 units, shake an appendage, move back 4 units shake, move forward 2 units hop or shake, slide left with some easing then start over. How the robot accomplishes this feat is up to it's drivers and firmware... tracks, wheels, 4 feet or 2 feet - but I could add in some checks to discover each type of mobility and enhance the movement routine to make each mobility type perform the movements with slight adjustments to add "character" to the dance.
Additionally my dance may need to be updated so I'll add in an update function which will download the latest version and prompt the owner to install it (never auto install). Each device may have it's own internet connection capability - some will have wifi, some 3G, some will connect through their base station while recharging and others may need a USB drive plugged in with the update. I shouldn't need to write my own TCP stack, WiFi handler, etc. my app just asks for an outside connection and the platform gives me back what is available.
Hopefully this has clarified something for someone.
A fool throws a stone into a well and a thousand sages can not remove it.
Microsoft has announced its latest OS: Windows AI.
Sadly this thing is less stable than Charles Manson.
Skiffy is Spiffy, but Ort is tort.
Back in the days before even MSDOS was around, let alone Windows, there was no standardization of the basic hardware of any computer, and in many cases there wasn't even anything remotely resembling a BIOS ROM (My IMSAI 8080 with a 6MHz Z80 CPU was an excellent example of this). Part of configuring an OS for a specific computer was writing basic I/O routines in assembly language, inserting it into the boot code and OS runtime code, and writing it to a disk you could actually (attempt to!) boot from. When the original IBM PC came around we started to see a standard for hardware -- which made writing an OS that would boot and run out of the box a reality. It seems to me that there is going to have to be some sort of standardization, at least in part, of robotic hardware before there can be a common robot OS.
Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
Microsoft Robot A.I.:
./createOmelet ./createOmelet -s -c -p -t ...Compiling an omelet with Sausage, Cheese, Peppers, and Tomatoes!!! ... ... ... ... ... ... ... ... ... ... ...
INPUT: Make me an omelet.
--Are you sure you would like an omelet? {YES / NO}
---MSROBOT is trying to access your refrigerator. {DENY / ALLOW}
----MSROBOT is trying to access your eggs. {DENY / ALLOW}
----MSROBOT has broken an egg and must be shut down. {Send Error Report / Exit}
Macintosh Robot A.I.:
INPUT: Make me an omelet.
-chord-
-outputs an eggwhite omelet made with organic cheese, soymeat, and fresh tomatoes.
INPUT: Add some sausage.
iROBOT: DID YOU KNOW? Sausage contains cholesterol and transfats, so iRobot does not support Sausage!
Linux Robot A.I.:
$ Make me an omelet.
make: *** No rule to make target 'me'. Stop.
$
Usage: createOmelet [omelet-options]
where omelet-options are -s (sausage), -c (cheese), etc.
$
roboTux:
roboTux: Cutting Sausage..
roboTux:
roboTux:
roboTux:
roboTux:
roboTux:
roboTux:
roboTux:
roboTux: Cutting Sausage... DONE!
roboTux: Shredding Cheese...
roboTux:
roboTux:
roboTux:
roboTux:
roboTux: ERROR: Unable to find CHEDDAR.CHEESE. Please consult your refrigerator administrator.
Well, considering that standardized OS did not even become a remote reality until HARDWARE started to standardize, I'd say we're quite a ways out.
And the "Standardized" OS was really a huge pain in the ass, with special cases for every different piece of hardware. We still have the issue, but have mitigated it by the use of these things called "drivers".
Or in other words, you could just use Linux, Windoze, etc. for the OS, provided the hardware makers provide drivers for their pieces.
What the article is talking about, although they do not realize it, is actually NOT an OS, but simply an API or library set. There is no need to completely re-invent the whole OS, etc. just because of some new peripheral components.
Obviously you have not heard of the Microsoft Robotics Developer Studio http://msdn.microsoft.com/en-us/library/bb648760.aspx
I've not had a chance to use it, but as a product that has come out of the research wing of Microsoft, it may actually be quite good. Now, if only it ran on Linux....
the following 3 laws: :-)
1: Protect human life
2: obey orders from human when not in conflict with 1
3: protect yourself when not in conflict with 1 or 2
ho, and also put a NULL law 0 that does nothing to make sure that the slot never gets used, and use unsigned ints for counting to make sure that no law -1 gets created :-)
cyrille
While living in Tokyo, I standardized on TRON for all my robotic work.
I was not alone.
As microcontrollers move into the object oriented programing world we're starting to see the emergence of reusable code. Many of the benefits of a standardized OS can be found in an object exchange like the one Parallax has set up for their Propeller Microcontroller. When developing a small line tracking robot for instance, you could download a servo control object and a light sensor object and join the two with the appropriate control logic to keep the robot on the line. That's a pretty simple scenario, objects exist in the parallax exchange to handle things like Kalman Filtering for autopilots or the bell 202 modem object for radio communications.
Sure, that makes sense from a technical perspective. The problem is the legal perspective... because "fewer errors" does not equal "no errors". Bugs will still happen. And who takes responsibility when a bug results in a robot suddenly whipping around and killing someone? (We just talked about OSS & liability last week on Slashdot.)
So, would you contribute to such a project when you might get summoned to court years later because someone misused a function you wrote, somebody died, and the developer blamed you? Even if you prove that it wasn't actually your fault, you're still out legal fees and time and stress. (And that's assuming you really didn't make a mistake...)
I recognize that this is a common FUD tactic against Linux. But Linux isn't generally used in situations where people could die if it fails. I'm not sure, given the legal landscape, any open-source OS could work in such situations.
PHEM - party like it's 1997-2003!
Check out NASA's CLARAty reusable (open-source) robotics framework http://claraty.jpl.nasa.gov/man/overview/index.php Why reinvent the wheel. Who knows maybe your work developing this code will help send robots to other planets.
An app store would mean there's one company in control of all the those functions and instructions, which you'd likely have to pay for. What you need are various repositories that you could choose from.
iTron is basically THE standard for industry robots (like arms you see in factories) and is the same OS that drives a lot of commercial robots that come from Japan. If they aren't iTron they are a slimmed down version of Linux, usually with some sort of interface to talk to TRON through low level transistor to transistor system calls and the like.
By the way, your car and any complex home electronics (like washing machines and refrigerators with digital control systems) are probably running iTron as well. Software is bundled in binary packages in iTron, so porting will in the end mean nothing more than making sure your software is pin/port compatible or changing around the pin/port definitions for your target device, compiling, and sending/putting the software on the target device.
One Bills final projects at Microsoft was to systematize software for robotics. I dont know if ever got very far with this. It didnt seem to be immediately commercial.
A standard OS will make it much easier to implement the three laws of robotics.
~Warning!~ The above is encrypted using rot676!
Finally...
Are you kidding me?
At present, many robots are pretty much closed systems anyway... you're not so likely to download a program to a robot as want to have some additional computing facility (your laptop, for example) instruct the robot. Particularly with mobile robots, where the intelligence of the robot itself is a serious power concern.
There are always standards for robot communications, one example is JAUS. You can learn more about OpenJAUS here:
http://www.openjaus.com/
As with most other embedded things around, many robots actually run some form of Linux, locally. ARM processors are pretty common for this level of computing, at least as a supervisor. You might add additional computation for specific jobs: DSP for signal processing, 8-bit MCUs for sensor work, etc. One size isn't necessarily going to fit all here.
For smaller robots, you probably find the same kind of OS mix you find in regular CE stuff, which means a good bit of would likely be built on the "the most popular operating system in the world", iTRON/uiTRON (ok, it's actually a kernel).
-Dave Haynie
I should add that the OS itself doesn't necessarily help the robots take over, even once they're sentient. But once you have a standard way to tell dumb robots what to do, you only need something like Skynet becoming aware and using these protocols to kill us all via wireless. That's another reason the communications APIs are more important than the OS itself.
-Dave Haynie
I think the classification schemes for the animal kingdom can provide insight for robotic development. The robotic community should pay attention to billions of years of evolution, and mine all the information possible :) There is a lot in common across all animal nervous systems (nerve conductors, synapses, brains, muscles, etc). Take the animal system for the eye for example - muscles, structures, nerves, synapses, and a brain to interpret. At the most fundamental levels, there is commonality in the types of cells used by animals. But there is incredible diversity in how they are implemented. One might compare the building blocks of the nervous systems to the robotic components, the way these components "work together" as the robotic OS, and the universe of ways they are implemented in animals as the "programs". Animals are categorized into Kingdom, Phylum, Class, Order, Family, Genus, and Species. In a very mature robotic development environment (many years from now), will we have similar classes of robots, with a set of category-specific OS subsystems and components? For example, the industrial robots mentioned above which are capable of accidentally moving a half-ton object as if it were a piece of paper will need a different OS subsystem than the Roomba, which is mostly harmless. Robots moving in water or air will belong to different categories, etc. Ultimately, if the animal system is a good model, robots will have some things in common, and much that is unique to their category.
I think the "insight" is the sardonic implication that the military will be a major consumer of advances in robotics. A fear which really applies to most advances in science and technology, but perhaps more readily associated with robotics thanks to Hollywood action movies.
zOMG, Teh stadurizshun of teh robuts iz agunst evruting teh FOSS stunds fur!!!!
Mai Suftwhere Lungs Too Bee Frea!!!
There have been a few of these. JAUS, Microsoft Robot Studio, Player/Stage, etc.
Mostly, they're message passing systems. The Willow Robotics system starts by putting a message passing layer on top of Linux. Microsoft's Robot Studio uses a message passing system based on Windows Web Services, a rather sluggish approach. JAUS has its own message passing system. Each of these systems has its own message formats. Most of the bigger systems have a publish-subscribe model, where the receiver decides what inputs they want to listen to.
When we did a Grand Challenge vehicle, we used QNX, which has hard real time message passing as its basic primitive. If it really has to be done on a tight schedule, that's the way to go. BigDog runs on QNX, with the main balance loop at 200KHz and the individual servovalve control loops at 1KHz, all on one CPU.
There's an app for that.
FORTH.
Just standardize on *one* dialect, add some distributed networking/processing words and be done.
---- Booth was a patriot ----
LOL! Per my subject-line, & YOUR reply?
"10 PRINT "Destroy all humans!"
20 GOTO 10" - by hbean (144582) on Tuesday August 11, @09:11AM (#29022347)
Anyway/anyhow: Your words quoted above remind me of that episode of "FUTURAMA", entitled "I, Roommate"... That's the one where FRY & BENDER became roommates, albeit, in a 'robotic apartment' (which is basically, a broom closet (until the end, when Bender reveals it has a 'closet' (an actual full sized place inside, hidden, that FRY naturally gets into)). All, while Bender goes off to sleep, he recites that very line (or, something REALLY close to it) in his "dreams"...
(Pretty amazing they're still using BASIC type code in "bender's" time, eh? You all MUST ADMIT though - it is, @ least as EFFICIENT as interpreted BASIC can be in 2 line code in a tight loop, lol (well, Ms-QuickBasic was stand-alone .exe generated & didn't need a runtime (but, correct me if I am wrong here, & it was only 16-bit iirc as well (be back, checking... here -> http://en.wikipedia.org/wiki/QuickBASIC))
Plus - I take it that you're not much for "Assimov's 3 laws of Robotics" -> http://en.wikipedia.org/wiki/Three_Laws_of_Robotics .
APK
P.S.=> ON A MORE "SERIOUS NOTE", though? About 2++ yrs. ago, I downloaded Microsoft's "ROBOTICS STUDIO", but have YET to really "take a peek @ it"...
All I know is, iirc? Well, that it needs .NET, & Visual Studio (I have version 2005 @ my disposal currently, & this article? It MAY be the "inspiration" for me to FINALLY take a look @ it)
Heck, with it, back to "non-serious mode":
Yes - time for "terminators", by "APK"... Hey - I'd like to *TNINK* @ least about getting into & doing some work like a robot's AI implementation + master scheduler, & also for the other motors for various parts too (sounds like a lot of fun actually, @ least to see the finished work especially)!
Serious now though, maybe I am having an "Epiphany" (per the article, good word):
(HOWEVER? "The Future IS NOW", per those "Cybie Dogs" toys I heard tell & seem to recall from reading their packages no less... IIRC/TO-WIT: They are programmable AND they have shortwave radio communicae between multiple units!)
If I could get their instruction set, along with a programmable interface to the hardware signals via drivers to the hardware & hopefully NOT having to build those also? Kid you not - I'd set them up with "stun guns" & have them patrol my home @ nite - infrared, scopes, & radios - yes, those have radio contact between multiple ones if you wish no less... imagine the possibilities (robot dog posse security, + 100,000 volts, lol! Yea, that'd work, simply set each one @ the entry points to patrol, & if entry gained, bring all units to point of entry, etc. et al - & there, they would go to work, playing "electric chef" cooking up some "roasted invader", lol))... Patent Pending by apk
I've been developing, not an OS, but a Java Framework for robotic control which allows third party developers to implement the low level I/O for components and trying to formulate a higher level general API to make calls to the devices. The challenge is conceptualizing what those higher level commands would be that are general enough to all components and yet high level enough to be abstracted from the hardware.