-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
URGENT HELP #113
Comments
@kritikas726 I found this article very useful: http://campar.in.tum.de/Chair/KalmanFilter. |
Hi, actually I want to make an android application where the application takes GPS coordinates(lat,long) of the phone in a car, and passes it through a kalman filter and predicts the velocity. This velocity will be shown to the user. User will be asked to input a max speed. Now, if the speed at any given time in the moving car goes above that max speed limit(for example 60km/hr) there will be an audio alert to lower down the speed. I read about kalman filter a lot but I am not able to implement it on a dataset. I am not able to understand what values will be the input, what will be the output, how will it work and what should be the values in the matrix for this application. I have tried to red about kalman filter a lot but somehow I am not able to understand it. If you could help me in this then it will be great. |
I don't see the necessity in Kalman filter in your task. But anyway if you are sure that you need Kalman, then :
dt_ms - delta time in milliseconds.
SO!!! It will looks like this for your system: It is uniformly accelerated motion law :) Other matrices are magic except Q and R. Those 2 are most difficult part. But simplified:
In your case you will use GPS as speed data source. GPS provides very precise speed so you will have small values in R matrix and large values in Q (because accelerometers are noisy). |
Can we have a zoom(or any type of meeting,Google Meet, Microsoft Teams) call if you are free sometime today? Are you Indian or is there time difference between us? And in |
Sure, we can have a meeting. My time zone is GMT+6.
So your x will be the distance between the point (longitude: 0, latitude: your_latitude) and "zero" point (longitude: 0, latitude: 0) You can find all those calculations here..
So! With speed and bearing your x' = speed * cos(course) and y' = speed * sin(course) . If you are on android : course = location.GetBearing() . Actually it has to be checked twice. You need to be sure that course is a clockwise angle between direction and true north.
Once you received quaternion you can "connect" your accelerometer values to our coordinate system. You just need to take values from LINEAR_ACCELERATION sensor and multiply it on that quaternion. Sample code is available here and here Or you can convert quaternion from ROTATION_VECTOR sensor into matrix and multiply LINEAR_ACCELERATION vector on it. Both methods work fine :) I hope this can help too. |
Hi my name is Kritika Sharma and I have to make a project. The idea is to name an android application which take GPS values from android phones and calculate speed through either calculating distance between two GPS coordinates or somehow through accelerometer(still don't know how to). Pass the values through Kalman Filter(not perfectly clear how it works) and get a corrected speed. The user which enter a max speed, if the calculated speed is higher than the user's max speed, it will generate a audio alert. I have tried so many resources to understand Kalman Filter but I am unable to, always getting confused with values of matrices. Can you please please please help me with this? My email id is [email protected]
The text was updated successfully, but these errors were encountered: