辅导案例-MCEN90032

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
MCEN90032 Sensor Systems
Project 2 Indoor GPS
Weeks 5–8 (15 Marks)
Prepared by: Ricardo Garcia-Rosas, Jing Mu, and Ying Tan
1 Introduction
In this project you will extend your pedometer to an indoor GPS. The indoor GPS is
composed of a walking distance estimator and a heading estimator. The walking distance
estimator will use the work you did for the pedometer to estimate your movement in
meters from a starting point. The heading estimator will combine measurements from
the Gyroscope and Magnetometer to estimate the direction of your path with reference
to the magnetic north. The emphasis of this project is on developing your capabilities
to implement and evaluate different algorithms, and make your own design choices. As
such, there are multiple possible solutions to the tasks which can satisfy the design re-
quirements. Marking will have a strong emphasis on your analysis and explanation of
your choices.
The project is separated in three parts. In Part 1, you will be extending the pedometer to
a walking distance estimator. In Part 2, you will be designing a basic heading estimator
using gyroscope measurements. In Part 3, you will improve your heading estimator by
combining measurements from your smartphone’s gyroscope and magnetometer through
a kalman filter and combine the distance estimator and heading estimator to provide an
estimation of your walking path.
We recommend that you include the walking distance and heading estimators in different
Scripts. Then you can include them in the main Scene as separate objects. This will
make it easier for you to test your application.
The marks for the project are divided as follows:
1. Progress Submissions (2 Marks). There are two progress submissions, one for
Part 1 and one for Part 2. They are due Friday 5 pm in week 6 and 7, respectively.
Progress submissions are done through LMS.
2. Project Demonstration (3 Marks). During the week 8 workshop, you will de-
scribe and show your solution to workshop demonstrators and a small group of
students.
3. Project Report (10 Marks). A written report of your work for the project is
due 5 pm on Friday the 2nd of October 2020 through LMS.
The project is done and assessed individually.
1
1.1 Learning objectives
• Develop professional communication skills to present technical reports.
• Implementation of different estimation algorithms.
• Experience sensor fusion through Kalman filter implementation.
1.2 Components Required (minimum)
1. A PC/Mac compatible with Unity. For the Unity Editor system requirements please
go to https://docs.unity3d.com/Manual/system-requirements.html#editor
2. An Android or iOS Smartphone. For the Unity Player system requirements please go
to https://docs.unity3d.com/Manual/system-requirements.html#player un-
der “Mobile”
3. A USB cable to connect your phone to your laptop.
The applications you will be building do not require intensive graphics computations, so
a dedicated graphics card is not necessary. A longer (3m) USB cable might be helpful in
testing the indoor GPS when using the Unity Remote.
2 Project Instructions
2.1 Part 1: A Walking Distance Estimator
In this part, you will extend your pedometer into a walking distance estimator. The
walking distance estimator application must have the following features:
1. A button to start/end the walking estimation.
2. A numeric display to show the real-time estimated distance.
(a) The numeric display will show distance in meters.
(b) The numeric display will show the last total estimated distance when not active.
(c) If there is no previous estimation data, the display will show: 0 m.
3. The implementation of at least one estimation algorithm of your choice.
The following are optional features:
1. An option to select between different estimation algorithms.
2. A real-time comparison between different estimation algorithms.
The required features are the bare minimum you must implement in your application.
Implementation of optional features will help you achieve higher marks. Comparisons
between algorithms should be included in the report if you decide to implement two or
more estimation algorithms.
2
2.1.1 Walking Distance Estimation Algorithms
There are multiple ways you can estimate walking distance from only accelerometer data.
The simplest way would be to convert your pedometer data, steps, into a distance. This
of course will be dependent on the step length of the person using your app. Another
possibility is to determine whether there is a relationship between stride length and the
acceleration amplitude.
Basic Walking Distance Estimation: This method converts steps directly to a fixed
distance. Measure your average step length by marking where you start and end a step.
You should be able to detect the start and end of a step with your pedometer. You can
then just add the distance you measured every time you detect a step.
Advanced Walking Distance Estimation: Here are several alternative methods that
could help you get started with your exploration.
• Direct integration from acceleration.
• Estimate step length based on the pattern of your gait. (For instance, your step
length might be proportional to acceleration.)
• Biomechanical model-based. You could use a simple biomechanical model of your
leg to estimate the travel distance of your foot. (Simple models use a single rigid
link to model the leg).
Feel free to look for other methods and implement your preferred one. Make sure that
you provide the appropriate references in your code and report if you do use a method
available online or in research publications. Remember, you can follow the methodology
but DO NOT COPY CODE (this is a form of plagiarism as well!).
Submit Your Progress (1 Mark):
Measure on the floor a distance of 3-5 meters. With your application
running, walk that distance. Take a screenshot of your app displaying
the estimated walking distance. Submit a video of you performing the
test (showing your app screen at the start and end of the test) along
with the screenshot with the final results. Submit all the code (Matlab
and C#) that you used for the task.
2.1.2 Prepare for Your Report
Document in detail your solution as this will be necessary for your report. Use flowcharts,
pseudo-code, etc., to help illustrate your ideas. Test your algorithm(s) under different
scenarios and compare your result with the measured actual distance. Discuss the per-
formance and limitation of your algorithm(s).
Learn to do references properly if your solution is based on other people’s work.
3
2.2 Part 2: A Heading Estimator
2.2.1 Estimate Direction from Magnetometer and Gyroscope
In this part, you will estimate the direction you are facing with reference to the
earth’s magnetic north (compass direction). You will use this in your indoor GPS
to determine the direction in which you are walking. You will be using the following
sensors.
• Magnetometer: The magnetometer gives you a rough direction, but can be per-
turbed by magnetic sources. You can test the sensitivity of your smartphone’s
magnetometer to disturbances by placing a metal object near it.
– Test your magnetometer by reading from it when isolated from strong magnetic
sources.
– Disturb the magnetometer reading by moving a metal object near it. A metal
spoon may do the job.
– Can you convert this measurement to a direction?
• Gyroscope: The gyroscope gives you a good estimate of angular velocity but has
inherent sensor noise. When transforming to angular position this can cause an
effect commonly known as drift.
– Test drift by keeping your phone still and integrating gyroscope measurements.
Observe how the values start to continuously increase/decrease (drift) even
with the smartphone not moving.
– Estimate direction by integrating the angular velocity. Turn a set number of
degrees, e.g. 90◦, 180◦, in both directions. Design a simple algorithm (integra-
tor and gain) to estimate direction from the gyroscope measurements.
– What can you do to improve the direction estimation if you are only using
gyroscope measurements? (include a discussion in your report).
Submit Your Progress (1 Mark):
Show the performance of your direction estimation using only gyroscope
data. Show the following cases:
1. Turn 90◦ counterclockwise.
2. Turn 90◦ clockwise.
3. Turn 90◦ counterclockwise followed by 180◦ clockwise.
How does the estimation compare to Magnetometer data? Submit a
video of you performing the test (showing your app screen at the start
and end of the test) along with the screenshot with the final results.
Submit all the code (Matlab and C#) that you used for the task.
4
2.3 Part 3: An Indoor GPS
In this part you will improve the performance of your heading estimator by using a
Kalman Filter to fuse magnetometer and gyroscope data. You will then combine it with
the walking distance estimator to create an indoor GPS.
2.3.1 Design of a Kalman Filter
For the design of your Kalman Filter, you can use the magnetometer and gyroscope data
you’ve gathered so far or gather even more data. You can do all the design tasks using
Matlab. Perform the following steps when developing your Kalman Filter:
(i) Derive a continuous-time state space model that is suitable for a standard Kalman
Filter. Is the system completely observable? Discuss your findings in your report.
(ii) Obtain a discrete-time state space model from (i). Note that your model should
include random processes representing model error and measurement noise. In your
report, briefly explain your choice of discretisation method and how the sampling
interval was obtained.
(iii) One assumption of the standard Kalman Filter is that the initial condition of the
state is zero-mean. In what way is this assumption always satisfied? How does this
affect the choice of the initial error covariance matrix P?
(iv) Check whether the other assumptions for the standard Kalman Filter may be sat-
isfied or not. Discuss your findings in your report.
(v) Design a standard Kalman Filter for the model above with appropriately chosen
initial conditions, Q and R. In your report, give a brief explanation about your
choices.
(vi) Apply the designed Kalman Filter to estimate the heading direction of the data you
have been using for testing. Plot and discuss your results in your report.
2.3.2 Implementation of a Kalman Filter-based Heading Estimator
Now you can implement your Kalman Filter in your indoor GPS application. We rec-
ommend you that you include the walking distance and heading estimators in different
Scripts. Then you can include them in the Scene as separate objects. This will make it
easier for you to test your application.
Now you can test your heading estimator in real time. You can do this by displaying the
estimated heading in degrees on the screen. You can use the magnetic north as the zero.
Make sure that you define a reference frame. You should also record all data you deem
necessary to demonstrate the performance of your solution in your report.
2.3.3 Indoor GPS
Combine the measurements from the walking distance estimator and heading estimator
to create your indoor GPS. To test your solution do the following:
5
(i) Determine at least 2 different paths you will follow around your place of living.
(ii) Measure the distance and direction of each segment in the paths.
(iii) Follow the path while using your indoor GPS and record all necessary data to
demonstrate the performance of your solution.
(iv) Plot the estimated path with the collected data and superimpose the measured true
path on the same plot. (This could be done with Matlab)
(v) Discuss the performance of your indoor GPS.
Make sure that you label the measured true path clear enough in your report (include
distances, angles or shapes).
Demonstration (3 Marks):
Film yourself walking along one of the path you have. Display the esti-
mated total walking distance and current heading on your screen. Record
your screen and time-match the two videos.
3 Project Report (10 Marks)
Prepare a report as per the task given as a Portable Document (.pdf). Use an appropriate
engineering report format. Your report should be no more than 8 pages with 12 pt
font and it should clearly outline your methodology, results and discussion related to the
tasks given in the project. You will be assessed on the following marking scheme for the
report:
• Format: Is it in an appropriate engineering report format (includes proper introduc-
tion, has figures and equations properly labelled, has references properly managed,
etc)? Is the submission following the rules as instructed?
• Methods: Is the design well explained, systematic and well-posed?
• Results: Did the implementation work? Is the functionality well assessed? How did
you assess the functionality?
• Discussion: Is the performance and limitations clearly analysed and described? Are
the results and analyses presented in a way that clearly support the effectiveness of
the proposed scheme?
You should also submit a Unity package containing your solution as part of your report
submission. Name the report and Unity package with your student ID and
submit via LMS before the due date. Along with your submission, include all supple-
mentary materials (compressed as .zip) related to this project, such as the Matlab code
and recorded data file. Late penalties apply at a rate of -10% (of the whole assignment
marks) per day. Assignments submitted later than 5 working days after the due date will
not be accepted and will receive zero marks. Only the last submission will be assessed.
Report submission checklist:
6
Report is no more than 8 pages
Report has 12pt font size
Report saved as PDF
Created a Unity package with your project solution
Compress all supplementary materials into a .zip
Both report and Unity package are named with your student ID
4 Academic Integrity
We take academic integrity seriously. Please note that while students may discuss and
help each other in the thinking process, you should work on your assignments separately.
Details about academic integrity can be found at http://academicintegrity.unimelb.
edu.au/. Please check with the tutors or the lecturer if you are in doubt. Ignorance is
not a valid reason for academic misconducts.
7

欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468