Re: [Bayes++] Bayes++ to predict robots location
Brought to you by:
mistevens
From: Vinh <arb...@go...> - 2006-11-13 22:56:22
|
Hi Nicola, if there's any chance you can have a look at the code I would greatly appreciate it. The project is due in two days and I'm basically stucked with this. I was wondering whether I get the concept right, not too much of memory leaks. Should I overwrite the functions "f" and "Q" and are those corresponding to the system motion model (f) and covariance of the motion model (Q)? But if I measure a simple 2D position while my state is a 2d position as well, should I use a Linrz_uncorrelated_observe_model like in the PV example? I found out that I used the random functions wrong (was too late at night). But that didn't fix the problem that the estimate constantly jumps towards the measurement, even though their covariance is quite high. Regards, Vinh On 11/14/06, Nicola Bellotto <nb...@es...> wrote: > Vinh, > I didn't have time to look at the entire code, but for sure the following > doesn't look very correct: > > const Vec& PVpredict::f(const Vec& x) const > { > // Functional part of addative model > // Note: Reference return value as a speed optimisation, MUST be copied by > caller. > Vec* v = new Vec(2); > (*v)[0] = x[0] + 0.1; > (*v)[1] = x[1] + 0.2; > return *v; > } > > Everytime this member returns a reference to a _new_ location, allocated with > a _local_ pointer. Well, I guess that's not what you want... > Regards > Nicola > > > On Monday 13 Nov 2006 14:04, Vinh wrote: > > This is what I have so far. I've tried changing the observation to be > > a 2D position and the state itself the same. It compiles and runs, > > however the results a far from what I expected. > > Somehow the values of the filter stay very close to the one of the > > initial estimate which would mean that the initial estimate's > > covariance should be very small or the observations covariance very > > big - none of this intended. Anyone can help? > > > > here's some sample output. The file, derived from the PV example, is > > attached. > > > > ---- > > True [2](7.180000e+01,1.436000e+02) > > Direct > > [2](1.435908e+02,2.871707e+02),[2,2]((8.571428e-05,0.000000e+00),(0.000000e > >+00,8.571429e-05)) True [2](7.190000e+01,1.438000e+02) > > Direct > > [2](1.437973e+02,2.875657e+02),[2,2]((8.571428e-05,0.000000e+00),(0.000000e > >+00,8.571429e-05)) True [2](7.200000e+01,1.440000e+02) > > Direct > > [2](1.439857e+02,2.879593e+02),[2,2]((8.571428e-05,0.000000e+00),(0.000000e > >+00,8.571429e-05)) True [2](7.210000e+01,1.442000e+02) > > Direct > > [2](1.441731e+02,2.883677e+02),[2,2]((8.571428e-05,0.000000e+00),(0.000000e > >+00,8.571429e-05)) ------ > > > > On 11/13/06, Vinh <arb...@go...> wrote: > > > Have been fiddeling arround for an hour. Could it be that I need to > > > replace the linear prediction model with an "Unscented_predict_model"? > > > I would derive from the mentioned model and then overwrite the > > > function "f" to insert my own state transition function? Same with the > > > noise i.e. covariance matrix Q? > > > > > > Vinh > > > > > > On 11/13/06, Vinh <arb...@go...> wrote: > > > > Hi, > > > > I'm just started playing around with the bayes++ library to accomplish > > > > following task: > > > > > > > > A vision system provides me with the position of our robot on the > > > > ground (2d). In addition, I want to merge this information with the > > > > internal wheelencoders (giving me the speed and rotation of the robot) > > > > to get an estimate of the position of the robot. > > > > Since the robot is rotating as well the system model is not linear. > > > > First I thought of using a particle filter to get the estimate, but > > > > that probably would be overkill, making the system slower than needed > > > > since the underlying probability distribution could simply be one > > > > gaussian. > > > > I had a look at the PV example, but got stucked and would like to ask > > > > for advice. > > > > > > > > In the state prediction (Linear_predict_model), there is something > > > > looking like this: > > > > > > > > q[0] = dt*sqr((1-Fvv)*V_NOISE); > > > > G(0,0) = 0.; > > > > G(1,0) = 1.; > > > > > > > > Can I leave it like that if I assume that the noise is always constant? > > > > > > > > Since the motion/prediction model is not linear due to the rotation, > > > > what would I need to change to modify it so that the filter can deal > > > > with non-linearities? > > > > > > > > Thanks very much for your help!! > > > > > > > > Vinh > > -- > ------------------------------------------ > Nicola Bellotto > University of Essex > Department of Computer Science > Wivenhoe Park > Colchester CO4 3SQ > United Kingdom > > Room: 1N1.2.8 > Tel. +44 (0)1206 874094 > URL: http://privatewww.essex.ac.uk/~nbello > ------------------------------------------ > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Bayesclasses-general mailing list > Bay...@li... > https://lists.sourceforge.net/lists/listinfo/bayesclasses-general > |