gpldecha / point-mass-filter

Matlab implementation of a Point Mass Filter (PMF)
MIT License
4 stars 1 forks source link

Execution Error running the example #1

Open wkyoun opened 7 years ago

wkyoun commented 7 years ago

Dear Dr. Guillaume

Thank you for the excellent source code for point mass filter.

But, I tried to run your source code in Matlab 2013a, 2016b

both results in the same error

>> Example1
first time step initialisation
Reference to non-existent field 'bDiscrete'.

Error in plot_pmf (line 44)
bDiscrete    = pmf_plot_options.bDiscrete;

Error in Example1 (line 62)
pmf_h                       = plot_pmf(gca,pmf_obj.pmf,[]);

>> Example2
Running 2D box search Simulation
Reference to non-existent field 'hf'.

Error in Example2 (line 61)
hp(1,:) = get(handles.hf(1),'Position');

However, example 3 is working correctly. Would you please let me know how to fix it?

gpldecha commented 7 years ago

Hi,

Thanks for your reply. I will provide a fix this weekend, would that be ok ?

wkyoun commented 7 years ago

Dear. Dr Guillaume Thank you for the kind reply. Anytime when you are availabile for fixing problem would be fine for me. I would like to appreciate sincerely for your help.

Best Regards

gpldecha commented 7 years ago

I have fixed the problem, it is to do with how things are plotted. Should work now.

wkyoun commented 7 years ago

Dear. Dr Guillaume Thank you for the kind reply. Now, Example 1 is working correctly, but Still Exmaple 2 results in following errors: I would like to appreciate sincerely for your help. Best Regards

Example2
Running 2D box search Simulation
Reference to non-existent field 'hf'.

Error in Example2 (line 64)
hp(1,:) = get(handles.hf(1),'Position');
wkyoun commented 7 years ago

Dear Dr. Guillaume

Acutally, we have studied the reference paper for point mass filter as followings : Recursive Bayesian Estimation Navigation and Tracking Applications

and understand the principle of Point mass filter to some extent.

But we have difficult time understanding your matlab code,

If you have paper that describe the mathmatical equation that was used in Example 1, 2, 3 (In Matlab File), Woule you please share with us? (Any report or paper regaring Example 1, 2, 3 would be the best for us)

We are really interested in your work(including your project) If you are available, we would like to invite you to give us a lecture in the future

Best Regards.

gpldecha commented 7 years ago

Ok, will get back to you later. I am currently outside.

On 25 Mar 2017 1:43 p.m., "won13y" notifications@github.com wrote:

Dear Dr. Guillaume

Acutally, we have studied the reference paper for point mass filter as followings : Recursive Bayesian Estimation Navigation and Tracking Applications

and understand the principle of Point mass filter to some extent.

But we have difficult time understanding your matlab code,

If you have paper that describe the mathmatical equation that was used in Example 1, 2, 3 (In Matlab File), Woule you please share with us? (Any report or paper regaring Example 1, 2, 3 would be the best for us)

Best Regards.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/gpldecha/point-mass-filter/issues/1#issuecomment-289212449, or mute the thread https://github.com/notifications/unsubscribe-auth/AKUHkIPsXx9Kp6NVt-eIw6Iz-6xo9_sZks5rpRntgaJpZM4MoXUi .

gpldecha commented 7 years ago

Hi Won,

The code is indeed difficult to understand at this point. I would suggest you have a look at PMF2.m During the development of this code I followed closely Algorithm 5.1 (page 95 of Recursive Bayesian Estimation Navigation and Tracking Applications). With a few exceptions.

1) In the 2D examples (which uses PMF2.m) I do not increase or decrease the resolution of the grid based on N0 and N1 (so no step 5.)

2) For the motion noise I use matlab's convn function for simplicity instead of the procedure described in Convolution (page 94). Matlab's convn function supports sparse matrices. As a result step 7. and 8. of Algorithm 5.1 are not needed.

So basically the motion update step simply moves the frame of reference of the grid (step 2.) and applies convn for the motion noise. The measurement step is simply the multiplication of the likelihood function with the grid.

Then it is more of a heuristic to decide when to make grid points zero ( step 4-5 ) to increase the sparsity of the probability density function.

I used a C++ implementation of the 3D filter for a project during my Ph.D, see here.

Thanks for the invitation. I am interested to know what would be the application of the filter. Best regards

wkyoun commented 7 years ago

Dear Dr. Guillaume Thank you for the kind reply. Would you please fix the error in Example 2 in matlab file

Example2
Running 2D box search Simulation
Reference to non-existent field 'hf'.
Error in Example2 (line 64)
hp(1,:) = get(handles.hf(1),'Position');

The objective of point mass filter is to track the position of aircraft using terrain information, and compare particle filter(in particular marginalized particle filter)

And tried to implement point mass filter in real-time to estimate the position of aircraft using vision and terrain information as following reference paper.

Vision-aided terrain referenced navigation for unmanned aerial vehicles using ground features http://journals.sagepub.com/doi/abs/10.1177/0954410013517804?journalCode=piga

I have a question as following:

C++ based 3D point mass filter can be exceuted in real-time without any GPU?

Best Regards

gpldecha commented 7 years ago

Hi Won,

I added a fix, example 2 should run now.

As for your question, can you send it directly to my email: chambrierg@gmail.com

The short answer is yes, it can run in real-time without any GPU.

Best regards,

Guillaume