Starting from:

$30

EECS192/Assignment #1

 EECS192/Assignment #1 v1.00
(One assignment per team.)
The purpose of this assignment is to allow you to prototype track finding algorithms with a
high level language before implementing in C on the K64F processor. You are free to use signal
processing libraries, floating point, etc. for initial prototyping. However, remember that your line
finding algorithm will need to work in real-time on a 120 MIPS processor., so your final Python
should not be dependent on libraries which won’t run in real time on MCUXpresso or are not
available.
Typical strategies to use for finding the track include:
1. Frame subtraction and peak detection
2. smoothing followed by gradient detection (e.g. difference of Gaussians approximation to the
Laplacian)
3. curve fitting, e.g. cubic spline or tanh−1
.
A set of line scan data from EECS192 2016 Team 1: Fast and Curious is provided on Piazza for EE192 under “Resources”, natcar2016 team1.csv. A Python template is provided
linescanplotsHW1.py which will read the csv file (can easily be modified to read telemetry file
by adding extra columns) and plot line camera data and velocity. The actual car run can be seen
at https://www.youtube.com/watch?v=_AMs9iixp5M. A bit more then a complete lap is given in
data, as you can see the steps right after the start line. This data has been pre-processed to control
illumination. Note that the time sampling is not uniform as darker areas use longer exposure (this
is not necessarily the best strategy). Also, the velocity data is quite noisy.
Complete the function find track(linescans) which takes as input n frames of linescans of
128 values in the range 0...255 and returns:
[6 pts] a) track center list which is a length n list of the index in the range 0...127 corresponding to the center of the track in each frame.
[2 pts] b) track found list which is a length n list of booleans, True if the track is visible for
a particular frame.
[2 pts] c) Cross found list which is a length n list of booleans, True if a crossing is present
for a particular frame.
Upload your completed Python code to bcourses, as well as .png plots of track center as function
of time, and plots of track found and crossing found.
Your python function will be tested against another data set taken under similar conditions on
a similar track.
The line scan data should be interpreted as given in the following table. For example, around
scan 380, the track is out of frame, so track found would be False.
Input Input output output
track? crossing? track found cross found
F F F F
F T F T
T F T F
T T T T

More products