Robot OS discussion

This is a question and maybe a challenge. If you use a PC mainboard for the computer basis of your robot, what OS would you use? I've heard that many
people would use Windows. If you've read anything I've posted in the last month, you'd know I use Linux.
Let's start a discussion. What are the top 10 reasons you choose the OS you do?
Linux because: (1) Most all distributions (not Linspire!) come with the development tools and lots of development languages. (2) Graphical interface optional (3) Good support for hardware (4) very customizable (5) very stable (6) Full source code access (7) Can be as big as a data center and as small as an embedded device. (8) Lots of software available (9) Great networking support. (10) It is totally free.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
QNX Real time platform: Advantages: 1. Designed for realtime applications. 2. Microkernel design => easy to develop device drivers in user space (no kernel recompiles) 3. Very good documentation and help system (way ahead of linux man pages) 4. A helpful user community and useful newsgroups (news server: inn.qnx.com) 5. Availability of most tools and apps from the open source and GNU world. 6. Most unix/linux apps can be recompiled in QNX with little or no modifications to makefiles, sources
Disadvantages: 1. Expensive license, although free for non-commercial use 2. Hardware support not as good as linux 3. No hardware accelerated graphics

the
you
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Vilas Kumar Chitrakaran wrote:

That is very nice.

Most operating systems have the notion of modular kernel drivers. Even old DOS Windows had VxDs which could be loaded dynamically.

Hmm, that is an interesting opinion. I'd like to take a look. Linux has a does lot of man pages and HOWTO documents, on the other hand.

Yea, Linux used to have a very helpful community, but I think the trolls have taken over in a lot of places.

Isn't amazing what's available?

Yea, I've seen my share of "#ifdef QNX" in code.

What is the license?

That may or may not be a problem in a robot. As long as you can choose H/W based on compatibility, it probably isn't too much of a problem.

Linux is good here, but not perfect.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
1) linux : ease of developing and programming 2) windows : because it will sell, play videos, mp3s, internet (PC on wheels) 3) roll your own : because it is fun and you can know it
Rich
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@gmail.com wrote:

True.
Linux will do all this out of the box.

You can know Linux, you have all the source, you can even build your own.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

The most important requirement of any OS or computer language is that you know how to use it. Something as simple as QBasic and DOS can control a robot if that is all you know and the task is not too demanding.
The bottom line is everyone will use the OS and language they are good at. In your case you have a wide choice and thus for you Linux is an option. For others they would have to ask if the learning curve is going to be worth it. A good idea will run just as well on Windows as it will on Linux and should be transportable between operating systems.
When you have published your PID hardware and associated software i am sure we can all adapt it to our own situations if it will solve a given problem.
So in answer to your question I would say that it doesn't matter what system you use. It is not the tools you choose only that they are sufficient for the task and you know how to use them.
Regards,
John
postscript:
I actually like the idea of Linux if only because it is not Windows :) I will take your suggestion to download "knoppix" but in the meantime will use the tools that I already have some skill in using to build my robots.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JGCASEY wrote:

That is nonsense. Don't you want to learn anything?

Your catch phrase "the task is not too demanding." What about those people wanting pointers or alternate opinions?

That I disagree with. I am a published author in the Windows software development realm, but it is the motivation to learn more that has lead me to Linux for my robot.

Yes.
This is a pet peeve of mine. I'm having a hard time placing the decade, but there has certainly been a disquieting change. Since when is it wrong to learn new things? A "learning curve" is a good thing.

Well, with regards to Windows, it is a *bad* OS from any technical perspective. Strategies that would run on most platforms have a way of not running on Windows.

Funny you should mention that. I have the C++ class written. I have the PID class written. I have a lot of digital photos taken. I am very close to putting up the web page that describes how to use a ripped apart mouse as an encoder. It's pretty cool, also I'm having a blast.

That isn't the point of the discussion. The point is to debate the relative pros and cons, you know, intellectual discovery.

That is a really simplistic point of view. It brings to mind the saying: "If all you have is a hammer, then every problem looks like a nail." A rich vocabulary of technology and ideas helps you do things easier.

Don't misunderstand what I am saying, this isn't about Linux. I have my reasons for choosing it, but I would like to hear the reasons why people choose other systems. I am curious. Right now, I'm thinking about downloading QNX to try it.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

I didn't say I didn't want to learn anything.

I thought I was giving an alternative opinion?

And we are all motivated in our particular field to learn more. Mine is not software or hardware. I do have other time consuming interests. Robots happens to be one of them.
We all have a different entry point and different goals. If your goal is to understand how machines might learn, adapt, navigate, "see" (AI) then the actual OS is irrelevant providing you can use it and it is sufficient for the task.

Good or bad it's part of learning but we all have different ideas about what is worth learning.
In fact "learning theory" does interest me and flattening out that learning curve is in my opinion a desirable goal due to the enormous amount of learning curves we have to deal with on a daily basis.
I knew an ex teacher (principle) who woed the fact that children today couldn't spell. One day he complained to me how his local church newsletters editorial had spelling and grammar mistakes. I asked what the editorial was about. He didn't know (and probably didn't care) as his real concern was not on the goal but the means. He isn't with us anymore but I wonder what he would make of the shorthand used by todays youth when they send text messages on thier mobile phones. They are concentrating on the goal of communicating not the means by which to communicate.

I will have to take your word for that. So far my little vision and control programs seem to work with Windoze (or DOS).

And if you have a nail gun a hammer isn't good enough to put together the kids playhouse?
Look I think it is great that you have all that knowledge on software and hardware. Hopefully you might share some of it with lesser mortals.
As I pointed out above we all have different entry points into this hobby. For example have you seen the different ways people can program the LEGO Mindstorms RCX depending on their level of expertise?
Experts can restrict access to technology to all but those who do the hard miles or they can use their expertise to make it easier for others. An example I saw of this was a book on writing games for windows. It only required the ability to program in C++ as all the DirectX and windows programming stuff was provided on a CD and instructions on how to use it. Sadly it did not cover webcams :(
Another example might be DOS extenders. You might get all elitist and say, sorry, become an expert on switching between protected and real mode or you might instead provide WDOSX.
Regards,
John
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JGCASEY wrote:

[snip]
I basically agree with this statement in so much as the OS is irrelevant to your algorithm, but some operating systems are easier on which to develop.
[snip]

My pet peeve is that I remember they day I thought the USA was in trouble. Someone said to me "Why do I need to know that?" about a technology they used day in and day out.
30 years ago, someone would be embarrased to say "Why do I need to know that?"
I remember Popular Electronics, Byte, Popular science, and magazines like this. All had projects to build. All were "popular" magazines. Now, they are little more than shells of what they once were, and hardly anyone reads them.
My highschool physics teacher told us to study everything.

The only way to flatten out a learning curve is to learn basic concepts and apply them to new subjects.
I guess I have a different perspective.

This is a different debate, it is a great debate, and while it may have some interesting parallels, I'm not sure we can do it justice in the context of this thread.
[snip]

Having used a nail gun, and assuming I have access to one, yes, I would use the nail gun every time. Just as I would use an electric screwdriver to mount a plant hanger. It makes no sense to waste effort doing what a tool can help you do more easily.

That's a pretty discourage way to look at it, for both of us. Personally, I want to learn. Debate and discussions are a great way of exchanging ideas.

My son has the RCX package (Mindstorms), its kind of cool if limited. I have been looking at the idea of ripping apart the mindstorms sensors and actuators and figuring out how to run them from a PC.

Einstein said "It should be as simple as possible, but no simpler." With a little more depth, the webcam should have been fairly self-explainitory. FYI -- a lot of the Windows video stuff is in the multimedia SDK (which you can download). There are at least one or two program that can be modified to intercept a video stream and periodically save a bitmap.

No, that falls under the electric screwdriver example. One should understand real vs protected memory, as well as the different types on the x86 (It can make some wierd problems obvious), but it is best to rely on an extender to do the work.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

I wouldn't worry about the USA being in trouble due to a lack of brain power. Wealthy countries, like wealthy entrepreneurs, hire the technical brains. One of the problems developing countries have is the brain drain to the USA. Indeed most of our brightest in Australia are enticed to go to the USA to add to your well being and wealth. Think back to the second world war. Who made up the elite that made the atomic bomb and delivered the know how to enter the space race and where did they come from?

You are going all nostalgic :) The world has changed and there are other things to attract the techie type youth. There are still some mags left like Elektor Electronics (UK) and Silicon Chip (Australia) that have projects and interesting articles. As for software there is Doctor Dobbs Journal and other specialty mags.

Information overload! A general education is important but I think there is a need today to specialize and to be goal orientated in how much time you allot to any given subject.

Perhaps I should have said flatten the *time* it takes to get over the learning curve.
How information is presented can make a big difference as to how long it takes to assimilate that information. It also reveals something about how our brains work.
May I respectively suggest that time spent learning how we learn will be better spent than time spent on yet another OS if you want to make a smarter machine any time soon?

A debate about OS is fine between those who know what they are talking about and I wasn't trying to suggest it not take place. All I was pointing out was that if your goal was to build a robot then it wasn't the main issue. And my "contribution" to the debate was simply "to use what works for you".
I have read these debates on computer language sites and no one seems to agree.

But have no idea how to use :)

As I have mentioned I have been using a VC++ shell to grab LogiTech webcam images into an array for processing and display. However it is too slow and I don't really want to use VC++. Apparently there are LogiTech drivers available for Linux and thus I am not adverse to using Linux and C++ if it is not too time consuming to learn.
Really I am waiting for you to get your little bot up and running with web cams so I can learn from your C++ code as to how to do it :)
Regards,
John
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

FYI Elektor Electronics (mentioned above) published some articles on RCX and Lego Mindstorms. www.elektor-electronics.co.uk and run a Search.
best, Richard
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

[snip]

Again like your other thread , you are assuming an OS is necessary.
What about the KISS principle ?
Why not have a specialised robot version of the OS, that makes it easier for beginners to get started ?
Why require them to learn the OS first ?
A pre simplifed linux or other os based roboOS that lets people get started easily.
People need to be motivated in different ways, to say you have to learn all this first is going to turn a lot away ,especially school kids.
Decreasing percentages of the population are getting into electronics , engineering and science.

A lot of people are turned off by labelling some thing as 'learning' or educating.

Not just the US.
But why does some one need to know how somethings works to be able to use it ?
If that was a requirement 99% of people wouldn't be able to use a car or a ball point pen or a computer. Would rule out most people from using anything.
Seems to be an increasing adversion to technology.
You guys (US) seems to have more than your fair share of people who want to shift the clock back to pre 1950's and 1960's technology / lifestyle and others who want to do away with all electronics.
Peoples reactions to technology is why usabilty is so important, hide the technology and focus on usability. Going to be seeing a lot more of this.

www.circuitcellar.com Circuit Cellar magazine (print and electronic edition) design contests are very good
http://www.servomagazine.com/ http://www.nutsvolts.com both from same publisher
Alex
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Alex Gibson wrote:

OK that's great for the end product, but we are the guys building and developing this technology, not the end user. If you want a ready made robot go buy a Robosapien or something.
I thought this was a technical discussion on building robots.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Yes but we still need more people (the next gen) coming into robot building and you need to attract them in.
Give them an easyish or gradual initial start to get them hooked then get technical and give them big challenges.
The more people doing robotics, the cheaper robotics supplies can come and more affordable innovative products.
More people, more new developments more funding.
Most people building robots are guys.
Alex
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Alex Gibson wrote:

It is if you are doing anything complex or interesting.

OK, lets build one.

Why require someone to learn how to drive or operate power tools?

Sure.
That is a VERY SAD statement. Oh my god!!! Kids learning yikes!!

Uncurious people shouldn't be in electronics, engineering, or science, or any other technical field.

And isn't that a disgusting state of the USA!!! In japan and china kids love to learn. They are not afraid of a little work. We have been so afraid of challenging ourselves and our children that *any* challenge seems too hard.

No?
LOL, why be curious? OK, seriously, because *nothing* is perfect and when it fails you should be able to recognize that it has, and, if required, work around it.
Why should you need to know how to change a tire on your car? Because it could save your life.

That is a real problem for the USA. We are in an intellectual decline.

Regressives are all too abundant, and they are the ones that want everything easy, a flat earth, and that darwin has never published.

We need to teach people to be inventive and curious again, not make it easier to hide from it.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

kids love

of
hard.
yes, we are capitalist country. We want money. Teachers want money. School "administration" want money. They get paid even if children don't learn. Children don't learn in the schools. They get propaganda. If you want to learn something, you have to do it yourself. Unfortunately, we associate learning with public school. Learning = bombardment with propaganda. Learning = not fun. We get out of public school and we know nothing. public school = learning = know nothing after 12 years don't do it.
I've taught myself more in 1 day of reading a book than 12 years of public schools taught me.
Rich
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
mlw wrote:

This is something someone such as yourself would be able to do for your robot? It would be of interest to me to start with a simple version (not GUI for example) of Linux. Maybe the RTLinux thing? I would want sufficient support for web cams however. If your hardware/software configuration is simple enough to learn yet powerful enough to make use of the speed and memory capacity of a modern PC I would certainly want to copy it.

Japan and China have a different history and culture. As for loving to learn I think there is a high suicide rate for those who are pushed beyond their limits. I think in Japan the youth are following the Western trends as regards what is seen as a good lifestyle.
Although I agree there is a general decrease in the appreciation of those who generate the science and technology that allow the populace the comfortable lifestyle they now enjoy I am inclined to think that the actual number of youth interested in these things is probably much the same as in the past.
A question for alt.sociology?
- John
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JGCASEY wrote:

It is Linux, it is free.
Seriously, while there are no Robot Linux distributions that I know of, there are a large number of distributions out there. Virtually all of them would do quite well. The main ones alow you to pick and choose which components get loaded.
You can network boot Linux, boot and run off memory cards, there is no limit and there is plenty of documentation. The Linksys wireless rounters run Linux, why not your robot?
There is a project that will allow you to boot off a CDROM and save back to a CDRW disk.

Not the ones I know.

No, I see a lot fewer.

Perhaps so.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I choose an OS because:
1) it does the job 2) is widely supported 3) I'm familiar with it 4) the tools I need are there 5) The documentation I need is there 6) It runs on the machine that I've chosen 7) The input and output devices I need are supported 8) It is customizable 9) The performance is predictable 10) The OS doesn't get in the way of the job
In the past, the above reasons demanded DOS or Windows.
Your question is difficult to answer without first identifying what you need the OS to do. If you don't need the OS to do much, then I would say you don't need an OS. One step up from no OS would be something like DOS (or FreeDOS).
Really, how can you choose the delivery platform until after you decide what you want to do?
For example, suppose you need to count motor revolutions. If your motor runs at 3000 RPMs, then Linux would be a bad choice to monitor signals like that. Out of the box, Linux's tick is 10 milliseconds. That means that you can't even begin to count those signals. You'd need some hardware to do the counting.
Therefore, without some kind of hardware support, linux would be worthless for a direct motor control task. On the other hand, without an OS, many microcontrollers are able to do it just find (especially if they have counter hardware). In this case, no OS beats out OS = Linux.
I've developed robots on Windows in the past because there was wider support for the hardware that I wanted to use. Linux still has problems with getting drivers for off-the-shelf hardware. Linux's hardware/driver support is nothing to be too proud about.
Linux is great for high-level tasks, but I think one still needs something like a microcontroller without an OS to do low-level interfacing. Then again, without having to deal with low-level interfacing and being able to program in Visual Basic or C#, Windows is a great high-level platform with much wider support for many input devices.
So, in summary, which is the best robot OS? None for low-level control. For high-level control, it doesn't really matter; it's just a preference. I'm leaning in the direction of Linux for robot control but I've enjoyed using Windows in the past. Both Windows and Linux have support for serial and network communications.
Cheers, Ed L
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ed LeBouthillier wrote:

So you chose Linux huh?

This is basic Engineering 101...

EEEEHHHH!!!! Wrong answer! You did say "Out of the box" which I'll give you, but I haven't seen a computer yet that I didn't have to configure with all the proper drivers, be that Windows and having to spend 15 hours downloading all the different drivers that do not ship with the factory CD-ROM or the hour I spent rebuilding my kernel to include the drivers I needed to streamline my box at home.
So why not spend a little extra time, download RTLinux, build the kernel and get the clock ticks you are asking for and not have to waste time fiddling with assembly code for an MCU.
Also, with the technology available to us, why constrain yourself to a little toy line follower or an over rated RC Car (read "Mobile Robot"). The Japanese are kicking our rear ends in their home work shops building Bi-Pedal robots that play soccer and do Karate moves.

Does your robot need to use a GUI or am I missing something? A good robot doesn't need a TV screen with pretty graphics. It just needs to do what it's told.

Check again on our hardware/driver support, you might be really surprised. Most people who make that statement either tried Linux years ago when it hadn't gotten as popular as it is now or are trying to ride the "bleedin' leadin' edge" so hard the not even windows has a driver for their hardware yet. Furthermore, having worked as a technician for twelve years in the field, before having the good sense to move on, I had just as many problems getting new hardware to work under DOS or Windows as I have had with Linux.
Don't think that something is better just because you have to pay for it and the license to use it and to talk to Habib the technical support representative who doesn't know any more about it than you do.
Please, I do not mean any offense to our Hindu and Middle Eastern friends here. I am only referring to a HUGE problem we have here in the US trying to get good technical support over the phone.
Which brings me back to the driver issue. I have found a plethora of documentation for Linux and its associated drivers and hardware that I was never able to find for Windows or DOS until the Linux community forced them by example to start shining a little light into their Black Boxes.

MCUs will always have their place, but with recent developments in AI, hardware and other software, I think it is time to rethink the soap box that hobby robotics and other areas of robotics in general have stood on for decades. I can now have the full power of a PC to work with in the palm of my hands, with Megs of software to control it for CHEAP.
Except for having to take the time to remove the BLOAT of your standard operating system, Having a fully functional PC or better to work with is EXTREMELY attractive to me. Voice control itself requires a more powerful processing unit add in color vision and you start to seriously crank out the BOGO MIPS. Give the bot a decent enough database of know ledge to use in its daily tasks and the search algorithms alone will fry your MCU in a second.
Use the MCU for motor control and channeling sensory input back to the main CPU so that it can do the real decision making.

Once again I can not agree with using Windows for anything other than a monitoring station and I've got the Gnome for that. For building a custom robotics application that will be more than just a toy I personally will choose Linux or a variant thereof any day.
"Linux From Scratch" is a very good place to start for removing the bloat out of the operating system. Utilize an RTLinux Kernel to get real time access to your sensors and actuators.
And this may be the most important point I can make.....
STOP using "Interpreted Languages" (ie: Visual Basic, JAVA, Lisp, ....) for developing any kind of code, especially AI code. The computing community has spent Billions of dollars building faster computers only to have people slow them back down again with bloated GUI s and interpreted software. I spend just as much time now waiting on my expensive GUI to load up as I did waiting for my 4K of code to load off my old tape drive on my old Atari 400. Why did I get a "faster" computer?
The "Learning Curve" is what makes it fun a challenge. I want my robot to go get me the proverbial beer from the fridge. I want to live in the most technologically advanced civilization on the planet and I don't want to move to a foreign country to do it. We have the tools and the ability to build that robot. We have to stop limiting ourselves and sitting in the box that people like Bill Gates want us to sit in. The open source community is our best starting point to achieving that goal.
What I don't know, my friend over in India does and what he doesn't know his friend in Denmark does and We don't have to make some corporation a little richer to SHARE what we know.
In conclusion, let's go build some robots guys and let's use our heads doing it. :-)
Eljin
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.