[Robotgroup] Menage aTux. Embedded Gnu/Linux Hardware Recommendation?
Bruce Waters
biwaters at austin.rr.com
Tue Feb 5 23:33:06 PST 2008
Rhett,
For my ferrocement plotter bots I am mixing/matching :
1).wr850g's using OpenWrt Embedded Linux (just like
Gray's well hacked wrt54g routers)
for 802.11g WiFi, 4 wired ethernet ports, plus 2 serial
2).Vex controllers using Microchip mplib/C18 and WPIlib
for pwm servo/motor outputs, serial, and dido
There's no real OS here, just the Vex control processor.
Propeller's or basic stamps are alternatives to Vex.
3).Sick DME 2000 laser rangefinder(s)
for accurate positioning via serial (thence wr850g wifi)
These are normally >1K$ items but I bought some much
cheaper on Ebay and I love em.
4).Many mongrel rebuilt $10/$20Goodwill scraptops
(Compaq Presario 1200s, Gateway Solo 3350s, HP
Pavilion N3410s,...) running Edubuntu Linux (some PXE)
These scraptops provide USB, hdd, ethernet wired to wr850g,
hi-res bot-mounted displays, optical mice for super cheap
closed control loops, serial to Vex,...
5).Compaq DL380 dual processor server with 6X9GB scsi
raid, running Edubuntu with a PXE server for optional net
boot of bot-mounted scraptop Edubuntu linux.
Handheld "dashboard" Edubuntu Scraptops on my home
lan (operating as remote operator consoles) communicate
to any bot-mounted scraptops through the command
and control server. Project design data resides on the
main ccs server, is translated to high level motion directives
for specific plotterbots here and sent to plotterbot scraptops
(over a wifi hop) which implement or delegate lower level
motion directives with low-latency requirements(eg. to Vex)..
I have wr850g routers I can spare for projects which could
produce subsystems also useful for my purposes. You might
provide a wireless hop to the serial print head controller that
Vern used in the ping pong ball printer with a couple of these
routers. Then anyone could mount the head on a mobile
robot and print giant graphics on butcher paper taped to the
floor without storing all that data on the mobile bot. Two
bots printing the same stream would document their relative
positions in a time synchronized way so that what they did
when could be reviewed afterwards for scoring contests or
for teaching the physics of motion. The botmounted router
could have a routine that would print the current value of
some keyword (myname=R0D0) when a symbolic for that
keyword appeared in the serial input stream . "My name is
$myname." might produce "My name is R0D0."
The wireless hop to the print head controller idea is just an
example. If you think of an application you would like to
implement, please describe it to me. Perhaps we can get
multiple use of expended effort.
The five bullet description above is in various stages of
development. I am a scheduling opportunist so I will not
be publishing any dates for intended completion.
I obtained most of the hardware I have at a very low
monetary cost relative to its actual value but with
great effort expended at inconvenient times to get
those good values. A great many of these items
are rarely available at the prices I paid and some may
be discontinued and may never be available again.
It is therefore imprudent to assume that one can ever
exactly replicate the things I create at reasonable cost.
Luckily, most of the software I have used for this big
project is (so far) publicly available on the web.
Edubuntu Gutsy (7.10) is the workhorse and is
very conveniently distributed. Edubuntu is being
massively distributed to K-12 users so its distribution
has to be smooth and well tested. There is an
enormous set of applications also distributed with
the Synaptic Package Manager so a great wealth
of predominantly free software is available with
fora and updates and large user communities.
I think it is the way to go for a great many
purposes and I intend to use it whenever I
possibly can.
OpenWrt is a hacker beastie so it requires a great
deal more sophistication but it is freely available
on the web and my son did my router flashing so
far. Techie types can handle it reasonably easily.
This long post essentially seconds the previous
recommendation to use OpenWrt for embedded
Linux. I am just providing some detail to show
how it might all fit into a productive environment.
MPlab and the C18 and WPIlib are all free versions
of software for Vex (it contains Microchip PICs) and
involve a somewhat complicated "tool chain".
Software development types can slog their way
through these. You can get fairly decent Vex
function from a $200 EasyC Pro alternative which
might be easier to use for those who would rather
pay some money to avoid some of the complications
of the free approach.
Using a simple control program and a little dedicated
hardware eliminates the extreme "need" get some
"real-time" version of Linux to deal with asynchronous,
high-speed-service-required, specifications. Meeting
hardware requirements such as these is almost never
covered very well by an operating system which has
a myriad of other responsibilities. Instead, dedicate
some hardware, dedicate some narrow purpose OS
(control pgm or a minimal real time Linux) and use
the usual general-purpose Linux like vanilla Edubuntu
at all but the lowest levels of abstraction.
Bruce Waters
More information about the Robotgroup
mailing list