Code Monkey home page Code Monkey logo

bayestracking's People

Contributors

cdondrup avatar marc-hanheide avatar nbellotto avatar pet1330 avatar scosar avatar seantasker avatar strands-jenkins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bayestracking's Issues

Labelled data associations always used

I noticed an issue where the labels on observations were always used regardless of the whether a labelled association type was used.

The problem is due to an error in condition logic which is present four times in multitracker.h. The condition is written as:

if (alg == NNJPDA || NNJPDA_LABELED)

Which always succeeds since NNJPDA_LABELED will evaluate to true. The lines should read:

if (alg == NNJPDA || alg == NNJPDA_LABELED) 

The lines in question are: 220, 235, 252 and 275

Wrong data association used

There are three different forms of data association:

  • NN
  • JPDA
  • NNJPDA

A quick look at https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L220 and https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L263 suggests that actually JPDA is used if the user specifies that NNJPDA should be used. Since the JPDA case is not covered the tracker will out put ###### Unknown association algorithm: 1 ##### if JPDA is selected.

If I am right a simple change of https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L220 to if (alg == JPDA) should do the trick.

base type 'FilterType *' is not a structure or union

I get a compilation error here: https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L197

/Users/nah/code/indigo_ws/src/bayes_tracking/include/bayes_tracking/multitracker.h:197:11: error: member reference base type 'FilterType *' is not a structure or union
    filter.init(initState, initCov);
    ~~~~~~^~~~~
1 warning and 1 error generated.
make[2]: *** [examples/CMakeFiles/simple_2d_tracking.dir/simple_2d_tracking.cpp.o] Error 1
make[1]: *** [examples/CMakeFiles/simple_2d_tracking.dir/all] Error 2
make: *** [all] Error 2
[bayes_tracking] <== '/Users/nah/code/indigo_ws/build/bayes_tracking/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' failed with return code '2'

Shouldn't it be filter->init(initState, initCov);?

Have a runtime error in jpda.h

Hello,
The error was in private function void getAssociation(size_t row, ...)
It occurs at assoc.pop_back() because of the assoc is already empty.
If I add a condition, there will be another runtime error in private function void fill(size_t start, size_t end). This is because ai->t is out of range.
This problem only happens when I use nnjfda. NN will be fine.
And, there is a second problem. If I change the filter as PFilter, it will also have a runtime error. But I think this is because I should change the model. Am I correct?
Can you help me out? Thank you.

pf.exe!jpda::JPDA::getAssociation(unsigned int row, std::vector<unsigned int,std::allocator<unsigned int> > colVec, jpda::Association & assoc, unsigned int m) line 572
pf.exe!jpda::JPDA::getAssociations() line 304
pf.exe!MTRK::MultiTracker<UKFilter,4>::dataAssociation<Models::CartesianModel>(Models::CartesianModel & om, MTRK::association_t alg) line 266
pf.exe!MTRK::MultiTracker<UKFilter,4>::process<Models::CartesianModel>(Models::CartesianModel & om, MTRK::association_t alg) line 168
pf.exe!main(int argc, char * * argv) line 224

adding data association taking labels into account

starting point is looking at https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L254 and creating another data association alg named LABELLEDNN.

Use the AssociationMatrix amat (with M being the number of observations and N being the number of trackers) to assign costs. This is already done by the algorithm. All we need to do is set the cost to DBL_MAX when the labels do not match up. Observations observation_t already have a flag field that we can use as it's not used anywhere else to "tag" the observations. But then each "filter" filter_t also needs to keep track of the assign "tag", so that they can be matched. Maybe extend https://github.com/LCAS/bayestracking/blob/master/include/bayes_tracking/multitracker.h#L59 to facilitate this.

@pet1330 can you have a look at this?

Reference of jpda.h

On implementing the jpda algorithm, which paper or book did you follow? And other data association algorithm?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.