I have written a very basic tracking algorithm (using GPS data as input data) in C# 2008 which needs improving (source code attached). The basics of the current algorithm are:
• A fifo of 3D vectors is created.
• When a new gps position is reported, it is added to the head of the fifo.
• The new lookahead position is then generated by linearly extrapolating from the last reported position and the position before that. The distance in front is governed by the lookAheadFactor (controlled by the joystick).
A new tracking algorithm (such as a Kalman filter) needs to be written to more accurately predict the future position of the GPS tag. The current algorithm is not smooth between estimated future positions. Therefore I need a freelancer with a mathematics background with experience in tracking algorithms which they can translate into usable code. If this is not you please do not bid for this job.
I have source data to use for testing and I expect to receive improved tracking results by comparing the old algorithm with the new algorithm (via graphs etc).
The new algorithm should accept parameters just like the current function call:
/// Execute a FIFO add of the newPosition to the position spline
/// New object position
/// Current object position
public void addRxPosition(TV_3DVECTOR newPosition, float lookAheadFactor)
See attached files for current algorithm code
There have been a few questions asked, so please find the questions and answers below.
Are the gps readings sampled at a constant time gap, or is it based on distance moved?
The GPS used samples at 10Hz. It would be ideal if the algorithm could handle down to 5Hz. Also, given the realities of communication networks, the algorithm would also need to handle missed samples caused by radio comms drop outs of up to 1 second (? my arbitrary selection).
What is the time gap ( or distance ) between the samples?
100 msec (10Hz). Need to implement time stamp type analysis to over come comms drop outs. Time gap cannot be assumed to be uniform.
Whilst in operation, how far ( in seconds ) do you need to be able to predict the position?
The look ahead / look behind time needs to be variable as the biggest factor producing lag within the system is the response time of the head and drive system. For example the 2010 head is much more responsive than the 102 head, an hence have different time constants. Also shot choreography will be dependant on being able to vary the calculated target position either in front or behind the actual calculated position. This look forward / look back adjustment may be done external to the algorithm, yet as the mechanism will be maintaining a history of data this may be best done by passing the offset to the function.
Hope this helps.
3 Data Files have also be added to the Project. Some Freelancers have requested them, so please have a look.
Thanks for your interest in performing the works. It is greatly appreciated.
11 freelancers are bidding on average $544 for this job
Hello sir, I'm a mechatronic engineer and maybe I can help you, I have experience applying filters in mobile robots. Histogram filter, Kalman filter and particle filter. Please contact me for more details. Thank you.
Hello Sir, I have a good experience in designing software for Autopilot of UAV, I had dealt with DCM Algorithm, Kalman Filter and GPS and IMU Sensors. I can do this sir for you .