Robot OS discussion

Translate This Thread From English to

Threaded View

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.








Re: Robot OS discussion

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



Re: Robot OS discussion



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.


Re: Robot OS discussion

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


Re: Robot OS discussion



Linux will do all this out of the box.



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



Re: Robot OS discussion



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.


Re: Robot OS discussion


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.



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.


Re: Robot OS discussion



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


Re: Robot OS discussion



[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.




Re: Robot OS discussion



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


Re: Robot OS discussion


FYI Elektor Electronics (mentioned above) published some articles on
RCX and Lego Mindstorms. www.elektor-electronics.co.uk and run a
Search.

best,
Richard

Re: Robot OS discussion


 [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



Re: Robot OS discussion


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.

Re: Robot OS discussion



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





Re: Robot OS discussion



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?


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.



Re: Robot OS discussion


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


Re: Robot OS discussion



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


Re: Robot OS discussion



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.



Re: Robot OS discussion



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


Re: Robot OS discussion


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

Site Timeline