You are to develop a website that can receive input from a vehicle via query URLs that will record the input into a database and use that data to map its relative position. This is an INDIVIDUAL assignment.
Data Acquisition:
The following relative URL’s (or routes) are used by the vehicle to provide data to the website:
/register?name=XXXX&width=###.###
Adds a new vehicle run to the system, should return a cookie called USER=[name] that would be included for the other commands. Width is the width of the vehicle in cm.
It should overwrite any other “active” session for that named vehicle
/wheels?left=###.###&right=###.###
Rescords the speed of the left and right wheel in cm/sec for that vehicle in the current session
/echo?dist=###.###
Records the result of the echo sensor in cm for the vehicle in the current session
/line?l1=##&l2=##&l3=##
Records the result of ONE or MORE l1, l2, l3, etc. Line sensors on/off cm for the vehicle in the current session
/other?[variable key:value pairs]
Records and other data sent in key:value pairs to be recorded for the vehicle in the current session
/end
End the current session for the vehicle
All of the above will also have a “time=#####” parameter for relative time calculations. Time will be in milliseconds.
All records should also be timestamped with the server’s date and time.
User Interface:
/active
Shows a list of the active vehicle sessions and links to /map to map their position and to
/datareview to show the data received to date.
/review
Shows a list of all sessions (active and complete) that can be filtered by vehicle name, and by time frame (i.e started before/after certain time). This list should link to /datareview and /map
/datareview
Shows all the data sent to the server in chronological order. The data can be filtered to show only specific data fields (based on the data fields), like show only left and right wheel data or show l1 echo and right wheel, etc.
/map
Displays a graphical representation of the relative position of the vehicle and its route. It can be assumed that the vehicle travels within a 1000 x 1000 cm grid. Calculation of position is based on the data from the wheels which has been recorded in cm/sec. Equal values applied to both wheels indicate straight movement. Unequal values indicates a change in direction.
Slower right wheel would indicate a turn right, slower left wheel indicates a turn left.
To calculate the “dot” (position) multiply the average wheel speed (between the last wheel data and the current wheel data) by the delta of time (use millisecond times) from the last wheel data. That gives you how far each wheel moved. Calling these LAL (left arc length) and RAL (right arc length), we first need to handle special cases:
LAL and RAL are equal – meaning the car went straight (use an error delta, such as a 1/10 of a mm to allow for data fluctuation).
LAL = (or is near) 0, while RAL is some significant (> error ) value, Vehicle making a sharp left turn (pivoting on left wheel).
RAL = (or is near) 0, while LAL is some significant (> error ) value, Vehicle making a sharp right turn (pivoting on right wheel).
RAL and LAL are (or near) 0 – Vehicle is stopped
The final cases are where both LAL and RAL are significant values but not equal. If LAL is > RAL then the formulas below should be used to calculate the radius of the circle that contains the RAL arc and the angle in degrees that the arc represent of that circle.
πΏπ΄πΏ = π
360
2π(π + π€) πππ π π΄πΏ = π
360
2ππ
π = π π΄πΏ ∗ 360
2ππ
πππ π = π€
5 − 18 πΏπ΄πΏ π π΄πΏ
If RAL is > LAL, invert the two values (RAL and LAL) in the above equations.
From these values you should then be able to calculate the delta-x and delta-y to determine the new position.
Assignment:
Your assignment for this final project (this is your final) is to develop the above website and use the supplied script which will feed data into your site.
You will then navigate to the /active url (and take screen shots of each screen) show the active sessions. Click the link to bring you to the datareview for that session. Take screen shots of the screen with all data showing, then filter on just the dist values, then on the wheel values
Navigate to the /review url (and take screen shots of each screen) and show all sessions, then filter on name showing just the sessions for a particular vehicle name, then further filter by date.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of