Wednesday, November 17, 2010

GPS, Servo Motors/Stepper Motors, and Pan/Tilt Head?

Today, I was compiling my sections for the rough draft for the System Design Report (answers how we are creating the design of our project). Needless to say, I ran into some interesting potential hardware and questions along the way.

My three questions which I will answer in detail below are the following:

  1. Should we really use a servo motor or a stepper motor?
  2. How do you operate a servo motor?
  3. What servos are you looking into? 
  4. What GPS module should we use? 
  5. How are we moving the camera on top of the robot? 
Servo Motor vs. Stepper Motor
I am sure most of you are wondering what the difference between the two? Lucily, I found a great resource discussing the differences between the two (http://www.woodweb.com/knowledge_base/Servo_vs_stepper_motors.html). According to the WoodWeb forum, they stated the following: 

A stepper motor is wound in such a way that the rotation has a certain number of discrete "steps". I only know of stepper motors being DC motors. These steps are where the magnetic fields cause the motor to want to settle in one of these positions. The number of steps per revolution is rather high, around two hundred or so, and varies by model and manufacturer. What this means is that the motor has effectively a resolution (smallest controlled movement) equal to the number of steps for that motor. Everything seems to have exceptions, and that applies to steppers also - there are some called micro step, with a higher resolution, but I don’t know much about them. Stepper motors may or may not have position feedback.

A servo motor can be either DC or AC, and is usually comprised of the drive section and the resolver/encoder. A servo motor is much smoother in motion than a comparable stepper, and will have a much higher resolution for position control. The servo family is further divided into AC and DC types. An AC servo had the advantage of being able to handle much higher current surges than a DC, as the DC has brushes, which are the limiting factor in this case. Therefore, for our practical considerations, you can get a lot stronger AC servo motor than you could in DC or stepper configuration. Steppers, on the other hand, have economy as an advantage, and can be incorporated into a design to produce very smooth motion also. The trend for manufacturers of “serious” CNC machinery is to use AC servos. “Entry level” machines may have DC servos, or even steppers.

A resolver/encoder is a glass disc with very fine lines on it and an optical encoder that counts those lines as it rotates with the motor. This information is couple to the controller which tracks the counts, the rate that they go by, and through a host of feedback loops, logic, and controlling the amplifiers, produces the desired motion.

Stepper systems are often “open loop” which means that the controller only tells the motors how many steps to move and how fast to move, but does not have any way of knowing where they actually are. This can lead to errors, should a situation arise where the motors are unable to comply with the commanded move. This can be very obvious, where the motion stops and it sounds like you stripped a gear, or subtle, where the motor only misses a “few” steps. The result is the same - the controller thinks you are at X25.5, Y15.5 and in reality you might be at X25.3, Y15.4 . This can lead to a cumulative error, which may in turn lead to crashes, not to mention out of spec parts.
With all of that said, I have come to the conclusion that since we are moving the robot with tracks. One of the left and right; hence, we can tell the servo motors long to move via the controller direction indicated and speed desired. 

Operating a Servo Motor
For those interested in how servos work look at the following site -- http://www.servocity.com/html/how_do_servos_work_.html

The purpose of this information is to give an overview of how servos operate and how to communicate with them. Though we have taken steps to assure the quality of information here, ServoCity makes no guarantees about the information presented. ServoCity cannot be held liable or accountable for any use or misuse of the provided information.

     Servos are controlled by sending them a pulse of variable width. The control wire is used to send this pulse. 
The parameters for this pulse are that it has a minimum pulse, a maximum pulse, and a repetition rate. Given 
the rotation constraints of the servo, neutral is defined to be the position where the servo has exactly the same 
amount of potential rotation in the clockwise direction as it does in the counter clockwise direction. It is important
to note that different servos will have different constraints on their rotation but they all have a neutral position, 
and that position is always around 1.5 milliseconds (ms).
     The angle is determined by the duration of a pulse that is applied to the control wire. This is called Pulse width 
Modulation. The servo expects to see a pulse every 20 ms. The length of the pulse will determine how far the
motor turns. For example, a 1.5 ms pulse will make the motor turn to the 90 degree position (neutral position).

     When these servos are commanded to move they will move to the position and hold that position. If an external
force pushes against the servo while the servo is holding a position, the servo will resist from moving out of that
position. The maximum amount of force the servo can exert is the torque rating of the servo. Servos will not hold 
their position forever though; the position pulse must be repeated to instruct the servo to stay in position.

    
 When a pulse is sent to a servo that is less than 1.5 ms the servo rotates to a position and holds its output 
shaft some number of degrees counterclockwise from the neutral point. When the pulse is wider than 1.5 ms the
opposite occurs. The minimal width and the maximum width of pulse that will command the servo to turn to a valid
position are functions of each servo. Different brands, and even different servos of the same brand, will have 
different maximum and minimums. Generally the minimum pulse will be about 1 ms wide and the maximum pulse
will be 2 ms wide.


     Another parameter that varies from servo to servo is the turn rate. This is the time it takes from the servo to 
change from one position to another. The worst case turning time is when the servo is holding at the minimum
rotation and it is commanded to go to maximum rotation. This can take several seconds on very high torque servos.

Servo Motors
One of the servos I am looking at is a GWS Servo Motor from RobotShop.com (GWS SERVO). It is $50.00/motor, however I think this is a reasonable price for a stronger and faster motor. 
The specifications I am particularly interested are the speed and torque. We need a motor that can move our (my best-guess estimate) 80 lbs / 36 kg car. This motor can easily move that weight per centemeter. Also, it takes 0.12 seconds per 60 degrees of rotation. Which seems like a decent speed for our robot. 

• Speed (sec/60deg): 0.12
• Torque (Kg-cm/Oz-in): 42/582
• Size (mm): 65x32x70.4
• Weight (g/oz): 190/6.70


GPS
Well, first before I dive into GPS-- one may ask why we are using GPS? The main point to understand is that we are tracking hazards in an area from a remote distance. It is beneficial for the user to know where the location of the hazard detected. Plus, it adds many potential future applications in the design such as a Google Map tacking, analytics taken on the data retrieved from the sensors (via a graphical analysis), among many others. 

Now that is out of the way, what GPS modules are we looking into? And what accuracy is acceptable? The current module we have been considering is the Copernicus DIP Module from SparkFun.com (Copernicus Dip Link Here). As one can see (pictures below), we need to attach an antenna to the module, but I'll hit that topic later. 






The Specs are as follows: 
  • Electrical Specifications: 
    • Prime Power: +2.7VDC to 3.3 VDC
    • Power Consumption: 
      • 30.7 mA (82.9 mW) @ 2.7 V
      • 31.3 mA (93.9 mW) @ 3.0 V
  • Performance:
    • L1 (1575.42 MHz) frequency, C/A code, 12-channel, continuous tracking receiver
  • Accuracy
    • Horizontal: <3 meter (50%), <8 meters (90%)
    • Velocity: 0.06 m/sec
  • Sensitivity
    • Tracking: -152 dBm
    • Acquisition: -142 dBm
  • Operational
    • Speed Limit: 515 m/s
  • Interface Characteristics: 
    • Connectors:28 surface mount edge castellations
    • Serial Port: 2 Serial Ports (transmit/receive)
    • PPS: 3.0 V CMOS-compatable TTL-level puls
    • Protocols: Supports TSIP (Trimble Standard Interface Protocol), TAIP (Trimble ASCII Interface Protocol), and NMEA (National Marine Electronics Association) 0183 v3.0 Bi-directional NMEA Messages

Camera Movement
To move the camera we need have 3 degrees degrees of freedom. In other words, we need to be able to control the x, y, and z axis positions. A method of accomplishing this task is to add 2 motors that control gears that move a base under the camera. You may have seen this done when your family set up the video camera to record family moments. We are doing the same thing just on top of a robot with a device called a pan and tilt head. 

Lynxmotion.com has a pan and tilt head that seems to fit our design goals. The link can be found here: http://www.lynxmotion.com/p-287-lynx-b-pan-and-tilt-kit-black-anodized.aspx . 
The base is only $35.93 and I think it will look decent on top of our robot. 

No comments:

Post a Comment