Reverse Engineering
EG1004 Lab 4: Reverse Engineering
1 OBJECTIVES
The experimental objective of this lab is to use the principles of reverse engineering to discover a robot’s function. To do this, you will take apart a robot, measure its gear and velocity ratios, and describe its gear trains.
We will learn the importance of reverse engineering and develop the ability to take a mechanism apart, analyze its parts, and then describe how they work.
2 OVERVIEW
Adapted from http://www.whatis.com.1
Reverse engineering is taking apart an object to see how it works in order to improve or reproduce it. The practice, taken from traditional industries, is now used frequently in computer hardware and software development as well.
Automobile manufacturers often reverse engineer competitor's vehicles. They buy them, disassemble them, and examine the components and manufacturing elements of the vehicles in order to improve their own products. Sometimes, engineers will reverse engineer a part by producing a 3D image of the manufactured part when a blueprint isn't available. The part is measured, and a 3D wireframe image is generated and dimensioned. This image serves as a blueprint for manufacturing. Almost any part can be recreated by reverse engineering it this way.
Reverse engineering software involves reversing a program's machine code to obtain the original source code or determine the file structures the program uses. This needs to be done when source code is lost or is not available. For example, when a project is reactivated after being dormant for years to add new features to a product, the original design documentation may have disappeared. Also, when companies are writing a program that must interface to a second company's software, the second company may not have any incentive to cooperate by describing how the data in the files they use are organized, forcing the first company to deduce it on their own. Sometimes, this process is also undertaken as a way to improve the performance of a program, to fix a bug, or to find a virus. When the source code is obtained in this way for any of these reasons it is legal and necessary. Reverse engineering software in order to copy it constitutes a copyright violation and is illegal.
Hardware reverse engineering involves taking apart a device to see how it works. If a processor manufacturer wants to see how a competitor's processor works, the company can purchase the processor, disassemble it, and then make a new processor similar to it. In some countries, this process is illegal. Hardware reverse engineering is quite expensive and requires an expert in the field.
When you begin the process of reverse engineering your robot, identifying the gear trains and the individual gears used in the original design is critical to your understanding of the robot's operation.
There are two types of gear trains: simple and compound. A simple gear train has its gears arranged in a line (see Figure 1).
Compound gear trains use axles to connect the component gears (see Figure 2).
Gear trains have measurable characteristics known as gear ratio and gear velocity. These characteristics are inversely proportional. Gear ratio equals output over input, while velocity ratio equals input over output. If multiple gears are being used, the overall gear ratio and velocity ratio is the product of these ratios for each individual gear. To determine input and output values, engineers would count the number of teeth on each gear. However, we can get an acceptably accurate value by measuring each gear's radius instead.
For example, to compute the gear ratio of the gear trains above, use these formulas, where the values are the radii of the gears in the gear train:
Simple gear train |
Compound gear train |
For example, to compute the velocity ratio of the gear trains above, use these formulas:
Simple gear train |
Compound gear train |
It is important to note that the input is the source of rotation in a system, like a motor, and the output is the final gear of rotation in a system, like a wheel.
Figure 3a: Rack gear. Its purpose is to change |
Figure 3b: Crown gear. Its purpose is to change |
Figure 3c: Spur gear. Its purpose is to |
Figure 3d: Worm gear. Its purpose is to change the |
Figure 3e: Idler gear. Its purpose is to |
Figure 3f: Pulley gear. Its purpose is to transmit |
Figures 3a-d courtesy of www.howthingswork.com
Figure 3f courtesy of Honda Motor Company, Inc.
Gears are used in product design to increase or decrease speed and torque. Torque is a turning force. Gear trains are designed to transmit a turning force, or torque, from one point to another. The force, F, produced by any mass is equal to the product of mass, m, and acceleration, a:
F = m *a
The torque produced by that force is equal to the product of force, F, and distance, D, from the rotational axis:
T = F * D
Therefore, a high gear ratio will generally produce high torque, allowing us to move heavy objects. For example, a bulldozer has a high gear ratio. A low gear ratio will produce low torque but high speed. For example, in a car with a manual gear shift, first gear has a high gear ratio, and the top gear has a low gear ratio. This allows the car to accelerate quickly at low speeds, and to cruise comfortably at high speeds without stressing the engine. Automatic transmissions do the same thing, switching gears automatically.
Your objective as you reverse engineer your robot is to understand how it works and to calculate the gear and velocity ratios for its gear trains. Remember, engineers reverse engineer products to reproduce or improve them. As you disassemble your device, consider how you would improve your robot's design.
3 YOUR ASSIGNMENT
Individual Lab Report
Follow the lab report guidelines laid out in the page called Specifications for Writing Your Lab Reports in the Technical Communication section of this manual. As you write, the following discussion points should be addressed in the appropriate section of your lab report:
- Explain why reverse engineering is important
- What is the robot’s function?
- Describe the different types of gears and gear trains
- Describe how the components fit together and how the device was constructed.
- Describe and show how you calculated the gear and velocity ratios, and discuss their importance in the overall robot design as well.
- Is the design adequate for its function?
- Suggest design improvements.
4 MATERIALS AND EQUIPMENT
- Previously Built Robot
- Graph Paper
- Ruler
Remember: You are required to take notes. Experimental details are easily forgotten unless written down. EG Standard Note Paper can be downloaded and printed from the EG website the EG1004 Web site. Use your lab notes to write the Procedure section of your lab report. At the end of each lab your TA will scan your lab notes and upload them to the EG1004 course section on MyPoly. You must attach your lab notes at the end of your lab report (use the "Insert Object" command in MS Word after your Conclusion). Keeping careful notes is an essential component of all scientific practice.
5 PROCEDURE
- Visually assess the robot's design. Consider how it works. What function could the robot be used for, based on your observations? Would it be good for applying power, like a bulldozer, or would it be good as a racer?
- Sketch the front, top, and most detailed side of the robot. Be sure to include dimensions in your sketch.
- Also sketch the most detailed view of the gear train.
- Before disassembling your robot, ask your TA to take a picture of it.
- Disassemble the robot. Analyze its inner workings and sketch the gear train(s). Note: All sketches in EG1004 must be done in pencil.
- Label major components and describe their functions.
- Compute the velocity and gear ratios.
- Have all sketches and original data signed by your TA.
Your lab work is now complete. Please clean up your workstation. Return all unused materials to your TA. Refer to Section 3 "Your Assignment" for the instructions you need to prepare your lab report.
Footnotes
1 What Is website. TechTarget Network. Retrieved July 29th, 2003. http://whatis.techtarget.com/definition/0,sid9_gci507015,00.html