Building a PC-based robot

Hi all.
I'm a beginner at robotics and want to build a robot using either an ATX motherboard or laptop as the base. From my reading, I understand that I
will have to micro controllers to control the various functions of my little monster. My questions are as follows:
1) Is there any way to use just the MB to control the motors and sensors, etc?
2) I have Gordon McComb's "Robot Builders Bonanza". Can you suggest any other books that would be helpful in this project. As I said, I have no background in electronics or engineering, but I'm fairly adept with PC's.
3) What OS should I use? My first thought is to use Linux, since it has much more flexibility than any Windows OS.
Thanks in advance for any input you can offer.
Mike
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
You will find yourself having to either buy or build devices that interface to either an ISA slot, if you can get a PC with one, the parallel port, or the serial port.
PCs are too general purpose to handle the specifics of sensor or motor interface directly.

little
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
And somewhere around the time of 06/17/2004 08:25, the world stopped and listened as Blueeyedpop contributed the following to humanity:

If you can find them, there are PCI cards that have multiple bit-wise I/O ports, analog inputs, and analog outputs.
http://www.bbdsoft.com/iocards.html
--
Daniel Rudy

Email address has been encoded to reduce spam.
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Caelwin wrote:

If you're really a newbie, you might want to consider a simple kit -- start small in other words. I think you'll find that approach handy for getting a feel for what's actually involved in building a mobile robot, a lot of which tends not to be obvious to beginners. Gordon McComb (the guy who wrote "Bonanza") has a company:
http://www.budgetrobotics.com
that offers a number of relatively inexpensive kits. He also posts to this NG quite a bit

You could use the parallel port in one of the standard bidirectional modes to do this, but I think over the long run you're going to find this largely inadequate. A much better approach would be to use the PC to talk to an OOPIC or bx24 via the serial port. These microcontrollers are very simple to setup and program. They also include plenty of I/O and things like A/D conversion and built in PWM generation, all stuff which you will almost certainly find you want. Cost is generally minimal -- these generally cost under $50 last I checked.
You can even build your robot initially to just run off the microcontroller, and add the PC in later (once you figure out how to power it -- see below). This approach gives you lots of flexibility.
Note that powering a regular ATX board is not trivial -- you will need a relatyively high capacity 3.3v and 5v supplies. You will also need 12v if you plan on running standard hard drives. You may be able to ignore the -5v and -12v requirements (although I'm not sure what ignoring the -12v requirement will do to the rs-232 hardware on the PC). A lot of people who choose to use standard ATX hardware often just punt on this by using an inverter connected to the robot batteries and powering the PC through a standard ATX supply.
Either way, plan on large batteries, and a robot large enough to support them. This will add cost to your project (you'll need larger motors, larger motor controllers, a larger and sturdier chassis, etc). If you want good obstacle sensor coverage, bear in mind that this cost tends to rise (a lot) as a robot gets larger.
You could also use a notebook -- but you'll be a slave to the notebook's power supply, which may not be easy to derive from the robot battery (this mat not be a problem for your application, however.) You could also consider a palm-pilot or similiar handheld (in this case, you'll definitely want to use the handhelds serial port to interface to a microcontroller I/O handler.
You could also consider the use of a PC/104 or nano-itx type board, but these will cost more money.

Anita Flynn, et al -- "Mobile Robots". I'll refrain from pushing my own book here.

Either will do, depending on your application. There are other (free) choices as well, such as uCOS-II. Some of the less gung-ho PC104 boards come with DOS clones, which can work quite nicely.
Consider which environment you are most familiar programming with. Personally, I have a preference for Linux, assuming I have the hardware and an OS is absolutely required to begin with, but it really depends on what you're doing -- for instance, you may be using some kind of hardware that lacks drivers under Linux, or you may be more comfortable using VB.
Hope that helped -- tAfkaks
--
(Replies: cleanse my address of the Mark of the Beast!)

Teleoperate a roving mobile robot from the web:
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hi Caelwin Currently I'm building a bot something like that. I have a laptop talking to a pic micro controller to control my bot. I went for a laptop for my main controller because I have read that desktop motherboards need +5v and +12v supplies at least and are quite power hungry. A laptop has onboard battery and is all ready mobile.
I am currently updating my web site with info on what I have done so far. Check out www.robsbots.co.uk and have a look at the projects - Relaybot for info on what I'm doing. (Both the robot and the website are a work in progress. I'm updating it most nights at the moment) Rob

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

I am using a VIA M 10000 because of its low power requirements.
However, even still I'm using a 12V 9 amp-hour battery just for the computer/electronics.
I'm using an I/O coprocessor (right now I will probably be using a eZ-80, but I will also use something else).
You might want to look at Phidgets (http://www.phidgets.com /). These are USB devices that can handle robotic I/O. -- D. Jay Newman
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
If you had a laptop of questionable value but still was running windows 2000 or XP you could use PhidgetServo controllers directly from a USB port to control the steering and speed of a standard hobby RC car. Essentially the laptop replaces the Radio Control. The expensive way to do it is use a tablet pc ;-)
Check this link : http://www.marumushi.com/apps/remotedriver2 /
There other options for programming. Probably the easiest is Visual Basic.
Regards
Dan Henne www.Phidgets.com
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Not really. You can buy a USB-based or serial-port based I/O board. I can't name or reccomend one, but I think they're kind of expensive. You can also use the parallel port to drive relays or latches, but this isn't a great idea for controlling complicated sensors.
My recommendation is to use a MCU as an interface. A good one will have lots of I/O lines, and will also be good for timing and PWM operations.

I think most robot builders are software people who don't have lots of hardware skills, nor do they have lots of tools. (I'm in this category.) If this describes you, I reccommend you buy "Building Robot Drive Trains". It explains a lot of the basics for assembling motors, wheels, etc. A few nuggets that I've picked up from it have been invaluable.

I'm sure I/O is much easier on Linux (at least for serial ports), but you need to keep in mind what kind of specialized software you'll want to run. I can't be too specific, but maybe, for instance, you'll want to use stereoscopic vision. This will require drivers for the camera (likely Windows only), image capture software, etc.
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Thu, 17 Jun 2004 14:35:08 GMT, "Caelwin"

You can have easy I/O from the computer via the serial and parallel ports. I would think that win98 would be a good cheap OS to use, and it adds a lot of cheap possibilitys not available in linux (cheap webcams for vision, USB wi-fi for control from any computer/brouser on the internet, etc). The below platform should be sufficiently built to carry a computer and a fair sized lead acid battery for power.
http://www.homier.com/itemdetail.asp?i5984&cD
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: parallel ports. I would think that win98 would be a good cheap : OS to use, and it adds a lot of cheap possibilitys not available : in linux (cheap webcams for vision, USB wi-fi for control from : any computer/brouser on the internet, etc). The below platform
I don't know why you think they aren't, but both of these are available in linux.
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
-- (914) 967-7816

Linux is an excelent operating system. I play with it myself. BUT for a first timer, M$ windows offers familiar surroundings and so its one less thing to learn. Windows may not be perfect but its easier to start with. Once you have found some of the short commings and you know what you want from your OS then you can look around and find what you need. I currently use a serial connection between my bot and a laptop running windows. I use visual basic with mscomm.ocx to control the serial port talking to a pic. I'll have a circuit diagram and a few code examples for the pic and the laptop on my site in a few days. (www.robsbots.co.uk)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sat, 19 Jun 2004 22:42:23 GMT, "Christopher X. Candreva"

Most things are probably available in linux in some way. Unless the builder is a linux guru, he may spend most of his time chasing appropriate drivers and such and figuring out linux instead of working on the robot.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: Most things are probably available in linux in some way. Unless : the builder is a linux guru, he may spend most of his time : chasing appropriate drivers and such and figuring out linux : instead of working on the robot.
I'm not going to get into an arguement, but this is just not true.
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Si Ballenger wrote:

Linux has all of this.

I like the platform, though. -- D. Jay Newman http://enerd.ws/robin /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Among the many other advantages of Linux, it also means being able to boot off of a cheap small CF (or USB) "disk". That's not a possibility with Win98, is it?
--kyler
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Mon, 21 Jun 2004 02:10:08 GMT, Kyler Laird

I'm not sure that is really important when you can get a 60GB hard drive at Staples thru July1 for only $50 (no rebate). Maybe you could post up a site with the easy and simple linux setup for use with robotics. Which version of linux is setup and ready to use with easy access to the computer hardware, USB support, drivers for cheap USB cams, etc.? Which one of the versions at the below site is the *best* for use with robotics? ;-)
http://www.distrowatch.com /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Si Ballenger wrote:

Conventional hard drives use a lot of power and are fairly fragile when in use (although when the heads are parked they can take some significant knocks and be unharmed). 2.5inch laptop harddrives use less power, but are still vulnerable to shocks like their larger counterparts.
Compact flash and other solidstate memory is pretty robust and requires less power to run.
Matt
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Si Ballenger wrote: [trimmed]

I think the point of using CF drives is to reduce drive size and power usage. CF drives will also be a great deal more resistant to being knocked about than mechanical drives.
Linux has substantial advantages over win98 -- chief among these is robustness (which may not be an issue in many hobbyist applications). Linux also can be configured to use a MUCH smaller memory footprint than win98 or its stabler cousins win2000 and XP (despite the fact that the kernel has experienced a bit of bloat in recent years). You can run Linux comfortably on slower hardware using less memory, which translates into reduced size, cost and power requirements.
The major drawback of linux remains device support -- but this is much less of a problem than in years past. Most problems occur with newer devices, where Linux support may be non-existent or immature. On the other hand, almost all manufacturers will generally issue working Win32 drivers by default with the hardware.
Usually, this shouldn't pose much of a problem -- it's trivial to check the web (use your old friend Google) and verify Linux support for a particular device prior to purchase. If you'd like to do a test drive on a device that supports a cdrom, just get the latest version of KNOPPIX.
As far as robotics goes, I generally use gentoo (but do so on a remote machine), which is not really the best choice for newbies. If I actually need an OS on the robot, I'll use a small-embedded DOS clone or uCOS-II.
There are literally zillions of linux distributions suitable for robotics -- what you pick depends on your needs. You can get distributions ranging in size from a single floppy up to multiple CD volumes. The larger distributions are generally easier to use, and probably better suited if you're new.
The only real advantage of Win32 over Linux is probably VB support -- and there are LOT's of VB programmers out there -- other than that, personally I'd go with Linux (again, only if I HAD to have a full-blown OS on the robot).
If you have the hardware, you can always try BOTH -- then just go with what you find to be the most comfortable.
--
(Replies: cleanse my address of the Mark of the Beast!)

Teleoperate a roving mobile robot from the web:
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
The Artist Formerly Known as Kap'n Salty wrote: <snip>

I seem to recall that there is a VB language compatible BASIC thing available for linux that uses GTK etc for forms.
The good thing about VB is, it offers *very* simple access to things like webcams, sockets which means you can knock together some simple image processing etc (e.g. the sort of things that the CMUCam does) very quickly and easily. Not sure how easy it is to use webcams under linux these days with C or some scripting language perhaps. I know sockets and writing to and from the serial/parallel ports is pretty simple as I did a load of that recently, but no "multimedia".
I intend to go with Linux eventually - I need to perfect the software techniques in windows initially though :-(
Matt
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: quickly and easily. Not sure how easy it is to use webcams under linux : these days with C or some scripting language perhaps. I know sockets
Conceptually it would be something like: system "getpic -format jpeg -size 640x180 filename.jpg"
ie -- there will be a program that gets an image from the cam and puts it in a file. Then you manipulate the file.
If you wanted to talk to the hardware directly, then you would most likely open /dev/cam0 or whatever the name is and read it directly.
The Unix (and by extension linux) paradigm is to have small single-purpose programs that you can link together to get complex results.
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
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.