Arduino Floor Sweeping Bot

I'm working on making my first real Arduino bot. I've made a kit and I've made a crappy bot out of plastic and glue. Now that I have some of the basics figured out, I'm looking at trying to essentially create my own Roomba. It's not going to be as advanced, sure, but what I would really really like, is for it to simply work.

A little back story into this:

I am currently taking a robotics class at my college which is using VEX. Unfortunately, we can not work on these robots at home and have limited school lab hours to do this. It also appears that VEX supports very little. (Could be wrong, but my impression is that it's not very good.) Anyways, I ordered the starter kit after the first day of the robotics class (around Sept 1st ish) and have since been accumulating random parts and working on little experiments.

Now I am a poor college student. And even more poor now that I've bot a crap ton of Arduino stuff. I am using random / recycled parts from various items. I have some plastic sheeting that was being thrown out by a factory and some fans that were taken off of some old school PC's. I also have a variety of ultrasonic range finders, a couple of UNO's, and various other sensors. I've also disassembled a broken sweeper for learning purposes and have kept an assortment of oddly shaped plastic. I also have the brush that it used.

The current design:

I was using some of the roomba disassembly videos I've found online to see how iRobot did it and have decided to try the two wheel thing.

The Question:
Does anyone see anything that I need to consider here or have any advice before I dive in head first? I haven't decided what the power source should be, although I have tested using two chained 9 volt batteries on the fan to see that it does in fact pick up dirt.

Goals:
First Goal: My first goal is simply building the robot. The whole thing is going to be about a 12" in diameter and about 5 to 6" high. The motor shield might make it a little bit higher, but that's irrelevant at this point. I'll be using my fun new collection of tools including a Dremel Moto-Saw, Soldering Gear, etc. (My roommate probably hates the fact the kitchen table of our apartment is covered in electronics and tools, and I'm pretty sure if someone came into my apartment they would be suspicious of what I was doing. IE Wires everywhere, saws, circuitry)

Second Goal: Get the robot to path find its way around a room and hit every portion of the floor.

Third Goal (Long way off): Detect a low battery. When the battery is low, return to an area. And eventually a docking station where it can recharge.

good luck with your project.
Some advice/remarks

  1. Detect a low battery. is easy (voltage divider and analog pin) and should not be moved to the end. You do not want to kill your batteries by running to long.
  2. I don't know which motorshield you have but the adafruit motorshield uses plenty of energy even when not used. I don't know about the other motorshields. You don't want to kill your batteries while waiting for the recharger.
  3. For the sweep motor I would use a mosfet/transistor/relays as you only want to turn it on and of.
  4. think of your robot as 2 distinct things. A car and a sweeper. Keep that distinction in your code as well.
  5. be ready for failure.

Best regards
Jantje

I'm used to failure at this point. Which is why i'm designing the robot before I just start cutting. Hoping to have a better hit percentage. Thanks for your input, though. If I were to purchase a non-plug on top(don't know the phrase) motor shield, could I just use a transistor and turn the motor shield off when it's not needed?

teynon:
If I were to purchase a non-plug on top(don't know the phrase) motor shield, could I just use a transistor and turn the motor shield off when it's not needed?

I'm not the person to ask. But I asked this question on the adafruit forum for the adafruit shield and the answer was yes.
This does not guarantee any results for other shields.
Best regards
Jantje