Difference between revisions of "Reverse Engineering"

From EG1004 Lab Manual
Jump to: navigation, search
(1003 --> 1004)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
<h1 align=center>EG1004 Lab 4: Reverse Engineering</h1>
{{Outdated||date=July 2009}}


<h2>1 OBJECTIVES</h2>
<h2>1 OBJECTIVES</h2>


<p>The experimental objective of this lab is to use the principles of reverse
<p>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
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.</p>
robot, measure its gear and velocity ratios, and describe its gear trains.</p>


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>
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.</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 122: Line 129:
<p class=caption>Figure 3: Types of Gears</p>
<p class=caption>Figure 3: Types of Gears</p>


<table border=1 cellspacing=0>
<table align=center border=1 cellspacing=0>
<tr>
<tr>
<td>
<td>
Line 135: Line 142:
<td>
<td>
<p><b>Figure 3a: Rack gear.</b> Its purpose is to change<br>
<p><b>Figure 3a: Rack gear.</b> Its purpose is to change<br>
rotation perpendicularly into linear motion.</p>
rotation into linear motion.</p>
</td>
</td>
<td>
<td>
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>
<li>What is the robot’s function?</li>
<li>Explain why reverse engineering is important</li>
 
<li>What is the robot's function?</li>
 
<li>Describe the different types of gears and gear trains</li>


<li>Describe how the components fit together and how the device was constructed.</li>
<li>Describe how the components fit together and how the device was constructed.</li>


<li>Describe how you calculated the gear and velocity ratios, and discuss their importance
<li>Describe and show how you calculated the gear and velocity ratios, and discuss their importance
in the overall robot design.</li>
in the overall robot design as well.</li>


<li>Is the design adequate for its function?</li>
<li>Is the design adequate for its function?</li>


<li>Suggest design improvements.</li>
<li>Suggest design improvements.</li>
</ul>
</ul>


<h3>Team PowerPoint Presentation</h3>
<!-- <h3>Team PowerPoint Presentation</h3>


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


<ul>
<ul>
<li>How did Reverse Engineering aid in your conclusion of the functionality of your robot?</li>
<li>What is the robot good for? Is it a racer, or something that would be strong and
good at pushing things, like a bulldozer?</li>
 
<li>What aspects of Reverse Engineering did you use to decide this?</li>
 
<li>What improvements would you recommend to improve the robot's function?</li>
<li>What improvements would you recommend to improve the robot's function?</li>
</ul>
</ul> -->


<h2>4 MATERIALS AND EQUIPMENT</h2>
<h2>4 MATERIALS AND EQUIPMENT</h2>
Line 246: Line 270:
</ul>
</ul>


<p>Remember: You are required to take notes. Experimental details are easily
<p><i><b>Remember:</b> You are required to take notes. Experimental details are
forgotten unless written down. You should keep a laboratory notebook for this
easily forgotten unless written down. EG Standard Note Paper can be downloaded
purpose. Use your lab notes to write the Procedure section of your lab report.
and printed from the [http://eg.poly.edu/downloads/Note_paper.zip EG Website].
You must hand in a copy of your lab notes to the WC. Keeping
Use your lab notes to write the Procedure section of your lab report. At the end of
careful notes is an essential component of all scientific practice.</p>
each lab your TA will scan your lab notes and upload them to the [http://eg.poly.edu/documents.php Lab Documents] section of the EG Website. 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.</i></p>


<h2>5 PROCEDURE</h2>
<h2>5 PROCEDURE</h2>
Line 267: Line 293:


<li>Disassemble the robot. Analyze its inner workings and sketch the gear train(s).
<li>Disassemble the robot. Analyze its inner workings and sketch the gear train(s).
Note: All sketches in EG must be done in pencil.</li>
Note: All sketches in EG1004 must be done in pencil.</li>


<li>Label major components and describe their functions.</li>
<li>Label major components and describe their functions.</li>
Line 286: Line 312:


[[Main_Page | Return to Table of Contents]]
[[Main_Page | Return to Table of Contents]]
{{Outdated||date=July 2009}}

Latest revision as of 03:35, 18 August 2022

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 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:

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:

  • 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. 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 Lab Documents section of the EG Website. 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

  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 EG1004 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