[SOLVED] ECSE211-Lab 2 Odometry

30.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon Lab2-cnfpck.zip (827.2 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
Rate this product

The following design requirements must be met by your robot:

 

Odometer:

 

  • Must determine the robot’s X​ , ​ ​Y and ​ θ​​
  • Must display the ​ X​ ,​ ​ Y​ ​ and​​ θ​ ​ on the LCD display.​
  • X ​ and​ ​ Y​ ​ must be in cm.​

 

  • X ​ and​ ​ Y​ ​ can be negative.​
  • θ ​ must be in degrees.​
  • θ ​ must range from [0​ ⁰, 359.9⁰]:

○    When the value increases past 360⁰, it should return to 0⁰.

○    When the value decreases past 0⁰, it should wrap to 359.9⁰

 

  • The zero values for (X​ ​, Y​ ​), i.e. (0,0), must respect the convention shown in Figure 3.​

 

 

Demonstration                               

The design must satisfy the requirements by completing the demonstration outlined below.

 

 

Design presentation

 

Before demoing the design, your group will be asked some questions for less than 5 minutes. You will present your design and answer questions designed to test your individual understanding of the lab concepts. Each person will be graded individually.

 

You must present your workflow, an overview of the hardware design, and an overview of the software functionality. Visualizing software with graphics such as flow charts is valuable.

 

Float Motors

 

The TA will check whether the X​ ​, Y​ and θ​ values are updated correctly on the robot’s LCD screen by floating the robot’s motors/wheels.

 

All three axes (X​ ,​ ​​Y,​ ​​θ)​ are checked:

 

  • X &​ Y ​ values work​            →  ​ 5 points
  • θ values work​ →  ​ 5 points

 

E.g.​ if the (​X​, ​Y​, ​θ​) convention is set as in ​Figure 1, ​then:

 

  • Moving both wheels forward​ should increase ​           Y​ .​
  • Moving both wheels backward​ should decrease ​         Y​ .​
  • Moving the right wheel backward​ and the left​      wheel forward ​             simultaneously should increase​            θ.​
  • Moving the right wheel forward​ ​ and the left wheel backward ​simultaneously should decrease​ ​θ​.

 

Figure 1: Robot faces north at 0o.

E.g.​ if the (​X​, ​Y​, ​θ​) convention is set as in ​Figure 2, ​then:

 

  • Moving both wheels forward​ should increase ​           X​ .​
  • Moving both wheels backward​ should decrease ​         X​ .​
  • Moving the right wheel backward​ and the left​      wheel forward ​             simultaneously should increase​            ​ θ​ .​
  • Moving the right wheel ​forward​ and the left wheel backward ​simultaneously should decrease​ ​θ​.

Figure 2: Robot faces east at 90o.

.

 

 

 

 

 

 

Odometry Check

 

 

The TA will ask you to run your robot off the center of a tile, as shown by S​ in Figure 3. The robot should then follow the 3-by-3 tile square trajectory using SquareDriver​ .​ The robot should work using odometry. Throughout the demo, the TA will observe the reported (X​ ,​ Y​ ,​ θ​ ​) values on the robot’s LCD screen. When the robot stops at the final position (X​ F​ ,Y​ F​ ) near S​ ,​ the final readings on the LCD screen (X​ ,​ Y​ ,​  θ​)​ are used to evaluate the odometer’s accuracy and calculate the error​ ​ distance ​ϵ as:​

ϵ = √(X XF)2 + (Y YF)2

 

Note that the error​  ​ϵ​ is calculated as the ​Euclidean distance​ between:​

 

  • The odometer’s readings (X​ ​,Y​ )​ , which signifies where the robot thinks it is with respect to

the origin (0,0), and

​          ​

  • The final actual position (XF​ ,YF​ ), which ideally should be the point S​ where the robot started​ the 3-by-3 tile square trajectory.

 

This means that it is not an issue​     if your robot does not return to the ​    ​exact​ starting point S​ , as​    long as the odometer reports a position that matches​           its real-world location.​

 

 

Point grid based on   error​ ​ϵ​:

[0, 3] cm →   5 points

(3, 6] cm 2.5 points

(6, ∞) cm 0 points

 

 

Point grid based on the difference between the displayed θ​ and actual ​            θ​ :​

[0, 15] °     →   5 points

(15, 30] ° 2.5 points

(30, ∞) ° 0 points

 

 

 

 

 

 

(0, 0)

Figure 3. 3-by-3 tile trajectory using SquareDriver.

 

 

 

 

 

 

 

 

 

 

Implementation instructions

 

  1. In java​ , implement your odometer design in the ​       run()​ method of the​          Odometer class. This class is threaded and will run continuously when your robot is working.
  2. In java​ , tweak the values of ​  WHEEL_RAD​     and ​        BASE_WIDTH ​               so that your​      robot drives in a square pattern when calling SquareDriver.drive().​

 

Report Requirements

 

The following sections must be included in your report. Answer all questions in the lab report and copy them into your report. For more information, refer to the Lab Submission Instructions. Always provide justifications and explanations for all your answers.

 

Section 1: Design Evaluation

 

You should concisely explain the overall design of your software and hardware. You must present your workflow, an overview of the hardware design, and an overview of the software functionality. You must briefly talk about your design choices before arriving at your final design. Visualizing hardware and software with graphics (i.e. flowcharts, class diagrams) must be shown. The design evaluation section is expected to be within half a page​ (excluding graphics).​

 

Section 2: Test Data

 

This section describes what data must be collected to evaluate your design requirements. Collect the data using the methodology described below and present it in your report.

 

Odometer test   (​ 10 independent trials​)

  1. Note the starting position S​ of the robot’s center and consider it to be ​ (0​        ,0) for this trial.​
  2. Run the robot in a 3-by-3 square using java.​
  3. Measure its resulting signed XF​ and Y​ ​F position with respect to its starting position ​       S​ .​ Note the reported values of X​ and ​         Y​ shown for the odometer.​

 

 

Section 3: Test Analysis

 

Present the following analysis in a table in your report  

  1. Compute the Euclidean error distance​ ​ϵ​ of the position for each test.​
  2. Compute the mean and standard deviation for X​ ,​ Y​ ​, and ϵ​​. That means, you need to perform 3 mean and 3 standard deviation calculations in total. Use the sample standard deviation formula. Show one sample calculation for both mean and standard deviation formulas.

.

 

Answer the following questions in your report

 

  1. What does the standard deviation of X, Y and ϵ tell you about the accuracy of the odometer? What causes changes in standard deviation?

 

  1. What is the sampling frequency of your odometer (i.e. the frequency at which the tacho count is measured)? What is the tradeoff of having a high sampling frequency versus a low sampling frequency?

 

Section 4: Observations and Conclusions

 

  • Is the error you observed in the odometer tolerable for larger distances? What happens if the robot travels 5 times the 3-by-3 grid’s distance?

 

  • Do you expect the odometer’s error​ to grow linearly with respect to travel distance? Why?​

 

Section 5: Further Improvements

 

  • Propose a means of reducing the slip of the robot’s wheels using software.
  • Propose a means of improving the accuracy of the odometer using one or more light

sensors.

 

  • Lab2-cnfpck.zip