Difference between revisions of "Reverse Engineering"

From EG1004 Lab Manual
Jump to: navigation, search
Line 17: Line 17:
<p>Reverse engineering is taking apart
<p>Reverse engineering is taking apart
an object to see how it works in order to improve or reproduce it. The
an object to see how it works in order to improve or reproduce it. The
practice, taken from older industries, is now used frequently in computer
practice, taken from traditional industries, is now used frequently in computer
hardware and software development.</p>
hardware and software development as well.</p>


<p>Automobile manufacturers often
<p>Automobile manufacturers often
Line 29: Line 29:
part can be recreated by reverse engineering it this way.</p>
part can be recreated by reverse engineering it this way.</p>


<p>Reverse engineering software
<p>Reverse engineering software involves reversing a program's machine code to
involves reversing a program's machine code to obtain the original source code.
obtain the original source code or determine the file structures the program uses.
This needs to be done when source code is lost. For example, when an older
This needs to be done when source code is lost or is not available. For example,
company is taken over by new ownership, or when an unfin­ished project is reassigned
when a project is reactivated after being dormant for years to add new features to
to a different team. Sometimes, this process is also under­taken as a way 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 under­taken as a way to
improve the performance of a program, to fix a bug, or to find a virus. When
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
the source code is obtained in this way for any of these reasons it is legal
Line 66: Line 70:
characteristics known as gear ratio and gear velocity. These characteristics
characteristics known as gear ratio and gear velocity. These characteristics
are inversely proportional. Gear ratio equals output over input, while velocity
are inversely proportional. Gear ratio equals output over input, while velocity
ratio equals input over output. To determine input and output values, measure
ratio equals input over output. If multiple gears are being used, the overall gear
the gear’s radius.</p>
ration and delocity 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 bymeasuring each gear's
radius instead.</p>


<p>For example, to compute the gear ratio
<p>For example, to compute the gear ratio of the gear trains above, use these
of the gear trains above, use these formulas:</p>
formulas, where the values are the radii of the gears in the gear train:</p>


<table border=1 cellspacing=0>
<table border=1 cellspacing=0>
Line 198: Line 205:


<p>T = F * D</p>
<p>T = F * D</p>
<p>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.</p>


<p>Your objective as you reverse
<p>Your objective as you reverse
Line 209: Line 224:
<h3>Individual Lab Report</h3>
<h3>Individual Lab Report</h3>


<p>Follow the lab report guidelines laid out in the page called <i>Specifications for
<p>Follow the lab report guidelines laid out in the page called
Writing Your Lab Reports</i> in the <i>Technical Communication</i> section of this manual.
[Specifications for Writing Your Lab Reports] in the <i>Technical Communication</i>
As you write, the following discussion points should be addressed in the appropriate
section of this manual. As you write, the following discussion points should be
section of your lab report:</p>
addressed in the appropriate section of your lab report:</p>


<ul>
<ul>

Revision as of 14:58, 17 May 2006

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, engi­neers 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 under­taken 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 copy­right 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).

Lab reveng 1.jpg

Figure 1: Simple gear train

Compound gear trains use axles to connect the component gears (see Figure 2).

Lab reveng 2.jpg

Figure 2: Compound gear train

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 ration and delocity 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 bymeasuring 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:

Lab reveng 3.gif

Lab reveng 4.gif

Simple gear train

Compound gear train

For example, to compute the velocity ratio of the gear trains above, use these formulas:

Lab reveng 5.gif

Lab reveng 6.gif

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 3: Types of Gears

Lab reveng 7.jpg

Lab reveng 8.jpg

Figure 3a: Rack gear. Its purpose is to change
rotation into linear motion.

Figure 3b: Crown gear. Its purpose is to change
the direction of rotation perpendicularly

Lab reveng 9.jpg

Lab reveng 10.jpg

Figure 3c: Spur gear. Its purpose is to
transmit torque through the gear train.
 

Figure 3d: Worm gear. Its purpose is to change the
direction of rotation perpendicularly
 

Lab reveng 11.jpg

Lab reveng 12.jpg

Figure 3e: Idler gear. Its purpose is to
transfer force while not affecting the gear or velocity ratios.
 

Figure 3f: Pulley gear. Its purpose is to transmit
rotation from one point to one or more other points.
 

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:

  • What is the robot’s function?
  • Describe how the components fit together and how the device was constructed.
  • Describe how you calculated the gear and velocity ratios, and discuss their importance in the overall robot design.
  • Is the design adequate for its function?
  • Suggest design improvements.

Team PowerPoint Presentation

Follow the presentation guidelines laid out in the page called EG1004 Lab Presentation Format in the Introduction to Technical Presentations section of this manual. When you are preparing your presentation, consider the following points:

  • How did Reverse Engineering aid in your conclusion of the functionality of your robot?
  • What improvements would you recommend to improve the robot's function?

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. You should keep a laboratory notebook for this purpose. Use your lab notes to write the Procedure section of your lab report. You must hand in a copy of your lab notes to the WC. Keeping careful notes is an essential component of all scientific practice.

5 PROCEDURE

  1. 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?
  2. Sketch the front, top, and most detailed side of the robot. Be sure to include dimensions in your sketch.
  3. Also sketch the most detailed view of the gear train.
  4. Before disassembling your robot, ask your TA to take a picture of it.
  5. Disassemble the robot. Analyze its inner workings and sketch the gear train(s). Note: All sketches in EG must be done in pencil.
  6. Label major components and describe their functions.
  7. Compute the velocity and gear ratios.
  8. 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


Return to Table of Contents