Code Monkey home page Code Monkey logo

bayestracking's Issues

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);?

Reference of jpda.h

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

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.

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?

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.