Robot Platform using a Netbook

Hi All,
I am fairly new to this, at least the buying hardware part... I've worked with robots before and computer vision during college. I am planning to buy my own stuff now. My goal is to have a robot with a mounted netbook, the netbook will be running the camera and processing computer vision algorithms, while microcontroller will wait for instructions to control the wheels (might need it to control sensors and send back feedback to netbook). After some research, it looks like the Lynxmotion 4WD1 v2 is the best option (Products - Lynxmotion).

I am considering the no electronics kit (plus the 12v batteries + charger). I am just a bit confused about the part connecting the laptop to the motors. I couldn't find a usb dc motor controller that might conform with the needs of the motors (i think), so I am left with two options:

  1. Buy the rest of the things from Lynxmotion (Bot Board II + BASIC Atom Pro 28 + Sabertooth 2X10 R/C Regenerative Dual Channel Motor Controller)
  2. Buy Arduino Uno + Usb interface (still confused here) but I will still need the Sabertooth between Arduino hardware and motors?

I think Arduino is my better option since it is open source and scalable from what I've seen. Can someone confirm all of the above and clarify my second option? I also appreciate any suggestions you guys have!

Yes, on the second option you still need a motor driver between the Arduino and the motors (no getting around that!)...

I agree, your 2nd option is good, although either will do the job. You really do want a
microcontroller to directly command the robot sensors and motors, rather than doing
it with the netbook, as you need a sense-motor loop with low latency for best control.
Also, it's much easier to hook up sensors to a microcontroller than netbook.

You will want to add some other sensors, like bumpers, sonars, Sharp GP2D12/etc IR
rangers. You probably need something lower than vision for direct sensing, as vision will
take a lot of work to implement. AFAICT, the computer vision problem really is not as well
solved as the advocates proclaim.

With the Arduino, there are several motor controller shields that will mount right on
the Arduino board, so you'll have a nice compact board arrangement. I think
pololu.com has a couple that will handle larger motor currents. I imagine with the
Lynx 4WD base you can run both motors on each side from a single h-bridge, but you
might check on that with the Lynxmotion people.

Lastly, another possibility to think about is adding RF comms to the robot, such as using
XBee. This way you can command the robot from your homebase PC and get status info
back while the robot is wandering. Eg, on top the Arduino motor shield, you can mount
an XBee shield.

One last thing, pay attention to how many I/O pins the various motor shields require. Some
of them eat up almost half the I/O lines on a regular Arduino 328 board.

oric_dan(333):
Lastly, another possibility to think about is adding RF comms to the robot, such as using
XBee. This way you can command the robot from your homebase PC and get status info
back while the robot is wandering. Eg, on top the Arduino motor shield, you can mount
an XBee shield.

No need for XBee - likely the netbook already has 802.11n/g on it (WiFi ethernet); instead, set up a webserver or something on the netbook that communicates with the Arduino, then use a browser on -any- remote PC (or phone) with WiFi to hit the server (you may want some basic security controls in place - WPA, MAC/IP address filtering, and such).

Thank you all for your replies. I have read this morning that the Sabertooth can be connected directly to a PC through serial (usb to serial, no need for max232 to level the voltages). I will try to get those first working with a laptop, just to get the hang of it, and then work my way from there to add arduino microcontroller and IR sensors.

My master's thesis was about autonomous navigation using a single camera. For this, am planning to add 2 camera's and use them as stereo. anyway plans for the future, i will be happy now to get everything working from a netbook (that will cover wifi and cam connections).

what do you suggest as arduino kits? to interface with sabertooth, pc (usb preferred, serial is ok too) and the rest of arduino sensors? is there anything i should keep my eye on when choosing boards?

No need for XBee - likely the netbook already has 802.11n/g on it (WiFi ethernet); instead, set up a webserver or something on the netbook that communicates with the Arduino, then use a browser on -any- remote PC (or phone) with WiFi to hit the server (you may want some basic security controls in place - WPA, MAC/IP address filtering, and such).

Doh, what was I thinking? LOL.

The only real thing to worry about with wifi is the available coverage and usable range. Inside the
house is probably ok. When I read Lynxmotion 4WD platform I immediately started "daydreaming" of
operating my own 4WD out in the field with the robot running free, driving over rocks, and reading
GPS! LOL.

Right now, I'm working on a small ServoTank for inside operation, but have a couple of RC platforms
that hopefully I'll convert to robotics this summer. One will be large enough to carry a netbook,
but I am not counting on very good range for video transmission via wifi.

An XBee Pro should have much larger direct-line control range, I think, so I plan to do that first, and
maybe experiment with wifi secondarily.

#1 priority is .... have the robot constantly check for a 'heartbeat' signal from the homebase PC, and
if this is lost, then either stop, or else backup over its previous path until it picks up the signal again.
Think - redundant systems and no runaways.

If it is a windows based netbook, you could put an apache server on it and connect a USB arduino to get a fairly interesting setup going (add skype and have the bot talk with people). There are some fairly high powered wireless routers available to suppliment the netbook built in wifi if needed (they also allow for use of high gain antennas).

If it is a windows based netbook, you could put an apache server on it and connect a USB arduino

Why is Windows required? Apache works fine on my Ubuntu based Aspire One.

can't I connect to arduino through USB and use a small C program on the netbook to communicate with arduino through the usb connection? also program arduino to feedback the sensor measurements back to the PC? if yes, which parts do you guys suggest? is arduino uno enough by itself?

michom:
can't I connect to arduino through USB and use a small C program on the netbook to communicate with arduino through the usb connection? also program arduino to feedback the sensor measurements back to the PC? if yes, which parts do you guys suggest? is arduino uno enough by itself?

Yes, you can do this; just realise that you can't do video thru the Arduino (you'll have to use a separate USB webcam or something for that).

Why is Windows required? Apache works fine on my Ubuntu based Aspire One.

You can usen what ever works for you. In the past I've found the video capture drivers and the selection of useful applications was severly limited for the linux based OS.

michom:
can't I connect to arduino through USB and use a small C program on the netbook to communicate with arduino through the usb connection? also program arduino to feedback the sensor measurements back to the PC? if yes, which parts do you guys suggest? is arduino uno enough by itself?

Might be helpful to specify what OS is on the netbook and what I/O ports the netbook has. A google search for netbook robot should produce a number of similar projects.

can't I connect to arduino through USB and use a small C program on the netbook to communicate with arduino through the usb connection? also program arduino to feedback the sensor measurements back to the PC? if yes, which parts do you guys suggest? is arduino uno enough by itself?

Netbook <--> Arduino via USB will work fine, and the Arduino should have plenty of I/O to run the
robot. I don't know about "C" on the netbook however.

If a Linux netbook, then C sounds right, but for a Windows netbook, you'll probably need to go
with C++ or C# or Basic, all of which are available in free .NET Express versions from Microsoft.
Both C# And Basic have a serial port object, and I would imagine so does C++.

If your netbook has standard windows, with a web cam, arduino, servos, and a 100 ohm resistor, you should be able to duplicate the web control setup like below (cam has a bad wire). If you need info back from the arduino, you would need to make a simple cgi application to communicate with the arduino over the netbook serial port (I've got some simple freebasic code that compiles into a small console exe application).

http://web.comporium.net/~shb/wc2000-PT-script.htm

but for a Windows netbook, you'll probably need to go
with C++ or C# or Basic, all of which are available in free .NET Express versions from Microsoft.

I believe that there are a number of C/C++ compilers available for Windows that don't suffer from the curse of .net, and are free.

You can use Java and the rxtx library to interface with serial if you're worried about platform dependent languages.