Odometry

$24.99 $18.99

Design objectives Design and implement an Odometry system that provides a robot’s position and orientation, allowing it to autonomously navigate a field. Evaluate the design and determine the accuracy of the implemented Odometry system. Design requirements The following design requirements must be met by your robot: Odometer: Must determine the robot’s ​X​, ​Y​and ​θ​orientation. Must…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Categorys:

Description

5/5 – (2 votes)

Design objectives

  1. Design and implement an Odometry system that provides a robot’s position and orientation, allowing it to autonomously navigate a field.

  2. Evaluate the design and determine the accuracy of the implemented Odometry system.

Design requirements

The following design requirements must be met by your robot:

Odometer:

  • Must determine the robot’sX,Yandθorientation.

  • 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 inFigure 3.

ECSE 211 Design Principles & Methods Updated: 21 January 2020

Demonstration (30 points)

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

Note: For this lab, you will only have 3 chances to demonstrate your work to the TA.

Design presentation (10 points)

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 (10 points)

The TA will check whether theX,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:

ECSE 211 Design Principles & Methods Updated: 21 January 2020

Odometry Check (10 points)

The TA will ask you to run your robot off the center of a tile, as shown byS in Figure 3. The robot should then follow the 3-by-3 tile square trajectory usingSquareDriver. 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 (XF,YF) nearS, the final readings on the LCD screen (X,Y,θ) are used to evaluate the odometer’s accuracy and calculate theerror​​distance ϵas:

  • =(XXF)2+(YYF)2

Note that theerror​​ϵis calculated as theEuclidean distancebetween:

  • 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 pointSwhere the robot started the 3-by-3 tile square trajectory.

This means that it isnot an issueif your robot does not return to theexactstarting pointS, as long as the odometer reports a position thatmatchesits real-world location.

Point grid based onerror​​ϵ: [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.

ECSE 211 Design Principles & Methods Updated: 21 January 2020

Provided materials

Physical material

In the lab, tiles with black grid lines are provided. These make up the competition floor, where the robot will operate. Grid lines are separated by a distance of 30.48cm.

Sample code

A package of sample code is provided that contains the following:

  • Display.java

    • Provides a display mechanism for the Odometer.

    • Runs in a thread

  • Main.java

    • The main class that runs the robot.

    • Starts Odometer thread and Odometer correction thread.

    • Drives the robot usingSquareDriver.java.

  • Odometer.java

    • A skeleton class for building an odometer.

    • Runs in a thread.

    • Provides methods for manipulation of volatile odometer variables, such as X and Y position.

  • Resources.java

    • Defines the ports used by motors and sensors.

  • SquareDriver.java

    • Runs the robot in a 3-by-3 tile square, where one tile is 30.48cm.

ECSE 211 Design Principles & Methods Updated: 21 January 2020

Implementation instructions

  1. InOdometer.java, implement your odometer design in therun()method of the Odometer class. This class is threaded and will run continuously when your robot is working.

  2. InResources.java, tweak the values ofWHEEL_RADandBASE_WIDTHso that your robot drives in a square pattern when callingSquareDriver.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 withinhalf 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 positionSof the robot’s center and consider it to be(0,0)for this trial.

  1. Run the robot in a 3-by-3 square usingSquareDriver.java.

  2. Measure its resulting signedXFandYFposition with respect to its starting positionS.

  3. Note the reported values ofXandYshown for the odometer.

Section 3: Test Analysis

Present the following analysis in a table in your report

  1. Compute theEuclidean error distanceϵof the position for each test.

  2. Compute the mean and standard deviation forX,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?

5

ECSE 211 Design Principles & Methods Updated: 21 January 2020

  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’serrorto 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.

ECSE 211 Design Principles & Methods Updated: 21 January 2020

Frequently asked questions (FAQ)

  1. What is meant by “design presentation”?

Before a lab demo, you and your partner will briefly present your design. This can include a basic visualization of how your code functions, such as a flow chart. You will then be asked a series of questions. These could be related to the lab tutorial and the initial lab code. For this part, a grade of 10 signifies full understanding, 5 signifies partial understanding, while 0 shows no understanding at all. Note that memorized answers are discouraged and both partners should be responsible for understanding the design and their associated code, even if one of them did not write all of it.

  1. Are partial points awarded for Float Motors?

No partial points are awarded. Possible demo points: {0, 5, 10}.

  1. What is the length of each square tile?

Each tile is 30.48 cm (1 ft) long.

  1. Do the displayed values of θ have to be in ° (degrees)?

Yes.

  1. Do I have to follow the same (X,Y,θ) convention as in Figure 1 and Figure 2?

Yes.

  1. In the Float Motors part, what will be the initial conditions of the robot?

The robot’s initial condition is based on your (X,Y,θ) convention – you must inform the TA about your initial orientation. Once the float motors option is selected on the robot, the TA will place your robot on a table. Assuming the same convention as in Figure 1, the TA will forcefully rotate both the wheels forward to test theY values. Not that the robot will not move automatically, but rather the TA will rotate both wheels using his/her hands. The TA wants to notice whether theY-value will increase or not, without affecting theX andθ values by much (since they could be affected due to experimental error). Therefore, the odometer’s accuracy is irrelevant here. The main idea is to observe whether the odometer functions well using a fixed convention. A similar wheel-rotation test is also performed for checking decreasing values as well as for other variables.

  1. How accurate should the (X,Y,θ) values be during the floating motor demo? Should the values only increase and decrease properly without considering the errors?

Accuracy of (X,Y,θ) values in floating motor demo is irrelevant. However, let us consider an example when a robot that is oriented along the +Y-axis and both wheels are moved forward. If the reportedY-values are negative, this means that theY-axis does not work.

Odometry
$24.99 $18.99