Creating a Mobile Robot from scratch, using an arduino

Quick background : I am a mechatronics engineering student on my first co-op at a great company. They have pretty much told me to make a mobile robot(controlled by a wireless controller) that will carry an arduino based sensor module(that I made) as my first project. My boss wants it to be all me, and only wants me to give him part numbers so he can order them for me. Therefore, for this project, money is not a constraint. Keep in mind this is simply an R&D project/prototype.

I have lots of questions, as I have never actually made a robot from the bottom up before, nor do I have much knowledge on motor dynamics/motor control. Before anything, here is a list of parts that I have so far.

Microcontroller: Arduino Mega 2560 R3 - to control drive base Arduino protoshield(not buying, have one lying around) - for prototyping, general cleanliness

Wireless Joystick Controller: Arduino Wireless Shield - to connect Xbee transeiver to arduino Xbee-Pro XSC S3B(wire) - to be used in wireless controller Xbee-Pro XSC S3B(wire) - to be used on arduino board Wireless Controller(arduino compatible) - to be used with Xbee pro http://www.robotshop.com/ca/en/wireless-gamepad-arduino-v2.html

Hardware: Vex 2-Wire 393 DC Gear Motor w/Motor Controller 29(continous rotation servos, no hbridge required) - motors for drive base http://www.robotshop.com/ca/en/vex-2-wire-393-dc-gear-motor-motor-controller-29.html

Vex 12" Square shafts - shafts for VEX motors Vex Shaft Collars - collars for VEX shafts Vex Wheel Kit -assorted size wheels Vex Delrin Bearings - to mount motors

First question: Do i need a motor shield, that I have read so much about? And if I do, why do I need one? Can the motors not be simply controlled by the analog pin? Also if I do need one, which one would I need : https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/overview, or https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino

Second question is about motor batteries: What I understand so far is that it is not good to power the arduino and four robots using simply one Lipo 7.2V battery. THe motors themselves are rated at 7.2V. So do I need a seperate battery for each motor, or one for two or etc? How would I figure this out?

First question: Do i need a motor shield, that I have read so much about? And if I do, why do I need one? Can the motors not be simply controlled by the analog pin? Also if I do need one, which one would I need :

For servos, you don't need a motor shield, you just need to be able to supply enough power to them. So answering your other question,

Second question is about motor batteries: What I understand so far is that it is not good to power the arduino and four robots using simply one Lipo 7.2V battery. THe motors themselves are rated at 7.2V. So do I need a seperate battery for each motor, or one for two or etc? How would I figure this out?

yes you will need two separate batteries, 4AA are enough for the arduino, but since you are going to be using a Xbee, I would use 6AA. The servos can use the 7.2 Li-po, but you also need to regulate that voltage down to about ~5.5 - 6 volts. Current will also be a factor, especially if you put a heavy load on the servos.

BTW, how big or heavy is this going to be, and what materials are you going to use as a frame?

Can the motors not be simply controlled by the analog pin?

The servos are not controlled by analog pins per-say, you will be using the digital pins that emit a special PWM signal. This is done by the Servo library, look into it.

HazardsMind:

Second question is about motor batteries: What I understand so far is that it is not good to power the arduino and four robots using simply one Lipo 7.2V battery. THe motors themselves are rated at 7.2V. So do I need a seperate battery for each motor, or one for two or etc? How would I figure this out?

yes you will need two separate batteries, 4AA are enough for the arduino, but since you are going to be using a Xbee, I would use 6AA. The servos can use the 7.2 Li-po, but you also need to regulate that voltage down to about ~5.5 - 6 volts. Current will also be a factor, especially if you put a heavy load on the servos.

BTW, how big or heavy is this going to be, and what materials are you going to use as a frame?

Great! Thanks for the quick response. More questions as a result:
Why the 6AA when including the xbee? Im assuming xbee draws a great amount of current, or causes voltage fluctuations.
Why would I need to regulate the voltage down to about 5.5-6V?
These are the motor specs:
• Specifications:

  • Free Speed:100 rpm (As Shipped)/160 rpm (High Speed Option)
  • Stall Torque:13.5 in-lbs (As Shipped)/8.4 in-lbs (High Speed Option)
  • Stall Current:3.6A
  • Free Current:0.15A
    • All motor specifications are at 7.2 volts. Actual motor specifications are within 20% of the values above
    • Weight:
  • Motor 0.192 lbs (87.1 grams)
  • 6-32x1/4" Screw0.0014 lbs (0.617 grams)
  • 6-32x1/2" Screw0.00209 lbs (0.948 grams)
  • Motor Coupler0.004 lbs (1.814 grams)
  • Motor Post0.002 lbs (0.907 grams)
  • Actual weight of one item (no packaging)

Motor Controller 29
• Battery In

  • Max battery voltage: 8.5V (with fully charged 7.2V battery)
  • Max motor stall current: 3 A

As for how big/heavy, I have attached a picture of my current sensor module, please take a quick look at it. It is 160 x 160 x90 (mm). It is made of cast aluminum, and is atleast a couple of pounds. I am currently researching lighter enclosures for the new robot. As for the frame, I am considering http://www.vexrobotics.com/chassis-kit.html, the medium or large one( i need to CAD some things to find the right fit, havent gotten around to it yet). What is your opinion on it? The frame ofcourse will also add weight to it.(about 2 pounds)

quick scope: the sensor module will be put on quadcopters and such to get readings. For this current project, I have to incorporate the components of the sensor module with my new robot. Therefore, the final enclosure for this project will hold two arduinos and a multitude of sensors(negligible weight of the sensors tho).

Why the 6AA when including the xbee? Im assuming xbee draws a great amount of current, or causes voltage fluctuations.

Actually standard Xbee modules like the ones in this link HERE use very little power. I only suggested you use 6AA just as a precaution, 4AA will run the arduino, but just to be safe, use 6AA.

Why would I need to regulate the voltage down to about 5.5-6V?

I was under the impression they operated at 5 - 6 volts.

These are the motor specs: • Specifications: - Free Speed:100 rpm (As Shipped)/160 rpm (High Speed Option) - Stall Torque:13.5 in-lbs (As Shipped)/8.4 in-lbs (High Speed Option) - Stall Current:3.6A - Free Current:0.15A

• All motor specifications are at 7.2 volts. Actual motor specifications are within 20% of the values above

I missed this

As for how big/heavy, I have attached a picture of my current sensor module, please take a quick look at it. It is 160 x 160 x90 (mm). It is made of cast aluminum, and is atleast a couple of pounds. I am currently researching lighter enclosures for the new robot. As for the frame, I am considering http://www.vexrobotics.com/chassis-kit.html, the medium or large one( i need to CAD some things to find the right fit, havent gotten around to it yet). What is your opinion on it? The frame ofcourse will also add weight to it.(about 2 pounds)

The frame looks very thin. Also I would go with a frame that is a perfect square, this way your robot can turn better. Or you can configure the wheels to be closer together for a tighter turning radius.

quick scope: the sensor module will be put on quadcopters and such to get readings. For this current project, I have to incorporate the components of the sensor module with my new robot. Therefore, the final enclosure for this project will hold two arduinos and a multitude of sensors(negligible weight of the sensors tho).

Sounds interesting

great! you've given me more than enough information to get started.

one last question, if you dont mind?

is it possible to a connect two servos in parallel? What I mean is that is it possible to control my frontleft wheel and my back left from just one pin? Is this even recommended? The reason I would want to put them in parallel is to make turning easier.

With a Y cable, it is possible yes.

http://www.robotmesh.com/servo-y-extension-cable-300mm-1ft?gclid=CNrT_vzdncECFfLm7AodVVgABQ

Are you going to be doing any soldering?

Probably, but we have experts solderers in our wire shop that do all the soldering

Ok, then instead of getting those y cables, tell them to make a small board that will allow the servos to be plugged into it. You can split the servo signs there.

Will do that, if I decide to go with the parallel motors. Is there any benefit to have parallel motors?

More power and if something happens to one motor(striped gears, broken shaft etc.), the other will allow the robot to still move.

I also like being able to turn 360 degrees in place, so I usually go with tank treads which use differential steering.