Sandbox/ReverseEngineering

From EG1004 Lab Manual
Revision as of 16:20, 20 August 2019 by Azhou (talk | contribs) (This is the Reverse Engineering sections from the Product Evaluation lab.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Reverse Engineering

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 is 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 been lost. Also, when companies are writing a program that must interface with 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 used 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 to copy it constitutes a copy¬right violation and is illegal.[1]

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.[1]

Part 1: Reverse Engineering

Upon receiving the pre-built robot, selected by the TA, analyze the design and performance of the robot by both physical inspection and basic testing (i.e. run the robot at least once to see how it works). Run the robot once on the ramp and once on the flat surface in Section 1. There are 5 basic problems in the pre-built robots. The problems are listed below:

  1. The Center of Gravity of the robot is too high. This will be observed when the robot is tested over the ramp. The high center of gravity does not allow the robot to traverse the hill.
  2. The incorrect Drivetrain is installed. The lack of tires on the rear wheels of the robot cause it to slip when it tries to turn.
  3. The Light Sensor is positioned incorrectly. The Light sensor is more than 2 cm above the ground.
  4. The Gyro Sensor is installed in the incorrect orientation. It has been installed vertically which hinders its functioning.
  5. The Ultrasonic Sensor is also oriented incorrectly. The Ultrasonic sensor is installed in the z-axis orientation whereas the robot will need the sensor to record data in the x-axis.

The fixes for these problems are listed below:

  1. The Connectors connecting the EV3 Brick and the chassis can be shortened to lower the robot.
    1. Disconnect the Gyro Sensor
    2. Remove the angled connectors marked in the picture below
      Figure 13: Robot before modifications.
    3. Remove the right-angled connectors shown in the picture below
      Figure 14: Robot before modifications.
    4. Connect a 7-hole connector to the square frame as labeled in the picture below using the blue arrow:
      Figure 15: Robot before modifications.
    5. Connect the right-angled lego pieces as marked in the picture above using red arrows.
  2. The Tires can be attached to the rear wheels which will provide enough traction for a proper turn.
  3. The Light Sensor can be moved to a different mounting position to make it closer to the ground.
  4. The Gyro Sensor can be flipped to make it horizontal.
    1. Connect it as shown in the picture below
      Figure 16: Robot after modifications.
  5. The Ultrasonic Sensor can be oriented so that it’s horizontal instead of diagonal. This will be achieved when the Center of Gravity is brought down.
  1. ^ a b What Is website. TechTarget Network. Retrieved July 29th, 2003.